So-net無料ブログ作成

DSAir2用に適当な電車でGo!のUSBスロットルの基板を作った。 [DSAir]

 ケースをどうにかつくる気になったので、合わせて、基板も頼んでいましたが、本日Elecrowから到着しましたので、組み立てました。
re_DSC02890.jpg

re_DSC02891.jpg

結果、二か所ほど間違いがありました。
(1)DCCアライアンスのロゴが鏡になっています。この前に作ったfujigaya2 DCC Cheap Controllerは基板の表にロゴを入れるスペースが無かったので、裏にロゴを入れていたのですが、今回のは表にもスペースがあったので、そのまま裏から表に持っていったら、鏡になってしまいました・・・。バッタ物みたい。
(2)ケースの右側面用のホゾがずれていて組み立てがしづらい。

今後ですが、
(1)DSAir2のWebアプリに速度絶対値モードを付けてもらって、
(2)Apple系でのデバイスの確認(Android,WindowsPCでは普通に動くことを確認しています)
(3)複数台での運転などを確認しようかと思っております。(速度指令を頻繁に出すため複数台運転ができるのか?確認が必要だと思っています)

 欲しい方がいれば、ケースなど作り直しますが、そうでないなら、内輪で楽しみたいと思います。


コメント(0) 

適当なDSAir2用のUSBスロットルの値を絶対値で指定してWebアプリに送る [DSAir]

 今日は子供の授業参観に参加しようとしたのですが、時間が13:30~と職場が離れている身として午後半休だけで行くには難しかったため、一日休みにして、いろいろとやることにしました。
 一つ目が、少し前に作ったUSBスロットルの抵抗の値をDSAir2のWebアプリに絶対値で送るもので、ソースはこちらです。DSAir2のWebアプリで使用するには現バージョンでは。Keyboard.jsをこちらに差し替える必要があります。Versionがあがったら、そのまま使えるようになるかもです。
 単なる証拠動画としては、以下になります。


コメント(0) 

DSAir2用に適当スピードメーターの移植 [DSAir]

 昨年、DSAir用に作りつつ、忘却の彼方に忘れていたスピードメーターのスキンですが、電車でGoコントローラとの組み合わせでやる気を出したので、この頃のDSAir2用のWebアプリ用に移植です。
 前回の電車でGo!コントローラからキーボード入力するやり方で、繋ぎます。今回は2ハンドルにしてみました。
re_DSC02888.jpg
 keyboard.jsも前回のを使用します。スピードメーター部分は、appmain.jsに含まれるので、そこに以前作ったList.htmlのJavaScriptを入れていきます。前回は、List.htmlを切り替えることで、メーターも切り替えましたが、今回はそこまで作っていません。また、前回はList.htmlで画面全部を作っていましたが、今回のappmain.jsはスピードメータ部分だけなので、メーターだけ色が違うという寂しい結果になっています。appmain.jsはこちらです。
appmain_kyuukoku.js・・・旧国鉄風メーター
appmain_E217・・・E217風のメーター
appmain_E233・・・E233風のメーター
で、appmain.jsの入替でメーター部分が入れ替わります。
イメージはこうなります。
旧国鉄
kyuukoku.png

E217
E217.png

E233
E233.png

なんとなくの動画をつくりました。せっかくなので、キハ82のOpenSound(ジョイント音+変速設定)で音を出しています。

コメント(0) 

DSAir2用に適当な電車でGo!のUSBスロットルを作る [DSAir]

 さて、前回に続いて、今度は、DSAir2用のUSBスロットルの中で、電車でGo用を作ります。
 電車でGo用のスロットルですが、おそらく、現状で、DSAir2に繋ごうとすると以下が考えられます。
1、S88のDSJOYプロトコルを使った方法(S88部分にS88_Masconとかをつなぐ)。未検証らしい。(私も未検証)
2、ESP32経由でDSAirに直接命令を送る方法。(あやのさん)
3、OneCoinController(あやのさんPS版)のマイコンをArudinoNanoからArudinoMicroに換装して、適当にスケッチも変えて、スマホに繋ぐ。(これでやってしまえれば、今回私がやっているのとまったく同じものができます)
辺りだとは思います。
 で、今回は、DSAir2のWebアプリのKeyboardに適当なテキストを送って、動かすという方法を試してみます。上記方法とのコンセプトの大きな違いは、スピードメーターを近くに置く。、電車でGo!コントローラを使うのに、タブレットのバッテリーを使うため、電源要らず。(何分持つのか知らないけど)ぐらいでしょうか?
 やらなければいけないことは、
1.PS2コネクタとArduinoProMicro(700円ぐらい)を買ってきてつなぐ。(ArduinoMicroは高価(2000円)なので却下)。ファンクションはタッチパネルから操作したいので、10インチぐらいのタブレットも買っておく。(PCでもOK)
2.適当なスケッチをつくる。
3.DSAir2のWebアプリを改造して、スピードを絶対値で入れられるようにする。
4.必死にデバッグする。
5.余力があったら、基板化する。

1、<材料をそろえて、組み立て。>
 まずは材料です。PS2コネクタは昔買ったS88_Mascon用があるので、それを使います。2.54mmピッチ変換基板もパネライズして注文したら、一生分あるので、何の問題もありません。気軽に調達したい人はあやのさんの頒布が良いかと思います。ArduinoProMicroは安いものがaitendoに売っています。高級なものが欲しい方はスイッチサイエンスでどうぞ。
 あとは、ブレッドボードとジャンパピンですが、秋月に行けば、沢山あると思います。
部品は勢ぞろいでこんな感じです。
re_DSC02883.jpg

 で、これをつなぎます。写真で言うとこんな感じです。
re_DSC02886.jpg

 図面ではこうです。(6本線をつなぐだけなのでスカスカです)
Mascon2kbd_K0.PNG

2.<スケッチを作る>
 今回、あまり考えずにArduinoスケッチ側で、加速や減速をしたときのスピードを計算して、その絶対値のスピードをDSAir2のWebアプリに送るようにしました。DSAir2用のウェブアプリにはスピードを絶対値で受け取る機能はないため、適当にプロトコルを決めました。

 PXXXX:XXXXは0~1023で文字です。値が変わったときは約0.2秒のインターバルで送られます。

 最初は、SHIFT,CTRL,ALTとの複数組み合わせ+キーコードを考えたのですが、どうも、PCでデバッグをすると、どの組み合わせでも不思議なポップアップや、Window消えなどが発生するため、やめました。今後どういうショートカットが登場するかもわかりませんし。次に、掲示板のほうでやすひろさんがおっしゃっていたマウスを使う方法については、私がWebアプリのJavaScriptのマウス部分の扱いがよくわかっていないので、今回は上記の複数文字による方法にしました。
 で、昔のS88_Masconや少し前のUSBスロットルを見ながら、スケッチを作りました。こちらです。
 なお、動作ですが、
・StartキーはFWD,REVの切り替え(”Z”キー)
・SelectキーはF0(”0”キー)
・AボタンはF1("1"キー)
・BボタンはF2("2"キー)
・CボタンはF3("3"キー)
スケッチを見れば簡単に変更できますので、気に入らない方は変えていただければと思います。

3.<Webアプリの改造部分はKeyboard.js>
 かなり汚い。ベタ書きですが、きっといつか誰かが美しくしてくれるでしょう・・・。変更はR2n TEST版から、keyboard.jsに少し追記しただけのこちらです。(Analogのほうは追記していないので動きません。改造はほぼ同じで行けると思いますが)

4.デバッグは結構大変でした。そして、毎度のことながら、電車でやらずにデコーダ開発ボードでやってしまいました。
re_DSC02887.jpg

 そして、Black Fridayで10インチぐらいのAndroid TabletがAmazonで10000円ちょっとで売っていたので衝動買いしてみました。1920*1200の解像度で液晶はとても見やすいです。なおYoutubeで1080pは処理落ちして、まともな動画は見られませんでした。720pでどうにかという感じですが、DSAir2のタッチパネルとしては申し分ありません。
re_DSC02884.jpg

 今回OTGケーブルは、少し前にRaspiZero用に買ったBuffaloのUSBHubを使用しました。問題なく使用できました。やっていませんが、このHubにFullキーボードを挿したら、ファンクションとかも使えるかしら?
 で、まあ、せっかくなので、動画です。デコーダはOpenSoundのMT54の近郊型です(操作方法が間違っているかもですが)。なお、スピードメーターがわりと滑らかに動いているあたりが見てほしい所です。(最初の1分ぐらいはスロットル動かしていません)
 こうなると、次は、スピードメーターのスキンをいじりたくなってくるんですよね。(昔作った奴を入れ込み直すだけだし。多分。


5.<基板化>
 基板のガーバーまで作りましたが、アクリルケースを作っているところで、力尽きたので、また今度考えようかと思います。部品は基板も入れて、驚異の3点です。
無題.png




コメント(1) 

適当なDSAir2用のUSBスロットルを作ってみる。 [DSAir]

 一か月ぶりの更新になります。あまり、鉄道模型のことをしていなかったりしますが。近頃、「蜜蜂と遠雷」の小説を読みました。ピアノコンクールの話ですが、話の構成が昔の少年ジャンプの愛と友情の漫画(ドラゴンボールとか?)と全く一緒で、読みやすくてとても面白かったです。映画は見に行っていませんが。
 さて、数か月前に、安いDCCコントローラを作ってみました。備忘録的に、まとめに基板のことを載せています。このArduinoNanoの部分をほぼピンコンパチのArduinoMicroに変えると、DSAir2用のUSBスロットルみたいのができるはずです。
 ということで、作ってみました。
 まずは材料です。ArduinoNanoはAliExpressなどで250円程度で買えますが、USBスロットルに使えるATMega32u4が搭載されているArduinoMicroの互換機は600円ぐらいします。そして、秋葉原などで買おうとすると、例えば、What’s Next Pink (Arduino Micro互換機) で、2000円ぐらいしますが、海外通販を待つものいやだったので、秋葉原で買いました。
 で、材料はこんな感じです。(写っているうち、ピンソケットはケースに入れるときに高さが高くなるため、使いませんでした。
re_DSC02878.jpg

 ArudinoMicroはNanoより4ピン多い(SPI関連が別口で出ている関係?)ですが、ピンをニッパーで切ると、今回作った基板ではベタGNDにあたり、少し危ないような気もしたので、短絡事故防止のためピンから引っこ抜きました。また、ICSP端子もいらないのでこちらも取ってしまいました。
表から
re_DSC02879.jpg

裏から
re_DSC02880.jpg

で、基板への実装ですが、ACアダプタ、DCC出力、モータードライバ、セラコン、電解コンデンサなどはいらない。ので、スイッチとArduinoMicro(互換品)だけを実装します。
数十分で完成です。
re_DSC02881.jpg

ケースに入れて、あとはスケッチを書くだけです。
re_DSC02882.jpg

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側がまだ存在しませんが・・・。
コメント(2) 

DSAir2のS88機能の準備をはじめる。 [DSAir]

 昨日は、池袋鉄道模型芸術祭を見てきました。レベルの高いジオラマが並んでいました。
 さて、DSAir2でS88を使用した自動運転ができるとのことで、試してみようと思い、その準備です。
 はんだ付けして、ケースに穴開けてやればすぐじゃないの?と思われるかもですが、私のDSAir2の場合はここに落とし穴があります。DSAir2の試作版基板のため、RJ45コネクタを付けるフットプリントがありません。すべて、線を引き出してやらなければならないのです・・・。
 ということで、秋月電子で、LANコネクタDIP化キット(K-05404)を買ってきました。
re_DSC02719.jpg

そして、製品の基板図面を確認しながら、どこから配線を引き出すか確認です。
 で、線を引き出して、S88_DATAには抵抗も追加して、まあ、完成です。
re_DSC02720.jpg

 この後ケースに入れていますが、ケース後ろ側は外してそこからRJ-45コネクタ用の配線を出しています。
 そして、S88 Detector 8chを付けて、DSairファームやFlashAir内のプログラムも最新にして、動作確認しようとしました。

 DSair Status画面を見ると、動いていないようです・・・。
初期状態.png
 下から3行目の「S88 data:(N/A.run s88start on BASIC)」です。
 センサは反応していますが、Web上でS88の動作が分かりません・・・。
 run s88start on BASICと書いてありますので、WikiのDSair DSbasicの辺りを確認して、s88startをDSbasicで実行しなくては行けなさそうなことがわかり、
s88start状態にする.png
この画面で、左にs88startと打ち込み、右側の下のほうの[>]の実行ボタンを押します。

すると、先ほどのDSair Status画面でS88の動作を確認できました。
s88start状態.png
S88 dataのあとにセンサ1~16までの現在の状態が表示されます。
1秒に一回ぐらいの更新になっていると思います。

これで、センサを使った自動運転をする準備が整いました・・・。(進まないなあ)

コメント(0) 

USBスロットル [DSAir]

 Yaasan様からUSBスロットルの試作キットとDCC同人誌2019Springをいただきました。
 DCC同人誌の2019Springですが、私の書いたところで一か所間違いがありました。
 P10.下から2行目 参考にさせていただいた ゆうえん・こうじ様のBlog名を間違えてしまいました。
誤:「汽車とつくる」
正:「汽車をつくる
です。申し訳ありません。

 さて、SUBスロットルのキットですが作ってみました。
 部品はこんな感じで基板とArduinoMicroとスイッチ6個とロータリーエンコーダ1個とかなりシンプルです。
re_DSC02608.jpg

 はんだ付けは、スルーホール実装なので難しくなく、15~30分程度で終わると思います。
re_DSC02610.jpg

 今日はここまで。来週にはスマホに繋いで動かしてみたいと思います。
 後は、適当なアクリル板加工しないとですかね?

コメント(2) 

DE10をラジコン風に動かす。(続くかどうか不明) [DSAir]

 DSair2が来たので、余ったDSairをどうしようかと思って、考えたのが題名の記事です。前回のSoundBox同様、またもや、DCCになんら関係ありません。
 Yaasan様がDCCコントローラをWifiで制御するDSairを作りましたが、その中で、DCCを使っていない通常の鉄道模型ユーザーを取り込もうと、アナログオプションという機能を作ったようです。”ようです。”というのは、私は申し込んでいないので実際にどうなったかわかりません、ということですが。ただ、やろうとしていることは、スマホから命令をもらって、普通は線路にDCC信号を流すところを、線路にPWM電流を流しモーターが回るようにしているということです。
 DSairのアナログオプションを普通に使うと、無線でアナログコントロール可能なKatoのスマートコントローラと機能が変わりないのですが、今回は、これを車載にして見ました。なお、現状では、値段的に高すぎる、搭載スペース的に大きすぎる、と悲しいことになっていますが、Arduinoで拡張性は抜群ですので、将来的には、なかなか楽しいラジコン鉄道模型になりそうな気がします。
 で、前置きが長かったですが、まず用意です。
 DSairを用意します。そのままではDCC信号しか出ないので、アナログ信号が出るように改造します。Yaasan様が有償で出しているものと被りますので、スケッチは上げませんが、改造する部分は、
(1)setup()辺りで、Timer1の初期化をやめる
(2)SetAnalogSpeed命令のスピードは上限が突き抜けるので修正する。
(3)Webアプリ側で、DC(スピード,方向)という命令を出せるように改造する。
で所望の物はできますが、割と難しかったです。
で、次は載せるDE10(HO)の改造です。
 線路電源から12Vを取りますが、プラスかマイナスか定かでないので、ブリッジダイオードを通して、プラスとマイナスを固定化します。ただし、ここで、1Vぐらい電圧降下してしまいます。
 今回はブリッジダイオードとノイズ対策用のコンデンサをつけるために、いにしえのDSdecR2基板を切って使ってみました。(写真は切る前の基板の写真)
re_DSC02498.jpg

 で、これを線路→NMRA8ピン→ブリッジダイオード→DSairのACアダプタ→DSair出力(本当はDCC用)→NMRA8ピン→DE10のモーターと繋ぎます。入出力部分とDE10はこんな感じです。
re_DSC02500.jpg

 そして、DSairを搭載するとこうなります。
re_DSC02501.jpg

 このままではHOにも入らなさそうですが、基板を作り直せば、クモハ40の屋根側に入らないかなあと思っていたりします。SDカードのホルダの横幅さえクリアすれば行けそうです。

 そして、実験です。
re_DSC02502.jpg

 電源は電圧降下の影響もあるので、KATOのDCC用の15VのACアダプタ(たしか全波整流しただけの直流だったような気がします)とKatoのStandard Sパワーパックをつないで、とりあえず、ダイアルを目いっぱい回して、線路に12V入れます。極性は考える必要ありません。この状態でDSairが立ち上がるので、スマホからWifiで繋いでやります。
 そして、普通にスマホからスピードと方向を制御できます。今日はこれだけです。
 動画はこちらです。まあ、何がすごいんだかさっぱりわからないですよね。ですが、Wifiの許す限り、同一線路上に何台でも電車が置けるようになります。Arduinoなので、なんかギミックが作れるかもです。DCCと違って一対一の接続なので、なんか分かりづらい、もやもやとした気持ち悪さもないと思います.









コメント(0) 

DSair2 チャレンジキットの組み立て [DSAir]

 昨日のDCCfestの飲み会でDSair2チャレンジキットを渡されたので、組み立てました。
 DSairとの大きな違いは、
(1)CV読み書きができる。(DSairは書き込みだけ)
(2)ケースが豪華になった(DSairは汎用Arduinoケース)
(3)ArudinoNanoベースなので、USBによる制御ソフトアップデートが可能。(DSairはマイコンを直接書き換える必要があるので、不具合時のアップデートの難易度が高い)
でしょうか?
 現状は専用スケッチがないので、DSair相当の機能しか確認できませんが。

 まずはキット内容。
re_DSC02479.jpg

 ケースと基板と表面実装部品の数々・・・。組み立てる前に確認しないと「後で部品が無い!」というのは避けたいので。
re_DSC02480.jpg

 で、約1時間後にとりあえず表面部品は付きました。半田ごてやルーペ、ピンセット、フラックス、半田吸い取り線などを駆使しています。
re_DSC02481.jpg

 苦労したところはIC5の辺り、C4,C6を先につけたため後からIC5をつけるのに苦労しました。先にIC5をつけるべきでした。
 あと、部品表のR13が回路図にもシルクにも見当たらないような気がしました。
 また、ICはクリームハンダ向けに考えている思われ、IC2など、ちょっとはんだ付けてきているのか不安な感じではあります。

 で、表面実装部品以外も付けていって、完成。
re_DSC02482.jpg

 LEDはケースでの位置を確認して、その状態ではんだ付け。
re_DSC02483.jpg

 ケースに固定して、
re_DSC02484.jpg

 ArduinoNanoを付ける前に、12Vで通電させて、ArudinoNano用の5V,SDカード用の3.3Vが出力されていることを確認します。

 そして、スケッチを書き込みます。書き込む前はLED点滅のスケッチが入っており、Nanoの青いLEDとDSair2のRUN LEDが点滅しました。なんでRUN LEDも点くのだろう?
 Arudino IDEの1.8.7で書き込む場合は、書き込むボードはArudinoNanoですが、プロセッサーをATMega328Pでなく、ATMega328P(Old Processor)にする必要がありました。1.6.8では普通にATMega328Pを選び書き込めました。FlashAirは外しておきます。なんとなく、電力を食いそうなので。

 で、まあ、写真の通り、見るだけ君によるチェックでは、ちゃんと動いておりました。
re_DSC02485.jpg

 DSair2の大きさですが、DSmainR5、Katoの鉄道模型コンテスト開催記念コキ107と比べるとこのぐらいの大きさです。結構小さいです。
re_DSC02487.jpg

 専用スケッチがリリースされたら、いろいろ試していきたいと思います。



コメント(0) 

DSAir用のUIを切り替えられるようにする [DSAir]

 ゆうえん・こうじ様から、
 「ところで今のDSairで、複数のUIを切り替えて使うということはできるのでしょうか?
それとも一枚のFlashAirには、ひとつのUIのList.htmしか設定できないのでしょうか?」

 と聞かれて、Yaasan様のブログには、複数のアプリを選択するというものがあり、やり方は、

「List.htmからリンクを貼ればいいだけなんです。
<a href="htmlファイル名">りんく</a>とするだけです。
なお、URL直入れは、List.htmしか許可されてません、リンクで飛ばないとだめです。」

とのことで、確かにできました。
List.htmを
----
<!doctype html>
<html>
<head>
<title>DSair Select</title>
<meta charset="utf-8" />
<style type="text/css">
body{
font-size: 2em;
}
</style>
</head>
<body>
DSair<br>
Skin Selector<br>
<a href="/SD_WLAN/List_org.htm">Original</a><br>
<a href="/SD_WLAN/List_E217_2.htm">E217</a><br>
<a href="/SD_WLAN/List_E233_2.htm">E233</a><br>
<a href="/SD_WLAN/List_kyuukoku_2.htm">旧国鉄</a><br>
</body>
</html>
----
としたら、こんな画面になります。(適当です)
キャプチャ_R0v_SkinSelector.png

そして、各ページをクリックするとE217系は
キャプチャ_R0v_E217_2.png

E233系は
キャプチャ_R0v_E233_2.png

旧国鉄は
キャプチャ_R0v_旧国_2.png

という感じで、各ページで普通にDSairを操作できました。なお、OriginalはDSairの通常のものになりますが、スピードメータの刻みを変更しているため、外部のStorage.jsも含めオリジナルのソースから少々変えてしまっています。

 なお、E217,E233,旧国鉄共に、スピードメータの0km/h、最高速度のメーター角度を変えています。
オリジナルはスピードメーターの円の真右方向を0度として、そこから時計回りに135°行ったところを0km/h、そこから270°行ったところが最高速度になっています。
 これをE217系などは、144°行ったところを0km/hにして、そこから252°行ったところを最高速にしています。E233系を見たらそうなっていたので、というだけですが。
 ソースはこちらです。参考にどうぞ。
コメント(2)