Arduinoインタフェイス


・Arduinoインタフェスボード

 Arduino用の拡張ボードを作成してNATOCのインタフェイスとします。
 標準インタフェイスと同様に1回路2接点のリレーを9個使用します。
 パーツとしては次のものが必要です。

  Arduino Uno
  基板用リレー 1回路2接点 / G5V-1 DC5V

 リレーは車両のコントロールに2個、ポイントひとつあたり2個で3機分であと転車台のON/OFFで計9個必要です。
 なお転車台の操作はサーボで行うため別途サーボモーターが必要ですがこのインターフェイスボードに接続できるように設計しました。
 後はプリント基板と配線材ですが、これもRBIO-2Uの接続ケーブルがそのまま使えるようにRBIO-2Uと同じコネクターを使用しています。
  EH-Aベース付ポスト トップ型03P9個
  ミニICB基板
  連結ヘッダーソケット 8P2個
  QIケーブル8P-8P2個

 arduinoとの接続は8P のQIケーブル2本で行っています。
 Nゲージとの接続はこちらをご覧ください。



 上の配線図はCN1(車両制御前進用)の出力を表しています。
 arduinoのGNDとarduinoの各出力ピンをリレーのコイルに配線します。
 リレーのコイルは極性がないのでリレーの2番ピンと9番ピンどちらでも構いません。
 コネクターのCOMをリレーの5番または6番に配線します。
 コネクターのNCをリレーの1番に配線します。
 コネクターのNOをリレーの10番に配線します。

 同様にCN2(車両制御後進用)も配線します。
 これを繰り返して9個分のリレーとコネクターを配線していきます。
 各コネクターとarduinoの出力ピンの関係は以下の通りです。
  CN1(車両制御前進用)-6番PIN
  CN2(車両制御後進用)-arduino7番PIN
  CN3(ポイント1直進用)-arduino8番PIN
  CN4(ポイント1分岐用)-arduino9番PIN
  CN5(ポイント2直進用)-arduino10番PIN
  CN6(ポイント2分岐用)-arduino11番PIN
  CN7(ポイント3直進用)-arduino12番PIN
  CN8(ポイント3分岐用)-arduino13番PIN
  CN9(転車台電源用)-arduino4番PIN

 arduinoの出力コネクターは2つに分かれていて右側(4,6,7)を車両制御用、左側(8〜13)をポイント用にしています。
 なおarduinoの3番と5番は後述のPWM用の出力としますので転車台電源のON/OFFは4番PINの出力を使っています。
 arduinoのNATOCインターフェイス用のスケッチはこのPIN番号で制御しますのでNATOCを使う時は上のPIN番号に従ってください。



 基板の実装写真です。  左側の青い部分はPWM用のモータドライバ―と上のリード線はサーボモーター用の信号線でこれらについては後で説明します。
 リレーが上の段の左からCN1,CN3,CN5,CN7で下の段がCN9,CN2,CN4,CN6,CN8でリレーの下がそれぞれのコネクタで左がNO、真ん中がCOM、右がNCです。
 基板の上がarduinoとの接続コネクターで左が1〜8番PIN、右が9〜13番PINとGNDと接続されます。(0番PINとAPREFは未使用)



 右の写真は左写真のCN1(ハイライト部分)の拡大写真です。
 ピンク地の番号がarduinoのピンで水色地の番号がリレーのピンで記号はコネクターの端子を表します。

 arduinoの6番とリレーの9番、リレーの5番とコネクターのCOMを配線します。
 リレーの2番は基板に張り巡らせたGND線の銅線にハンダ付けします。
 このGND線の一か所とarduinoのGND(右コネクターの右から2番目)を配線しておきます。
 リレーの1番とコネクターのNC、リレーの10番とコネクターのNOは配線でなくてハンダでつなげました。

 なおCOMと接続するリレーのピンは5番と6番どちらでも構わないのでそれぞれ配線しやすい方で構いません。
 またリレーのピンの2番と9番は逆でも構わないのでarduinoのコネクターのピンに近い方を接続します。
 同様に先述の各コネクターとarduinoのピンの関係を元にリレーとコネクターを9組全部実装します。



 Nゲージとの接続図です。  Nゲージとの接続の詳細はこちらをご覧ください。
 なおポイント用のバリスタ(過電圧吸収素子)はarduino版では要らないないようです。
 もしポイント切替時に誤動作するようでしたらバリスタを付けてみてください。

 なお今回はRBIO-2Uと互換性のあるボードを作製したためコネクター経由でしたが直接Nゲージのコネクターを基板に配線しても構いません。
 その場合は配線材を減らせるのでもっと材料費を抑える事ができます。

 今回電動ポイントとの接続はポイントの延長コードではなくヘッダーピンで自作しました。



 ヘッダーピンを2本分カッターで切り取り拡張インタフェイスのケーブルをハンダ付けします。
 延長コードだと+-が逆には接続できないようになっていますがどちらの方向でも接続できるので熱収縮チューブを分けてポイント側の+-のケーブルを間違わないようにしています。

 SL鉄道模型のレイアウトの場合、ポイント3は直進側で転車台方向に分岐する構造になっています。
 NATOCでは操作上、転車台に向かう方向を分岐側とします。
 市販の電磁式ポイントを使用する場合は、ポイント3のCN7とCN8を逆に接続してください。

 なおandroid版NATOCではポイント3および転車台はサポートされていません。


・PWM用のモータードライバー

 基板の余っている部分にPWM用のモータードライバーを実装します。



 右側に写っているのがモータードライバーのTA7291Pです。
 左下の黒いのが電源用のACアダプターのコネクターでその上が出力を用のコネクターで上が主電源用で下が転車台電源用です。
 転車台電源は主電源の出力をCN9のリレーで制御するように配線しています。



 TA7291Pの実装ですが1番PINをGND線の隣になるよう配置しています。
 この場合9番PINが下の段のGND線に触れるかも知れませんが9番はオープンなので触れても構いません。
 また7番PINはTA7291P自身の電源で前回はarduinoの5V端子と接続していましたが今回はこの端子はコネクターと接続していないので電源用のACアダプターの+端子と接続しました。
 TA7291Pの電源電圧範囲は4.5V〜20Vなのでこの範囲ならACアダプターから電源を取っても構わないと思います。



 一応参考のために基板裏側の写真ですが実装部品に合わせて配線してください。

 なお主電源にモータードライバー出力をする場合はCN1とCN2は不要となります。
 モータードライバーのみで行う場合はこれらの実装は行わなくても構いません。

 なおandroid版NATOCでは車両の速度制御はサポートされていません。


・サーボモーターとの接続

 転車台はリレー制御ができないのでサーボモーターでの制御となります。
 そのためサーボモーターを本拡張ボードに接続します。



 arduinoとの接続コネクターの2番とリード線を配線します。
 QIケーブル3S-3Pの片方の信号線(橙色)をカットしたものをarduinoの5VとGNDに差し込みます。
 カットした信号線と先ほど作製した基板のリード線とを結線します。(1Pのコネクターを使用しています)
 QIケーブルの片方をそのままサーボのソケットに差し込みます。
 サーボが複数の場合はそれぞれの線を分岐させます。



 ちなみに基板とヘッダーピンでこの様のなものを作って使用しています。

 なおandroid版NATOCでは転車台はサポートされていません。


・センサーの設置

 Arduinoのアナログ入力端子を使ってセンサーを接続します。
 TOMIXの
TCSワンタッチセンサー(型番5558)というのを使った例を紹介します。
 これはTOMIXの自動踏切や自動運転システムのセンサーと使用されるものでレールのDCフィーダの差し込み口に取付けられます。



 車両の車輪が上の金属部分に乗っかるとレールと通電して車両の通過を検知できる仕組みになっています。



 プラスチックの台座ごとレールの内側の接地部分に乗せるように設置します。



 センサーの出力端子の真ん中をのGNDに接続します。
 センサーの出力端子の両端をarduinoのA0(アナログ入力)に接続します。
 この入力端子に10kΩのプルアップ抵抗を接続します。
 プルアップ抵抗の先はarduinoの5V端子に接続します。
 2本のセンサーの出力端子は車両の進行方向別ですが今回は進行方向の検知は要らないのでどちらの進行方向でも検出できるように両方の出力をつないでおきます。

 センサーは全部で6ヶ所まで設置する事ができます。  同様の回路をA1〜A5に接続します。  なおプルアップ抵抗はセンサーの数分が必要となります。


・Arduinoのスケッチ

 NATOCではArduinoのスケッチ(プログラム)を提供しています。  次の方法でArduinoに転送してください。
 これらの作業はWindows PCを使って行います。
 プログラムの転送に先だってarduino関連のソフトウェアのインストール作業が必要です。
 またArduinoとWindows PCを接続するためにUSBケーブルが必要です。
 今回使うUSBケーブルはType-Bといってプリンタなどで良く使われる先が正方形のような形をしたケーブルです。



 Windows PCのソフトウェアのインストールは
こちらのサイトに分かりやすく書かれています。



 ArduinoのWindows PCプログラムのファイルメニュの開くコマンドを実行します。



 ArduinoのスケッチファイルはNATOCをインストールしたフォルダーの下のsample\arduino\natocとフォルダーにあります。
 natoc.inoというファイルを開いてください。。



 次に画面の転送アイコン(上の画面の白くなっている右矢印)をクリックしてプログラムを転送してください。
 転送に先立ってUSBケーブルが接続されている事を確認してください。
 一度転送したプログラムはarduinoからUSBケーブルを抜いても消えません。
 次にarduinoに電源を入れた時に自動的にプログラムは動き出します。

 NATOCを実行時にはNATOCと通信するためにUSBケーブルでPCに接続しておく必要があります。
 android端末から制御する場合はUSBケーブルを抜いて0番ピン(RX)とBluetoothインタフェイスの7番ピン(TX)と接続しておく必要があります。
 なおBluetoothインターフェイスからは受信のみとなるので送信(RX)への接続は必要ありません。

目次に戻る