結線
- TWE側 <-> PI側
- 28: VDD <-> 17: 3V3 (1: 3V3でもよい)
- 1: GND <-> 14: GND (9 とか 20 とかでもよい)
- 6: TX <-> 10: RX/GPIO15
- 7: RX <-> 8: TX/GPIO14

TWE 側: 参考 超簡単!標準アプリ(App_Twelite)

Raspberry Pi3 側: 参考 Raspberry PiのGPIOピンの配置図カード
Raspberry Pi 側の準備
デフォルトではシルアルコンソールが ON になっていて、TX/RX のラインを使っているので、そのままでは混線してしまう。それを避けるために、シリアルコンソールを OFF にする。
デスクトップのメニューから Raspberry Pi の設定を開いて、インターフェイスのタグの「シルアルコンソール」の項目が「有効」になっているのを「無効」にし、シリアルポートを「有効」にする。右下の OK を押して設定画面を閉じる。(再起動が必要かも?)
これで /dev/serial0
が使えるようになるはず。
pyserial のインストール
下記などを参考にして pyserial をインストールする。mac 用の記事だけど、raspberry pi でもほぼ同様にインストールできる(多分)。
- [https://qiita.com/mml/items/ccc66ecc46d8299b3346](python3 でバイナリデータをシリアル通信で送受信する (mac で))
プログラム
受信だけなら下記のような感じでいける。(TWE-LITE 側の通信速度が 115200 bps の場合)。通信速度などの設定を変更したければ、コメントアウトしている部分を適切に書きかえる。
.py
ser = serial.Serial(
port = "/dev/serial0",
baudrate = 115200,
#parity = serial.PARITY_NONE,
#bytesize = serial.EIGHTBITS,
#stopbits = serial.STOPBITS_ONE,
#timeout = None,
#xonxoff = 0,
#rtscts = 0,
)
while True:
if ser.in_waiting > 0:
recv_data = ser.read(1)
print(type(recv_data))
a = struct.unpack_from("B",recv_data ,0)
print( a )