前回、UARTを汎用ポートで使用する設定方法を記載しました。今回は、pythonコードでUART経由でデータを送信する方法を紹介します。
Pythonコードの作成
Raspberry Piでtest.py等の名前でファイルを新規作成し、下記のコードを記載します。
---------------Pythonコード---------------
import serial
port = serial.Serial(
port = "/dev/ttyS0",
baudrate=115200,
parity = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS,
timeout = 3.0
)
port.write("Hello\r\n")
WindowsでTeratermを起動し、COMポート(ボーレート設定:115200)を選択して、Raspberry Pに接続します。その後、下記のコマンドを実行し、Raspberry Piで作成したPythonコードを実行します。
python test.py
Teraterm上にHelloと表示されれば、成功です。これでPythonコードからUART経由でテキストを送信することができるようになりました。また、同様の方法でUART接続で制御するセンサーデバイスにデータを送ることができます。
PythonコードからUART接続でデータを送信する方法ですが、予期せぬ箇所でハマり、時間を要しました。どこではまったかというとファイル名の名前の付け方です。
上記では、test.pyとファイル名を付けていますが、はじめはserial.pyとファイル名を付けていました。Pythonコードの一番はじめに "import serial"があり、serialという名前の標準モジュールをインポートしています。しかし、自作のpythonコードのファイル名もserialのため、名前が衝突し、importが正しくできませんでした。シリアル通信でのログ出力なので、serial.pyとファイル名を付けたくなることころですが、名前の衝突には注意しましょう。