Innehållsförteckning:
- Steg 1: Kort beskrivning
- Steg 2: LiPo -nätaggregat - scheman, delar och montering
- Steg 3: HR -mottagare och dataloggare - scheman, delar och montering
- Steg 4: HR -mottagare - Spice Simulation
- Steg 5: Programvara
- Steg 6: Initial installation och testning
- Steg 7: Användning - Medicinsk signalanalys
Video: Cardio Data Logger: 7 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Även om det idag finns många bärbara enheter (smartband, smartklockor, smartphones, …) som kan detektera hjärtfrekvensen (HR) och utföra spåranalys, är bröstbältebaserade system (som det i den övre delen av bilden) fortfarande utbredd och använd, men saknar möjlighet att registrera och exportera spåren av mätningarna.
I min tidigare Instructable Cardiosim har jag presenterat ett bröstbandssimulator (Cardio) som förklarar att ett av mina nästa steg var att utveckla en pulsdatalogger. Jag är nu redo att presentera det i denna instruktionsbara. Funktionen för denna bärbara enhet är att ta emot HR -signalen som skickas av ett bröstbältesbälte (eller Cardiosim -simulatorn) under en träningspass (träning/cykling/löpning, …) och att registrera spåret på ett SD -kort för att utför en prestationsanalys efter träning (se detaljer i det sista kapitlet).
Enheten drivs av ett laddningsbart batterisystem, inklusive laddningskrets och DC -boostregulator.
Från mitt "lager" av oanvänt material fiskade jag fram ett lämpligt plastfodral (135 mm x 45 mm x 20 mm) och anpassade till det kretsens layout för att passa ihop, vilket gjorde en fungerande prototyp som uppfyller mina behov (men vars insikt lämnar utrymme för förbättring:-))
Steg 1: Kort beskrivning
Se steg 1 i Cardiosim Instructable för en snabb introduktion om LFMC (lågfrekvent magnetisk kommunikation) -teknologi som används av denna typ av enheter.
Min första avsikt var att använda Sparkfun RMCM01 -modulen som mottagargränssnitt, men den här produkten är inte längre tillgänglig (än mindre att den ändå var ganska dyr).
Men när jag tittade på webben hittade jag denna intressanta självstudie, som visar några alternativa lösningar för att ersätta RMCM01. Jag valde det tredje alternativet ("Peter Borst Design", tack Peter!), Och uppnådde ett utmärkt resultat med samma L/C -komponenter i Cardiosim, dock ansluten här som parallell resonantank. Den detekterade signalen förstärks, "rengörs", avkodas och vidarebefordras till en Arduino Pro Mini -mikrokontroller. Programmet validerar de mottagna pulserna, mäter pulsen (eller bättre intervallet mellan två på varandra följande pulser) och lagrar alla uppmätta intervall i en ASCII -textfil (en rad per giltig puls, 16 tecken vardera inklusive intervall, tidsstämpel och LF/CR) i microSD -kortet. Under förutsättning av en genomsnittlig HR på 80 bpm behöver en timmes inspelning endast (4800 textrader x 16 tecken) = 76800 /1024 = 75 kBytes, därför erbjuder även ett billigt 1 GB SD -kort gott om inspelningskapacitet.
Under inspelningen kan du infoga markörlinjer för att dela upp spårningen och utvärdera olika sessionsfaser separat.
Steg 2: LiPo -nätaggregat - scheman, delar och montering
Strömförsörjningen upptar botten av fodralet. Förutom trimpoten överstiger ingen komponent 7 mm höjd, vilket ger plats för att montera HR -mottagaren och mikrokontrollerkretsen över strömförsörjningen.
Jag använde följande delar:
- 3.7V LiPo -batteri (vilket telefonbatteri som helst kan återvinnas, minskad kapacitet är inget problem här)
- USB TP4056 laddningsmodul, jag köpte den här
- SX1308 DC boost -omvandlare, jag köpte den här
- Liten prototypplatta 40 x 30 mm
- Kabel med JST -kontakt 2, 54 mm 2 -stift, som den här
- (tillval) JST -kontakt 2 mm 2 -stift, som den här
-
(tillval) Kabel med JST -kontakt 2 mm 2 stift, som den här
Användningen av de två sista objekten beror på batteriet du kommer att använda och hur du tänker ansluta det till laddningsmodulen. Jag föreslår 2 mm JST -kontakten eftersom många batterier levereras med redan ansluten kabel och 2 mm kontakt, någon annan lösning är tillräcklig så länge det möjliggör ett enkelt byte av batteriet om det behövs. Var i alla fall försiktig så att du undviker kortslutning mellan batteripolerna under monteringen.
TP4056-modulen drivs från en mikro-USB-port och är avsedd för laddning av laddningsbara litiumbatterier med laddningsmetoden konstantström / konstant spänning (CC / CV). Förutom att säkert ladda ett litiumbatteri ger modulen också nödvändigt skydd som krävs av litiumbatterier.
SX1308 är en högeffektiv DC/DC Step Up Adjustable Converter som håller utspänningen konstant vid +5V med en minsta ingångsspänning på 3V, vilket möjliggör ett fullständigt utnyttjande av batterikapaciteten. Justera utspänningen med trimpoten vid +5V innan mikrokontrollkretsen ansluts!
Den totala förbrukningen av dataloggern är cirka 20mA, så även ett använt batteri med en kvarvarande kapacitet på 200mAh (<20% av den ursprungliga kapaciteten för ett nytt telefonbatteri) kommer att tillåta 10 timmars inspelning. Den enda nackdelen är att SX1308 vilande ström är cirka 2 mA, så du bör koppla ur batteriet om du inte använder dataloggern på länge.
På grund av den lilla storleken måste båda modulerna fixeras med anslutningshålen både för elektrisk och mekanisk anslutning till prototypkortet, genom korta koppartrådar. I sin tur fästs kortet på fodralets bas med en 3 mm x 15 mm skruv (längden räcker för att fästa mikrokontrollerkretsen ovan med samma skruv). Kortet är värd för JST 2 mm -kontakten för batteriet (endast tillgängligt i SMD -versionen, men vikning av stiften vertikalt kan du "vända" det i en PTH -version) och alla kablar enligt schemat. Bara för att vara säker, limmade jag fast kontakten på kortet för att få en bra mekanisk tätning.
Batteriet är placerat plant i det återstående området på botten av höljet, och bakom det finns en andra 3 mm x 15 mm skruv med en 8 mm vertikal distans för att undvika kontakter mellan batteriets ovansida (som ändå är isolerad) och botten av batteriet övre krets.
Steg 3: HR -mottagare och dataloggare - scheman, delar och montering
Huvudstyrelsen består av:
- Prototypplatta 40mm x 120mm
- Induktans 39mH, jag använde BOURNS RLB0913-393K
- 2 x kondensator 22nF
- Kondensator 4.7nF
- Kondensator 47nF
- Kondensator 39pF
- Elektolytisk kondensator 10uF/25V
- Elektrolytkondensator 1uF/50V
- 3 x motstånd 10K
- 2 x motstånd 100K
- 3 x motstånd 1K
- 4 x motstånd 220R
- Motstånd 1M
- Motstånd 47K
- Motstånd 22K
- Trimpot 50K
- Diod 1N4148
- LED 3 mm blå
- 2 x LED 3 mm Grön
- LED 3 mm gul
- LED 3 mm Röd
- Dubbla lågbrusiga JFET-ingångsförstärkare TL072P
- Hex Inverting Schmitt Trrigger 74HC14
- JST -kontakt 2,54 mm 2 -stift, som den här
- 2 x mikrobrytare, typ Alcoswitch
- Mikrokontroller Arduino Pro Mini, 16MHz 5V
- Micro SD -kortmodul SPI 5V från DFRobots
Resonansfrekvensen för den parallella resonantanken som består av L1 och C1 är cirka 5,4 kHz, vilket matchar tillräckligt nära 5,3 kHz för magnetfältbäraren för den överförda signalen för att omvandla den till en spänning. Kom ihåg att i de flesta fall är bäraren modulerad på basen av ett enkelt OOK (On-OFF Keying) -format, där varje hjärtpuls växlar bäraren "ON" i cirka 10 ms. Den detekterade signalen är mycket svag (typiskt en 1 mV sinusvåg på ett avstånd av 60-80 cm från källan, förutsatt att induktansens axel är korrekt anpassad till magnetfältet), så den måste förstärkas noggrant för att undvika störningar och falska upptäckter. Den föreslagna kretsen är resultatet av mina bästa ansträngningar och timmar av tester under olika förhållanden. Om du är intresserad av att fördjupa denna aspekt - och kanske förbättra den - ta en titt på nästa steg, annars kan du hoppa över den.
Följande Schmitt Trigger -portar utför digitaliseringen och en toppdetekteringsfunktion och återställer den ursprungliga moduleringssignalen som vidarebefordras till Arduino Pro Mini.
Pro Mini -mikrokontrollerkortet är perfekt för detta projekt eftersom kristallen ombord tillåter en hög precision av mätningarna (som är viktiga under den "medicinska" synvinkeln, se sista steget), och samtidigt är det fritt från andra behövs inte, vilket resulterar i en låg strömförbrukning. Den enda nackdelen är att för att ladda koden behöver du ett FTDI -gränssnitt för att ansluta Pro Mini till USB -porten på din dator. Pro Mini är ansluten till:
- Switch S1: starta inspelning
- Switch S2: sätt in markör
- Blå lysdiod: blinkar när en giltig puls detekteras
- Grön lysdiod: Inspelningen startade
- Gul lysdiod: Markör införd (kort blinkning) / Timeout (fast)
- MicroSD -kortmodul (via SPI -buss)
Till skillnad från många SD -kortmoduler som arbetar med 3,3V fungerar DFRobot -modulen vid 5V, så ingen nivåskiftare behövs.
När det gäller monteringen kanske du märker att jag har delat prototyperna i två delar, anslutna till två små "broar" av styv 1 mm koppartråd. Detta har varit nödvändigt för att höja MicroSD -kortmodulen till en tredje "konstruktionsnivå" och anpassa den till urtaget jag har huggit på fodralet, precis ovanför spalten för USB -porten. Dessutom ristade jag tre urtag på själva kortet, en för att komma åt potentiometern för DC/DC -omvandlaren, en annan för att komma åt kontakten på seriebussen på Arduino Pro Mini (monterad "med framsidan nedåt) och den tredje för induktans.
Steg 4: HR -mottagare - Spice Simulation
Utifrån Peter Borsts design som jag har nämnt tidigare var mitt mål att försöka utöka detektionsområdet så mycket som möjligt, samtidigt som känsligheten för störningar och generering av falska pulser begränsas.
Jag bestämde mig för att ändra den ursprungliga singel-Op-Amp-lösningen eftersom den har visat sig vara för känslig för störningar, förmodligen för att värdet på 10M återkopplingsmotståndet är för högt och för att dela upp den totala förstärkningen i två steg.
Båda stegen har en DC -förstärkning G = 100, som minskar runt 70 @5,4KHz, men med olika ingångsimpedans för att optimera känsligheten.
Så låt oss anta att spänningen för den svagaste signalen som genereras av LC -tanken är 1mV.
Om vi transponerar hela mottagarkretsen i en kryddmiljö (jag använder ADIsimPE) och ersätter LC -parallellkretsen med en sinusgenerator med samma spänning och frekvens (5,4KHz) och kör simuleringen, märker vi att utspänningen V1 från den första förstärkaren är fortfarande en sinusvåg (på grund av skalfaktor är ingångssinvågan inte märkbar), ti förstärkaren arbetar i den linjära zonen. Men efter det andra steget visar utspänningen V2 att vi nu når mättnaden (Vhigh = Vcc-1.5V / Vlow = 1.5V). Faktum är att TL07x -familjen inte är utformad för räckvidd till järnvägsutrymme, men detta är tillräckligt för att med en säker marginal överskrida både gränsvärdena för Schmitt Trigger -grinden och generera en ren fyrkantvåg (V3).
Steg 5: Programvara
På grund av mottagarstegets höga förstärkning och trots att toppdetektorsteget i princip fungerar som ett lågpassfilter kan insignalen på stift D3 på Arduino Pro Mini fortfarande störas starkt och måste förbehandlas digitalt genom en giltighetskontroll mot falska upptäckter. Koden säkerställer att två villkor är uppfyllda för att betrakta en puls som giltig:
- Pulsen måste vara minst 5 ms
- Det minsta acceptabla intervallet mellan två på varandra följande pulser är 100 ms (motsvarande 600 slag / minut, långt bortom gränsen för svår takykardi!)
När pulsen har validerats mäts intervallet (i ms) från föregående och lagras på SD -kortet i en fil "datalog.txt", tillsammans med en tidsstämpel i formatet hh: mm: ss, där 00:00: 00 representerar tiden för den senaste återställningen av mikrokontrollern. Om SD -kortet saknas lyser den röda lysdioden som indikerar fel.
En ny inspelningsspårning kan startas/stoppas med start/stopp -omkopplaren S1 och identifieras med en "; Start" och "; Stop" markörrad i början och i slutet av textfilen.
Om ingen puls detekteras under en längre tid än 2400 ms (25 slag / minut), placeras en markörrad "; Timeout" i filen och den gula lysdioden D4 slås på.
Om marköromkopplaren S2 trycks in under inspelning skrivs ytterligare en markörrad i formatet "; MarkerNumber", med automatisk ökning av markörnumret från 0, i filen och den gula lysdioden blinkar kort.
Bifogade hela Arduino -koden.
Steg 6: Initial installation och testning
Steg 7: Användning - Medicinsk signalanalys
Formen på kåpan som jag använde är tillräckligt nära den på en smartphone så att du kan hitta många tillbehör på marknaden för att bära den eller montera den på en träningsutrustning. Speciellt för cykeln kan jag föreslå den universella smarttelefonfästet som heter "Finn", producerat av det österrikiska företaget Bike Citizens. Billigt (€ 15, 00) och lätt att montera, det är verkligen universellt och som du kan se på bilden perfekt även för Cardio Data Logger
Det enklaste sättet att använda rådata som registrerats av dataloggaren är att plotta dem i en graf med vanliga PC -program (t.ex. Excel). Genom att jämföra grafer som erhålls genom att upprepa samma övning eller analysera sambandet mellan HR -variationer och fysiska ansträngningar kan du optimera doseringen av krafter under aktiviteten.
Men av största intresse är studien av HR, och i synnerhet HR Variablity (HRV), för medicinska ändamål. Till skillnad från ett EKG -spår innehåller HR -spåret inte direkt information om hjärtmuskelns funktion. Men dess analys från en statisk synvinkel gör det möjligt att erhålla annan information av kliniskt intresse.
Den mest omfattande kunskapskällan om HRV är det finska KUBIOS -företaget. På deras webbplats kan du hitta mycket information om biomedicinska signaler och du kan ladda ner "KUBIOS HRV Standard", en gratis mjukvara för pulsvariabilitetsanalys för icke-kommersiell forskning och personligt bruk. Med det här verktyget kan du inte bara plotta diagram från en enkel textfil (du måste ta bort tidsstämplarna) utan också för att utföra statistiska och matematiska utvärderingar (inklusive FFT) och skapa en otroligt detaljerad och värdefull rapport, som den som bifogas nedan.
Kom ihåg att endast en specialistläkare kan bestämma vilka tentor som behövs för idrottsträning på vilken nivå som helst och bedöma deras resultat.
Denna instruktionsbok har skrivits med det enda syftet att skapa intresse och roligt när det gäller att tillämpa elektronik på sjukvården.
Jag hoppas att du gillade det, kommentarer är välkomna!
Rekommenderad:
GPS Cap Data Logger: 7 steg (med bilder)
GPS Cap Data Logger: Här är ett bra helgprojekt, om du är på vandring eller tar långa cykelturer, och behöver en GPS -datalogger för att hålla reda på alla dina vandringar/åk du har tagit … När du har slutfört bygget och laddat ner data från GPS -modulen på tr
AC Current Monitoring Data Logger: 9 steg (med bilder)
AC Current Monitoring Data Logger: Hej alla, välkommen till min första instruerbara! På dagtid är jag testingenjör för ett företag som levererar industriell uppvärmningsutrustning, på natten är jag en ivrig teknikhobbyist och gör -det -själv. En del av mitt arbete innebär att testa prestanda för värmare, o
The Ultimate High Altitude Weather Balloon Data Logger: 9 steg (med bilder)
The Ultimate High Altitude Weather Balloon Data Logger: Spela in höghöjdsväderballongdata med den ultimata väderballongdataloggern för höghöjd. En väderballong på hög höjd, även känd som en höghöjdsballong eller HAB, är en enorm ballong fylld med helium. Dessa ballonger är en plattform
Open Source Data Logger (OPENSDL): 5 steg (med bilder)
Open Source Data Logger (OPENSDL): Syftet med detta projekt är att designa, bygga och testa ett lågkostnadsmätningssystem för utvärderingar av byggprestanda som inkluderar minst temperatur, relativ luftfuktighet, belysningsstyrka och kan utvidgas till ytterligare sensorer, och att utveckla
Nest Thermostat History Data Logger: 6 steg (med bilder)
Nest Thermostat History Data Logger: Nest -termostat spårar temperatur, luftfuktighet och användning av ugn/AC och användare kan bara se historisk data i 10 dagar. Jag ville samla historisk data (> 10 dagar) och stötte på ett Google -kalkylbladskript som pingar häckar varenda gång