適当なDSAir2用のUSBスロットルを作ってみる。 [DSAir]
一か月ぶりの更新になります。あまり、鉄道模型のことをしていなかったりしますが。近頃、「蜜蜂と遠雷」の小説を読みました。ピアノコンクールの話ですが、話の構成が昔の少年ジャンプの愛と友情の漫画(ドラゴンボールとか?)と全く一緒で、読みやすくてとても面白かったです。映画は見に行っていませんが。
さて、数か月前に、安いDCCコントローラを作ってみました。備忘録的に、まとめに基板のことを載せています。このArduinoNanoの部分をほぼピンコンパチのArduinoMicroに変えると、DSAir2用のUSBスロットルみたいのができるはずです。
ということで、作ってみました。
まずは材料です。ArduinoNanoはAliExpressなどで250円程度で買えますが、USBスロットルに使えるATMega32u4が搭載されているArduinoMicroの互換機は600円ぐらいします。そして、秋葉原などで買おうとすると、例えば、What’s Next Pink (Arduino Micro互換機) で、2000円ぐらいしますが、海外通販を待つものいやだったので、秋葉原で買いました。
で、材料はこんな感じです。(写っているうち、ピンソケットはケースに入れるときに高さが高くなるため、使いませんでした。
ArudinoMicroはNanoより4ピン多い(SPI関連が別口で出ている関係?)ですが、ピンをニッパーで切ると、今回作った基板ではベタGNDにあたり、少し危ないような気もしたので、短絡事故防止のためピンから引っこ抜きました。また、ICSP端子もいらないのでこちらも取ってしまいました。
表から
裏から
で、基板への実装ですが、ACアダプタ、DCC出力、モータードライバ、セラコン、電解コンデンサなどはいらない。ので、スイッチとArduinoMicro(互換品)だけを実装します。
数十分で完成です。
ケースに入れて、あとはスケッチを書くだけです。
Yaasanさんのこちらの元スケッチを参考にしますが、ロータリーエンコーダで使用することを前提にしているので、スピードの指定が相対値になっています。今回のは絶対値で出てくるボリュームなので、プロトコル(というたいそうなものかどうかは置いておいて)を拡張する(というか適当に追加)必要があります。
DSAir2側は、Keyboard.jsというソース内に、英数字が入力されたら、こんな感じに動くというのが記載されていますので、そっちも見てみます。
こんな感じなようです。
---
keyboard.jsでは (スピードは0~1023)
SPACE(32) : PowerOnOff
S(83) : UP(+16)
D(68) : UP(+32)
C(67) : DOWN(-32)
X(88) : DOWN(-16)
Z(90) : FWD/REV切り替え
Q(81) : STOP
0(48) : F0 On/Off
Shift+ 0 : F10 On/Off
1(49) : F1 On/Off
Shift+0 : F11 On/Off
・・・・
1(57) : F9 On/Off
Shift+0 : F19 On/Off
---
で、掲示板に絶対値指定用の追加していい?って聞いてみましたが、反応ないので、
そのうち独自追加するとしましょう。
やることは、以下です。
---
例えば,0~1023で+128とかde
0,127,255,・・・,1023 を
b,n,m,g,h,j,t,y,uとかでスピード絶対値指定する。
---
で、USBスロットル(フジガヤコントローラ用)のスケッチはできました。こちらです。
Windowsで確認したら動作はばっちりです。
もちろん、絶対値指定するため、受けるDSAir2側がまだ存在しませんが・・・。
さて、数か月前に、安いDCCコントローラを作ってみました。備忘録的に、まとめに基板のことを載せています。このArduinoNanoの部分をほぼピンコンパチのArduinoMicroに変えると、DSAir2用のUSBスロットルみたいのができるはずです。
ということで、作ってみました。
まずは材料です。ArduinoNanoはAliExpressなどで250円程度で買えますが、USBスロットルに使えるATMega32u4が搭載されているArduinoMicroの互換機は600円ぐらいします。そして、秋葉原などで買おうとすると、例えば、What’s Next Pink (Arduino Micro互換機) で、2000円ぐらいしますが、海外通販を待つものいやだったので、秋葉原で買いました。
で、材料はこんな感じです。(写っているうち、ピンソケットはケースに入れるときに高さが高くなるため、使いませんでした。
ArudinoMicroはNanoより4ピン多い(SPI関連が別口で出ている関係?)ですが、ピンをニッパーで切ると、今回作った基板ではベタGNDにあたり、少し危ないような気もしたので、短絡事故防止のためピンから引っこ抜きました。また、ICSP端子もいらないのでこちらも取ってしまいました。
表から
裏から
で、基板への実装ですが、ACアダプタ、DCC出力、モータードライバ、セラコン、電解コンデンサなどはいらない。ので、スイッチとArduinoMicro(互換品)だけを実装します。
数十分で完成です。
ケースに入れて、あとはスケッチを書くだけです。
Yaasanさんのこちらの元スケッチを参考にしますが、ロータリーエンコーダで使用することを前提にしているので、スピードの指定が相対値になっています。今回のは絶対値で出てくるボリュームなので、プロトコル(というたいそうなものかどうかは置いておいて)を拡張する(というか適当に追加)必要があります。
DSAir2側は、Keyboard.jsというソース内に、英数字が入力されたら、こんな感じに動くというのが記載されていますので、そっちも見てみます。
こんな感じなようです。
---
keyboard.jsでは (スピードは0~1023)
SPACE(32) : PowerOnOff
S(83) : UP(+16)
D(68) : UP(+32)
C(67) : DOWN(-32)
X(88) : DOWN(-16)
Z(90) : FWD/REV切り替え
Q(81) : STOP
0(48) : F0 On/Off
Shift+ 0 : F10 On/Off
1(49) : F1 On/Off
Shift+0 : F11 On/Off
・・・・
1(57) : F9 On/Off
Shift+0 : F19 On/Off
---
で、掲示板に絶対値指定用の追加していい?って聞いてみましたが、反応ないので、
そのうち独自追加するとしましょう。
やることは、以下です。
---
例えば,0~1023で+128とかde
0,127,255,・・・,1023 を
b,n,m,g,h,j,t,y,uとかでスピード絶対値指定する。
---
で、USBスロットル(フジガヤコントローラ用)のスケッチはできました。こちらです。
Windowsで確認したら動作はばっちりです。
もちろん、絶対値指定するため、受けるDSAir2側がまだ存在しませんが・・・。
2019-11-10 17:35
コメント(2)
気づきませんでしたスミマセン。
絶対値の指定ですが、ふと、「コマンドスクリプトで送れば良いんじゃ無いか」と思いつきました。たとえば、
速度は「S99」「S00」
ポイントは「A00x」などなど。
などと、キーボードで打ったことにして送って、DSair2側のWebアプリで、入力文字列を足し込んで復元して処理するとか。
単なる思いつきなので、もうちょっと練り込みが必要そうですが。
by Yaasan (2019-11-10 21:51)
コメントありがとうございます。
一文字でないなら、Webアプリ側はわたしには難しそうなので、お願いします。コマンドでも、Alt+?でも、Ctrl+?でも、良いですよ。
by fujigaya2 (2019-11-10 23:02)