TOPへ戻る


Smile Function Decoderを使ってモニタリング装置を実現

電気屋の毎日さんのブログでDCC電子工作連合機器活用レポートコンテストに応募した作品で
モニタリング装置をご紹介します。
NゲージのKATO E233系 南武線 8000番台にモニタリング装置のギミックを組み込みます。
今回はモニタリング部分を専用の基板を起こして、DCCの機能を使って走行中に点灯、停止で消灯する機能を実装します。

モニタリング装置って?

モニタリング装置でぐぐってみる

用意するもの

DCC館で配布しているモニタリング装置用基板


はんだ面のシルクを間違えていまして、下側のシルクのAとKを逆にしていました・・・

2012mm(0805inch)サイズのLEDを赤、白を8個ずつ実装します。


適当な線を付けます。※車両に組み込むときはUEW線を使っていました。
 

Smile Function Decoderは、パンタスパーク用デコーダーに使っている2FXタイプを使います。
V1に白LEDのアノード、V2に赤LEDのアノード、O4に白、赤LEDのカソードをつなぎます。
V5にテープLEDのアノード、O3にテープLEDのカソードをつなぎます。
※テープLEDを付けている写真は後ほど追加します。

 


Arduinoの設定

ATtiny85はDCC信号の接触不要などでCV値が初期値に戻ってしまう現象がありました。
ATtiny85の設定で、brown-out detection (BOD) 低電圧検出器を設定しておくと改善することが分かりました。


Dr.Azzy's

Arduinoの追加のボードマネージャのURL設定で
http://drazzy.com/package_drazzy.com_index.json
を追加します。


ATtinyCoreのATtiny25/45/85を選択します。



ボード:ATtiny25/45/85
Timer1 Clock:"CPU"
Clock:"8MHz(internal)"
Chip;"ATtiny85"
B.O.D:"B.O.D. Enable(1.8v)"
LTO(1.6.11-only):"Disabled"
に設定して、ブートローダーの書き込むを実行します






モニタリング装置用スケッチ(プログラム)

GitHubにて公開

デフォルトのアドレス3
F3:O3 室内灯
F4:O4 モニタリング装置

CV設定
CV01 2桁アドレス(初期設定3)
CV08 リセット
CV33 F0(初期設定0)
CV35 F1(初期設定0)
CV36 F2(初期設定0)
CV37 F3(初期設定3) 室内灯
CV38 F4(初期設定4) モニタリング装置
CV39 F5(初期設定0)
CV40 F6(初期設定0)
CV41 F7(初期設定0)
CV42 F8(初期設定0)
CV43 F9(初期設定0)
CV44 F10(初期設定0)
CV45 F11(初期設定0)
CV46 F12(初期設定0)
CV51 slot点灯条件(初期設定5)

今回はNMRAライブラリを同じプロジェクト内に入れました。
その結果、コンパイルは通るけど、まったくDCCを受信していない現象が発生。
すでに、あるあるなので、以下の2つの関数を修正。
//extern void notifyDccSpeed( uint16_t Addr, uint8_t Speed, uint8_t ForwardDir, uint8_t MaxSpeed )
↓
extern void notifyDccSpeed( uint16_t Addr, DCC_ADDR_TYPE AddrType, uint8_t Speed, DCC_DIRECTION Dir, DCC_SPEED_STEPS SpeedSteps )


//extern void notifyDccFunc( uint16_t Addr, FN_GROUP FuncGrp, uint8_t FuncState)
↓
extern void notifyDccFunc(uint16_t Addr, DCC_ADDR_TYPE AddrType, FN_GROUP FuncGrp, uint8_t FuncState)



O3の処理(デフォルトでF3が割り当てられています)0か1かを調べてLEDをON/OFFさせています。
O4の処理は下記の関数で処理するため、#if #endifを使ってコメントアウトしています。



速度によってLEDの点灯・消灯は簡単で、Monitaring_Control()関数内で処理をしています。
F4でONになっていると、速度が5step(CV51のデフォルト値)を閾値で点灯・消灯させています。
ステートマシンにする必要があまり無いですけどw

マイコンボードに書き込むを実行してSmile Function Decoderのプログラムを書き換えます。


リンク

新町車輌製造さんによるS設備Monitoring装置(3Dプリンタ出力)

DCC電子工作連合機器活用レポートコンテスト



2018/01/18 1版