Topページに戻る

スマイルデコーダを車両に組み込む

スマイルデコーダーを車両(204系)に搭載し、DCC用のコントローラとしてKATO(Digitrax)のDCS50Kコマンドステーションを
使用して、車両が動く所までをまとめてみました。

※Macの画面のキャプチャとWindows7の画面が混在していますが、デバック等はコンパイルが早いMacを使っています。
スマイルライタを使って車両に書き込む時にWindowsを使っています。(Macではスマイルライタがなぜか使えないのです・・・)

■SOUND OPTIONを実装するための下準備

秋月で購入したPAM8012パワーアンプと、マイクロスピーカーユニットを加工します。

部品番号

部品名

仕様

価格

URL

 

PAM8012使用2ワットD級アンプモジュール

 

300円

URL

 

マイクロスピーカーユニット HDR9225-010020(2個入)

 

100円

URL

線材は、千石の地下室で売っていた協和ハーモネット株式会社製のUL1571AWG30 2m×6色というのを使用しました。
似たような太さ⇒サンコー電商 UL1061 AWG30 2M×6C 半硬質PVCワイヤ 2M×6色 AWG30
UL1571は電気・電子機器内部配線、スペースファクターの考慮を要する用途に適しています。定格電圧30V、定格温度80℃
UL1061は電気・電子機器の内部配線盤内配線など様々な用途に使われる極細の半硬質単芯電線です。定格電圧300V、定格温度80℃
(塩田電線株式会社さんより)

○表
スピーカーの加工・表
【クリックすると画像が大きくなります】
●裏
ちっさいスプリングは角ではんだ付けされていましたので、撤去して代わりにAWG30 黒黄のツイスト線を接続しました。
スピーカーの加工・裏
【クリックすると画像が大きくなります】


PAM8012にセラミックコンデンサ、電解コンデンサを実装し、スピーカーと接続します。
部品等は、Desktop stationさんのwebページを参照してください。

○表
表
【クリックすると画像が大きくなります】
●裏
裏
【クリックすると画像が大きくなります】


スマイルデコーダーへの配線は、AWG30の赤黒黄のツイスト線を使用します。

表
【クリックすると画像が大きくなります】


モーターと集電板が接続されていますので、切り離して接触しないように絶縁テープを使用しています。
PAM8012からデコーダーへはAWG30を使い、赤線:5V、黒線:GND、黄線:A3にそれぞれ接続します。
モーターへの配線は、AWG28を使用しました。

表
【クリックすると画像が大きくなります】


車両に収めるとこんな感じです。
キープアライブコンデンサが無いと、がくがくして、まともに走れなかったので、10uFの電解コンデンサ
を実装しました。
また基板と車両間の絶縁用に、秋月で買っておいた10φの収縮チューブをかぶせてあります。

表
【クリックすると画像が大きくなります】

表
【クリックすると画像が大きくなります】


デコーダー用スケッチの用意とコンパイル

■ライブラリのダウンロード

デコーダー用のライブラリとして、以下の3種類のライブラリを使用しますので、ダウンロードして Arduino IDEにライブラリ登録をします。

NMRA DCC Library
ダウンロードのページから、【Download NmraDc library ZIP Archive】のリンクをクリックしてダウンロードします。

TimerOne Library
右側にある【Download ZIP】ボタンを押下して、ダウンロードします。

PWMDAC_Synth
PWMDAC_Synthライブラリのページから、右側にある【エクスポート【ZIP】】ボタンを押下して、ダウンロードします。

■ライブラリの追加

ライブラリを追加しておかないと、以下のようなエラーが発生します。



ビルドオプションが変更されました。全体をリビルドしています。
DSDCCDecoder_VVVF_k94_melody.ino:23:26: fatal error: PWMDAC_Synth.h: No such file or directory
compilation terminated.
コンパイル時にエラーが発生しました。

スケッチ⇒Inclucde Library⇒Add.ZIP Library...を選択します。



インストールするファイルを指定する画面が表示されますので、Library ZIPファイルを選択します。



スケッチ⇒Inclucde Library を確認すると、【Contributed Libraries】の所に追加されます。
下図は【NmraDcc】【PWMDAC_Synth-d123648】(←-d123648という変な文字が入っていましたね)【TimerOne-r11】を登録しました。




スマイルデコーダへのスケッチの書き込み

書き込みたいスケッチを読み込みます。

今回は電車にふじがやさんが作られた、VVVF+メロディにヘッドライト、テールライトファンクションの追加 その1スケッチを使います。

ですが、KATOのDCS50Kの仕様により、速度コマンドと一緒にファンクッションコマンドが常に送られて来るので、ふじがやさんのスケッチではそのままでは使えません。
現象は、DCS50Kの線路電源をONにすると、メロディがすぐに鳴り出して、しかも次々にメロディが鳴る為、なかなか発進ができません。
そこで、DCS50K用に速度0の状態で、ファンクッションコマンドを送ることで、メロディが鳴るように変更しました。

そのDCS50K用のスケッチはこちら
ちなみに・・・
      mask = pv04_FuncState xor FuncState;      // 前値との変化ビットを算出  2015/9/12 aya add
      pv04_FuncState = FuncState;               // 現在値を保存  2015/9/12 aya add
      if((mask & FN_BIT_01) != 0)               // F2
ファンクションコマンド処理のソースファイルからの抜粋ですが、DCS50K用に追加した所です。
前回との値をxorしてから、ビットチェックしています。
なので、ファンクッションコマンドの値が、0⇒1,1⇒0 の変化でも鳴っちゃいます。
DCS50Kのファンクッションのボタンはトグルなので良しとしました。


【→】ボタンを押して、書き込みます。

スマイルライタをスマイルデコーダに接続して、スケッチの書き込み中です。

スケッチ書き込み中
【クリックすると画像が大きくなります】



■動かしてみた
ちなみに、デフォルト状態の CV2 と CV5 では、亀のようにのろのろです。
車両をプログラム線路に乗せて、CV2=50 CV5=100 に設定しました。
※DCS50Kで、CV値を書き換えるときは、プログラム線路という線路を使って書き換えます。
VVVF音はモーターへのPWM周波数を可変させることで、モーターから直接発生させています。



番外編・フラックスリムーバー

フラックス除去が不要なフラックスを使用しているので、基本的にはフラックスの除去は不要です。
ですが、手ではんだ付けを行うため、はんだからのヤニ(フラックス)、はんだ吸い取り網から出る
ヤニ等のフラックスが基板に残っている為、基板は結構汚くなってしまっています。

そこで、基板を洗浄する為の溶剤があります。

マルツで【フラックス クリーナー】で検索。


ちなみに、今回はジクロロメタン系の溶剤で洗浄しました(^^;

洗浄後
【クリックすると画像が大きくなります】

スプレー系のフラックスクリーナーを使い、クリーナーを吹き付けて洗浄していきます。すごくきれいになります!。


スケッチのリンク

スマイルデコーダ
Desktop Stationさん配布のデコーダ
ここには、
・車両スケッチ
・車両VVVFスケッチ
・車両VVVFスケッチ+メロディスケッチ
・ポイントスケッチ
・ヘッドライトスケッチ
があります。

フジガヤさん配布のデコーダ
・VVVF+メロディにヘッドライト、テールライトファンクションの追加
DSDCCDecoder_VVVF_k94_melody.zip


デコーダーボードの世代一覧

第1世代
Desktop Station decoder (DSdec)

第二世代
Desktop Station decoder (DSdec) R2

第三世代
Smile Decoder (DSdecR3)
第四世代
Smile Decoder(BEMF対応)


リンク

Desktop Stationさんのwebページ
Smile Decoder (DSdecR3) wiki
Smile decoder (DSdecR3) ノウハウ集 wiki
Smile Decorder(DSDecR3)を組み立てた。(あと、鉄コレ、Bトレに入る):フジガヤさん
Desktop Staion「DSdec R3」:スマイラーさん
電機屋の毎日さんからスマイルデコーダーが届きました:Toufuさん
Sound Option (簡易サウンド機能追加方法) wiki


2015/09/13 初版
2015/09/14 誤字修正