il existe des shields qui permettant de faire l’Electrocardiogramme portatif pas cher
- par laser comme pour les montres
- amplificateur du bio potentiel comme l’AD8232
http://https://i89.servimg.com/u/f89/17/56/35/17/b010.jpg
https://i89.servimg.com/u/f89/17/56/35/17/b010.jpg[/img][/url[/iurl]]
voici une premier jet d’etude avec des resultats de bases à telecharger
ECG AD8232 arduino nano V1 IUT GEII Soissons.pdf
1. la bibliographie
Il y a de nombreux blogs qui explique ce circuit intégré, mais sans aller bien loin dans le programme
Ce blog permet d’avoir juste un moniteur grâce à la liaison série
De même ici, qui explique un peu mieux le capteur
https://learn.sparkfun.com/tutorials/ad8232-heart-rate-monitor-hookup-guide?_ga=2.54916523.1050236860.1613662700-154441868.1613662700
un article « Prototype Low-cost Portable Electrocardiogramme (ECG) Based on Arduino-Uno with Bluetooth Feature »
https://aip.scitation.org/doi/pdf/10.1063/1.5139392
mais sans partage du programme, un autre article
« Towards IoT and ML Driven Cardiac Status Prediction System »
https://www.researchgate.net/publication/336988184_Towards_IoT_and_ML_Driven_Cardiac_Status_Prediction_System
mesure BPM (battement per minute heart rate)
un ECG IOT avec un ESP32
Malgré une grosse recherche pas trouver de programme open source complet intéressant pour ce capteur ????
2. Des questions de démarrages
Quelle est la sensibilité fait par le capteur AD832 ? Donc quelle est le signal récupéré ?
Quelle fréquence d’échantillon doit-on utiliser ?
Est-ce que ce signal est fort perturbé par la CEM ? Peut-on mesurer les temps QST ?
Peut-on utiliser la fonction pulseIn (Signal_GBF, LOW); pour avoir le BPM ?
Sur le forum, il y aurait quelques soucis d’utilisation de ce capteur « Problem with AD8232 ECG WaveForm »
https://forum.arduino.cc/?topic=706502#msg4749936
https://forum.arduino.cc/index.php?topic=405315.0
Il ne faut pas trop bouger car toute activité musculaire provoque des bio potentiels supérieurs à celle du cœur et vont saturer le capteur.
Le signal du battement du cœur est entre 0.66Hz (40BPM periode=151 centi seconde=1510milliseconde) à 3.33Hz (200BPM periode=30 centi second) donc si le signal a une fréquence bien plus haut, il y a une erreur. D’ailleurs l’ampli a une bande passante de 0.4Hz à 30Hz
Le gain est de 60dB donc une Amplification de 1000
En enregistrant les données dans un fichier CSV pouvant être lu par Excel, on peut s’apercevoir que les points RST sont très rapides et avec une fréquence d’échantillonnage de 0.01s un seul échantillon est mesuré
En faisant la dérivée d’Euler on peut détecter très facilement RST.
Pour lire le battement cardiaque, la valeur absolue d’Euler donne encore une meilleure précision comme on peut l’observer sur la figure suivante
Suite à differents essais, le signal peut être très variable en fonction du placement des électrodes et du type de personne.
Mais grâce à la dérivée d’Euler, il est facile de détecter le BPM
Mais, si la valeur moyenne n’est pas aux alentours de 1.65V (337 dec), le BPM ne sera pas correcte
La valeur moyenne peut être mesurée sur 3 secondes
Avec l’équation suivante Vmoy= SommeV/temps
Il est possible de mesurer la sensibilité du signal tous les 3 secondes pour validée le BPM ou pas
3. Programme de base V1
Donc voici notre premier programme qui donne le monitoring sur le traceur série ou dans un fichier CSV, le BPM en PJ
Le signal avec un peu de perturbation de 50Hz sur le traceur serie
4. Conclusion :
Grâce au math et au filtre numérique, il est possible de détecter le BPM assez facilement.
Mais si l’on désire mesurer les temps PR et ST, il faut des temps d’échantillons plus rapide donc utilisé une ESP32 OLED.
mais pour avoir des données pertinentes, il va falloir utiliser des filtres.
5. Perspectives
Souvent, il y a une mesure des impulsions cardiaques sur plusieurs heures pour savoir s’il y a des anomalies.
Par conséquent, le monitoring doit enregistrées les données.
Avec une liaison Bluetooth HC06, un smartphone pourrait faire le monitoring et la sauvegarde des données.
Un filtre numérique permettrait d’atténuer les perturbations électromagnétiques du 50Hz du signal bio potentiel.
Le BPM évolue sur plusieurs minutes, donc un filtre numérique passe bas devrait être utilisé.
Il est possible de simuler le programme sous ISIS en simulant le capteur avec un datafile ce qui permet de mieux vérifier le fonctionnement du programme.
ECG.ino (3.36 KB)