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

システム開発エンジニアの西田五郎が運営しております。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でセンサネットワーク稼働試験(基本編)構成・課題等

Raspberry Piでセンサネットワークを構築して実際に稼働してみます。基本編としてRaspberry Piにセンサを直接接続する構成です。その構成で安定して稼働させるにはどういった課題があるか書 …

温度センサADT7410(その1)i2C通信とは

温度センサのADT7410を使ってみます。ADT7410はアナログ・デバイセズ社の製品ですが、実際には以下の秋月さんのモジュールを使います。 ADT7410使用 高精度・高分解能 I2C・16Bit …

レーザーカッターでセンサーのケースを作ってみた

前回のセンサー(温湿度センサーBME280)のケースをレーザーカッターで作ってみました。もちろん3Dプリンターで作る方法もあると思いますが単純なボックス型ならレーザーカッターの方が加工時間が短いと思っ …

Raspberry Piをモニターとキーボードなしで導入する(その3)コンソールを使う

(※2017/02/19 最新の情報は以下です。) Raspberry Pi 3でのコンソールケーブル利用と初期設定 Raspberry Piをモニターとキーボードなしで導入するの3回目です。今回はコ …

Raspberry PiでAC100V(ソリッド・ステート・リレー)制御

Raspberry PiでAC100VのON/OFF制御を試してみました。今回そのために以下のソリッド・ステート・リレーキットを利用しました。この製品を選んだ理由としては「扱いが簡単」かなと思ったから …