Senden der seriellen Kommunikation von Raspberry pi

Ich sende mit einem Python-Programm serielle Daten von einem Raspberry Pi an einen Arduino. Ich verwende Python 2.7.3. Das Programm ist:

import serial

ser = serial.Serial('/dev/ttyACM0', 115200)

ser.write(b'\x4c\xff\x46')

Das Problem ist, dass von diesen drei Zeilen scheinbar nichts gesendet wird, wenn sie in einem Programm ausgeführt werden. Aber wenn ich sie Zeile für Zeile in einer Python-Shell laufen lasse, funktionieren sie einwandfrei.

Wenn ich den Arduino Serial Monitor geöffnet habe, funktioniert das Programm auch einwandfrei, ohne die Zeilen einzeln in der Shell auszuführen.

BEARBEITET ZUM HINZUFÜGEN:

Es scheint, dass es eine gewisse Verzögerung beim Senden an das Arduino gibt. Wenn ich den Code im Interpretationsmodus ausführe, funktioniert er, aber als Programm nicht. Ich denke das, weil ich das gleiche Programm auf einem Windows-Rechner ausprobiert habe.

import serial

ser = serial.Serial('COM8', 115200)

ser.write(b'\x4c\x20\x46')

Wenn ich das Programm im Interpretationsmodus oder sogar im Debugging-Modus mit einem Haltepunkt im Befehl ser.write ausführe, funktioniert es. Aber nicht, wenn es als Programm ausgeführt wird.

BEARBEITET, UM MEHR HINZUFÜGEN:

Es stellt sich heraus, dass der Arduino eine automatische Rücksetzung der seriellen Kommunikation hat, die deaktiviert werden muss:

http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection#.UwP_wfldV8E

http://forum.arduino.cc/index.php/topic,28723.0.html

Ich habe einen 220-uF-Kondensator zwischen dem RESET-Pin und Masse verwendet. Das funktioniert.

Schwer von so einem Käfer gebissen zu werden! Es ist immer noch klug.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage