株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。新規開発案件のご依頼をお待ちしております。

*

無線マイコン ToCoStickのシリアル通信専用アプリを使ってみた

   

無線マイコンの 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専用プログラマ
この書き込みツールを起動すると以下のような画面になります。
0003

以下からアプリをダウンロードして解凍します。ここでは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を書き込みます。
書き込み中の状態
0004
書き込み完了の状態
0005

Windowsパソコンへの接続
ToCoStick自体は普通にPCのUSBに接続します。
tocowin
通信ソフトはここではTeraTermを使います。
シリアル通信で接続します。
0006
ボーレートを115200に変更します。
0007
Enterキーで以下のように表示されました。
0008
RaspberryPiへの接続
RaspberryPiでもWindowsPCと同様にToCoStickをUSBに接続します。
tocopi
まずはTeraTermでRaspberryPiにSSH接続します。(※もちろんモニタ、キーボードに接続していればそちらから操作します。)ここでターミナルソフトのCUを使います。もしインストールされていない場合は、以下で出来ます。
$ sudo apt-get install cu
ToCoStickがUSBに接続されている状態で以下のようにデバイスファイル名を確認します。ここではttyUSB0でした。
$ ls /dev/ttyUSB*
以下のようにCUを起動します。
$ cu -s 115200 -l /dev/ttyUSB0

Enterキーで以下のように表示されました。
0010

通信の確認
あとは双方から何か入力すれば相手側に送信されて表示されます。
Raspberry Pi側
0014

Cuから抜けるには、~.(チルダ ピリオド)を入力します。

Windows PC側
0013
モード変更
シリアル通信のモードにもいくつかの種類があってそれを切り替えることが出来ます。(※各モード詳細は以下を参照して下さい。)上記の通信確認のモードはデフォルトのチャットモードです。
App_Uart(シリアル通信アプリ)
ここでは、プロンプト無しチャットモードに変更してみます。

インタラクティブモードに入ります。ToCoStickに接続した状態で、+++ とゆっくりめに入力します。インタラクティブモードに入ります。ここで次にmを入力してモードを選択します。そこで、Dを入力します。以下の画面はWindows側です。0001

次にSでセーブします。そうするとプロンプト無しの状態になります。同様にRaspberry Pi側も設定します。双方がプロンプトが表示されていない状態で通信を確認します。

まず送信側の改行コードをCR+LFに設定します。TeraTermでは、メニュー => 設定 => 端末 の改行コードでCR+LFを選択します。これで送信側から何か入力します。そうすると受信側にプロンプトなしで表示されます。以下はRaspberry Pi側で受信した例です。
0003

プロンプト無しモードではこのように通信出来ました。

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のインタラクティブモードを使いました。
0004

以下のようになりました。
$ 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で受信してみます。送信と同様に以下のように出来ました。
0005

$ 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関連書籍です。


 - Raspberry Pi, 通信制御

AdSense

AdSense

  関連記事

無線マイコン ToCoStick(トコスティック)をRaspberry Piで使ってみた

無線マイコンの ToCoStick(トコスティック)をRaspberry Piで …

Raspberry PiでIoT(MQTTで遠隔操作編 その2)MQTT Brokerの構築とPythonでのpub/sub

Raspberry PiでIoT MQTTで遠隔操作編の2回目です。2台のRas …

Raspberry Pi 3でのコンソールケーブル利用と初期設定

Raspberry Pi 3 でコンソールケーブルを利用する方法と初期設定につい …

Raspberry PiでIoT(MQTTで遠隔操作編 その1)MQTTでの通信

Raspberry PiでIoTのMQTTで遠隔操作編のシリーズを始めます。実際 …

Raspberry PiでIoT(温度・湿度・気圧データ編 その2)Webサーバ側構築とデータ送信

Raspberry PiでIoT 温度・湿度・気圧データ編の2回目です。前回はR …

Raspberry PiでのNode.jsの導入(その2)Webサーバ的なプログラム

Raspberry PiでのNode.jsの導入の2回目です。前回はインストール …

Raspberry Pi 3でモニタとキーボードなしで設定する方法

Raspberry Pi 3でモニタとキーボードなしで設定する方法についてです。 …

Raspberry PiでIoT(温度・湿度・気圧データ編 その3)データ表示とグラフ表示

Raspberry PiでIoT 温度・湿度・気圧データ編の3回目です。前回まで …

無線マイコン ToCoStick(トコスティック)を使ってみた

無線マイコンの ToCoStick(トコスティック)を使ってみました。 前回のT …

Raspberry PiでC言語版Lチカを試す(その2)レジスタを操作する

Raspberry PiでC言語を使ったLEDの点灯、消灯(いわいるLチカ)を試 …