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?

    Edited once, last by knuppel (February 9, 2014 at 5:08 PM).

  • > 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-

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!