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

システム開発エンジニアの西田五郎が運営しております。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, 通信制御

執筆者:

関連記事

温度センサADT7410(その2)Arduinoでの利用

温度センサADT7410の2回目です。前回はI2C通信の簡単な概要とADT7410モジュールをRaspbery Piに接続してアドレスの確認まで行いました。今回はArduinoでADT7410を使って …

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

Raspberry Pi 3 でコンソールケーブルを利用する方法と初期設定についてです。 以下のページ等で今までこのテーマについて書きました。 Raspberry Piをモニターとキーボードなしで導入 …

Raspberry PiでIoT(温度・湿度・気圧データ編 その1)BME280でデータ取得

Raspberry PiでIoTに取り組んでみるという内容で実際に動作させながら書きたいと思います。まずは、IoTとは、Internet of Thingsの略です。もう既にこの言葉も普及していて様々 …

Raspberry PiでIoT(MQTTで遠隔操作編 その4)Raspberry PiのGPIOとHeroku連動Pub編

Raspberry PiでIoT MQTTで遠隔操作編の4回目です。2台のRaspberry Piでインターネット経由でGPIOを操作するというテーマで書いています。 前回はMQTTのSub側となるR …

Raspberry Piをモニターとキーボードなしで導入する(2021年5月版 その3)リモートデスクトップの導入から初期設定まで

今現在(2021年5月)の方法でRaspberry Piをヘッドレス(モニターとキーボードなしの状態)で導入する方法について書いています。前回まででSSH経由でログインするところまで書きました。今回で …