Armadillo-640:pythonを動かす
で構築した環境で、pyserialでシリアル通信してみました。
1.pipコマンドのインストール
Armadillo-640をインターネットに接続できるネットワークに有線LANで接続します。
以下、Armadillo-640のコンソール上での操作になります。
Pythonパッケージを追加するためのpipをインストールします。
Python2の場合
root@armadillo:~# apt-get install python-pip
Python3の場合
root@armadillo:~# apt-get install python3-pip
2.pyserialの追加
pipでシリアル通信のパッケージ(pyserial)を追加します。
Python2の場合
root@armadillo:~# python2 -m pip install pyserial
Python3の場合
root@armadillo:~# python3 -m pip install pyserial
3.pyserialでシリアル通信(送信)
pyserialを使った簡単なプログラムで確認します。
Armadillo-640のRS232C(/dev/ttymxc2)で、文字列"hello"を送信します。
ボーレートは、115200の場合です。
(後述の説明上、このファイル名を"seriwrite.py"とします。)
Python2の場合
import serial ser = serial.Serial('/dev/ttymxc2', 115200) ser.write("hello") ser.close()
Python3の場合
import serial ser = serial.Serial('/dev/ttymxc2', 115200) data = "hello" ser.write(bytes(data, 'UTF-8')) ser.close()
上記で作成した"seriwrite.py"を
Python2の場合
root@armadillo:~# python seriwrite.py
Python3の場合
root@armadillo:~# python3 seriwrite.py
のようにpythonで実行すると、Armadillo-640のRS232C(/dev/ttymxc2)に"hello"という文字が送信されます。
4.pyserialでシリアル通信(受信)
pyserialを使った簡単なプログラムで確認します。
Armadillo-640のRS232C(/dev/ttymxc2)で、受信した文字列をコンソールに出力します。
ボーレートは、115200の場合です。
(後述の説明上、このファイル名を"seriread.py"とします。)
Python2/Python3共通
import serial ser = serial.Serial('/dev/ttymxc2', 115200, timeout=None) line = ser.readline() print(line) ser.close()
上記で作成した"seriread.py"を
Python2の場合
root@armadillo:~# python seriread.py
Python3の場合
root@armadillo:~# python3 seriread.py
のようにpythonで実行すると、Armadillo-640のRS232C(/dev/ttymxc2)で受信した文字列が表示されます。
注)readlineで読み込む場合、送信側の改行コードは'\n'である必要があります。
例えば、文字列"goodbye"を受信した場合、下記のように表示されます。
Python2の場合
goodbye
Python3の場合
b'goodbye\n'