EKG Simulator (22 / 27 steg)
Steg 22: Digitalisera och konvertera vågformen till en C Array struktur
Den horisontella tid axeln, stora rutnätslinjer på 0.200 sekunder och minsta rutnät uppdelningarna är 0.040 sekunder. Den vertikala amplituden axeln, de stora klyftor är 1.0 millivolt och de minsta vertikala indelningar är 0.200 millivolt. Efter de senaste data pekar av T-vågen, är EKG-kurvan quiescent tills nästa PQRST komplex. Den quiescent perioden (hålla ett konstant prov) kan ändras för att variera hjärtfrekvensen.
Normal hjärtfrekvens för de flesta är 60 slag per minut, eller med andra ord, de R-våg är en sekund isär. Nu är det sant att som pulsen verkligen påskyndar QRS vågform komprimeras något, men vi kommer att förenkla simulatorn av mata samma QRS del följt av en variabel quiescent del.
En annan sak att veta är att amplituden på EKG mätt med bifogade elektroder på huden är bara ett par millivolt. Nästa steg är att digitalisera vågformen med viss tid och amplitud axlar med programmet Open Source digitizer Engauge.
Den första siffran visar programmet Enguage digitizer som används för att välja datapunkter av EKG-kurvan. Varje liten blå bock är ett musklick. Uppenbarligen, desto fler poäng en klick, desto bättre återgivandet av vågformen blir.
När digitalisering är klar skapas en textfil visar (x, y) datapunkter som förts in via Enguage (se den andra bilden nedan).
Det finns ett par problem med denna textfil. Först datapunkterna är inte jämnt fördelade med 1.0 millisekunders mellanrum (våra mål samplingsfrekvens) och det andra är det möjligt att några datapunkter är out-av-sequence (du av misstag klickade på en datapunkt till vänster om tidigare datapunkten).
Att åtgärda dessa problem och att skala de vågform poäng till en 12-bitars D/A omvandlare (0.. 4095) och tidsintervallet till 1,000 msec, ett Python program skrevs att göra dessa ändringar (linjär interpolation, sortering och en hel del formatering) och för att så småningom massage data till en helt lagligt const C matris konstruktion med en initierare (se tredje bilden nedan). Denna textfil kan vara klippa-och-klistrade in i Arduino skiss.
Python -programmet är för komplicerad för en Instructable, men du kan ladda ner programmet Python från projektet databasen på GitHub. I denna databas anges i början av detta Instructable.
C språk Array struktur med en initierare lagrar endast den PQRST delen av EKG-kurvan. Den quiescent delen lagras inte; snarare kommer att D/A omvandlaren "hålla" ett enda värde under quiescent perioden. Ändra antalet prover som släpps ut under den quiescent perioden effektivt styr hjärtfrekvensen. Fjärde siffran ger Detaljer om den här funktionen.