Arduino - Serial.readline() funktioniert nur in der Pythonkonsole

OP #3585051
Lesenswert?

Arduino - Serial.readline() funktioniert nur in der Pythonkonsole?!

wenn ich folgenden Code in die Pythonkonsole eingebe, kommt immer wie 
erwartet "Hello world" (welches mein Arduino schickt):

import serial

ser = serial.Serial('/dev/ttyACM0', 9600)
while 1 :
    ser.readline()


Wenn ich das ganze z.B. in Eclipse mit PyDev ausführe, kommt keine 
Ausgabe.
Das Programm startet und zeigt nichts an.
Woran liegt das?
Wie kann man das ändern?

Gruß Tristan
Gast #3585065
Lesenswert?

Tristan S. schrieb:
> Woran liegt das?
Vielleicht wird bei Eclipse der controller nicht resetet, so das du ewig 
auf dein "Hello World" warten kannst, aber niemals bekommen wirst, weils 
schon lange vorbei ist.

Tristan S. schrieb:
> Wie kann man das ändern?
Per Python den Controller zu einem Reset zwingen
Versuch mal:

ser = serial.Serial('/dev/ttyACM0', 9600)
ser.setDTR(false)
sleep(1) # warte eine Sekunde
ser.setDTR(true)
sleep(1) # warte eine Sekunde
while 1 :
   ser.readline()

Die sleeps sind damit der Bootloader auf dem Arduino durchlaufen kann.
Vielleicht musst du die beiden setDTR() auch tauschen, also erst true 
und dann auf false setzen. Musst du mal ausprobieren.


Aber abgesehen davon:
Tristan S. schrieb:
> import serial
>
> ser = serial.Serial('/dev/ttyACM0', 9600)
> while 1 :
>     ser.readline()
>
> Wenn ich das ganze z.B. in Eclipse mit PyDev ausführe, kommt keine
> Ausgabe.
Jo, du machst da ja auch nirgends eine Ausgabe! Ergo kannst du auch 
nichts sehen...

Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren