Python serial read und Arduino

  • Hallo,

    mit
    Serial.println(SensorValue);

    schreibe ich Werte auf die serielle Schnittstelle (USB).
    Mit Python würde ich die Daten gerne auslesen.
    Mit ser.readline()
    bekomme ich folgende Antwort:

    Code
    x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00346\r\n'

    Aber eigentlich interessiert mich nur der letzte Wert 346.
    Wie kann ich das aus dem Datensatz rauskürzen?

    Grüße

  • Dankeschön!

    Noch eine Frage.

    Im Moment sende ich nur einen Sensor Wert.
    Wie würde man es am besten machen, wenn man zwei oder mehr Werte auf einmal versendet?

    Einmal editiert, zuletzt von knuppel (9. Februar 2014 um 17:08)

  • > Wie würde man es am besten machen, wenn man zwei oder mehr Werte auf einmal versendet?
    Ein Trennzeichen zwischen die Werte setzen.

    Beliebte Zeichen dafuer sind ' ' ',' ';' '/' seltener sind '*' ':' '\t'.
    Einen Punkt wuerde ich nicht nehmen, weil Floatingpoint-Zahlen so dargestellt werden.

    - - - - -

    Wenn es ins Web weitergeleitet werden soll, kaemen auch JSON oder XML in Betracht

  • Woran könnte es lie
    gen, daß bei deinem Beispiel oben ab und zu Ziffern abgeschnitten werden? Anstatt 1023 kommt manchmal nichts, manchmal 023 und manchmal alles beim Raspberry an.

  • Tach ...
    ich denke, da stimmt was mit Deinen Schnittstellen-Parametern nicht.

    Versuch doch vielleicht mal minicom anstatt Deines Programms. Da kannst Du imho auch gut mitloggen.
    Ich kenn Python nicht, aber wenn ich in C die serielle Schnittstelle auslese und die Leseroutine gibt 0x00 zurück, dann heisst das nicht, dass er 0x00 empfangen hat sondern dass der Lesepuffer leer ist.

    cheers,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!