Lors de l'envoi d'une chaîne de caractères en série de Python à Arduino, je pense qu'elle sera écrite comme ça en utilisant pyserial.
import serial
ser = serial.Serial()
ser.baudrate = 9600
ser.port = 2 # COM3->2,COM5->4
ser.open()
ser.write("Hello")
Comme ser.port change à chaque fois que vous connectez ou déconnectez l'USB, vérifiez le port avec Arduino IDE, ser.port =" / dev / tty.usbmodem1451 "
pour Mac et COM3 pour Windows, Il est écrit comme ser.port = 2
, mais c'est gênant car il change à chaque fois qu'il est inséré ou supprimé, donc une telle méthode d'écriture est également préparée.
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")
Ce style d'écriture semble échouer en fonction de l'environnement, et si vous êtes sur un Mac, vous pouvez le trouver en recherchant correctement sous / dev, donc quand j'ai essayé ce style d'écriture, cela a bien fonctionné.
ser = serial.Serial()
ser.baudrate = 9600
for file in os.listdir('/dev'):
if "tty.usbmodem" in file:
ser.port = '/dev/'+file
ser.open()
Dans le cas de Windows, il est spécifié par un nombre, vous pouvez donc l'écrire comme ceci.
ser = serial.Serial()
ser.baudrate = 9600
for i in range(100):
try:
ser.port = i
ser.open()
break
except:
i = i
Recommended Posts