Table des matières:
- Étape 1: Brève description
- Étape 2: Alimentation LiPo - Schémas, pièces et assemblage
- Étape 3: Récepteur RH et enregistreur de données - Schémas, pièces et assemblage
- Étape 4: Récepteur HR - Simulation d'épices
- Étape 5: Logiciel
- Étape 6: configuration initiale et test
- Étape 7: Utilisation - Analyse du signal médical
Vidéo: Enregistreur de données cardio : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Bien qu'aujourd'hui de nombreux appareils portables (bandes intelligentes, montres intelligentes, smartphones, …) soient disponibles pour détecter la fréquence cardiaque (FC) et effectuer une analyse des traces, les systèmes basés sur les ceintures pectorales (comme celui dans la partie supérieure de l'image) sont toujours répandu et utilisé, mais sans possibilité d'enregistrer et d'exporter la trace des mesures.
Dans mon précédent Instructable Cardiosim, j'ai présenté un simulateur de ceinture pectorale (Cardio) expliquant que l'une de mes prochaines étapes consistait à développer un enregistreur de données de fréquence cardiaque. Je suis maintenant prêt à le présenter dans ce Instructable. La fonction de cet appareil portable est de recevoir le signal FC envoyé par une ceinture pectorale (ou le simulateur Cardiosim) lors d'une séance d'entraînement (entraînement/vélo/course à pied, …) et d'enregistrer le tracé sur une carte SD, afin de effectuer une analyse des performances après la formation (voir détails dans le dernier chapitre).
L'unité est alimentée par un système de batterie rechargeable, comprenant un circuit de charge et un régulateur de suralimentation CC.
De mon "entrepôt" de matériel inutilisé, j'ai repêché un boîtier en plastique adapté (135 mm x 45 mm x 20 mm) et j'y ai adapté la disposition du circuit à assembler, en réalisant un prototype fonctionnel qui répond à mes besoins (mais dont la réalisation laisse place à amélioration:-))
Étape 1: Brève description
Veuillez vous référer à l'étape 1 du Cardiosim Instructable pour une introduction rapide sur la technologie LFMC (communication magnétique basse fréquence) utilisée par ce type d'appareils.
Ma première intention était d'utiliser le module Sparkfun RMCM01 comme interface de réception, mais ce produit n'est plus disponible (sans parler du fait qu'il était de toute façon assez cher).
Cependant, en cherchant sur le WEB, j'ai trouvé ce Tutoriel intéressant, qui montre quelques solutions alternatives pour remplacer le RMCM01. J'ai choisi la 3ème option ("Peter Borst Design", merci Peter!), obtenant un excellent résultat en utilisant les mêmes composants L/C du Cardiosim, cependant connectés ici en tant que réservoir résonant parallèle. Le signal détecté est amplifié, "nettoyé", décodé et transmis à un microcontrôleur Arduino Pro Mini. Le programme valide les impulsions reçues, mesure la fréquence cardiaque (ou mieux l'intervalle entre deux impulsions successives) et stocke tous les intervalles mesurés dans un fichier texte ASCII (une ligne par impulsion valide, 16 caractères chacun comprenant l'intervalle, l'horodatage et LF/CR) dans la carte microSD. En supposant une fréquence cardiaque moyenne de 80 bpm, une heure d'enregistrement ne nécessite que (4 800 lignes de texte x 16 caractères) = 76 800 / 1024 = 75 Ko, donc même une carte SD de 1 Go bon marché offre une grande capacité d'enregistrement.
Pendant l'enregistrement, vous pouvez insérer des lignes de repère pour diviser la trace et évaluer séparément différentes phases de session.
Étape 2: Alimentation LiPo - Schémas, pièces et assemblage
L'alimentation occupe le fond du boîtier. À l'exception du potentiomètre, aucun composant ne dépasse 7 mm de hauteur, ce qui laisse de la place pour monter le récepteur HR et le circuit du microcontrôleur au-dessus de l'alimentation.
J'ai utilisé les pièces suivantes:
- Batterie LiPo 3,7 V (n'importe quelle batterie de téléphone peut être recyclée, la capacité réduite n'est pas un problème ici)
- Module de charge USB TP4056, je l'ai acheté ici
- Convertisseur boost DC SX1308, je l'ai acheté ici
- Petite planche de prototypage 40 x 30 mm
- Câble avec connecteur JST 2, 54mm 2 broches, comme celui-ci
- (optionnel) Connecteur JST 2mm 2 broches, comme celui-ci
-
(optionnel) Câble avec connecteur JST 2mm 2 broches, comme celui-ci
L'utilisation des deux derniers éléments dépend de la batterie que vous utiliserez et de la manière dont vous comptez la connecter au module de chargeur. Je suggère le connecteur JST de 2 mm car de nombreuses batteries sont livrées avec un câble déjà attaché et une prise de 2 mm, toute autre solution est adéquate du moment qu'elle permet un remplacement facile de la batterie si nécessaire. Dans tous les cas, veillez à éviter les courts-circuits entre les pôles de la batterie lors du montage.
Le module TP4056 est alimenté par un port micro USB et est conçu pour charger des batteries au lithium rechargeables en utilisant la méthode de charge à courant constant / tension constante (CC/CV). En plus de charger en toute sécurité une batterie au lithium, le module fournit également la protection nécessaire requise par les batteries au lithium.
Le SX1308 est un convertisseur réglable DC/DC à haut rendement qui maintient la tension de sortie constante à +5V avec une tension d'entrée minimale de 3V, permettant ainsi l'exploitation complète de la capacité de la batterie. Ajustez la tension de sortie avec le potentiomètre à +5V avant de connecter le circuit du microcontrôleur !
La consommation totale du Data Logger est d'environ 20mA, donc même une batterie usagée avec une capacité résiduelle de 200mAh (< 20% de la capacité initiale d'une batterie de téléphone neuve) permettra 10 heures d'enregistrement. Le seul inconvénient est que le courant de repos du SX1308 est d'environ 2mA, il vaut donc mieux débrancher la batterie si vous n'utilisez pas le Data Logger pendant une longue période.
En raison de leur petite taille, les deux modules doivent être fixés à l'aide des trous de connexion pour la connexion électrique et mécanique avec la carte de prototypage, à travers de courts morceaux de fil de cuivre. À son tour, la carte est fixée à la base du boîtier avec une vis de 3 mm x 15 mm (la longueur est suffisante pour fixer le circuit du microcontrôleur ci-dessus avec la même vis). La carte héberge le connecteur JST 2mm pour la batterie (disponible uniquement en version SMD, mais en repliant les broches verticalement vous pouvez la "tourner" dans une version PTH) et tous les câblages selon les schémas. Juste pour être sûr, j'ai collé le corps du connecteur à la carte en obtenant une bonne étanchéité mécanique.
La batterie est placée à plat dans la zone restante du fond du boîtier, et derrière elle se trouve une seconde vis de 3 mm x 15 mm avec une entretoise verticale de 8 mm pour éviter les contacts entre le haut de la batterie (qui est de toute façon isolé) et le bas du circuit supérieur.
Étape 3: Récepteur RH et enregistreur de données - Schémas, pièces et assemblage
Le plateau principal se compose de:
- Carte de prototypage 40 mm x 120 mm
- Inductance 39mH, j'ai utilisé BOURNS RLB0913-393K
- 2 x Condensateur 22nF
- Condensateur 4.7nF
- Condensateur 47nF
- Condensateur 39pF
- Condensateur électrolytique 10uF/25V
- Condensateur électrolytique 1uF/50V
- 3 x résistance 10K
- 2 x Résistance 100K
- 3 x résistance 1K
- 4 x Résistance 220R
- Résistance 1M
- Résistance 47K
- Résistance 22K
- Potentiomètre 50K
- Diode 1N4148
- LED 3mm Bleu
- 2 x LED 3mm Vert
- LED 3mm Jaune
- LED 3mm Rouge
- Amplificateurs opérationnels à double entrée JFET à faible bruit TL072P
- Gâchette de Schmitt à inversion hexagonale 74HC14
- Connecteur JST 2.54mm 2 Pin, comme celui-ci
- 2 x micro-interrupteurs, type Alcoswitch
- Microcontrôleur Arduino Pro Mini, 16MHz 5V
- Module carte micro SD SPI 5V de DFRobots
La fréquence de résonance du réservoir résonant parallèle composé de L1 et C1 est d'environ 5,4 kHz, ce qui correspond suffisamment aux 5,3 kHz de la porteuse du champ magnétique du signal transmis pour le convertir en tension. Rappelez-vous que, dans la plupart des cas, la porteuse est modulée sur la base d'un simple format OOK (On-OFF Keying), où chaque impulsion cardiaque commute la porteuse "ON" pendant environ 10 ms. Le signal détecté est très faible (généralement une onde sinusoïdale de 1 mV à une distance de 60 à 80 cm de la source, à condition que l'axe de l'inductance soit correctement aligné avec le champ magnétique), il doit donc être soigneusement amplifié pour éviter les interférences et les faux détections. Le circuit proposé est le résultat de mes meilleurs efforts et d'heures d'essais dans différentes conditions. Si vous souhaitez approfondir cet aspect - et peut-être l'améliorer - jetez un œil à l'étape suivante, sinon vous pouvez l'ignorer.
Les portes Schmitt Trigger suivantes effectuent la numérisation et une fonction de détection de crête, restaurant le signal de modulation d'origine, qui est transmis à l'Arduino Pro Mini.
La carte microcontrôleur Pro Mini est parfaite pour ce projet car le cristal embarqué permet une haute précision des mesures (qui sont essentielles du point de vue "médical", voir dernière étape), et en même temps elle est libre de toute autre appareil inutile, ce qui entraîne une faible consommation d'énergie. Le seul inconvénient est que pour charger le code vous aurez besoin d'une interface FTDI pour connecter le Pro Mini au port USB de votre ordinateur. Le Pro Mini est connecté à:
- Commutateur S1: démarrer l'enregistrement
- Commutateur S2: insérer un marqueur
- LED bleue: clignote lorsqu'une impulsion valide est détectée
- LED verte: enregistrement démarré
- LED jaune: Marqueur inséré (clignotement court) / Timeout (fixe)
- Module de carte MicroSD (via le bus SPI)
Contrairement à de nombreux modules de carte SD qui fonctionnent à 3,3 V, le module DFRobot fonctionne à 5 V, donc aucun décaleur de niveau n'est nécessaire.
Quant au montage, vous remarquerez peut-être que j'ai divisé la carte de prototypage en deux morceaux, reliés par deux petits "ponts" de fil de cuivre rigide de 1 mm. Cela a été nécessaire pour élever le module de carte MicroSD à un troisième "niveau de construction" et l'aligner avec le renfoncement que j'ai sculpté sur le boîtier, juste au-dessus de la fente pour le port USB. De plus, j'ai sculpté trois évidements sur la carte elle-même, un pour accéder au potentiomètre du convertisseur DC/DC, un autre pour accéder au connecteur du bus série de l'Arduino Pro Mini (monté "face vers le bas"), et le troisième pour le inductance.
Étape 4: Récepteur HR - Simulation d'épices
Partant du design de Peter Borst que j'ai évoqué précédemment, mon objectif était d'essayer d'étendre au maximum la plage de détection, tout en limitant la sensibilité aux interférences et la génération de fausses impulsions.
J'ai décidé de changer la solution d'ampli-op unique d'origine car elle s'est avérée trop sensible aux interférences, probablement parce que la valeur de la résistance de retour de 10M est trop élevée, et de diviser le gain global en deux étapes.
Les deux étages ont un gain DC G = 100, diminuant autour de 70 @5,4 KHz, mais avec une impédance d'entrée différente pour optimiser la sensibilité.
Supposons donc que la tension du signal le plus faible généré par le réservoir LC soit de 1 mV.
Si nous transposons l'ensemble du circuit récepteur dans un environnement Spice (j'utilise ADIsimPE) en remplaçant le circuit parallèle LC par un générateur sinusoïdal de même tension et fréquence (5,4KHz) et exécutons la simulation, nous remarquons que la tension de sortie V1 du 1er l'amplificateur est toujours une onde sinusoïdale (en raison du facteur d'échelle, l'onde sinusoïdale d'entrée n'est pas appréciable), ti l'amplificateur fonctionne dans la zone linéaire. Mais après la deuxième étape, la tension de sortie V2 montre que nous atteignons maintenant la saturation (Vhigh = Vcc-1.5V / Vlow = 1.5V). En fait, la famille TL07x n'est pas conçue pour une plage de sortie rail à rail, mais cela suffit pour dépasser avec une marge de sécurité les deux niveaux de seuil de la porte Schmitt Trigger et générer une onde carrée propre (V3).
Étape 5: Logiciel
En raison du gain élevé de l'étage récepteur et malgré l'étage de détection de crête agissant essentiellement comme un filtre passe-bas, le signal d'entrée sur la broche D3 de l'Arduino Pro Mini peut toujours être fortement perturbé et doit être pré-traité numériquement via un contrôle de validité contre les fausses détections. Le code garantit que deux conditions sont remplies pour considérer une impulsion comme valide:
- L'impulsion doit durer au moins 5 ms
- L'intervalle minimum acceptable entre deux impulsions successives est de 100ms (correspondant à 600 bpm, bien au-delà de la limite d'une tachycardie sévère !)
Une fois le pouls validé, l'intervalle (en ms) par rapport au précédent est mesuré et stocké sur la carte SD dans un fichier "datalog.txt", accompagné d'un horodatage au format hh:mm:ss, où 00:00: 00 représente l'heure de la dernière réinitialisation du microcontrôleur. Si la carte SD est manquante, la LED rouge s'allume pour indiquer une erreur.
Une nouvelle trace d'enregistrement peut être démarrée/arrêtée avec le commutateur Start/Stop S1, et sera identifiée par une ligne de repère ";Start" et ";Stop" respectivement au début et à la fin du fichier texte.
Si aucune impulsion n'est détectée pendant une durée supérieure à 2400 ms (25 bpm), une ligne de repère ";Timeout" est placée dans le fichier et la LED jaune D4 est allumée.
Si le Marker Switch S2 est enfoncé pendant l'enregistrement, une ligne de marqueur supplémentaire au format ";MarkerNumber", avec incrémentation automatique du numéro de marqueur à partir de 0, est écrite dans le fichier et la LED jaune clignote brièvement.
Attaché le code Arduino complet.
Étape 6: configuration initiale et test
Étape 7: Utilisation - Analyse du signal médical
La forme de l'enceinte que j'ai utilisée est suffisamment proche de celle d'un smartphone pour que vous puissiez trouver sur le marché plein d'accessoires pour la porter ou la monter sur un équipement de sport. En particulier pour le vélo, je peux suggérer le support universel pour smartphone nommé "Finn", produit par la société autrichienne Bike Citizens. Pas cher (15,00 €) et facile à monter, il est vraiment universel et comme vous pouvez le voir sur la photo parfait aussi pour le Cardio Data Logger
La façon la plus simple d'utiliser les données brutes enregistrées par l'enregistreur de données est de les tracer dans un graphique à l'aide de programmes PC standard (par exemple Excel). En comparant les graphiques obtenus en répétant le même exercice, ou en analysant la corrélation entre les variations de FC et les efforts physiques, vous pouvez optimiser le dosage des forces pendant l'activité.
Mais le plus grand intérêt est l'étude de la HR, et en particulier de la Variablity HR (HRV), à des fins médicales. Contrairement à un tracé ECG, le tracé HR ne contient pas d'informations directes sur le fonctionnement du muscle cardiaque. Cependant, son analyse d'un point de vue statistique permet d'obtenir d'autres informations d'intérêt clinique.
La source de connaissances la plus complète sur HRV est la société finlandaise KUBIOS. Sur leur site, vous pouvez trouver de nombreuses informations sur les signaux biomédicaux et vous pouvez télécharger "KUBIOS HRV Standard", un logiciel gratuit d'analyse de la variabilité de la fréquence cardiaque pour la recherche non commerciale et l'usage personnel. Cet outil vous permet non seulement de tracer des graphiques à partir d'un simple fichier texte (vous devez supprimer les horodatages) mais également d'effectuer des évaluations statistiques et mathématiques (y compris FFT) et de produire un rapport incroyablement détaillé et précieux, comme celui joint ci-dessous.
N'oubliez pas que seul un médecin spécialisé est en mesure de décider quels examens sont nécessaires pour la pratique du sport à tous les niveaux, et d'évaluer leurs résultats.
Ce Instructable a été écrit dans le seul but de créer de l'intérêt et du plaisir dans l'application de l'électronique aux soins de santé.
J'espère que ça vous a plu, les commentaires sont les bienvenus !
Conseillé:
Enregistreur de données GPS Cap : 7 étapes (avec photos)
Enregistreur de données GPS Cap : voici un excellent projet de week-end, si vous aimez faire de la randonnée ou de longues balades à vélo et que vous avez besoin d'un enregistreur de données GPS pour garder une trace de toutes vos randonnées/tours que vous avez effectués… Une fois que vous avez terminé la construction et téléchargé les données du module GPS du tr
Comment faire un enregistreur de données en temps réel d'humidité et de température avec Arduino UNO et carte SD - Simulation d'enregistreur de données DHT11 dans Proteus : 5 étapes
Comment faire un enregistreur de données en temps réel d'humidité et de température avec Arduino UNO et carte SD | Simulation de l'enregistreur de données DHT11 dans Proteus : Introduction : salut, c'est Liono Maker, voici le lien YouTube. Nous réalisons un projet créatif avec Arduino et travaillons sur des systèmes embarqués. Enregistreur de données : un enregistreur de données (également un enregistreur de données ou un enregistreur de données) est un appareil électronique qui enregistre des données au fil du temps avec
Enregistreur de données GPS bricolage pour votre prochain trajet / sentier de randonnée : 11 étapes (avec photos)
Enregistreur de données GPS bricolage pour votre prochain trajet / sentier de randonnée : il s'agit d'un enregistreur de données GPS que vous pouvez utiliser à plusieurs fins, par exemple si vous souhaitez enregistrer votre long trajet en voiture que vous avez pris le week-end pour vérifier les couleurs d'automne. ou vous avez un sentier préféré que vous visitez chaque année à l'automne et vous v
Lecteur/enregistreur ScanUp NFC et enregistreur audio pour aveugles, malvoyants et autres : 4 étapes (avec photos)
Lecteur/enregistreur ScanUp NFC et enregistreur audio pour aveugles, malvoyants et autres : j'étudie le design industriel et le projet est le travail de mon semestre. L'objectif est de soutenir les personnes malvoyantes et aveugles avec un appareil, qui permet d'enregistrer de l'audio au format .WAV sur une carte SD et d'appeler cette information par un tag NFC. Alors dans
Faire un enregistreur de données avec le Raspberry Pi : 3 étapes (avec photos)
Faire un enregistreur de données avec le Raspberry Pi : Cet enregistreur de données simple prend des mesures de lumière régulières avec un LDR analogique (photorésistance) et les stocke dans un fichier texte sur votre Raspberry Pi. Cet enregistreur de données mesurera et enregistrera le niveau de lumière toutes les 60 secondes, vous permettant de surveiller l'h