Ich verwende also ein Arduino mit einer Abschirmung, um einige Spannungswerte für ein EKG zu erhalten. Ich zeichne diese Daten dann in Python. Wenn ich jedoch die serielle Schnittstelle "beobachte", sei es über den seriellen Arduino-Monitor oder beim Versuch, die Zeitwerte (unter Verwendung von Millis ()) gegen das EKG (Spannung) zu zeichnen, werden die Werte zurückgesetzt, sodass Millis () die Null zurücksetzt ist in Ordnung, außer dass einige der älteren Werte noch angezeigt werden. Dies ist insbesondere in Python ein Problem, da dies bedeutet, dass der Plot zu Beginn des Skripts fehlerhaft funktioniert, weil einige der älteren Werte geplottet werden und nach einigen Sekunden zurückgesetzt wird und der Plot wieder normal aussieht. P. >
Um dies zu demonstrieren, habe ich es auf Video aufgenommen und auf YouTube eingestellt. Hier ist es:
https://www.youtube.com/watch?v=dNpUakcRPec
Nun dachte ich zunächst, das Problem liege bei Python oder dem Pyserial-Modul, also habe ich das Video als solches gekennzeichnet, aber da es auf dem seriellen Monitor auftritt, wurde mir klar, dass die Lösung in der Arduino-Skizze liegen würde. Ich habe versucht zu leeren, habe nicht funktioniert, ich habe sogar versucht, die Daten erst zu starten, wenn ich ein Startbyte gesendet habe, aber dies hat unter Python nicht funktioniert.
Idealerweise konnte ich das Python-Plotskript starten und es würde diese Anfangswerte von der seriellen Schnittstelle überspringen oder ignorieren, bevor es erneut beginnt.
Hier ist die Arduino-Skizze, die ich verwende:
#include <eHealth.h>unsigned long time; // Die Setup-Routine wird einmal ausgeführt, wenn Sie auf Reset drücken: void setup () {Serial.begin (9600); } // Die Schleifenroutine wird immer wieder ausgeführt: void loop () {float ECG = eHealth.getECG (); Zeit = Millis (); Serial.print (Zeit); Serial.print (""); Serial.print (EKG, 3); Serial.println (""); Verzögerung (50); // 50 Millisekunden warten}