BluetoothとAdobe Flash、C#を利用して、Flashで作成した運転台型コントローラからArduinoを使って鉄道模型を動かしてみました。ページ最下部でソフトウェアも配布しています。
鉄道模型は手元のコントローラからコードを延ばして線路に給電し、制御するのが通例ですよね。最近は無線のコントローラや運転台型コントローラなどもありますが、様々なデバイスから扱えるBluetoothを使った無線ものは市販ではないので、自分で作りました。
とはいえBluetoothでArduinoを使って制御するだけなら先人がたくさんいるので、こんなものを作ってみました。
運転台型コントローラです。Flashで作ったので凝った動きも簡単に作れました。速度計の影も動きます。
ただしFlashは通信関係の機能が貧弱で、単体ではシリアル通信は使えません。そこでシリアル通信ができるC#を引っ張ってきて、Flashと通信して制御を行うようにしました。Flash→C#はfscommand()、C#→FlashはExternalInterfaceで実現しています。
今回は横軸マスコン、縦軸ブレーキで作りましたが、flaファイルを改造してswfを吐き直せば、横軸マスコンや横軸ブレーキ、自動空気ブレーキ等を再現することも難しくないでしょう。
機能
具体的な使い方はソフトウェアに同梱のREADME.txtを参照して下さい。
- 進行方向の変更
- マスコンハンドルによる加速
- ブレーキハンドルによる減速
- 非常ブレーキ
- 定速制御
- 加速度、減速度、惰行時の減速度、速度の下限、速度の上限の変更
- ポイント切替(2系統)
- キーボード操作(キーアサインはBVE互換)
回路図
BluetoothモジュールとArduinoの結線
Bluetoothモジュールは秋月で売っているRN-42を使いました。XBeeシールドを持っていればポン付けしてCTSとRTSを短絡させれば良いのですが、持っていないのでその部分の回路を作りました。
RN-42は使用前にコマンドモードで設定が必要です。これも先人による解説が詳しいので、読みながら設定すれば大丈夫です。Tera Termとかを使って、
- スレーブモード
- SPPプロファイル
- ボーレート: 115200bps
に設定しておきます。
電波法は守ろうね!
モータ制御回路
Arduinoのピン出力は5V/40mAまでしか取り出せないので、モータドライバを使ってモータを駆動させる回路を作りました。モータドライバはTA8428Kを使ったので、ACアダプタの容量にもよりますが1Aは余裕で流せます。
保護回路としてポリスイッチを入れてあります。ダイオードはICに入っているので不要と判断しました(適当ですが)
ポイント制御回路
ポイント制御がいらない人は不要です。上記のモータ制御回路に近いものですが、PWM制御は不要なのでデジタル出力を使用しています。また、出力が小さくても良いのでモータドライバはTA7291Sを使っています。
ソフトウェア配布
Arduinoスケッチ、制御ソフトウェア、回路図、ソースコードすべてセットです。Bluetooth通信用ではありますが、USB接続による有線通信でも使えます。
本ソフトウェアはMITライセンスのもとでリリースされています。
Copyright (c) 2015 Noname Kamisawa
Released under the MIT License
http://opensource.org/licenses/mit-license.php
GitHubにも置いてあります。