Python 3 pySerialライブラリをインポートしたので、シリアルコマンドでArduino Unoと通信できました。
Python 2.7では非常にうまく機能しましたが、Python 3ではエラーが発生し続けます。
TypeError:Unicode文字列はサポートされていません。バイトにエンコードしてください: 'allon'
Python 2.7で私が別のやり方でした唯一のことはraw_input
しかし、Python 3.で何が起こっているのかわからない
import serial, time
import tkinter
import os
def serialcmdw():
os.system('clear')
serialcmd = input("serial command: ")
ser.write (serialcmd)
serialcmdw()
ser = serial.Serial()
os.system('clear')
ser.port = "/dev/cu.usbmodem4321"
ser.baudrate = 9600
ser.open()
time.sleep(1)
serialcmdw()
シリアルに書き込むデータをエンコードします。この場合、「serialcmd」をバイトにエンコードします。次を試してください。
ser.write(serialcmd.encode())
「Arduino Python Serial」を学ぶためにあなたと同じ問題を見つけました
これを別の方法で行うことができます:
ser.write(str.encode('allon'))