Inhoudsopgave:

Cardio Datalogger - Ajarnpa
Cardio Datalogger - Ajarnpa

Video: Cardio Datalogger - Ajarnpa

Video: Cardio Datalogger - Ajarnpa
Video: Welcome to Secure Cardio: Cardiac Telemetry Services 2024, November
Anonim
Cardio-datalogger
Cardio-datalogger

Hoewel er tegenwoordig veel draagbare apparaten (smartbands, smartwatches, smartphones, …) beschikbaar zijn die de hartslag (HR) kunnen detecteren en sporenanalyse kunnen uitvoeren, zijn op borstriem gebaseerde systemen (zoals die in het bovenste deel van de afbeelding) nog steeds wijdverbreid en gebruikt, maar ontbreekt de mogelijkheid om het spoor van de metingen vast te leggen en te exporteren.

In mijn vorige Instructable Cardiosim heb ik een borstbandriem (Cardio) -simulator gepresenteerd waarin ik uitlegde dat een van mijn volgende stappen het ontwikkelen van een hartslagdatalogger was. Ik ben nu klaar om het te presenteren in deze Instructable. De functie van dit draagbare apparaat is om het HR-signaal te ontvangen dat wordt verzonden door een borstband (of de Cardiosim-simulator) tijdens een trainingssessie (workout/fietsen/hardlopen, …) en om het spoor op een SD-kaart op te slaan om een prestatieanalyse na de training uitvoeren (zie details in het laatste hoofdstuk).

Het apparaat wordt aangedreven door een oplaadbaar batterijsysteem, inclusief laadcircuit en DC-boostregelaar.

Uit mijn "magazijn" van ongebruikt materiaal viste ik een geschikte plastic behuizing (135 mm x 45 mm x 20 mm) en paste de lay-out van het circuit aan om in elkaar te passen, waardoor een werkend prototype werd gemaakt dat aan mijn behoeften voldoet (maar waarvan de realisatie ruimte laat voor verbetering:-))

Stap 1: Korte beschrijving

Raadpleeg stap 1 van de Cardiosim Instructable voor een korte introductie over de LFMC-technologie (Low Frequency Magnetic Communication) die door dit soort apparaten wordt gebruikt.

Mijn eerste bedoeling was om de Sparkfun RMCM01 module als ontvanger interface te gebruiken, maar dit product is niet meer verkrijgbaar (laat staan dat het sowieso vrij duur was).

Toen ik echter op het WEB keek, vond ik deze interessante tutorial, die enkele alternatieve oplossingen toont om de RMCM01 te vervangen. Ik koos voor de 3e optie ("Peter Borst Design", bedankt Peter!), en behaalde een uitstekend resultaat met dezelfde L/C-componenten van de Cardiosim, hier echter aangesloten als parallelle resonantietank. Het gedetecteerde signaal wordt versterkt, "geschoond", gedecodeerd en doorgestuurd naar een Arduino Pro Mini-microcontroller. Het programma valideert de ontvangen pulsen, meet de hartslag (of beter het interval tussen twee opeenvolgende pulsen) en slaat alle gemeten intervallen op in een ASCII-tekstbestand (één regel per geldige puls, elk 16 tekens inclusief interval, tijdstempel en LF/CR) op de microSD-kaart. Uitgaande van een gemiddelde HR van 80 bpm, heeft een opname van een uur slechts nodig (4800 tekstregels x 16 tekens) = 76800 / 1024 = 75 kBytes, dus zelfs een goedkope SD-kaart van 1 GB biedt voldoende opnamecapaciteit.

Tijdens de opname kunt u markeringslijnen invoegen om het spoor te verdelen en verschillende sessiefasen afzonderlijk te evalueren.

Stap 2: LiPo-voeding - Schema's, onderdelen en montage

LiPo-voeding - schema's, onderdelen en montage
LiPo-voeding - schema's, onderdelen en montage
LiPo-voeding - schema's, onderdelen en montage
LiPo-voeding - schema's, onderdelen en montage

De voeding neemt de onderkant van de behuizing in beslag. Behalve de trimpot is geen enkel onderdeel hoger dan 7 mm, wat ruimte geeft om de HR-ontvanger en het microcontrollercircuit boven de voeding te monteren.

Ik heb de volgende onderdelen gebruikt:

  • 3.7V LiPo-batterij (elke telefoonbatterij kan worden gerecycled, verminderde capaciteit is hier geen probleem)
  • USB TP4056 oplaadmodule, ik heb hem hier gekocht
  • SX1308 DC-boost-converter, ik heb hem hier gekocht
  • Klein prototypebord 40 x 30 mm
  • Kabel met JST-connector 2, 54 mm 2-pins, zoals deze
  • (optioneel) JST-connector 2 mm 2-pins, zoals deze
  • (optioneel) Kabel met JST-connector 2 mm 2-pins, zoals deze

Het gebruik van de laatste twee items hangt af van de batterij die u gaat gebruiken en de manier waarop u deze op de oplaadmodule wilt aansluiten. Ik raad de 2 mm JST-connector aan omdat veel batterijen worden geleverd met een reeds aangesloten kabel en een 2 mm-stekker, elke andere oplossing is voldoende, zolang het een gemakkelijke vervanging van de batterij mogelijk maakt indien nodig. Zorg er in ieder geval voor dat tijdens de montage kortsluiting tussen de accupolen wordt vermeden.

De TP4056-module wordt gevoed via een micro-USB-poort en is ontworpen voor het opladen van oplaadbare lithiumbatterijen met behulp van de laadmethode met constante stroom/constante spanning (CC/CV). Naast het veilig opladen van een lithiumbatterij biedt de module ook de nodige bescherming die vereist is voor lithiumbatterijen.

De SX1308 is een zeer efficiënte DC/DC Step Up Adjustable Converter die de uitgangsspanning constant houdt op +5V met een minimale ingangsspanning van 3V, waardoor de volledige benutting van de batterijcapaciteit mogelijk wordt. Stel de uitgangsspanning in met de trimpot op +5V voordat u het microcontrollercircuit aansluit!

Het totale verbruik van de Data Logger is ongeveer 20 mA, dus zelfs een gebruikte batterij met een restcapaciteit van 200 mAh (< 20% van de initiële capaciteit van een nieuwe telefoonbatterij) zal 10 uur opnemen mogelijk maken. Het enige nadeel is dat de ruststroom van de SX1308 rond de 2mA ligt, dus je kunt beter de accu loskoppelen als je de Data Logger langere tijd niet gebruikt.

Vanwege het kleine formaat moeten beide modules worden bevestigd met behulp van de verbindingsgaten, zowel voor elektrische als mechanische verbinding met het prototypebord, door korte stukjes koperdraad. Op zijn beurt wordt het bord aan de onderkant van de behuizing bevestigd met een schroef van 3 mm x 15 mm (de lengte is voldoende om het bovenstaande microcontrollercircuit met dezelfde schroef te bevestigen). Het bord herbergt de JST 2 mm-connector voor de batterij (alleen beschikbaar in SMD-versie, maar door de pinnen verticaal te vouwen, kunt u deze in een PTH-versie "draaien") en alle bedrading volgens het schema. Voor de zekerheid heb ik het lichaam van de connector op het bord gelijmd om een goede mechanische afdichting te krijgen.

De batterij is plat in het resterende gedeelte van de onderkant van de behuizing geplaatst en daarachter bevindt zich een tweede schroef van 3 mm x 15 mm met een verticaal afstandsstuk van 8 mm om contacten tussen de bovenkant van de batterij (die sowieso is geïsoleerd) en de onderkant van de batterij te voorkomen bovenste kring.

Stap 3: HR-ontvanger en datalogger - schema's, onderdelen en montage

HR-ontvanger en datalogger - schema's, onderdelen en assemblage
HR-ontvanger en datalogger - schema's, onderdelen en assemblage
HR-ontvanger en datalogger - schema's, onderdelen en montage
HR-ontvanger en datalogger - schema's, onderdelen en montage
HR-ontvanger en datalogger - schema's, onderdelen en montage
HR-ontvanger en datalogger - schema's, onderdelen en montage

Het hoofdbord bestaat uit:

  • Prototypingbord 40 mm x 120 mm
  • Inductantie 39 mH, ik gebruikte BOURNS RLB0913-393K
  • 2 x condensator 22nF
  • Condensator 4.7nF
  • Condensator 47nF
  • Condensator 39pF
  • Elektrolytische condensator 10uF/25V
  • Elektrolytische condensator 1uF/50V
  • 3 x Weerstand 10K
  • 2 x Weerstand 100K
  • 3 x Weerstand 1K
  • 4 x weerstand 220R
  • Weerstand 1M
  • Weerstand 47K
  • Weerstand 22K
  • Trimpot 50K
  • Diode 1N4148
  • LED 3mm Blauw
  • 2 x LED 3mm Groen
  • LED 3mm Geel
  • LED 3mm Rood
  • Dual low-noise JFET-ingang operationele versterkers TL072P
  • Hex inverterende Schmitt-trigger 74HC14
  • JST-connector 2,54 mm 2-pins, zoals deze
  • 2 x microschakelaars, Alcoswitch type
  • Microcontroller Arduino Pro Mini, 16MHz 5V
  • Micro SD-kaartmodule SPI 5V van DFRobots

De resonantiefrequentie van de parallelle resonantietank samengesteld door L1 en C1 is ongeveer 5,4 kHz, wat dicht genoeg overeenkomt met de 5,3 kHz van de magnetische velddrager van het uitgezonden signaal om het in een spanning om te zetten. Onthoud dat in de meeste gevallen de draaggolf wordt gemoduleerd op basis van een eenvoudig OOK-formaat (On-OFF Keying), waarbij elke hartpuls de draaggolf ongeveer 10 ms "AAN" schakelt. Het gedetecteerde signaal is erg zwak (meestal een sinusgolf van 1 mV op een afstand van 60-80 cm van de bron, op voorwaarde dat de as van de inductantie goed is uitgelijnd met het magnetische veld), dus het moet zorgvuldig worden versterkt om interferentie en nep te voorkomen detecties. Het voorgestelde circuit is het resultaat van mijn beste inspanningen en van uren testen in verschillende omstandigheden. Als je geïnteresseerd bent om dit aspect te verdiepen - en misschien te verbeteren - kijk dan eens naar de volgende stap, anders kun je deze overslaan.

De volgende Schmitt Trigger-poorten voeren de digitalisering en een piekdetectiefunctie uit, waardoor het oorspronkelijke modulerende signaal wordt hersteld, dat wordt doorgestuurd naar de Arduino Pro Mini.

Het Pro Mini-microcontrollerbord is perfect voor dit project omdat het kristal aan boord een hoge precisie van de metingen mogelijk maakt (die essentieel zijn vanuit het "medische" oogpunt, zie laatste stap), en tegelijkertijd is het vrij van andere niet nodig apparaat, wat resulteert in een laag stroomverbruik. Het enige nadeel is dat je voor het laden van de code een FTDI-interface nodig hebt om de Pro Mini op de USB-poort van je computer aan te sluiten. De Pro Mini is aangesloten op:

  • Schakelaar S1: start opname
  • Schakelaar S2: markering invoegen
  • Blauwe LED: knippert wanneer een geldige puls wordt gedetecteerd
  • Groene LED: Opname gestart
  • Gele LED: Markering geplaatst (kort knipperen) / Time-out (vast)
  • MicroSD-kaartmodule (via SPI-bus)

Anders dan veel SD-kaartmodules die werken op 3,3V, werkt de DFRobot-module op 5V, dus er is geen niveauverschuivingsschakelaar nodig.

Wat de montage betreft, is het je misschien opgevallen dat ik het prototyping-bord in twee stukken heb verdeeld, verbonden met twee kleine "bruggetjes" van stijf koperdraad van 1 mm. Dit was nodig om de MicroSD-kaartmodule naar een derde "constructieniveau" te brengen en uit te lijnen met de uitsparing die ik in de behuizing heb gesneden, net boven de spleet voor de USB-poort. Verder heb ik drie uitsparingen in het bord zelf gesneden, één om toegang te krijgen tot de potentiometer van de DC/DC-converter, een andere om toegang te krijgen tot de connector van de seriële bus van de Arduino Pro Mini (gemonteerd "met de voorkant naar beneden"), en de derde voor de inductie.

Stap 4: HR-ontvanger - Spice-simulatie

HR-ontvanger - Spice-simulatie
HR-ontvanger - Spice-simulatie

Uitgaande van het eerder genoemde ontwerp van Peter Borst, was mijn doel om te proberen het detectiebereik zoveel mogelijk te vergroten en tegelijkertijd de gevoeligheid voor storingen en het genereren van valse pulsen te beperken.

Ik besloot om de originele enkele Op-Amp-oplossing te veranderen omdat deze te gevoelig bleek te zijn voor interferentie, waarschijnlijk omdat de waarde van de 10M feedbackweerstand te hoog is, en om de algehele versterking in twee fasen te splitsen.

Beide trappen hebben een DC-versterking G = 100, afnemend rond 70 @ 5,4 KHz, maar met verschillende ingangsimpedanties om de gevoeligheid te optimaliseren.

Laten we dus aannemen dat de spanning van het zwakste signaal dat door de LC-tank wordt gegenereerd, 1 mV is.

Als we het hele ontvangercircuit transponeren in een Spice-omgeving (ik gebruik ADIsimPE) en het LC-parallel circuit vervangen door een sinusgenerator met dezelfde spanning en frequentie (5,4 KHz) en de simulatie uitvoeren, merken we dat de uitgangsspanning V1 van de 1e versterker is nog steeds een sinusgolf (vanwege de schaalfactor is de ingangssinusgolf niet merkbaar), omdat de versterker in de lineaire zone werkt. Maar na de tweede fase geeft de uitgangsspanning V2 aan dat we nu de verzadiging bereiken (Vhigh = Vcc-1.5V / Vlow = 1.5V). In feite is de TL07x-familie niet ontworpen voor rail-to-rail-uitgangsbereik, maar dit is voldoende om met een veilige marge beide drempelniveaus van de Schmitt Trigger-poort te overschrijden en een schone blokgolf (V3) te genereren.

Stap 5: Software

Software
Software

Vanwege de hoge versterking van de ontvangertrap, en ondanks dat de piekdetectortrap in feite als een laagdoorlaatfilter fungeert, kan het ingangssignaal op pin D3 van de Arduino Pro Mini nog steeds sterk worden verstoord en moet het digitaal worden voorverwerkt via een geldigheidscontrole tegen valse detecties. De code zorgt ervoor dat aan twee voorwaarden wordt voldaan om een puls als geldig te beschouwen:

  1. De puls moet minimaal 5 ms duren
  2. Het minimaal acceptabele interval tussen twee opeenvolgende pulsen is 100 ms (overeenkomend met 600 bpm, ver boven de limiet van een ernstige tachycardie!)

Zodra de puls is gevalideerd, wordt het interval (in ms) van de vorige gemeten en opgeslagen op de SD-kaart in een bestand "datalog.txt", samen met een tijdstempel in uu:mm:ss-formaat, waarbij 00:00: 00 staat voor de tijd van de laatste reset van de microcontroller. Als de SD-kaart ontbreekt, gaat de rode LED branden om een fout aan te geven.

Een nieuw registratiespoor kan worden gestart/gestopt met de Start/Stop-schakelaar S1 en zal worden geïdentificeerd door een ";Start" en ";Stop" markeringslijn respectievelijk aan het begin en aan het einde van het tekstbestand.

Als er langer dan 2400 ms (25 bpm) geen puls wordt gedetecteerd, wordt een markeringslijn ";Timeout" in het bestand geplaatst en gaat de gele LED D4 branden.

Als de Marker Switch S2 tijdens het opnemen wordt ingedrukt, wordt een extra markeringslijn in het formaat ";MarkerNumber" met automatische verhoging van het markeringsnummer vanaf 0 in het bestand geschreven en de gele LED knippert kort.

Bijgevoegd de volledige Arduino-code.

Stap 6: Eerste set-up en testen

Image
Image
Eerste set-up en testen
Eerste set-up en testen

Stap 7: Gebruik - Medische signaalanalyse

Gebruik - Medische signaalanalyse
Gebruik - Medische signaalanalyse

De vorm van de behuizing die ik heb gebruikt, komt dicht genoeg in de buurt van die van een smartphone, dus je kunt op de markt tal van accessoires vinden om hem te dragen of om hem op een trainingsapparaat te monteren. Met name voor de fiets kan ik de universele smartphone-houder met de naam "Finn" aanbevelen, geproduceerd door het Oostenrijkse bedrijf Bike Citizens. Goedkoop (€ 15, 00) en eenvoudig te monteren, het is echt universeel en zoals je op de foto kunt zien ook perfect voor de Cardio Data Logger

De eenvoudigste manier om de onbewerkte gegevens die door de Data Logger zijn vastgelegd te gebruiken, is door ze in een grafiek uit te zetten met behulp van standaard pc-programma's (bijv. Excel). Door grafieken te vergelijken die zijn verkregen bij het herhalen van dezelfde oefening, of door de correlatie tussen HR-variaties en fysieke inspanningen te analyseren, kunt u de dosering van krachten tijdens de activiteit optimaliseren.

Maar van het grootste belang is de studie van de HR, en in het bijzonder van de HR-variabiliteit (HRV), voor medische doeleinden. In tegenstelling tot een ECG-spoor bevat het HR-spoor geen directe informatie over het functioneren van de hartspier. De analyse ervan vanuit statistisch oogpunt maakt het echter mogelijk om andere informatie van klinisch belang te verkrijgen.

De meest uitgebreide kennisbron over HRV is het Finse bedrijf KUBIOS. Op hun site kun je veel informatie vinden over Biomedical Signals en je kunt "KUBIOS HRV Standard" downloaden, een gratis software voor het analyseren van hartslagvariabiliteit voor niet-commercieel onderzoek en persoonlijk gebruik. Met deze tool kun je niet alleen grafieken plotten vanuit een eenvoudig tekstbestand (je moet de tijdstempels verwijderen), maar ook om statistische en wiskundige evaluaties uit te voeren (inclusief FFT) en een ongelooflijk gedetailleerd en waardevol rapport te produceren, zoals het onderstaande.

Onthoud dat alleen een gespecialiseerde arts kan beslissen welke onderzoeken nodig zijn voor sportbeoefening op elk niveau en om de resultaten ervan te beoordelen.

Deze Instructable is geschreven met de enige bedoeling om interesse en plezier te creëren bij het toepassen van elektronica in de gezondheidszorg.

Ik hoop dat jullie het leuk vonden, reacties zijn welkom!

Aanbevolen: