1. Introduction

Le sommeil est depuis l'Antiquité la source d'interrogations et de réflexions. L'interprétation des rêves et l'importance de ceux-ci est présente même avant, dans la mythologie judéo-chrétienne, dans le mythe de la Nativité ou celui de Joseph[1], et cette thématique sera reprise aussi bien par la philosophie que par la psychologie avec Freud, puis par la neurologie. Le sommeil ne fera cependant l'objet d'une étude scientifique rigoureuse seulement à partir du XXe siècle avec l'invention de l'électroencéphalogramme. A partir des années 80 la communauté scientifique commence à largement s'intéresser à cette partie encore mystérieuse de notre vie, et les études sur les troubles du sommeil et sur son fonctionnement ont permis un large progrès dans la connaissance du sommeil.

Dans sa définition actuelle, le sommeil se décompose en quatre phases[2]. La première correspond à un état de sommeil léger qui est proche de l'éveil. La seconde est caractérisée par un EEG irrégulier mais reste un état dans lequel il est facile de réveiller le dormeur. La troisième est dite de sommeil profond. Il devient alors plus difficile de réveiller le dormeur, et celui-ci se trouve alors encore dans un état similaire à la somnolence[3]. La dernière phase de sommeil est dite de sommeil paradoxal, elle se caractérise par une activité cérébrale égale voire supérieure à l'éveil. Il s'agit de la phase pendant laquelle on rêve. Dans ce projet, nous chercherons à éviter de réveiller le dormeur lors de son sommeil profond en concevant un réveil "intelligent" qui n'enclenche son alarme seulement lorsque le sujet est dans une phase de sommeil léger.

Actuellement la recherche sur le sommeil se fait à l'aide de trois appareils : un électrooculogramme, un électromyogramme et un électroencéphalogramme. Ce matériel étant onéreux et encombrant, et les signaux devant être analysés par un technicien du sommeil (Penzel, 2003), on ne s'en servira pas pour ce projet. Le bracelet connecté FitBit exploite une information différente pour identifier la phase de sommeil en cours[4] : il se base sur la variabilité de la fréquence cardiaque. On suivra la même méthode dans ce projet.

Un électrocardiographe est un appareil médical servant à l'analyse des signaux électriques émis par le coeur[5]. Scott W. Harden a créé son propre électrocardiographe à des frais minimes, et en utilisant une très petite quantité de matériel[6]. L'appareil amplifie les signaux électriques puis les transmet à l'ordinateur via une connexion JACK 3.5 mm. On reproduira cet appareil pour s'en servir par la suite. Un programme fonctionnant avec Python 3 et une classe ont également été développés à l'usage de l'électrocardiographe. On peut à l'aide de ces ressources exploiter les données de l'électrocardiogramme, et en retirer les données nécessaires dans le cadre du projet. Ceux-ci sont des programmes open source disponibles sur GitHub.

1.1. But

Notre but est de réaliser un réveil qui, en fonction de la phase de sommeil, réveillera ou non le dormeur. On aura comme objectifs ceux de réaliser un électrocardiographe, d'utiliser le software mis à disposition par S.W. Harden afin de récupérer des données sur la fréquence cardiaque, de programmer, avec la librairie NumPy, les calculs statistiques, et finalement de fusionner projet d'hiver et le reste de ce projet.

Pour que la réalisation de ce projet soit à portée de réussite, on fixera certaines limitations. Premièrement, l'appareil ne devra pas excessivement déranger le dormeur. On cherchera notamment à minimiser le dérangement causé par les électrodes. Ensuite, on cherchera à minimiser le matériel utilisé. Enfin, par souci de simplicité, on utilisera au maximum les notions acquises en cours ou connues au préalable.

2. Matériel et méthode

2.1. Matériel

Hardware
  • Trois pièces en cuivre, en l'occurrence de 1 pence anglais
  • Trois fils électriques de 75cm de long
  • Une grande breadboard
  • Une prise JACK 3.5 mm femelle à encastre
  • Un câble JACK 3.5 mm mâle-mâle
  • Un adaptateur son USB
  • Un amplificateur opérationnel dual LM741
  • Une pile 9 V
  • Un connecteur pour pile 9 V
  • Des câbles cavaliers mâle-mâle
  • Une résistance 10 MΩ
  • Trois résistances 2.2 KΩ
  • Une résistance 100 KΩ
Software
  • Un RaspberryPi 2B+ connecté à un réseau
  • Python 3 installé sur le RaspberryPi
  • Le répertoire du projet de l'électrocardiographe accessible ici
Périphériques
  • Un écran avec une entrée HDMI
  • Une souris USB
  • Un clavier USB
Outils
  • Un fer à souder
  • Du fil d'étain pour souder
  • Un pistolet à chaleur
  • Une pince à dénuder
  • Un rouleau de scotch de carossier
  • Oscilloscope
  • Multimètre

2.2. Méthode

2.2.1. Monter l'électrocardiographe

Avant de monter le circuit de l'électrocardiographe, il a fallu souder les électrodes. On commence par dénuder les fils électriques de 75 cm à chaque extrémité sur une longueur de 1,5 cm. Ensuite, chauffer la pièce à l'aide du pistolet à chaleur : celui-ci permet d'augmenter sa température de manière à ce que la soudure ne se refroidisse pas trop vite. On applique le fer à souder sur la pièce et le fil quelques secondes avant de faire fondre le fil à souder sur l'emplacement de la soudure, puis on laisse la soudure refroidir. Si la soudure ne tient pas, faire fondre la soudure, étaler l'étain à nouveau et le laisser refroidir. Sur la grande breadboard, placer l'amplificateur opérationnel LM741, les résistances de 2,2 et 100 KΩ ainsi que celle de 10 MΩ, les trois électrodes préalablement fabriquées, la prise JACK femelle à encastrer, les câbles cavaliers et la pile 9V avec son connecteur de manière à reproduire le schéma électrique ci-dessous (fig. 1).

 Figure 1. Le schéma de l'électrocardiographe. 

Note : les résistances notées 1.8K sont remplacées par des résistances de 2.2 KΩ.

Une fois ce schéma reproduit, connecter l'adaptateur son USB au RaspberryPi, puis brancher le câble JACK mâle-mâle dans la prise JACK à encastrer du circuit et dans l'entrée (fiche jaune) de la carte son USB.

2.2.2. Produire un électrocardiogramme

Pour obtenir un électrocardiogramme, il faut scotcher les électrodes sur la peau aux emplacements en Figure 2, puis lancer le programme go.py à l'emplacement diyECG-1opAmp-master/software/go.py.

 Figure 2. Les emplacements des électrodes. 

Les électrodes nommées CHEST 1 et CHEST 2 de la Figure 1 sont respectivement placées à gauche du sternum, à l'emplacement du coeur, et sur le côté gauche. L'électrode RIGHT LEG est celle située sur la jambe droite.

2.2.3. Résolution des problèmes.

À ce moment du projet, des problèmes ont été rencontrés. Premièrement, le programme n'a pas reconnu la commande import. On a tenté de lancer le programme avec Python 3, mais cela n'a pas changé la situation. Une autre possibilité est que le chemin d'accès indiqué en première ligne dans le programme ait été erronée, mais il ne s'agissait pas de ça non plus. Il a donc été impossible de lancer le programme, car on n'a ni imaginé une autre solution ni entrepris de plus amples recherches pour retrouver l'origine de l'erreur. On a plutôt essayé de vérifier que l'électrocardiographe en lui-même fonctionnât correctement.

Cette activité s'est révélée extrêmement chronophage, autant en la persistance d'un dysfonctionnement qu'en l'intérêt qu'on y a porté. On a alors connecté le circuit à un oscilloscope, dans l'objectif de lire le signal amplifié. Deux choses ont été constatées : 1) on ne voyait pas de signal clair et 2) les câbles captaient par induction le courant domestique 50 Hz, des ondes radio et surtout le signal Bluetooth destiné à une enceinte à proximité...

Une fois les appareils émettant des ondes à proximité éteints, on procède à plusieurs essais pour réussir à observer un signal valide. En premier lieu, déduire un signal "neutre", ou altéré de la même manière que le second, du signal portant le signal cardiaque. Bien que le courant sortant du circuit soit de l'ordre de quelques millivolts et l'oscilloscope étant suffisamment sensible pour le capter, aucun courant n'a pu être lu, il résultait de ce procédé un signal quasi nul. En second lieu, utiliser le signal neutre comme référentiel et lire le signal sans qu'il transite à travers le circuit, c'est-à-dire directement depuis l'électrode. À nouveau, on n'obtient aucun résultat. Ceci est vraisemblablement dû au fait que le signal ne soit pas amplifié, et qu'en réalité il soit alors en dessous du millivolt. En troisième lieu, on a cherché à amplifier le signal d'une manière moins complexe que celle proposée par S. W. Harden (voir Figure 3 ci-dessous), ce qui n'a en rien amélioré la situation.

Figure 3. Le schéma utilisé pour résoudre le problème.

Malheureusement, aucune solution à ces deux problèmes n'a été trouvée, et on n'a pas pu aller plus loin dans le projet.

3. Résultats

Figure 4. Les électrodes soudées.

Figure 5. Le montage dans son ensemble.

Dans le git, on trouve le code écrit par S. W. Harden, et un petit programme écrit dans l'objectif de se familiariser avec les opérations de statistique de NumPy.

4. Discussion

Dans ce projet, on obtient de maigres résultats sur le plan technique. On n'a en fin de compte pas réussi à produire un électrocardiographe fonctionnel et conséquemment aucune expérimentation sur le sommeil n'a été menée. En outre, on a tenté de trouver le problème qui rendait la lecture du signal cardiaque impossible, mais il n'a été ni compris ni résolu. À travers cette recherche on a cependant appris à utiliser un oscilloscope, ce qui a permis de voir le phénomène d'induction, et de mettre en pratique, dans les différentes manières de lire le signal, des notions de physique apprises en cours. Il est probable que le problème n'ait pas été abordé sous le bon angle. Ainsi, on n'a pas remis le matériel en question : si les électrodes ont été contrôlées, on n'a pas émis l'hypothèse qu'il n'était simplement pas possible de capter le signal cardiaque avec celles-ci, il aurait été tout à fait envisageable de les remplacer par des électrodes trouvées sur le commerce, ou d'améliorer la conductivité de celles-ci en appliquant du gel conductif sur la peau. D'autre part, on n'a pas remis en question l'amplificateur utilisé, celui-ci étant neuf on a supposé qu'il fonctionnait. Considérant le hardware, on a découvert le diviseur de tension ainsi que son utilisation, et il en va de même pour l'amplificateur opérationnel, dont on a pu comprendre le fonctionnement. On constate aussi que sur les trois soudures visibles sur la Figure 4, qui se trouvent de gauche à droite dans l'ordre où elles ont été soudées, on a fait de nets progrès en soudure.

Comme la classe Python créée par S. W. Harden était fournie sans documentation, on a dû prendre connaissance de la documentation sur le classes Python afin de la comprendre et ce fut une lecture fort enrichissante. Il s'agit de notions qui ont été largement intégrées et qui seront probablement utiles à l'avenir. Pour le programme go.py, on ne peut émettre aucune hypothèse sur la raison de l'erreur, les différentes options connues ayant toutes été infructueuses.

Globalement, le problème principal à la cause de l'échec technique de ce projet est qu'on est parti du principe que tout marchait et que le projet de S. W. Harden a été repris tel quel. Il aurait fallu partir de zéro, s'approprier l'emploi du diviseur de tension, de l'amplificateur opérationnel au travers de petites expériences, et le problème n'aurait alors soit pas pris place soit été résolu. Ce qui s'est cette fois produit est qu'on s'est retrouvé devant un appareil dont le fonctionnement nous dépassait et dont les problèmes nous dépassaient en conséquence.

Un manque de rigueur peut être mis en cause. Les expériences successives avec l'oscilloscope et le software ont été menées dans un ordre peu clair, et il aurait par exemple été pertinent de tenir un "procès-verbal" des différentes méthodes utilisées, des résultats qui en sont ressortis ainsi que de quelques observations faites.

Bien qu'on n'ait mené aucune expérimentation sur le sommeil, ce qui, au vu de la façon dont on a résolu les problèmes rencontrés, aurait donné peu de résultats, on peut mettre en lumière ce qui a tout de même été appris. Le principe des cycles et des phases de sommeil était déjà connu, mais l'étude de Penzel (2003) a permis d'aller plus loin sur les conséquences de ces phases, c'est-à-dire qu'en sommeil profond le cerveau contrôlera moins le système nerveux sympathique, d'où la diminution de la régularité de la fréquence cardiaque.

Du point de vue personnel, outre les nouvelles notions acquises et déjà évoquées, ce projet m'a permis de me concentrer sur un sujet qui me tenait à cœur, et j'ai pu malgré mon insuccès gagner en autonomie et, à travers la recherche des problèmes, apprendre à mieux remettre en question mon travail et celui des autres. Si je peux tirer une leçon de mon projet (et de son échec partiel), c'est qu'on ne peut pas s'appuyer sur le travail d'un autre sans savoir de quoi il retourne. Enfin, un point peut-être capital est que je n'ai pas demandé d'aide pour la résolution de mes problèmes, particulièrement à l'auteur de l'électrocardiographe.

5. Conclusion

Les résultats obtenus remplissent un objectif : celui de réaliser un électrocardiographe, or celui-ci n'est même pas entièrement atteint puisqu'on n'a réussi à le faire fonctionner. Cela est dû au fait qu'on n'a pas réussi à résoudre les problèmes rencontrés. De nouvelles notions ont cependant été acquises, ce qui confère au projet un intérêt même avec du recul.

Pour aller plus loin avec ce projet, il faudra se mettre en mesure de mieux comprendre les notions inhérentes au système en question, et essayer de remplacer les électrodes. La remise en question de ces dernières permet de s'interroger sur l'intensité des impulsions électriques du cœur et sur le fonctionnement et les limites réelles d'un électrocardiographe. Avec des électrodes, on peut aussi faire un électroencéphalogramme, ce qui serait aussi digne d'intérêt lorsqu'on traite les phases de sommeil, mais encore de la stimulation nerveuse transcutanée, ce qui permet de contracter les muscles en envoyant une impulsion dans une électrode. Si on charge un gros condensateur, qu'on prend deux électrodes et qu'on les colle sur la poitrine, en réfléchissant en outre à des aspects sécuritaires, on peut enfin arriver à un défibrillateur.

Références

Notes

[1] La Bible, auteurs inconnus, diverses éditions

[2] Données concernant les cycles de sommeil et la variabilité de la fréquence cardiaque : Thomas Penzel et al., Dynamics of heart rate and sleep stages in normals andpatients with sleep apnea in Neuropharmacopsychology, 2003, Nature Publishing Group.

[3] Explications concernant les phases de sommeil : National Institute of Neurological Disorders and Stroke, Brain Basics: Understanding Sleep, https://www.ninds.nih.gov/Disorders..., consulté le 17 avril 2018.

[4] Explication de la méthode utilisée par les bracelets FitBit : Danielle Kosecki, Your Heart rate is the key to smarter sleep stages. Here's why., Fitbit blog : https://blog.fitbit.com/heart-rate-..., consulté le 21 avril 2018.

[5] Définitions de l'électrocardiographe et de l'électrocardiogramme: outil Dictionnaire, Encyclopaedia Universalis, https://www.universalis.fr/, consulté le 5 avril 2018.

[6] Description de l'électrocardiographe et présentation de la classe Python (en anglais): Scott W. Harden, DIY ECG with 1 op-amp, https://www.swharden.com/wp/2016-08..., consulté le 5 avril 2018.