Inhaltsverzeichnis:

Cardio-Datenlogger - Gunook
Cardio-Datenlogger - Gunook

Video: Cardio-Datenlogger - Gunook

Video: Cardio-Datenlogger - Gunook
Video: HOW & WHY HEART RATE CHANGES WITH EXERCISE INTENSITY: Cardiovascular Responses in the Lab 2024, November
Anonim
Cardio-Datenlogger
Cardio-Datenlogger

Obwohl heutzutage viele tragbare Geräte (Smartbands, Smartwatches, Smartphones, …) verfügbar sind, die die Herzfrequenz (HF) erfassen und Spurenanalysen durchführen können, sind Brustgurt-basierte Systeme (wie das im oberen Teil des Bildes) immer noch vorhanden weit verbreitet und verwendet, aber es fehlt die Möglichkeit, die Messkurve aufzuzeichnen und zu exportieren.

In meinem vorherigen Instructable Cardiosim habe ich einen Brustgurtsimulator (Cardio) vorgestellt, der erklärt, dass einer meiner nächsten Schritte die Entwicklung eines Herzfrequenz-Datenloggers war. Ich bin jetzt bereit, es in diesem Instructable zu präsentieren. Die Funktion dieses tragbaren Geräts besteht darin, das Herzfrequenzsignal, das von einem Brustgurt (oder dem Cardiosim-Simulator) während einer Trainingseinheit (Training/Radfahren/Laufen, …) gesendet wird, zu empfangen und die Spur auf einer SD-Karte aufzuzeichnen, um Führen Sie eine Leistungsanalyse nach dem Training durch (siehe Details im letzten Kapitel).

Das Gerät wird von einem Akkusystem mit Ladeschaltung und DC-Boost-Regler gespeist.

Aus meinem "Lager" an ungenutztem Material habe ich ein passendes Plastikgehäuse (135mm x 45mm x 20mm) herausgefischt und das Layout der Schaltung so angepasst, dass es zusammenpasst, um einen funktionierenden Prototypen zu erstellen, der meine Bedürfnisse erfüllt (dessen Realisierung jedoch Raum lässt für Verbesserung:-))

Schritt 1: Kurzbeschreibung

Bitte beachten Sie Schritt 1 des Cardiosim Instructable für eine schnelle Einführung in die LFMC-Technologie (Low Frequency Magnetic Communication), die von dieser Art von Geräten verwendet wird.

Meine erste Absicht war, das Sparkfun RMCM01-Modul als Empfängerschnittstelle zu verwenden, aber dieses Produkt ist nicht mehr erhältlich (geschweige denn, dass es sowieso ziemlich teuer war).

Beim Durchsuchen des WEBs fand ich jedoch dieses interessante Tutorial, das einige alternative Lösungen zum Ersetzen des RMCM01 zeigt. Ich habe mich für die 3. Option ("Peter Borst Design", danke Peter!) entschieden und mit den gleichen L/C-Komponenten des Cardiosim ein hervorragendes Ergebnis erzielt, hier jedoch als Parallelresonanztank geschaltet. Das erkannte Signal wird verstärkt, "gereinigt", dekodiert und an einen Arduino Pro Mini Mikrocontroller weitergeleitet. Das Programm validiert die empfangenen Pulse, misst die Herzfrequenz (oder besser den Abstand zwischen zwei aufeinanderfolgenden Pulsen) und speichert alle gemessenen Intervalle in einer ASCII-Textdatei (eine Zeile pro gültigem Puls, je 16 Zeichen inkl. Intervall, Zeitstempel und LF/CR) auf der microSD-Karte. Bei einer durchschnittlichen HR von 80bpm benötigt eine Stunde Aufnahme nur (4800 Textzeilen x 16 Zeichen) = 76800 / 1024 = 75kBytes, daher bietet selbst eine günstige 1GB SD-Karte reichlich Aufnahmekapazität.

Während der Aufzeichnung können Sie Markierungslinien einfügen, um den Trace zu unterteilen und verschiedene Sitzungsphasen separat auszuwerten.

Schritt 2: LiPo-Netzteil - Schaltpläne, Teile & Montage

LiPo-Netzteil - Schaltpläne, Teile & Montage
LiPo-Netzteil - Schaltpläne, Teile & Montage
LiPo-Netzteil - Schaltpläne, Teile & Montage
LiPo-Netzteil - Schaltpläne, Teile & Montage

Das Netzteil nimmt den Boden des Gehäuses ein. Außer dem Trimmpotentiometer überschreitet kein Bauteil eine Höhe von 7 mm, was Platz bietet, um den HR-Empfänger und die Mikrocontroller-Schaltung über dem Netzteil zu montieren.

Ich habe folgende Teile verwendet:

  • 3,7 V LiPo-Akku (jeder Telefonakku kann recycelt werden, reduzierte Kapazität ist hier kein Problem)
  • USB TP4056 Lademodul, habe ich hier gekauft
  • SX1308 DC-Boost-Wandler, habe ich hier gekauft
  • Kleines Prototyping-Board 40 x 30 mm
  • Kabel mit JST-Stecker 2, 54mm 2-polig, wie dieses
  • (optional) JST-Stecker 2 mm 2-polig, wie dieser
  • (optional) Kabel mit JST-Stecker 2mm 2-polig, wie dieses

Die Verwendung der letzten beiden Elemente hängt von dem verwendeten Akku und der Art und Weise ab, wie Sie ihn an das Lademodul anschließen möchten. Ich empfehle den 2mm JST Stecker, da viele Batterien mit bereits angeschlossenem Kabel und 2mm Stecker geliefert werden, jede andere Lösung ist ausreichend, solange sie einen einfachen Austausch der Batterie bei Bedarf ermöglicht. Achten Sie in jedem Fall darauf, bei der Montage Kurzschlüsse zwischen den Batteriepolen zu vermeiden.

Das TP4056-Modul wird über einen Micro-USB-Anschluss mit Strom versorgt und ist zum Aufladen wiederaufladbarer Lithiumbatterien mit dem Konstantstrom-/Konstantspannungs-Ladeverfahren (CC/CV) ausgelegt. Neben dem sicheren Laden einer Lithium-Batterie bietet das Modul auch den notwendigen Schutz, der von Lithium-Batterien benötigt wird.

Der SX1308 ist ein hocheffizienter DC/DC Step Up Adjustable Converter, der die Ausgangsspannung bei einer minimalen Eingangsspannung von 3V konstant auf +5V hält und so die volle Ausnutzung der Batteriekapazität ermöglicht. Stellen Sie die Ausgangsspannung mit dem Trimpot auf +5V ein, bevor Sie die Mikrocontroller-Schaltung anschließen!

Der Gesamtverbrauch des Datenloggers beträgt ca. 20mA, somit ermöglicht selbst ein gebrauchter Akku mit einer Restkapazität von 200mAh (<20% der Anfangskapazität eines neuen Telefonakkus) 10 Stunden Aufzeichnung. Einziges Manko ist, dass der Ruhestrom des SX1308 ca. 2mA beträgt, man also besser die Batterie abklemmen sollte, wenn man den Datenlogger längere Zeit nicht benutzt.

Aufgrund der geringen Größe müssen beide Module sowohl für die elektrische als auch für die mechanische Verbindung mit der Prototyping-Platine mit den Verbindungslöchern durch kurze Kupferdrahtstücke befestigt werden. Das Board wiederum wird mit einer 3mm x 15mm Schraube am Boden des Gehäuses befestigt (die Länge reicht aus, um die Mikrocontrollerschaltung oben mit der gleichen Schraube zu befestigen). Die Platine beherbergt den JST 2mm-Anschluss für die Batterie (nur in der SMD-Version verfügbar, aber wenn Sie die Pins vertikal falten, können Sie sie in einer PTH-Version "drehen") und alle Verdrahtungen gemäß den Schaltplänen. Nur um sicher zu gehen, habe ich den Körper des Steckers auf die Platine geklebt, um eine gute mechanische Abdichtung zu erzielen.

Der Akku wird im restlichen Bereich des Gehäusebodens flach platziert, dahinter befindet sich eine zweite 3 mm x 15 mm Schraube mit einem 8 mm vertikalen Abstandshalter, um Kontakte zwischen der Oberseite des Akkus (die ohnehin isoliert ist) und der Unterseite des Gehäuses zu vermeiden oberen Kreislauf.

Schritt 3: HR-Empfänger und Datenlogger - Schaltpläne, Teile & Montage

HR-Empfänger und Datenlogger - Schaltpläne, Teile & Montage
HR-Empfänger und Datenlogger - Schaltpläne, Teile & Montage
HR-Empfänger und Datenlogger - Schaltpläne, Teile & Montage
HR-Empfänger und Datenlogger - Schaltpläne, Teile & Montage
HR-Empfänger und Datenlogger - Schaltpläne, Teile & Montage
HR-Empfänger und Datenlogger - Schaltpläne, Teile & Montage

Die Hauptplatine besteht aus:

  • Prototyping-Platine 40 mm x 120 mm
  • Induktivität 39mH, ich habe BOURNS RLB0913-393K. verwendet
  • 2 x Kondensator 22nF
  • Kondensator 4,7nF
  • Kondensator 47nF
  • Kondensator 39pF
  • Elektrolytkondensator 10uF/25V
  • Elektrolytkondensator 1uF/50V
  • 3 x Widerstand 10K
  • 2 x Widerstand 100K
  • 3 x Widerstand 1K
  • 4 x Widerstand 220R
  • Widerstand 1M
  • Widerstand 47K
  • Widerstand 22K
  • Trimpot 50K
  • Diode 1N4148
  • LED 3mm Blau
  • 2 x LED 3mm Grün
  • LED 3mm Gelb
  • LED 3mm Rot
  • Dualer rauscharmer JFET-Eingangs-Operationsverstärker TL072P
  • Hex invertierender Schmitt-Trigger 74HC14
  • JST-Anschluss 2,54 mm 2 Pin, wie dieser
  • 2 x Mikroschalter, Typ Alcoswitch
  • Mikrocontroller Arduino Pro Mini, 16MHz 5V
  • Micro SD Kartenmodul SPI 5V von DFRobots

Die Resonanzfrequenz des aus L1 und C1 zusammengesetzten Parallelresonanztanks beträgt etwa 5,4 kHz, was den 5,3 kHz des Magnetfeldträgers des übertragenen Signals nahe genug entspricht, um es in eine Spannung umzuwandeln. Denken Sie daran, dass der Träger in den meisten Fällen auf der Grundlage eines einfachen OOK-Formats (On-OFF Keying) moduliert wird, bei dem jeder Herzpuls den Träger für etwa 10 ms "EIN" schaltet. Das detektierte Signal ist sehr schwach (typischerweise eine 1mV Sinuswelle in einem Abstand von 60-80cm von der Quelle, vorausgesetzt die Achse der Induktivität ist richtig auf das Magnetfeld ausgerichtet), daher muss es sorgfältig verstärkt werden, um Interferenzen und Fälschungen zu vermeiden Erkennungen. Die vorgeschlagene Strecke ist das Ergebnis meiner besten Bemühungen und stundenlanger Tests unter verschiedenen Bedingungen. Wenn Sie daran interessiert sind, diesen Aspekt zu vertiefen – und vielleicht zu verbessern – schauen Sie sich den nächsten Schritt an, ansonsten können Sie ihn überspringen.

Die folgenden Schmitt-Trigger-Gatter führen die Digitalisierungs- und eine Spitzenwerterkennungsfunktion durch, die das ursprüngliche Modulationssignal wiederherstellen, das an den Arduino Pro Mini weitergeleitet wird.

Das Pro Mini Mikrocontroller Board ist perfekt für dieses Projekt, da der Quarz an Bord eine hohe Präzision der Messungen ermöglicht (die aus "medizinischer" Sicht unerlässlich sind, siehe letzter Schritt), und gleichzeitig frei von anderen ist nicht benötigtes Gerät, was zu einem geringen Stromverbrauch führt. Der einzige Nachteil ist, dass Sie zum Laden des Codes eine FTDI-Schnittstelle benötigen, um den Pro Mini an den USB-Anschluss Ihres Computers anzuschließen. Der Pro Mini ist verbunden mit:

  • Schalter S1: Aufnahme starten
  • Schalter S2: Marker einfügen
  • Blaue LED: blinkt, wenn ein gültiger Impuls erkannt wird
  • Grüne LED: Aufnahme gestartet
  • Gelbe LED: Marker eingefügt (kurzes Blinken) / Timeout (fest)
  • MicroSD-Kartenmodul (über SPI-Bus)

Im Gegensatz zu vielen SD-Kartenmodulen, die mit 3,3 V betrieben werden, arbeitet das DFRobot-Modul mit 5 V, sodass kein Pegelumsetzer erforderlich ist.

Was die Montage angeht, werden Sie vielleicht feststellen, dass ich die Prototyping-Platine in zwei Teile geteilt habe, die mit zwei kleinen "Brücken" aus starrem 1-mm-Kupferdraht verbunden sind. Dies war notwendig, um das MicroSD-Kartenmodul auf eine dritte "Konstruktionsebene" zu heben und an der Aussparung, die ich in das Gehäuse geschnitzt habe, direkt über dem Schlitz für den USB-Anschluss auszurichten. Außerdem habe ich drei Aussparungen auf der Platine selbst geschnitzt, eine für den Zugriff auf das Potentiometer des DC/DC-Wandlers, eine andere für den Zugriff auf den Anschluss des seriellen Busses des Arduino Pro Mini (mit der Vorderseite nach unten montiert) und die dritte für die Induktivität.

Schritt 4: HR-Empfänger - Gewürzsimulation

HR-Empfänger - Gewürzsimulation
HR-Empfänger - Gewürzsimulation

Ausgehend von dem bereits erwähnten Design von Peter Borst war es mein Ziel, den Erfassungsbereich so weit wie möglich zu erweitern und gleichzeitig die Empfindlichkeit gegenüber Störungen und der Erzeugung von Fehlimpulsen zu begrenzen.

Ich habe mich entschieden, die ursprüngliche Einzel-Op-Amp-Lösung zu ändern, da sie sich als zu empfindlich gegenüber Störungen erwiesen hat, wahrscheinlich weil der Wert des 10M-Rückkopplungswiderstands zu hoch ist, und die Gesamtverstärkung in zwei Stufen aufzuteilen.

Beide Stufen haben eine DC-Verstärkung G = 100, die um 70 bei 5,4 kHz abnimmt, jedoch mit unterschiedlicher Eingangsimpedanz, um die Empfindlichkeit zu optimieren.

Nehmen wir also an, dass die Spannung des schwächsten Signals, das vom LC-Tank erzeugt wird, 1 mV beträgt.

Wenn wir die gesamte Empfängerschaltung in einer Spice-Umgebung (ich verwende ADIsimPE) transponieren, die LC-Parallelschaltung durch einen Sinusgenerator mit derselben Spannung und Frequenz (5,4 kHz) ersetzen und die Simulation ausführen, stellen wir fest, dass die Ausgangsspannung V1 vom 1. Verstärker ist immer noch eine Sinuswelle (aufgrund des Skalierungsfaktors ist die Eingangssinuswelle nicht wahrnehmbar), ti der Verstärker arbeitet im linearen Bereich. Aber nach der zweiten Stufe zeigt die Ausgangsspannung V2, dass wir jetzt die Sättigung erreichen (Vhigh = Vcc-1,5V / Vlow = 1,5V). Tatsächlich ist die TL07x-Familie nicht für den Rail-to-Rail-Ausgangsbereich ausgelegt, aber dies reicht aus, um mit einem sicheren Spielraum beide Schwellenwerte des Schmitt-Trigger-Gates zu überschreiten und eine saubere Rechteckwelle (V3) zu erzeugen.

Schritt 5: Software

Software
Software

Aufgrund der hohen Verstärkung der Empfängerstufe und trotz der im Prinzip als Tiefpassfilter wirkenden Peak-Detektorstufe kann das Eingangssignal an Pin D3 des Arduino Pro Mini dennoch stark gestört werden und muss digital vorverarbeitet werden durch a Gültigkeitsprüfung gegen Fehlerkennungen. Der Code stellt sicher, dass zwei Bedingungen erfüllt sind, um einen Impuls als gültig zu betrachten:

  1. Der Impuls muss mindestens 5 ms dauern
  2. Das minimal akzeptable Intervall zwischen zwei aufeinanderfolgenden Pulsen beträgt 100 ms (entspricht 600 bpm, weit über der Grenze einer schweren Tachykardie!)

Sobald der Puls validiert ist, wird das Intervall (in ms) vom vorherigen gemessen und auf der SD-Karte in einer Datei "datalog.txt" gespeichert, zusammen mit einem Zeitstempel im Format hh:mm:ss, wobei 00:00: 00 steht für den Zeitpunkt des letzten Resets des Mikrocontrollers. Bei fehlender SD-Karte leuchtet die rote LED auf und zeigt den Fehler an.

Ein neuer Aufzeichnungs-Trace kann mit dem Start/Stop-Schalter S1 gestartet/gestoppt werden und wird durch eine „;Start“- bzw. „;Stop“-Markierungszeile am Anfang und am Ende der Textdatei gekennzeichnet.

Wird länger als 2400 ms (25 bpm) kein Impuls erkannt, wird eine Markierungszeile „;Timeout“in der Datei platziert und die gelbe LED D4 eingeschaltet.

Wird während der Aufnahme der Markerschalter S2 gedrückt, wird eine zusätzliche Markerzeile im Format ";MarkerNumber" mit automatischer Erhöhung der Markernummer beginnend bei 0 in die Datei geschrieben und die gelbe LED blinkt kurz.

Anbei den kompletten Arduino-Code.

Schritt 6: Ersteinrichtung und Test

Image
Image
Ersteinrichtung und Test
Ersteinrichtung und Test

Schritt 7: Verwendung - Medizinische Signalanalyse

Verwendung - Medizinische Signalanalyse
Verwendung - Medizinische Signalanalyse

Die Form des von mir verwendeten Gehäuses ist der eines Smartphones nahe genug, sodass Sie auf dem Markt viel Zubehör finden, um es zu tragen oder an einem Trainingsgerät zu befestigen. Speziell für das Fahrrad kann ich die universelle Smartphone-Halterung "Finn" der Firma Austrian Bike Citizens empfehlen. Günstig (€ 15,00) und einfach zu montieren, wirklich universell und wie auf dem Bild zu sehen auch perfekt für den Cardio Datenlogger

Die einfachste Möglichkeit, die vom Datenlogger aufgezeichneten Rohdaten zu verwenden, besteht darin, diese mit handelsüblichen PC-Programmen (z. B. Excel) grafisch darzustellen. Durch den Vergleich von Diagrammen, die bei der Wiederholung derselben Übung erhalten wurden, oder durch die Analyse der Korrelation zwischen HF-Variationen und körperlichen Anstrengungen, können Sie die Dosierung der Kräfte während der Aktivität optimieren.

Von größtem Interesse ist jedoch die Untersuchung der HR und insbesondere der HR-Variabilität (HRV) für medizinische Zwecke. Im Gegensatz zu einer EKG-Spur enthält die HF-Spur keine direkten Informationen über die Funktion des Herzmuskels. Seine Analyse aus statistischer Sicht ermöglicht jedoch, andere Informationen von klinischem Interesse zu erhalten.

Die umfassendste Wissensquelle über HRV ist das finnische Unternehmen KUBIOS. Auf ihrer Website finden Sie viele Informationen zu Biomedizinischen Signalen und können "KUBIOS HRV Standard" herunterladen, eine kostenlose Software zur Analyse der Herzfrequenzvariabilität für die nicht-kommerzielle Forschung und den persönlichen Gebrauch. Mit diesem Tool können Sie nicht nur Diagramme aus einer einfachen Textdatei zeichnen (Sie müssen die Zeitstempel entfernen), sondern auch statistische und mathematische Auswertungen (einschließlich FFT) durchführen und einen unglaublich detaillierten und wertvollen Bericht erstellen, wie der unten angehängte.

Denken Sie daran, dass nur ein spezialisierter Arzt in der Lage ist, zu entscheiden, welche Untersuchungen für die Sportpraxis auf jedem Niveau erforderlich sind, und deren Ergebnisse zu beurteilen.

Dieses Instructable wurde mit der alleinigen Absicht geschrieben, Interesse und Spaß an der Anwendung von Elektronik im Gesundheitswesen zu schaffen.

Ich hoffe es hat euch gefallen, Kommentare sind willkommen!