Senden serielle Kommunikation vom Raspberry pi
Ich bin das senden von seriellen Daten aus einem Raspberry Pi, einem Arduino mit einem Python-Programm. Ich bin mit Python 2.7.3. Das Programm:
import serial
ser = serial.Serial('/dev/ttyACM0', 115200)
ser.write(b'\x4c\xff\x46')
Das problem ist, dass nichts scheint gesendet zu werden, indem Sie diese drei Zeilen, wenn Sie ausgeführt werden, ein Programm. Aber wenn ich Sie laufen Zeile für Zeile in eine Python-shell, Sie funktionieren.
Auch, wenn ich die Arduino Serial Monitor öffnen, das Programm arbeitet auch gut, ohne dass die Linien eine nach der anderen in die Schale.
BEARBEITET, UM HINZUFÜGEN:
Es scheint, dass es einige Verzögerung bei der übermittlung an das Arduino. Also bei mir läuft der code im interpretativen Modus, funktioniert es, aber wenn so ein Programm, gibt es nicht. Ich denke, dass, weil ich versucht, das gleiche Programm auf einer Windows-Maschine.
import serial
ser = serial.Serial('COM8', 115200)
ser.write(b'\x4c\x20\x46')
Wenn ich das Programm im interpretativen Modus, oder auch im debugging-Modus mit Haltepunkt auf der ser.- schreiben-Befehl, funktioniert es. Aber nicht, wenn als ein Programm ausgeführt.
BEARBEITET, UM HINZUFÜGEN MEHR:
Es stellt sich heraus, dass der Arduino hat eine auto-reset über die serielle Kommunikation, der muss deaktiviert werden:
http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection#.UwP_wfldV8E
http://forum.arduino.cc/index.php/topic,28723.0.html
Benutzte ich einen 220 uF Kondensator zwischen RESET-pin und Masse. Das funktioniert.
Hart gebissen zu werden von einem bug! Es noch smarts.
Ja, ich bin unter dem gleichen user auch in der gleichen shell. Wenn ich den line interpreter, es funktioniert. In derselben shell, wenn ich es als ein Programm, es funktioniert nicht, es sei denn, ich habe die Arduino Serial Monitor öffnen.
So mussten Sie zum hinzufügen von einem Kondensator zum senden von Daten erfolgreich von einem pi, einem arduino?
InformationsquelleAutor Daanii | 2014-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen. Wenn Sie nicht ausführen können es unter idle oder etc, versuchen Sie terminal durch die Eingabe von python name.py. Auch ich schlage vor, Sie überprüfen die Daten kommen oder schriftlich vom/zum Rpi mit putty, um sicher zu sein.
InformationsquelleAutor Caglar Sekmen