Bluetooth+Flash+C#で鉄道模型を動かす

BluetoothとAdobe Flash、C#を利用して、Flashで作成した運転台型コントローラからArduinoを使って鉄道模型を動かしてみました。ページ最下部でソフトウェアも配布しています。

2015-10-19 10.33.16

鉄道模型は手元のコントローラからコードを延ばして線路に給電し、制御するのが通例ですよね。最近は無線のコントローラや運転台型コントローラなどもありますが、様々なデバイスから扱えるBluetoothを使った無線ものは市販ではないので、自分で作りました。

とはいえBluetoothでArduinoを使って制御するだけなら先人がたくさんいるので、こんなものを作ってみました。

serialtraincontrol

運転台型コントローラです。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

に設定しておきます。

電波法は守ろうね!

Bluetooth

モータ制御回路

Arduinoのピン出力は5V/40mAまでしか取り出せないので、モータドライバを使ってモータを駆動させる回路を作りました。モータドライバはTA8428Kを使ったので、ACアダプタの容量にもよりますが1Aは余裕で流せます。

保護回路としてポリスイッチを入れてあります。ダイオードはICに入っているので不要と判断しました(適当ですが)

MotorControl

ポイント制御回路

ポイント制御がいらない人は不要です。上記のモータ制御回路に近いものですが、PWM制御は不要なのでデジタル出力を使用しています。また、出力が小さくても良いのでモータドライバはTA7291Sを使っています。

PointControl

ソフトウェア配布

Arduinoスケッチ、制御ソフトウェア、回路図、ソースコードすべてセットです。Bluetooth通信用ではありますが、USB接続による有線通信でも使えます。

本ソフトウェアはMITライセンスのもとでリリースされています。
Copyright (c) 2015 Noname Kamisawa
Released under the MIT License
http://opensource.org/licenses/mit-license.php

GitHubにも置いてあります。