デジタル鉄道模型フォーラムのご案内:
DCCやメルクリンなどのデジタル鉄道模型を楽しむ方が集まって、様々な話題でコミュニケーションできる場です。ぜひご登録ください!登録・利用は無料です。

2018年01月08日

(代理公開)瀬戸内色さんのミント缶DCCコントローラ(改)

レポートコンテストの2位入賞の瀬戸内色さんのミント缶DCCコントローラ(改)の公開依頼がたくさん寄せられたので、瀬戸内色さんに依頼の上、承諾を得て、ここで公開させていただくことになりました。

瀬戸内色さんには御礼を申し上げます。

レポート:ミント缶 DCC コントローラのディスプレイを LCD 化

award2017_sc12.jpg

-------------------------------------

■Arduinoファームウェア DSmcanX_firmware.zip
CPU(秋月で売っているUncompationで開発しましたのでATmega328P-PUを使用)のFirmwareです。.zipですが、解凍するとDSmintcanというフォルダが出来ます。(オリジナルと同じ名前なので注意が必要です)

DSmcanX_PCB_Layout.pdf
秋月のBタイプユニバーサル基板で作成した時の部品やジャンパのレイアウトです。マイルールで書いている部分がありますので、ちょっとわかりづらいかも知れません。抵抗・コンデンサは回路図の記号で書いています。(抵抗が昔の表記です)ICなどはピン番号だけが書いてあります。
最近の抵抗の表記になっているところが、実はジャンパで、実物上は0Ω抵抗を使っています。A4の1枚に書ききれないので2枚になっています。

DSmcanX_schematic.CE3
ミント缶の回路図をもとにアレンジして書いた回路図です。

DSmcanX_schematic.PNG

-------------------------------------

以上、代理掲載でした。
posted by yaasan at 13:38 | Comment(2) | 鉄道模型

次世代サウンドデコーダの技術検討を妄想してみた

DCC電子工作連合では、なごでんさんMP3デコーダスマイルデコーダR6Nの開発をチームで協力して進めてきています。

スマイルデコーダR6Nは、年末年始で、とんでもない数が売れたようで、在庫もあとわずかとのことです。ほしい方は今すぐダッシュ(奪取?)ですね。2800円で、ディーゼル音やらVVVF音が出るのですから、そりゃあ、欲しくなるのは無理もないですが。R6NについてはMECYさんのレビューがビデオ付でわかりやすいです。

話は脱線しましたが、今後、さらに高度なサウンドデコーダをリリースしていくこともまた、求められていると思います。ぱっと思いつく、3つのアイデアを以下に示します。

■Arduinoベースで、サウンド再生時間を増やす@ I2C EEPROMを使う

NextGenSoundDecoderConcept2018_i2c.png

ATMEGA328Pであいている通信ラインは、残るはI2CのEEPROMしかありません。DMAが無い以上、通信スピードは1MHzは必須です(200kHzでは遅すぎる)。

入手性だと、AT24CM01 (1Mbit, 128KB)かなあと思います。1秒で8KBなので、128KBだと16秒です。DMAが無いので、ATMEGA328PのRAMをどこまでサウンドのバッファに確保できるかで、実現できるか決まりそうです。512Bytesをバッファで確保できるとすると、1秒間に16回(62.5msおき)、I2C EEPROMにアクセスしないとサウンド再生が円滑にできません。DCCのデコード処理も行ってるので、実験しないと、できるかどうか分かりません・・・。

あとは、I2C EEPROMに音声データを書き込む方法も、仕組み作りを1からしないといけないので、非常にややこしいです。デコーダとデバッグできる通信方式を作っていれば良かったですが、手を抜いていてやっておりませんでした・・・。

■Arduinoベースで、サウンド再生時間を増やすA SDカードを使う

NextGenSoundDecoderConcept2018_msd.png

スマイルコネクタで使用しているSPIラインを拝借する方法です。SPI FLASHという方法もありますが、ATMEGA328Pへの書き込み手段が無くなるので、microSDをMMC/TransFlash(TF)のSPIモードにして使用するのがベタベタな方法となります。

MP3デコーダで使っている、microSDカードスロットを装着し、途中にレベルシフトICを置いて、SDカードのデータを読み出す方法です。スマイルライタにつなぐときは、SDカードは外さないといけません(回路上にダンピング抵抗をつければ外さなくてもOK)

参考文献としては、SDカードのWAVファイル再生する。が、シンプルでわかりやすいと思います。

このmicroSD内のWAV再生サウンドデコーダは、実験必須な感じですね。デコーダのサイズもMP3デコーダくらいになるのと、音質も8Kbps/8bitと貧弱で、美味しさがあまりないのも微妙なところです。MP3デコーダで良いじゃない、となってしまいます。

■Arduinoベースではなく、独自に作るとしたら?

致命的なのは、DMAが無い事です。このせいで、まともなサウンドデコーダができない、と思って差し支えありません。DMAがあると、メモリからのデータ伝送を割り込みなどに引っかけて自動で行えます。サウンド再生は、メモリから音データをPWMタイマにコピーするのがほとんどです。つまり、これだけで、CPUがガラ空きになるので、他のことに集中できます。

ただ、高機能なサウンドデコーダになると、複数音同時再生、フィルタ、合成処理などが必要になるので、DMAだけでは物足りなくなります。そこで、ヘビーな処理が可能な浮動小数点演算がついているCortexM4クラスがほしいところです。となると、価格を考えてSTM32F4シリーズ(CortexM4,72MHz)が該当します。ESUのLokSound相当の機能をオープンハードウェアとして実現できるレベルになると思います。
部品コストは2000円以上(マイコン400円、フラッシュ200円他)になると思うので、まともな価格だと8000円近くになるでしょうね。年間10000個くらい作れれば、価格はもっと下げられますが・・・今の日本では、とうていさばけない状況でしょうね。

NextGenSoundDecoderConcept2018.png

----------------------------

3点挙げましたが、こうしてみると、スマイルデコーダR6NやMP3デコーダは、日本のこの微妙なDCCマーケットにおいて、非常にうまい隙間を埋める立ち位置にいることがよく分かると思います。価格、機能性のバランスを見ると、これに太刀打ちできるものってかなり難しい感じがします。

妄想はしましたが、現状のハードでも、ソフトは中身を書き換えできるので、まだまだ機能はソフトで進化していくと思います。腕に自信のある方は、ぜひともDCCデコーダのソフトにもチャレンジして、オリジナルの車両を作り込んでみてはいかがでしょうか。
posted by yaasan at 11:05 | Comment(0) | 鉄道模型