SSブログ

F28まで押せるコントローラの検討 その5 [DCCコントローラ]

 昨日は買った覚えのない猫撃退器がアマゾンから届きました。購入依頼を見ても買っていないし、なんか住所とか名前が英語で書かれているし、で、怪しいので、アマゾンのカスタマーセンターに連絡して、荷物番号を確認して、返品しました。こわいこわい。
 で、DCCの制御部分の続きです。
 今日は、アクセサリ制御部分を作ろうとしました。
 こんな感じに作ればよいらしいです。
 {preamble} [10AAAAAA] [1AAACDDD] [check sum]
 で、適当にGoogle翻訳して、作ってみましたが全く動きません・・・。アドレスは4つごとに飛ぶし、CDDDのCでOnOffをしてみましたが、全く動かないしDDDには何を入れるのかわからん。英語の仕様書だけでは一部意味不明だったため、DSmainR6のソースも参考にしました。
でわかったことは、1byte、2byte目は、("1"とか"0"は固定値です)
[ "1" "0" A5 A4 A3 A2 A1 A0] ["1" A8 A7 A6 C D2 D1 D0]
としたときに
・A5~A0はアドレスの下位6ビットです。
・A8~A6はアドレスの上位3ビットで1の補数表現します(bitを反転させればよい。010なら101。)
・D2、D1がアドレスのサブアドレスのようなもので2ビットあるので0~3の値をとります。
・D0がポイントとかのOnOffビットです。
・Cは1固定のようです。

送る1byte目と2byte目の命令はアドレスも含めてこんな感じになります。Xはアクセサリのオンオフです。
アドレス1の時A8~A0 = 1 D2D1 = 0b00 → [1000 0001] [1111 100X]
アドレス2の時A8~A0 = 1 D2D1 = 0b01 → [1000 0001] [1111 101X]
アドレス3の時A8~A0 = 1 D2D1 = 0b10 → [1000 0001] [1111 110X]
アドレス4の時A8~A0 = 1 D2D1 = 0b11 → [1000 0001] [1111 111X]
アドレス5の時A8~A0 = 2 D2D1 = 0b00 → [1000 0010] [1111 100X]

アドレスは512(9ビット)*4(2ビット)=2048個持っているんですかね?

ということで、アクセサリ命令も送れるようになったので、ひとまず終了で、次は基板が来てからtm1637辺りをいじりながら進めていきたいと思います。まだ発送連絡ありませんが。


コメント(0) 

F28まで押せるコントローラの検討 その4 [DCCコントローラ]

 昨日は、そろそろ蛍の季節かなあと思って、近く(と言っても歩いて40分ぐらいかかるところ)の山まで見に行きましたが、まだのようでした。4匹ぐらいしかいませんでした。例年通り6月のはじめ(来週末)に見に行こうと思います。
 で、うちにも10万円の申込書が来ました。家族には、「世帯主として全部私の懐に入れます」宣言をしておきましたが、まあ、一時帰休のせいで、わりと似たような額の給料が減りそうですので、生活費に消えるでしょう・・・。早速、申し込んでおきました。マスクもそうですが、いつ来るのやら。
 あとは緊急事態宣言が解除されたので、近くの海まで行ってみました。
re_IMG_20200530_164108.jpg

 で、本題ですが、F28まで押せるコントローラを作るので、Fujigaya2CheapControllerもLongAddress対応、F28まで押せて、アクセサリも使えるようにしよう!というコンセプトで改造を開始しました。
 以前にYaasanさんからショートアドレスだけでファンクションもF4ぐらいまでなら簡単だけど、全部入りは難しい。なぜならDCCの仕様がツギハギだから!という話を聞いていました。
 今回、作りながら、(そして、まだ終わっていませんが)よーくわかりました。
 まずは、アドレス。
 命令の送信は 
 [プリアンブル] [アドレス] [命令] [チェックサム]という順番で送るというのが、大まかな流れなのですが、アドレスにはショートアドレスと、ロングアドレスがあります。それぞれのアドレスのとき
Aがアドレスのビットで、

ショートアドレス:[0AAA AAAA] 1~127を送信可能
ロングアドレス:[11AA AAAA] [AAAA AAAA] 2バイト使って128以降?のアドレスを送信可能

とすでにここまでで、アドレスによって送信Byte数が違います。(なんか128~XXXがdigitraxと、メルクリンとかで違うという話があるらしいが知りません)
次にそのあとのF0~F28 の命令送信です。Dの各ビットが1でOn,0でOffとなるのですが、ツギハギっぷりに磨きがかかって、

F0-F4:[100DDDDD]  でなぜか並びがF0F4F3F2F1
F5-F8:[1011DDDD] 並びはF8F7F6F5
F9-F12:[1010DDDD] 並びはF12F11F10F9
F13-F20:[11011110] [DDDDDDDD] 並びはF20・・・F13
F21-F28:[11011111] [DDDDDDDD] 並びはF28・・・F21

と、カオスです。アドレス種類*ファンクション種類で、パケット数が2~4Byteと変わってしまうことがわかりましたので、現状固定バイトで作っている送信部分を全体的に作り直すことにしました。
今回からGitHubでVersion管理をするかと思って、使い始めていますが、変更コメントの入れ方が適当すぎて、人に見せられないのですが、Ayanoさんのみたら、潔くnewとしか書いていませんでしたね。まあ、人と共作するわけじゃないし、時々後戻りできれば良いだけだから、私もそうしようかなあと思いました。
 で、j今日は力尽きたので、明日アクセサリ制御部分を作ろうかなあと思っています。
 
コメント(0) 

F28まで押せるコントローラの検討 その3 [DCCコントローラ]

 コロナの影響で、6月末まで一時帰休を週に1日程度することになったので、今日は休みです。今のところ、趣味の時間が増えて、特に喜び以外はありません。(まだ収入の減りで食べるものに困るというところにはなっていないので)
 GitHubにでもスケッチを載せて、バージョン管理もしようかと思いつつ、勉強を始めましたが、そちらはまた今度。
 で、本題ですが、アクリルケースを作りましたので、Elecrowに注文しました。
 毎度のことながら、アクリルケースの設計はまずアートワークを行うMBEで画像をPNGでエキスポートします。この時dpiを指定できますので、それを覚えておきます。

 次にこのPNGをinpscapeで読み込み、ねじ位置やボタン位置を正確に把握して、アクリルの穴を開ける位置を決めます。また、側面板のホゾ形状なども決めていきます。で、最後に外形と穴位置だけ残して、完成です。今回は100㎜*150㎜ぐらいの大きさの基板になりますので、アクリル板は200㎜*200㎜のを頼みました。強引に一枚で一セットできるようにしています。Elecrowのアクリルは異種面付けで追加料金はかかりません。また、いつもPDFファイルで頼んでいます。(昔はそれを知らずに律義に一ピースずつ頼んでいてとても高いサービスになっていた)
inkscape途中.png

 で、少し前のTomix向けフィーダーの改良版と合わせて注文しました。こっちは微妙な(0.3mmとかの修正)なので、出来が変わってくれるのか心配ではあります。来週の終わりぐらいには届きそうかなあと思いますので、余力があればソフトでも書いていようかと思います。

コメント(0) 

F28まで押せるコントローラの検討 その2だったか [DCCコントローラ]

 昨日は焼き肉、今日は焼きそばと、ホットプレートを使って子供に料理を手伝ったもらいつつ、ご飯を食べてました。小学校の高学年にもなると、少々焼き肉で油が腕に飛んで熱かったりしても心が折れないようで、成長したなあと思いました。
 さて、昨日の続きです。きっとKicadで自動配線すればすぐに終わったんだろうけど、私はMBEを使っているので、自分で考えて、適当に配線です。楽しいですが、全く最適化されていません。仕事でやったら、ただ飯喰らい!と怒られそうですが、趣味は楽しければいいんだと思っています。
 で、基板の方はほぼ完成です。
ほぼ完成.png

Main基板
DCC_CheapCont2-Main_K0.png

Ext基板
DCC_CheapCont2-Ext_K0.png

 32個のボタンと32個のLEDに対して、マトリクスのように配線しましたが、まあ、汚いです。
 それはそうと、機能に欲を出してしまい、今までで、Cheap Controller機能、USB Throttle機能をスケッチの書き換えで作るつもりでしたが、もう一個UARTの出力を付けて、dsmain6も有線で操作できるようにするつもりです。あくまでもつもりなので、スケッチすら作っていませんが。そんなに難しいものではなかったような気がします。
 で、次はアクリルケースを作らないと。来週ぐらいに注文できるかしら。

コメント(0) 

F28まで押せるコントローラの検討 [DCCコントローラ]

 さて、アベノマスクがいまだに来ませんが、6月からやっと子供の小中学校が始まるようです。夏休みが2~3週間程度しかないとのことで、まあ、3~5月家の中に軟禁されつつ休んではいますが、少々可哀想かなあとも思います。盛夏に三密を避けつつ授業となると、数十年前と違い地球温暖化のため酷暑で各教室にクーラーはついていますが、窓を開けてとなって・・・、高温高湿の中、勉強ができるような環境なんだろうかと心配はしております。昔も夏はプリントのわら半紙が手にくっついて、破ってしまって、なんか微妙だった記憶があります。いつのころからかコピー用紙が主流になって、そういうこともなくなりましたが。
 で、F28まで物理ボタンで押せるコントローラを検討中です。
TM1637ですが、Arudinoのライブラリで、KeyPressまで対応しているのがありました。これで確認したところ、ばっちりでしたので、進めていきます。
re_DSC03045.jpg

 で、今、少し前に作った安物コントローラの横に32個のボタンを追加して作っているので、10cm*15cmに適当に配置して38個のボタンがあります。ケチなので、10cm*5cmと10cm*10cmの基板に分割しています。
無題.png

 で、とりあえずの回路図はこれ。
 Main基板
DCC_CheapCont2-Main_K0.png

 Ext基板
DCC_CheapCont2-Ext_K0.png

 スイッチにLEDを付けたら、部品数で、80個ぐらい。はんだ付けのポイントはたぶん200ぐらいになっているような気がしていて、作るのが嫌がらせかなあと思います。というかその前に配線できるのかを明日、試そうと思っています。
 あと、USBスロットルとCheapControllerを兼用するため、ProMicroで作る予定です。
コメント(0) 

表面実装小型フォトリフレクタ NJL5901AR を試す。その6 [S88]

 一日会社に行っただけでかなり疲れました。来週から5日フルに会社だと思うと、まだ土曜日なのにすでに来週のことで憂鬱です。
 さて、基板が到着したことに加えて、秋月電子から部品も到着しましたので、組み立てです。
 一回でうまくハンダ付けはできました。
re_DSC03039.jpg

 で、線路に挿入です。基板のビアが線路の真下にあり、線路の12Vに触れたら、S88ボードのArduinoは一瞬でお釈迦になりそうです。
 で、本題のS88のボードの抵抗値やスケッチの調整ですが、一日やってみました。
re_DSC03042.jpg

 わかったことは、このNJL5901ARというフォトリフレクタ、仕様書からもわかっていましたが、現在使っているTPR-105に比べ、鈍感です。また、構造上の話だと思いますが、LEDを発光させるとフォトトランジスタに常に漏れている感じがします。LEDを明るく光らせると、上方を開放しているにもかかわらず、トランジスタがそれなりに反応してしまいます。ただし、仕様書が想定している通りに高さ0.7㎜の所に白い物体を置く分には、実用上の問題はありませんでしたので、今回の私の用途(5㎜ぐらい上の黒い物体を検知したい)に対して微妙と言うだけの話です。
 センサのLEDの制限抵抗を220Ωとして、スケッチのdiff_value_threshold = 500;とすることで、それなりに使えそうにはなりました。センサの調整にはコツが必要になりそうです。(それはまた今度)
 また、今回0.6㎜厚で作りましたが、フィーダー部にうまく固定できず、センサの高さや方向が変わりやすいです。少し変わると、閾値が物体を検出できないほどに変わってしまうので、センサフィーダーの固定についても考えなければいけません。
re_DSC03043.jpg

 案としては、
(1)フィーダー穴部分は残り0.8㎜分なので、適当なスペーサー基板を作って、現状の基板の上に貼る。
(1’)または、0.8mm分の適当なパーツを3Dプリンタ持っている人とかに作ってもらう。
(2)フィーダー穴内にスーパーXなどの接着剤で固定してしまう。
(3)カプトンテープで保護して、フィーダーの下にもう一つフィーダーを入れてかさ上げする。こうすると、センサは上方に配置されるので検出精度は上がるのだが、センサ基板を取り出す際に順番を間違えると、センサを線路でそぎ落としてしまう危険が高い。
re_DSC03037.jpg

 もともと、フィーダーにしようと思った理由は、どこでも付けられるTomixのフィーダー型の簡易検出器のようなものが作りたかったためで、現状のセンサ線路の工作よりも簡単なものを目指そうと思ってのことなのだが、(1)だとセンサ線路の工作レベルが上がってしまい(まあ表面実装部品だし、すでに難しい感じはあるが)、(2)だと、どこにでも取り付けできる、という大切なコンセプトを捨ててしまうことになる。(3)だと壊す危険性が高い。
 と、いう感じで、なんかこれは企画倒れかなあと思い始めています。
 まあ、リューターで削らなくてもよいように、もう一回基板修正して、スペーサー基板と共に頼もうかなあとも思っていますが、それをやるときはF28までのボタンが押せるコントローラも作ったらにしようと思いました。

 
コメント(0) 

MP3V6N18でDL直結段とへのへのもへじさんの京急をマージ [ds-DCCデコーダ]

 さて、本日で会社の一時帰休が終了です。明日から仕事だと思うと、おなかが痛いです。金曜日1日出社したら、土日はまた休みなのですが、二日しか休みがないのか!と、なにかすでに体が「新しい生活様式」に慣れてしまって社会復帰できません。と思ったら、「新しい生活様式」には、三密を避けるために会社を休め!とは一言も書いてありませんね・・・。
 あとは月曜の夜中に頼んだ秋月電子の通販が80%(発送作業)まで進みました。出荷まであとちょっとです。
 さて、なごでんさんから、パリピ電車なんてワケの分からないもの作っていないで(とは言われていないが)、へのへのもへじさんの京急とディーゼルをくっつけなさいという指令が来ましたので、やりました。パリピ電車からMp3V6N18を引き抜くのは断腸の思いでした。(冗談)
 ソースはこちらです。今回のソースにAUX3のパリピ点灯部分は付けておりません。
 
で、CV47(走行音切り替え)は
0 無音
1 DC(直結)
2 吊掛
3 京急2100(SIVインバータ?)
4 吊掛
5 京急VVVF改良
6 E231(墜落インバータ)
7 抵抗制御
8 東洋GTO VVVF
9 E231系(旧)

としています。
ディーゼル直結音のCV47=1は、
SoundNotchのCV49でいくつかパターンを切り替えられるようにしてあり、

0の時
停止:アイドル
加速:スピード比例
定速、減速:スピード比例

1の時
停止:アイドル
加速:スピード比例
定速、減速:無音

2の時
停止:アイドル
加速:スピード比例
定速、減速:アイドル

としています。
また、音のOn/Offは
FN3=0:On,1:Off
となっています。

 音を鳴らす割り込み内で、電車の走行音とディーゼル音のどちらを鳴らすかの分岐を入れていますので、前よりも処理が重くなっているとは思います。
 また、忘れると嫌なので、メモがわりに書いておきますが、ディーゼル音のWAVはヘッダ部分を今回は消しています。


コメント(1) 

表面実装小型フォトリフレクタ NJL5901AR を試す。その5 [S88]

 OCSが深圳で止まっていると思っていたら、あっという間に本日到着しました。
re_DSC03034.jpg

 わりと早かったです。土曜日にElecrowからOCSに持ち込まれて、本日到着ですので。月曜日に慌てて頼んだ秋月のセンサ類がまだ発送されてません。来るのは週末ですかね。
 で、せっかく届いたので、線路にはめようとしましたが、はまりません。
re_DSC03035.jpg

 トミックスのフィーダーをノギスで測って3.2㎜かなあと思って、3.2mmで作ったのですが、出来上がりは3.2㎜ぐらいでよかったですが、全くはまりません。
 仕方ないので、まずは基板をやすりで削ってみまししたが、0.6㎜厚の板のため、プルプル震えて全然削れてくれません。で、仕方ないからリューターの出番です。確か研磨面はダイヤモンドの粉末を表面に付けてあったと思うのですが。ガラエポの基板はプラと違って熱に強いので、融けずに良く削れます。
re_DSC03036.jpg

 で、3.0mm~2.8㎜ぐらいまで削ったら、すっと入るようになりました。(外側を0.3㎜ずつ削って入るか?)
 厚みは1.4㎜ぐらいのため、両側から入れられます。
re_DSC03037.jpg

 次は秋月のセンサー部品待ちです。
 うまく、検出できるようなら、フィーダー相当部分を作り直して、基板を再注文予定です。
 なかなか長くかかりそうな予感がします。


コメント(0) 

DSair2ウェブアプリのファンクションを全部表示できるようにする。 その2 [DSAir]

 物を買っても整理をしないため、部屋がゴミ箱状態になって久しいですが、電子工作用の部品があふれています。
 現状2個の棚に入れていますが、足りません。
re_DSC03030.jpg

 そして、ずいぶん前に追加で棚を2つ買ったのですが、整理整頓が嫌いなので、放置していました。
re_DSC03032.jpg

 まあ、せっかくの休みなので、外に出ている部品を片付けてみました。そうしたら、3/4が埋まりました。
re_DSC03033.jpg

 ただし、子供のお片付けと一緒で、どこに何が入っているのかがわからなくなった・・・。
 で、上記が今日やったほとんどなのですが、そういえば、DSair2のファンクションを全部表示する件、ほかのSkinでもできるようにしてみました。タッチパネル対応のPC用モニターだと割と大きいボタンで映せます。20インチ程度なら、3.4万円ぐらいあればできそうです。(PCが必要ですし、私はタッチパネル対応液晶持っていないので、動くかどうか知りませんが)
 各画面ですが、旧国鉄
kyuukoku.png

 E217
E217.png

 E233
E233.png

 E259
E259.png

 でソースはこちら。DSAir2のSD_WLANに上書きすれば、使えるかと思います。

コメント(0) 

表面実装小型フォトリフレクタ NJL5901AR を試す。その4 [S88]

 今日は、お隣さんから沢山トマトをいただいたのと娘のリクエストで、ミネストローネを作ったのですが、夏のように暑かったせいで、家族で汗だくになりながら食べていました。適当に買いだめしながら作っているので、そうそう献立変更できないし・・・。人によって好き嫌いはあると思いますが、味の素のレシピサイトは自社製品の消費拡大に本気度が感じられ、大体おいしくできます。
 さて、elecrowから発送の連絡が来ました。
基板.jpg

 割とよさげにできてそうですが、OCSのトラッキングを見ると、中国国内で止まっている・・・。
普通は、Elecrowからのメールが来ている時点で、日本の税関あたりにいるんですけどね・・・。

 あと、もう一つ、F28までスイッチのあるコントローラを作ろうと思い、ちょっと試行錯誤していたのですが、4桁7セグと30個ぐらいのボタンを入れて、DCCのシンプルコントローラ機能も入れると、10㎝*10cmに入らなそうですね。
コントローラボツ.png

7セグ制御とボタンのインプットはTM1637を使おうと思っています。
コメント(0) 

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