Étape 22 : Numériser et convertir la forme d’onde à une Structure de tableau C
Sur l’axe du temps horizontale, lignes du quadrillage principal sont à 0,200 secondes et les plus petites divisions de grille sont 0,040 secondes. Sur l’axe de l’amplitude verticale, les grandes divisions sont 1,0 millivolts et les plus petites divisions verticales sont 0,200 millivolts. Après que les données du derniers point de l’onde T, la forme d’onde ECG est quiescente jusqu'à la prochaine PQRST complexe. Cette période de repos (tenant un échantillon constant) peut être modifiée pour faire varier la fréquence cardiaque.
Fréquence cardiaque normale pour la plupart des gens est de 60 battements par minute ou, en d’autres termes, les crêtes de l’onde R sont une seconde d’intervalle. Maintenant il est vrai que comme le rythme cardiaque s’accélère vraiment, la forme d’onde QRS compresse un peu, mais nous simplifiera le simulateur en émettant la même partie QRS suivie d’une partie variable quiescente.
L’autre chose à savoir est que l’amplitude de l’ECG mesurés par des électrodes attachées sur la peau est juste un couple de millivolts. L’étape suivante consiste à numériser la forme d’onde avec le temps donné et les axes d’amplitude en utilisant le programme de numériseur Open Source Engauge.
La première figure montre le programme de numériseur Enguage servant à ramasser des points de données hors de la forme d’onde ECG. Chaque petite graduation bleue est un clic de souris. Évidemment, plus les points on clique, le mieux le rendu de l’onde sera.
Une fois la numérisation terminée, un fichier texte est créé montrant (x, y) des points de données qui ont été conclues par l’intermédiaire de Enguage (voir la deuxième figure ci-dessous).
Il y a quelques problèmes avec ce fichier texte. Tout d’abord, les points de données ne sont pas uniformément espacés de 1,0 milliseconde (notre taux d’échantillon cible) et en second lieu, il est possible que quelques points de données sont hors séquence (vous cliqué d’un point de données à la gauche du point de données précédent).
Pour régler ces problèmes et faire évoluer les points de forme d’onde à un convertisseur de D/A 12 bits (0.. 4095) et l’intervalle de temps à 1.000 msec, un programme Python a été écrit pour faire ces modifications (interpolation linéaire, tri et beaucoup de mise en forme) et pour masser éventuellement les données dans une structure de tableau C const parfaitement légale avec un initialiseur (voir la troisième figure ci-dessous). Ce fichier texte peut être couper-et-collé dans l’esquisse de l’Arduino.
Le programme Python est trop complex pour un Instructable, mais vous pouvez télécharger le programme Python du référentiel projet sur GitHub. Détails sur ce référentiel sont donnés au début de ce Instructable.
Le langage C structure tableau initialiseur stocke uniquement la partie PQRST de l’onde ECG. La partie repos n’est pas stockée ; plutôt le convertisseur D/A « tiendra » une valeur unique au cours de la période de repos. Modifier le nombre d’échantillons émis au cours de la période de repos efficacement contrôle le rythme cardiaque. La quatrième figure donne des détails sur cette fonctionnalité.