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

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

Raspberry Pi 通信制御

無線マイコン 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関連書籍です。


AdSense

AdSense

-Raspberry Pi, 通信制御

執筆者:

関連記事

Raspberry PiのSDカードをSD Card Copierで別のSDカードへバックアップする方法

Raspberry Piの起動中のSDカードをSD Card Copierで別のSDカードへバックアップする方法についてです。この方法を使うと作業中のRaspberry Piの環境をそのまま別のSDカ …

Raspberry Piでタッチアプリ開発(その2)Kivyの導入と動作確認

Raspberry Piでタッチアプリ開発の2回目です。前回はハードウェア構成や開発環境等の概要的なことを書きました。今回から具体的な内容ですが、まずpythonのNUIライブラリのKivyの導入につ …

Raspberry Piの電源管理拡張ボード Ras p-On

Raspberry Piの電源管理の拡張ボードを使ってみました。Ras p-Onという製品です。 電源管理の必要性 製品のページを見て頂ければ詳細に書かれていますが、Raspberry Piには電源ス …

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

Raspberry Pi 3でモニタとキーボードなしで設定する方法についてです。 以下のような条件ごとに方法を確認しました。あちらこちらで書いてしまったのでここで整理させてください。当然環境によって違 …

Arduino Ethernetシールド(旧製品)を使ってみた

Arduino Ethernetシールド(旧製品)を使ってみました。Arduinoと接続した状態が以下です。おそらく2~3年前ぐらいに買ったものだと思います。どうも自宅以外で有線LANが気軽に使える場 …