SSブログ
ワンコインデコーダ3 ブログトップ

ワンコインデコーダ3でHOゲージのポイントをDCC化する [ワンコインデコーダ3]

 HOゲージをカシオペアの機関車がふるさと納税するともらえるとのことで、もらっています。よくわからないですが、今は品切れのようです。
 車両があると、次は線路がほしくなるもので、どっかの国の偉い人は誕生日プレゼントに水爆実験していたようですが、私の誕生日プレゼントはつつましく、HOゲージマスタープランセットを秋葉原のImonで買いました。文字通り、ホコリをかぶっており、レジの雑巾で箱を拭いていました。まあ、売れないものなのねと思いました。
 そして、家で組み立てようとして気づきました。このレール、2400mm*1200mmで昨年作った鉄道模型用の台(1800*1800)に入らない。まあ、走るのは銀色の電気機関車だけなので、直線を短くすることにしました。
 その時の記念写真。
re_DSC00415.jpg
 線路全体。
re_DSC00416.jpg
 Katoのコントローラは持っていないので、途中で切って、トミックスのコントローラに繋いでぐるぐる走行させました。もちろん子供も大喜びでした。もっとスピード出ないの?と、言っていましたが。
 で、折よく、ぬっきぃ様がワンコインデコーダ3の両極性Fxデコーダのポイントデコーダ向けプログラムを製作してKatoのHOポイントで動くとのことで、HOゲージに入れてみることにしました。
 入れるポイントは、手動ポイントR490右、左で、DCC化するためにポイントマシンを左右二つずつ4つ買いました。
 re_DSC00417.jpg
 なかを開けると、左右兼用の基板のようです。カバーだけは、配線を出す方向が違うため左右で別型でしょうか?
 ワンコインデコーダ3がポイントマシン内に入らないかなあと思いましたが、さすがに入らなさそうでした。また、ポイント裏のプリント基板が入った部分も厚さのため入らず、外側に熱収縮チューブとゴム系接着剤(私はスーパーX)で固定しました。
re_DSC00418.jpg
 ポイントは中を開けるとこんな感じで、改造は簡単そうです。
re_DSC00420.jpg
 デコーダは線路の下に入れるので、ポイントマシンの配線方向を変えるため、元の配線は取ってしまって、中に引きだしました。
re_DSC00422.jpg
 そして、中に入れてしまうため、カバーのうち、写真の場所に配線用の加工をします。
re_DSC00423.jpg
 DCC Inやポイントアウトのための配線をなんとなく引いた状態です。
re_DSC00424.jpg
 右側の青い二本がデコーダのInに繋ぐ線で、ポイントマシンにつながっている黄色と青色の二本がデコーダのOutに繋ぐ線です。黄色が赤で青色が黒でつながっていたところです。なんで、青線ばっかかと言ったら、手持ちのリード線がなかったからです。
 写真の右側に配線を外に出すため、ニッパで切り欠いてます。
 製作上の注意としては、
・カバーを通してつなぐため、黄色と青色のOut線はカバーを通す必要があります。忘れてデコーダと配線するとはんだ付けしなおしです。
・InとOutがショートしているすると、DCC電源を入れたとき、ポイントモーターからジーーという音がします。そして、デコーダを一つ壊してしまいました。
 完成した写真です。
re_DSC00428.jpg
 最初からすべて結線した状態で動作チェックに入っても大丈夫で、初期値でアクセサリの1番に設定された状態になります。
 トミックスのポイントと違い、きびきびと切り替わります。この動画の後にポイント配線にカバーを通していない!という悲劇に気づくことになりましたが。

 途中、一つデコーダを壊したこと、ワンコインデコーダ3を作って、ポイントに入れてという作業だったため、昼から始めて、4個改造し終わったのは夜中でした・・・。
 次は、電気機関車をDCC化して、センサレールを製作して、HOゲージでスイッチバックをやってみたいと思います。(すぐじゃないと思いますが)

 
 

ワンコインデコーダ3の製作 [ワンコインデコーダ3]

 ぬっきぃ様のワンコインデコーダ3を頒布いただき、そのうちの両極性Fxデコーダを製作した。
 まず、一つ目の山。
 Picの書き込みに素直にぬっきぃ様のSimplePicKit2を買えばいいのに、Aliの互換品にひかれてクリックしてしまった。(一緒にATMEGA328用のISPプログラマーとArduinoProMini互換品も買った)。で、送料無料(Free Shipping)で普通郵便(SAL?)で12/2に注文して届いたのは12/14。しっかり半月経っていた・・・。
 さて、とりあえず、デコーダのPICだけをはんだ付けしてスマイルコネクタアダプタを介してPickit3(互換品)につけて、書き込み!と思ったら、電圧が足りません系のエラーが出た。USBバスから4.6Vしか出ていないからだめだみたいなことが書いてある。
無題.png
 検索すると、air variable様の記事で、中身の抵抗を変えればいいと書いてある。早速、中を開けてみてわかったことは、記事の写真と違うということ。つまり、互換品なので部品の配置は違うし、まず、部品番号を書いたシルクが無い・・・。PicKit3互換品の改造をするという路線はそうそうにあきらめることにした。
 ということで、検索のほかの結果を見ると、USBハブにつなげとか(ハブ持っていないので却下)別で電源供給しろとかある。ということで、別電源供給にすることにした。
 PicKit3からの5V供給はやめ、スマイルコネクタアダプタの途中のVDDに5V、GNDに0Vをつなぎ、MCLR端子はVDDから適当に6.8Kの抵抗を付けて接続。ACアダプタが12Vしかなかったので、NJM78L05で5Vに下げて、VDDに供給した。以下がその時の写真。
re_DSC00347.jpg
 
 回路図としては、以下の感じなのだが、写真のとおり、いい加減にICソケットにジャンパーピンを挿すというやり方をした。そのうちどうにかしないと。
 pickit3外部電源.PNG

 で、まあ、めでたく書き込みには成功した旨が表示されるようになったので、続けて、ほかの部品をすべて実装した。そして、出来上がり。
re_DSC00348.jpg
 
 次に、2つ目の山。
 DSmainR4に繋いでみたが、うんともすんとも言わない。で、テスターで当たったら、12Vは出ているが、5Vが出ていない。ルーペで見たら、5Vレギュレータ 78L05Fの足が浮いてた。これはSmileDecoderでもやらかした典型的な不良モード。はんだを盛って、解決した。

 DSmainR4で動作確認をしたのだが、方向転換しても、ライトが切り替わらない。方向転換した後、F0(ライト)のOff/Onをすると切り替わる。ぬっきぃ様の利用者相互サポート掲示板でお聞きして、現在そういう仕様で、方向転換とともに切り替えるのは”冬休みの宿題にしたいと思います”とのこと。ありがとうございます。ぬっきぃ様。

 次に3つ目の山。
 ワンコインデコーダ3のLoco番号を変えたいのだが、ワンコインデコーダ3はCV値書き換えのために、現在、PageモードとOPSモードでのアクセスが可能だが、Directモードはサポートしていない。DSmainR4はDirectモードでの書き込みのみ可能である。DesktopStationではOPSモードを実装する予定で、ワンコインデコーダ3もDirectモードの実装検討をしているが容量的に難しいかもとのこと。
 で、私はDesktopStation系しか持っていないので、以前ときどき使っていたcmdrArduinoがOPSモードをサポートしているので、これで書き込めるか確認してみた。(D102買ってないし)。
 結論は書き込めた。書き込みデバイスとして使用したのは、DSdecR1でコマンドステーションとして使用する。Inに12V ACアダプタをつなぎ、Outにワンコインデコーダ3をつなぐ。ヘッドライト、テールライトのパーツはKatoの185系か115系のもの。(どっちか忘れたが豆球のもの)
re_DSC00359.jpg

回路的に使う部分(D9,D10でモータードライバをドライブして、コマンド送信のためSerial通信を使う)がほぼ同じ構成である、デコーダ開発ボードやミント缶コントローラでもたぶん動くと思う。(ただし私は動作確認していない。ミント缶はモータードライバが違うので、もしかしたら怪しいかも)
 スケッチはこちら。CmdrArduinoライブラリをライブラリフォルダへコピーして、登録してからコンパイルする。(登録する必要あったっけ?)。あと、断っておくが、デバッグのためだけに作ったので、汎用性ゼロである。
 スケッチ書き込み後シリアル通信(115200bps設定)で、(命令はすべて半角で[enter]で送信)
1:loco3のcv30に2を書き込む(意味のない命令。ぬっきぃ様の掲示板参照)
2:loco4のcv30に2を書き込む(意味のない命令。ぬっきぃ様の掲示板参照)
3:loco3のcv1に4を書き込む(Locoを3→4に変更)
4:loco4のcv1に3を書き込む(Locoを4→3に変更)
5:loco3のcv8に8を書き込む(つまりloco3のCV値リセット)
6:loco4のcv8に8を書き込む(つまりloco4のCV値リセット)
7:loco4のF0をOff
8:loco4のF0をOn
9:loco3のF0をOff
0:loco3のF0をOn
@:loco4のSpeedを10にする
::loco4のSpeedを-10にする
[:loco3のSpeedを10にする
]:loco3のSpeedを-10にする

例えば、初期値の状態で接続して、シリアルから3を送信すればloco番号が4になる。
本当はちゃんと引数がLoco番号、CV番号、CV値の命令を送って、Arduino側で文章解析して、汎用的なOPSの書き込み命令にすればいいのにとはもちろん思うが、今日は主にCmdrArduinoが動くかを確認したかっただけなので、こうなりました。

ワンコインデコーダ3 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。