Stap 22: Digitaliseren en de golfvorm omzetten in een matrix structuur van C
Belangrijke rasterlijnen zijn op 0.200 seconden op de horizontale tijd-as, en de kleinste raster divisies zijn 0.040 seconden. Op de amplitude van de verticale as, de grote divisies zijn 1.0 millivolts en de kleinste verticale divisies zijn 0.200 millivolts. Nadat het laatste van de T-golf gegevenspunt, is de ECG-golfvorm rustig tot de volgende PQRST complex. Die rustige periode (houden een constante steekproef) kan worden gewijzigd om te variëren van de hartslag.
Normale hartslag voor de meeste mensen is 60 slagen per minuut of, met andere woorden, de R-golf-pieken zijn één seconde uit elkaar. Nu is het waar dat als de hartslag echt versnelt, de QRS golfvorm enigszins comprimeert, maar we de simulator vereenvoudigen zullen met de output van het hetzelfde deel van de QRS gevolgd door een variabele rustige gedeelte.
Het andere ding om te weten is dat de amplitude van het ECG, zoals gemeten door bijgevoegde elektroden op de huid slechts een paar millivolts is. De volgende stap is het digitaliseren van de golfvorm met de bepaalde tijd en amplitude assen met behulp van de Open Source digitizer programma Engauge.
Het eerste cijfer toont de Enguage digitizer programma wordt gebruikt voor het ophalen van gegevenspunten afgesneden van de ECG golfvorm. Elke kleine blauwe maatstreepje is met een muisklik. Natuurlijk, hoe meer punten op één klikt, hoe beter de uitlevering van de golfvorm zal zijn.
Als digitalisering is voltooid, wordt een tekstbestand gemaakt waaruit blijkt de (x, y) gegevenspunten die werden ingevoerd via Enguage (Zie de tweede figuur hieronder).
Er zijn een paar problemen met dit tekstbestand. Eerst de gegevenspunten zijn niet gelijkmatig 1.0 milliseconde tussenpozen (onze steekproef streefpercentage) en ten tweede, het is mogelijk dat sommige gegevenspunten zijn uit-van-sequence (u per ongeluk hebt geklikt een gegevenspunt aan de linkerkant van de vorige geselecteerde gegevenspunt).
Deze problemen op te lossen en op de schaal van de golfvorm punten naar een 12-bit D/A converter (0.. 4095) en het tijdsverloop en 1.000 msec, een Python programma is geschreven om te doen deze wijzigingen (lineaire interpolatie, sorteren en een heleboel opmaak) en uiteindelijk Masseer de gegevens in een volkomen legaal const C matrix structuur met een initializer (Zie de derde figuur hieronder). Dit tekstbestand kunnen knippen-en-plakken in de Arduino schets.
Het Python programma is te ingewikkeld voor een Instructable, maar u kunt het Python programma downloaden vanaf de project repository op GitHub. Aan het begin van dit Instructable worden nader op deze repository.
De C-taal matrix structuur met initializer slaat alleen het PQRST deel van de ECG golfvorm. Het rustige gedeelte wordt niet opgeslagen; liever zal de D/A converter "hold" een enkele waarde in de rustige periode. Wijzigen van het aantal monsters uitgestraalde tijdens de rustige periode effectief regelt de hartslag. De vierde figuur geeft details over deze functie.