Wenn Sie eine Zeichenkette seriell von Python an Arduino senden, wird sie meiner Meinung nach mit pyserial so geschrieben.
import serial
ser = serial.Serial()
ser.baudrate = 9600
ser.port = 2 # COM3->2,COM5->4
ser.open()
ser.write("Hello")
Da sich ser.port jedes Mal ändert, wenn Sie den USB-Anschluss anschließen oder trennen, überprüfen Sie den Anschluss mit der Arduino-IDE "ser.port =" / dev / tty.usbmodem1451 "" für Mac und COM3 für Windows " Es wird als ser.port = 2` geschrieben, ist jedoch problematisch, da es sich jedes Mal ändert, wenn es eingefügt oder entfernt wird. Daher wird auch eine solche Schreibmethode vorbereitet.
import serial
import serial.tools.list_ports
ser = serial.Serial()
ser.baudrate = 9600
ser.port = list(serial.tools.list_ports.comports())[0][0]
ser.open()
ser.write("Hello")
Dieser Schreibstil scheint je nach Umgebung fehlzuschlagen. Wenn Sie einen Mac verwenden, können Sie ihn finden, indem Sie unter / dev richtig suchen. Als ich diesen Schreibstil ausprobierte, funktionierte er einwandfrei.
ser = serial.Serial()
ser.baudrate = 9600
for file in os.listdir('/dev'):
if "tty.usbmodem" in file:
ser.port = '/dev/'+file
ser.open()
Im Fall von Windows wird es durch eine Nummer angegeben, sodass Sie es so schreiben können.
ser = serial.Serial()
ser.baudrate = 9600
for i in range(100):
try:
ser.port = i
ser.open()
break
except:
i = i
Recommended Posts