Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbian 8.0(NOOBS Ver1.9.2)を使用して開発中。

【スポンサーリンク】

UARTの使い方(その2 Pythonコード編)

【スポンサーリンク】

前回、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とファイル名を付けたくなることころですが、名前の衝突には注意しましょう。