無線マイコンの ToCoStick(トコスティック)のシリアル通信専用アプリを使ってみました。ToCoStickとはパソコン等のUSBに接続して無線通信が出来るモジュールです。メーカの製品ページは以下です。
ToCoStick(トコスティック)
(どうやらToCoStickと関連する無線モジュールTWE-Liteファミリーのための新会社であるモノワイヤレス株式会社さんが設立されて2015年10月から営業開始したようです。)
私のサイトではToCoStickについて今まで以下の記事を書きました。
無線マイコン ToCoStick(トコスティック)を使ってみた
無線マイコン ToCoStick(トコスティック)をRaspberry Piで使ってみた
無線マイコン ToCoStick(トコスティック)をAndroidで使ってみた
今回はまだ試していなかった「シリアル通信専用アプリ」というアプリを使ってみました。
ToCoStickをはじめとするTWE-Liteファミリーにはアプリケーションソフトウェアが用意されていて、初期状態では「超簡単!TWEアプリ」というアプリがインストールされています。今までの記事ではこの初期状態のアプリのみを使っていました。
「シリアル通信専用アプリ」は別に用意されているアプリの一つです。メーカのページによると、「UARTシリアル通信に特化したアプリです。」「パソコンやマイコンにUARTシリアル接続をしてTWEシリーズを制御する場合に最適なアプリです。」とあります。(より詳細は以下のリンクを参照して下さい。)私の印象ですが、書籍等でTWE-Liteファミリーの応用的な内容での記事では、この「シリアル通信専用アプリ」がよく利用されているような気がします。
TWE-Zeroアプリ
ここでは基本的なことですが、ToCoStick2本とWindowsパソコン、Raspberry Piで以下のような内容をやってみました。
・Windowsパソコンから2本のToCoStickへアプリの書き込み
・WindowsパソコンとRaspberry PiにToCoStickを接続してターミナルソフトでの通信
・モードを変更してのターミナルソフトでの通信
・Raspberry Pi側からPythonでの通信の確認
順番に書きます。
ToCoStickへアプリの書き込み
以下のページからTWE-Lite専用プログラマ(書き込みツール)をダウンロードしてインストールします。
TWE-Lite専用プログラマ
この書き込みツールを起動すると以下のような画面になります。
以下からアプリをダウンロードして解凍します。ここではv1.2.10 リリース版をダウンロードしました。binファイルが2個ありますが、ページによると「※ JN5164 用を書き込みます」とありますので、App_Uart_Master_JN5164_1_2_10.binを書き込みます。
App_Uart(シリアル通信アプリ)
ToCoStickへの書き込み
書き込みツールで2本のToCoStickへApp_Uart_Master_JN5164_1_2_10.binを書き込みます。
書き込み中の状態
書き込み完了の状態
Windowsパソコンへの接続
ToCoStick自体は普通にPCのUSBに接続します。
通信ソフトはここではTeraTermを使います。
シリアル通信で接続します。
ボーレートを115200に変更します。
Enterキーで以下のように表示されました。
RaspberryPiへの接続
RaspberryPiでもWindowsPCと同様にToCoStickをUSBに接続します。
まずはTeraTermでRaspberryPiにSSH接続します。(※もちろんモニタ、キーボードに接続していればそちらから操作します。)ここでターミナルソフトのCUを使います。もしインストールされていない場合は、以下で出来ます。
$ sudo apt-get install cu
ToCoStickがUSBに接続されている状態で以下のようにデバイスファイル名を確認します。ここではttyUSB0でした。
$ ls /dev/ttyUSB*
以下のようにCUを起動します。
$ cu -s 115200 -l /dev/ttyUSB0
通信の確認
あとは双方から何か入力すれば相手側に送信されて表示されます。
Raspberry Pi側
Cuから抜けるには、~.(チルダ ピリオド)を入力します。
Windows PC側
モード変更
シリアル通信のモードにもいくつかの種類があってそれを切り替えることが出来ます。(※各モード詳細は以下を参照して下さい。)上記の通信確認のモードはデフォルトのチャットモードです。
App_Uart(シリアル通信アプリ)
ここでは、プロンプト無しチャットモードに変更してみます。
インタラクティブモードに入ります。ToCoStickに接続した状態で、+++ とゆっくりめに入力します。インタラクティブモードに入ります。ここで次にmを入力してモードを選択します。そこで、Dを入力します。以下の画面はWindows側です。
次にSでセーブします。そうするとプロンプト無しの状態になります。同様にRaspberry Pi側も設定します。双方がプロンプトが表示されていない状態で通信を確認します。
まず送信側の改行コードをCR+LFに設定します。TeraTermでは、メニュー => 設定 => 端末 の改行コードでCR+LFを選択します。これで送信側から何か入力します。そうすると受信側にプロンプトなしで表示されます。以下はRaspberry Pi側で受信した例です。
プロンプト無しモードではこのように通信出来ました。
Pythonからの送信
次にRaspberry Pi側からPythonで送信してみます。前項のプロンプト無しモードの設定のままです。以下のようにやってみました。
既にインストールされていれば必要ないですが、pySerialをインストールします。
パッケージマネージャのpipをインストールします。
$ sudo curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python
pySerialをインストールします。
$ pip install pyserial
ここでは以下のようにpythonのインタラクティブモードを使いました。
以下のようになりました。
$ python
Python 2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import serial
>>> ser = serial.Serial(‘/dev/ttyUSB0’, 115200)
>>> ser.write(“hello\n\r”)
7
>>> ser.close()
>>> quit()
Windows側で、確かに、hello が確認出来ました。
pythonでの受信
次はRaspberry Pi側でpythonで受信してみます。送信と同様に以下のように出来ました。
$ python
Python 2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import serial
>>> ser = serial.Serial(‘/dev/ttyUSB0’, 115200, timeout=5)
>>> line = ser.readline()
>>> print line
Hello Raspi
>>> ser.close()
>>> quit()
line = ser.readline()の前にWindows側から送信しました。送信データの1行分が受信出来ました。
以上で、シリアル通信専用アプリの基本的な動作確認が出来たかなと思うので、今回はここまでとします。また応用的な内容等が書けたら公開します。
以下はAmazon関連書籍です。