J'ai cherché une alternative en ligne de commande à l'ouverture d'arduino.
J'ai d'abord trouvé la commande screen, qui permet d'écouter ce qui arrive sur le port série (entre autres) :
screen /dev/ttyACM0 57600.cs8
La commande suivante permet ensuite de fermer cette session
Ctrl + A + k
Une autre solution plus simple et de tapper la commande
stty -F /dev/ttyACM0 57600 cs8 cread clocal
J'ai finalement inclus cette commande dans mon script python, pas très beau et cross-platform, mais ça marche :
os.system("stty -F /dev/ttyACM0 57600 cs8 cread clocal")
J'ai le même problème de déconnection reconnection avec le joystick. Pygame qui utilise SDL 1.2 ne fait pas ça de base. Mais quelqu'un dit avoir trouvé une solution, mais sans l'expliquer... Rageant.
J'ai finalement trouvé la bonne alchimie, en faisant une reconnexion automatique si aucun mouvement du joystick n'a été envoyé dans les deux dernières secondes.
Le code python correspondant est là.
Le code arduino est là.
stty -F /dev/ttyACM0 57600 cs8 cread clocal
J'ai finalement inclus cette commande dans mon script python, pas très beau et cross-platform, mais ça marche :
os.system("stty -F /dev/ttyACM0 57600 cs8 cread clocal")
J'ai le même problème de déconnection reconnection avec le joystick. Pygame qui utilise SDL 1.2 ne fait pas ça de base. Mais quelqu'un dit avoir trouvé une solution, mais sans l'expliquer... Rageant.
J'ai finalement trouvé la bonne alchimie, en faisant une reconnexion automatique si aucun mouvement du joystick n'a été envoyé dans les deux dernières secondes.
Le code python correspondant est là.
Le code arduino est là.
Salut,
RépondreSupprimerJ'avais le même problème que toi et j'ai trouvé la solution ici
Il faut ouvrir le port avec un baudrate à 0, le fermer puis l'ouvrir à nouveau avec le bon baudrate.
Tu n'auras plus de problème de reconnexion après avoir retiré le câble.
Cordialement,
Rémi
Merci beaucoup pour ton conseil Rémi! Je vais tenter la manip.
SupprimerPour info ça marche bien. Je l'ai implémenté directement comme ça
Supprimerser = serial.Serial(device, baudrate=0)
ser.close()
ser = serial.Serial(device, baudrate=baudrate)