Vorstellung eines Gerätes zur Messung der Herzfrequenzvariablität und Auswertung

CIMG3962 1000 466x350 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

Arduino Pulsmonitor mit Excelauswertung (1)

CIMG3963 1000 466x350 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

Die Idee

Die Idee für dieses Projekt entstand nach der Teilnahme an einem Gesundheitsworkshop, auf dem ich erfuhr, dass aus der Asymmetrie des Herzschlags beim Ein- und Ausatmen (Respiratorische Sinusarrhythmie) auf den Stresslevel und die Erholungsfähigkeit geschlossen werden kann (Herzfrequenzvariabilität, Alles über …). Auf dem Markt  sind kommerzielle Produkte erhältlich (Stresspilot), haben aber auch ihren Preis, ein Selbstbau ist mit geringem Aufwand möglich und auch für den Hobbyelektroniker machbar. Die Recherche nach der Messbarkeit der Herzfrequenz führte mich über die Webseiten von Felix Opatz und  Embedded Lab, auf denen das Messprinzip erläutert wird und verschiedenen Versuchsaufbauten auf dem Steckbrett zu einer Schaltung als Kombination der Vorschläge der vorgenannten Webseiten.

Schaltungs- und Platinenentwicklung

Nach ersten Versuchen, den benötigten Sensor nach dem Verfahren der Pulsoxymetrie  diskret aus IR-LED und Fototransistor bzw. aus einer Gabellichtschranke aufzubauen, wurde aus Gründen der besseren Tragbarkeit doch auf ein kommerziell erhältliches Produkt zurückgegriffen (Cardio Ohrclip).

CIMG3941 1000 352x350 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

Pulsmesser auf dem Steckbrett

Die Schaltung wurde zunächst auf dem Steckbrett aufgebaut und optimiert. Die finale Schaltung wurde in Eagle erstellt und layoutet und auf einer doppelseitigen Leiterplatte als Shield für den Arduino realisiert. Die Platine wurde im Fotopositivverfahren belichtet und mit Natriumpersulfat in einer selbst gebauten Küvette geätzt. Eagle Layoutdaten stehen zum Download bereit.

CIMG3957 1000 500x345 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

PulsMon Shield auf einem Arduino Uno

Funktionsprinzip der Schaltung

blockschalt 500x157 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

Im verwendeteten Cardio Ohrclip befindet sich eine IR-LED und ein Fototransistor. Die IR-LED sollte ursprünglich mit einer Konstantstromquelle betrieben werden. Bei vermeintlich konstanter Spannungsversorgung über USB – wie hier aus dem Arduino – ist der Betrieb leider nur über einen Vorwiderstand (180R) auch ausreichend stabil. Die IR-LED wird damit bei 20mA betrieben. Das reflektierte Licht der LED wird mit dem Fototransistor detektiert, über den Kollektorwiderstand abgegriffen und zunächst über einen passiven Tiefpass (Fg=4,8Hz ) geleitet und mit einem Spannungsfolger gepuffert. Es folgen zwei Bandpässe bestehend jeweils aus passivem Hochpass und aktivem Tiefpass (Fg=0,72Hz-2,34Hz ) mit dazwischen geschalteter Abschwächung. Beide Verstärkerstufen haben eine Verstärkung von 46x. Ein Komparator mit Hysterese sorgt für eine Digitalisierung des Signals.  Das Signal wird auf einen Digitaleingang des Arduinos gelegt. Möglicherweise ist bei anderen Cardio Clips eine Anpassung des Arbeitspunktes und / oder der Verstärkung durchzuführen. Die Spannung am Kollektor des Fotowiderstands sollte etwa 1,6 – 2V betragen (Gleichlichtanteil). Das nutzbare Signal ist zwischen den Verstärkerstufen ca. 100mV-pp. Über den Trimmer wird die Verstärkung so eingestellt, dass die LED im Rhythmus des Herzschlags auf ihre maximale Helligkeit kommt. In den meisten Fällen reicht die Einstellung auf maximales Signal aus. Manchmal muss man ein wenig suchen, bis man die richtige Stelle am Ohrläppchen gefunden hat.

Gehäuse

Das Gehäuse wurde in Inkscape designt und in 3mm Pappel Sperrholz auf dem Lasercutter hergestellt. Download Inkscape Datei

Das Programm

Im Arduino Programm wird die Zeitspanne zwischen den fallenden Signalflanken gemessen und als Pulsrate und deren Mittelwert der letzten 10 Messungen auf dem LCD Display ausgegeben. Mit der Excel Tabelle im Programmpaket können die Daten grafisch dargestellt werden. Zusätzlich bietet die Tabelle Auswertungen im Sinne der HRV-Therapie. Die Kommunikation von Excel zum Arduino übernimmt  PLX-DAQ, das, je länger ich mich damit beschäftige immer mehr zu einem meiner Lieblingsprogramme wird.

ExcelDigramm 500x197 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

Excel Auswertung Pulsmessung (1)

ExcelSheetBPM 500x197 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

Excel Auswertung Pulsmessung (2)

Die Auswertung der Messungen ist mit Excel sehr gut möglich. Hier oder hier wird gezeigt, was mit einem kommerziellen Gerät auswertbar ist, in der Excel Tabelle ist ein Teil dieser Auswertungen realisiert. Das Arduino Programm hat verschiedene Möglichkeiten der Datenausgabe. Beispiele zur grafischen Darstellung werden im readme.txt des Arduino Programmpaketes beschrieben.

Da keine Interaktion mit dem Arduino Programm erfolgen muss, kann das Gerät an jedem Computer mit USB Anschluss betrieben werden. Lediglich der Treiber für die USB Schnittstelle des Arduino muss auf dem Rechner installiert werden. Das Programm erkennt automatisch, ob PLX-DAQ und Excel genutzt wird, alternativ können die Messwerte über ein Terminalprogramm (z.B. HTerm, CuteCom o.ä.) dargestellt werden.  Als weitere Software zur grafischen Darstellung der Daten ist auch StampPlot geeignet. Eine Lite-Version ist auch verfügbar. Für nicht kommerzielle Anwendung sind diese beiden Programme kostenlos.

StampPlotProScreen 500x214 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

Grafische Darstellung mit StampPlot Pro

StampPlotLiteScreen 453x350 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

StampPlot Lite

An zwei Punkten der Schaltung werden die analogen Spannungspegel abgegriffen und auf die AD-Wandlereingänge A0 und A1 des Arduino geführt. Damit sind Realtime-Messungen des Arbeitspunktes des Fototransistors und des Signals zwischen den beiden Verstärkerstufen mit dem Programm lxardoscope möglich. Das Arduino Programm hat dafür eine eingebaute Diagnose Routine. Die Aktivierung ist in der readme.txt beschrieben.

R LED 500x341 Ding des Monats 11/2012   Biofeedback mit Arduino | Dingfabrik Köln

Messung der analogen Signale an A0 und A1 mit lxardoscope

Fragen zum Gerät und zur Software beantwortet euch Reinhard.