Androidインターフェイス
NATOC android Nゲージ自動列車運転システムはNゲージ等の鉄道模型をスマートフォン等のandroid端末で自動制御するandroidアプリです。
このアプリを動かすにはレイアウト側にFlashAirまたはBluetoothインターフェイスと車両やポイントを制御するサーボモーターまたはリレー等が必要です。

車両の位置を検出するためにはカメラ(android端末)をスマートフォンホルダーや三脚などで固定する必要があります。
操作方法についてはアプリのヘルプ機能またはこちらを参照してください。
FlashAirインターフェイス
リレーを無線LANでコントロールするためにはFlashAirを使ったインターフェイスモジュールが必要です。
FlashAirのGPIO機能を使います。
この機能を使ってFlashAirの5つの端子のLowレベルとHighレベルを無線通信でコントロールできます。
NATOCではこれら端子にリレーを接続して車両の前進後進停止とポイントを2台制御する事ができます。
リレーは部品をボードにハンダ付けをして自作可能ですが配線するだけで使用できるものが市販されています。
4チャンネルのものを使えば車両とポイント1台を制御する事ができます。
ポイントを2台制御するには5チャンネル分のリレーが必要ですが市販されていないので8チャンネルのものが使用できます。

4チャンネルのリレーモジュールを使ってポイント車両と1台を制御する場合の結線図です。
リレーモジュールの入力端子には右からリレー電源(5V)、FlashAir DAT0、FlashAir DAT1、FlashAir DAT2、FlashAir DAT3、GNDを接続します。
リレーモジュールの出力端子にはリレー1と2のNO(オープン)にDC電源+、NC(クローズ)にDC電源-、COM(接点)に線路の電源、リレー3と4のNO(オープン)にTCS電源(12V)+、NC(クローズ)にTCS電源(12V)-、COM(接点)にポイントを接続します。
FlashAirのVDD(4)にFlashAir電源(3.3V)、FlashAirのVSS1(3)とVSS2(6)にGND(リレーモジュールGNDと共通)を接続します。
入力ピンには左からIN1にDAT0(7)、IN2にDAT1(8)、IN3にDAT2(9)、IN4にDAT3(1)を接続します。
5チャンネル以上のリレーモジュールを使ってポイント車両と2台を制御する場合の結線図です。
リレーモジュールの入力端子には右からリレー電源(5V)、FlashAir DAT0、FlashAir DAT1、FlashAir DAT2、FlashAir DAT3、FlashAir CMD、一番左の端子にGNDを接続します。
リレーモジュールの出力端子にはリレー1と2のNO(オープン)にDC電源+、NC(クローズ)にDC電源-、COM(接点)に線路の電源、リレー3と4のNO(オープン)にTCS電源(12V)+、NC(クローズ)にTCS電源(12V)-を接続します。
リレー3のCOM(接点)にはポイント1とポイント2の片方の配線をリレー4のCOM(接点)はリレー5のCOM(接点)と接続します。
リレー5のNO(オープン)にはポイント2のもう片方の配線、NC(クローズ)にはポイント1のもう片方の配線と接続します。
FlashAirのVDD(4)にFlashAir電源(3.3V)、FlashAirのVSS1(3)とVSS2(6)にGND(リレーモジュールGNDと共通)を接続します。
入力ピンには左からIN1にDAT0(7)、IN2にDAT1(8)、IN3にDAT2(9)、IN4にDAT3(1)、IN5にCMD(2)を接続します。
実際のFlashAirの接続に関してはこちらの記事を参照してください。
FlashAirの設定
FlashAirのGPIO機能を使うにはFlashAirのファームウェアのバージョンが2.00.03以上でなければいけません。
バージョンを確認するにはFlashAirを接続して「http://flashair/command.cgi?op=108」とURLを入力する事で確認できます。

バージョンがこれ以下の場合はファームウェアのバージョンアップしてください。
FlashAirによるリモート接続を行うにはFlashAirの設定が必要です。

FlashAirをパソコンに接続(通常のSDカードとして)してSD_WLANというフォルダーにあるCONFIGというファイルをメモ帳等で最後に「IFMODE=1」という行を追加してください。
これはSDインターフェイス端子を、汎用のI/O信号端子として利用し、信号の読み書きを行う機能を有効にするものです。
FlashAirの電源を入れるとAndroid端末と無線LANによる通信が可能になります。
Android端末のWi-Fi設定機能でFlashAirとの通信設定を行います。

Android端末がFlashAirを検出できると接続のためのパスワードを聞いてきます。
「12345678」を入力すると接続に成功する事ができます。

詳しいWi-Fi設定方法は各Android端末の説明書に従ってください。
またFlashAirの設定ファイルの書き換えに際しては必ずファイルのバックアップを取っておいてください。
Bluetoothインターフェイス
サーボモーターやArduinoをBluetoothでコントロールするためにはインターフェイスモジュールが必要です。
ランニングエレクトロニクスのSBDBT32というマイコン基板を使用します。
このマイコン基板はmicroSDカードスロットルが付いていて起動時にSDカードにファームウェアを書き込んでおくとそのファームウェアを読み込んで実行します。
一度読み込んだファームはフラッシュメモリに書き込まれるのでSDカードを抜いても大丈夫です。
このマイコン基板は5Vの電源で動くのでサーボモーターの電源と共通にできます。
またBluetoothアダプタとしてバッファローのBSBT4D09BKを使用しています。
このBluetoothアダプタの規格はBluetooth4.0ですがBluetooth3.0のアダプタも動作する事を確認しています。

SBDBT32の2番ピン(VDD,左赤色のリード線)と3番ピン(GND,左茶色のリード線)には外部から5Vの電源を供給しています。
7番ピン(TX,右橙色のリード線、コネクタを1ピン空けて接続しているので注意)のシリアル送信出力はサーボの信号線(端の赤のリード線)とコネクタで接続します。
サーボの電源(黒のリード線と真ん中の赤のリード線)はSBDBT32と同じ電源から供給します。
サーボが複数の場合は電源、信号線をそれぞれ分岐させて接続します。
Arduinoインタフェイスと接続する場合は7番ピン(TX)とArduinoの0番ピン(RX)を接続してください。
なおBluetoothインターフェイスからは送信のみとなるので受信(RX)への接続は必要ありません。
・ファームウェアのインストール
SBDBT32のファームウェアは何も設定されていないのでサーボ用のファームウェアを読み込む必要があります。
ファームウェアはSDカードのルート(フォルダーなしで直接)にimage.hexというファイル名で書き込んでおきます。
このファイルがあるとSBDBT32に電源を入れるとフラッシュメモリにファームウェアとして読み込まれます。
このファイルはWRITTEN.HEXというファイルにリネームされます。(このファイル消しても構いません)
まずこちらを開いてください。

リンクをクリックすると上のダイアログが表示されますので「開く」を選択します。(使用するブラウザにより操作方法が異なります)

パソコンに接続したmicroSDカードを開きます。

パソコンのドラッグアンドドロップ操作でファームウェアのファイルをmicroSDカードにコピーします。
microSDカードは使用中のものでもよく他のファイルやフォルダーがあっても構いません。
ファイルを書き込んだmicroSDカードはSBDBT32のmicroSDカードスロットルに差し込んでおきます。
SBDBT32に電源を入れるとSBDBT32の赤と橙色のLEDが激しく点滅してSDカードを読み込みます。
正常に読み込まれるとしばらくして橙色のLEDだけが点灯します。
またBSBT4D09BKなどのBluetoothアダプタは青のLEDが点滅します。
このファームウェアのソースファイルにはMatthias Ringwald氏のbtstackが含まれています。
またこのファームウェアを商用でご利用される場合は、ランニングエレクトロニクスの製品でご利用ください。
サーボモーターでレイアウトを制御する方法はサーボインタフェイスまたはArduinoインタフェイスを参照してください。
アプリケーションのダウンロード
本アプリケーションの最新版(Ver 1.5)はGoogle Play(Play ストア)よりインストールする事ができます。
「natoc」で検索するか下のQRコードをAndroid端末のコードリーダーで読み込ませてURLにジャンプ(検索ではなく)してください。

Android端末がGooglePlayをアクセスできない場合は弊社ホームページの下記のURLからダウンロードする事もできます。
http://www.kumagaya.or.jp/~mcc/android/natoc/natoc.apk
また下のQRコードをAndroid端末のコードリーダーで読み込ませてもダウンロードする事ができます。

ダウンロードしたアプリケーションはAndroid端末にインストールする事ができます。

GooglePlayからではなく弊社ホームページより直接インストールする場合はアプリケーションの設定画面で「提供元不明のアプリ」をチェックしておいてください。
その他インストールのやり方は各Android端末の説明書に従ってください。
またサウンド機能を使うには予めandroid端末に音声ファイルを入れておく必要があります。
android端末のSDカードにNATOCというフォルダーを作ってsoundというフォルダーの中にファイル名が1から始まるwavファイルで用意してください。
なおNATOCというフォルダーには作成したNATOCのプログラムファイルも保存しておきます。
サンプルの音声ファイルは以下のURLよりダウンロードする事ができます。
http://www.mcc3.mbsrv.net/natoc/natoc_sound.zip
NATOC androidの実行動画です。(Buletoothインタフェイスを使用)
上記のリンクをクリックするとYouTubeに接続します。
FlashAirインタフェイスを使った動画はこちらです。
目次に戻る