Vous êtes sur la page 1sur 20

Surveillez la fréquence

cardiaque à l'aide du capteur de


pouls et d'Arduino

Le capteur de pouls est un capteur de fréquence cardiaque plug-and-play de


faible puissance bien conçu pour l'Arduino. Il peut être utilisé par les étudiants,
les artistes, les athlètes, les fabricants et les développeurs de jeux et mobiles
qui souhaitent intégrer des données de fréquence cardiaque en direct dans
leurs projets.

Et la meilleure partie est que ce capteur se branche directement sur Arduino et


se clipse facilement sur un doigt ou un lobe d'oreille. Il est également très petit
(en forme de bouton) avec des trous, de sorte qu'il peut être cousu dans le
tissu.

Le saviez-vous?
Le capteur d'impulsions est un appareil open source créé à l'origine
par PulseSensor.com . Ils ont commencé en 2011 en tant que projet
Kickstarter. En 2013, 491 bailleurs de fonds ont promis 18 418 $ pour aider à
concrétiser ce projet.

Présentation du matériel
L'avant du capteur est le côté avec le logo du cœur. C'est là que vous placez
votre doigt. Sur la face avant, vous verrez un petit trou rond, d'où brille la LED
verte montée à l'envers du Kingbright.

Juste en dessous de la LED se trouve un petit capteur photo de lumière


ambiante - APDS-9008 d'Avago , similaire à celui utilisé dans les téléphones
portables, tablettes et ordinateurs portables, pour régler la luminosité de
l'écran dans différentes conditions d'éclairage.

À l'arrière du module, vous trouverez le reste des composants, y compris


l'ampli-op MCP6001 d'une micropuce et un tas de résistances et de
condensateurs qui composent le réseau de filtres R / C. Il existe également
une diode de protection inverse pour éviter tout dommage si les câbles
d'alimentation sont accidentellement inversés.
Le module fonctionne à partir d'une alimentation de 3,3 à 5 V CC avec un
courant de fonctionnement <4 mA.

Voici les spécifications techniques:

VCC 3,0 à 5,5 V

Notes maximales IMax (consommation de courant maximum) <4 mA

VOut (plage de tension de sortie) 0.3V à Vcc

Sortie LED 565 nm


Longueur d'onde
Entrée de capteur 525 nm

L xl (PCB) 15,8 mm (0,625 ″)


Dimensions
Longueur de fil 20 cm (7,8 pouces

Comment fonctionne le capteur


d'impulsions?
Les capteurs optiques de fréquence cardiaque sont très faciles à comprendre
en théorie. Si vous avez déjà brillé une lampe de poche à travers le bout de vos
doigts et vu votre rythme cardiaque, vous maîtrisez bien la théorie des
capteurs optiques de fréquence cardiaque.
Un capteur cardiaque ou tout autre capteur de fréquence cardiaque optique,
d'ailleurs, fonctionne en projetant une lumière verte (~ 550 nm) sur le doigt et
en mesurant la quantité de lumière réfléchie à l'aide d'un capteur photo.

Cette méthode de détection des impulsions par la lumière est


appelée photopléthysmogramme .

L'hémoglobine oxygénée dans le sang artériel a la particularité d'absorber la


lumière verte. Plus le sang est rouge (plus l'hémoglobine est élevée), plus la
lumière verte est absorbée. Au fur et à mesure que le sang est pompé à travers
le doigt à chaque battement cardiaque, la quantité de lumière réfléchie change,
créant une forme d'onde changeante à la sortie du capteur photo.
Au fur et à mesure que vous continuez à éclairer et à prendre des lectures du
capteur photo, vous commencez rapidement à obtenir une lecture du pouls
cardiaque.

Ce signal du capteur photoélectrique est généralement petit et bruyant, par


conséquent, le signal est passé à travers un réseau de filtres R / C, puis
amplifié à l'aide d'un amplificateur opérationnel pour créer un signal beaucoup
plus grand, plus propre et plus facile à détecter.

Brochage du capteur d'impulsions


Le capteur est livré avec un câble plat plat de 24 ”avec 3 connecteurs
mâles. Le schéma suivant montre le brochage.

S (signal)est la sortie du signal. Se connecte à l'entrée analogique d'un Arduino.


+ (VCC)est la broche VCC. Se connecte à 3,3 ou 5V.
- (GND) est la broche de mise à la terre.
Avertissement:

Souvent, le câble n'est pas codé par couleur, alors assurez-vous de regarder
les marques à l'arrière du module pour vous assurer que vous avez
l'identification correcte des trois fils.
Câblage du capteur d'impulsions avec
Arduino
Connecter le capteur d'impulsions à un Arduino est super simple. Il vous suffit
de connecter trois fils: deux pour l'alimentation et un pour la lecture de la
valeur du capteur.

Le module peut être alimenté en 3,3 ou 5V. La tension positive se connecte à


«+» et la terre se connecte à «-». Le 3ème fil `` S '' est la sortie de signal
analogique du capteur et cela se connectera à l'entrée analogique A0 d'un
Arduino.

Voici le branchement pour les expériences avec le capteur d'impulsions:

Installation de la bibliothèque
Afin d'exécuter les croquis suivants, vous devrez installer une bibliothèque
appelée «PulseSensor Playground».

Pour installer la bibliothèque, accédez à Sketch> Inclure la bibliothèque> Gérer


les bibliothèques… Attendez que Library Manager télécharge l'index des
bibliothèques et met à jour la liste des bibliothèques installées.
Filtrez votre recherche en tapant «pulsesensor» . Il ne devrait y avoir qu'une
seule entrée. Cliquez dessus, puis sélectionnez Installer.
Exemples de croquis PulseSensor
La bibliothèque PulseSensor contient un certain nombre d'exemples de
croquis. Nous allons passer en revue quelques-uns d'entre eux ici, mais vous
pouvez également essayer les autres. Vous pouvez utiliser ces exemples de
croquis comme base pour développer votre propre code.

Pour accéder aux exemples de croquis, accédez à Fichier> Exemples> Terrain


de jeu PulseSensor Vous verrez une sélection d'exemples de
croquis. Sélectionnez l'un d'entre eux pour charger l'esquisse dans votre
IDE. Commençons par le GettingStartedProject .

Code Arduino de base - Clignez avec le


rythme cardiaque
Chargez le croquis GettingStartedProject à partir des exemples de croquis
dans votre IDE Arduino. Ceci est un croquis Arduino de base. Allez-y et
téléchargez-le sur votre Arduino et placez le capteur d'impulsions sur le bout
de votre doigt. Vous devriez voir la LED intégrée d'Arduino clignoter avec votre
rythme cardiaque!

int const PULSE_SENSOR_PIN = 0; // 'S' Signal pin connected to A0

int Signal; // Store incoming ADC data. Value can range from 0-
1024
int Threshold = 550; // Determine which Signal to "count as a beat" and
which to ignore.

void setup() {
pinMode(LED_BUILTIN,OUTPUT); // Built-in LED will blink to your
heartbeat
Serial.begin(9600); // Set comm speed for serial plotter
window
}

void loop() {

Signal = analogRead(PULSE_SENSOR_PIN); // Read the sensor value

Serial.println(Signal); // Send the signal value to


serial plotter

if(Signal > Threshold){ // If the signal is above


threshold, turn on the LED
digitalWrite(LED_BUILTIN,HIGH);
} else {
digitalWrite(LED_BUILTIN,LOW); // Else turn off the LED
}
delay(10);
}

Explication du code
Le croquis est super simple. Il commence par définir les broches utilisées pour
connecter le capteur d'impulsions. Deux variables sont également
définies; le Signalcontient les données ADC entrantes et le Thresholddétermine
le signal à «compter comme un battement» et celui à ignorer.

int const PULSE_SENSOR_PIN = 0;

int Signal;
int Threshold = 550;

Dans la configuration, nous définissons la broche LED intégrée (broche 13)


comme sortie et configurons le moniteur série.

void setup() {
pinMode(LED_BUILTIN,OUTPUT);
Serial.begin(9600);
}

Dans la boucle, nous lisons le signal analogique du capteur d'impulsions, et


lorsque le signal dépasse une valeur de seuil, nous allumons la LED intégrée.

void loop() {
Signal = analogRead(PULSE_SENSOR_PIN); // Read the sensor value

if(Signal > Threshold){ // If the signal is above


threshold, turn on the LED
digitalWrite(LED_BUILTIN,HIGH);
} else {
digitalWrite(LED_BUILTIN,LOW); // Else turn off the LED
}
delay(10);
}

Vous avez du mal à voir un battement de


cœur?
Si vous rencontrez des difficultés pour voir un battement de cœur, voici ce que
vous devez faire.
1. Si vous tenez le capteur trop fort, vous presserez tout le sang de vos
doigts et il n'y aura aucun signe! Si vous le tenez trop légèrement, vous
inviterez le bruit du mouvement et de la lumière ambiante. La pression de
Sweatspot (ni trop forte, ni trop douce) sur le capteur de pouls donnera un bon
signal de nettoyage.

2. Une pression variable peut entraîner une circulation différente du sang


dans votre doigt, ce qui rend les lectures du capteur bancales. Essayez
d'appliquer une pression constante en attachant le capteur à votre doigt à
l'aide d'un élastique ou d'un autre dispositif de serrage.

3. Essayez le capteur sur différentes parties de votre corps qui ont des
tissus capillaires (comme le lobe de l'oreille ou la lèvre inférieure).

4. Essayez d'ajuster la valeur du seuil. La valeur de seuil indique à Arduino


quand trouver une impulsion valide. Le seuil peut être n'importe quel nombre
compris entre 0 et 1023, mais essayez de l'ajuster par 5 ou 10
étapes. L'abaissement du seuil augmente la sensibilité et vice-versa. Voyez si
vous pouvez trouver une meilleure plage pour votre doigt que la valeur par
défaut.

Code Arduino - Traçage du rythme cardiaque


L' esquisse GettingStartedProject précédente est conçue pour fonctionner
avec le traceur série Arduino, un outil sympa fourni avec l'IDE Arduino pour
visualiser les signaux analogiques en temps réel. Pendant que l'esquisse est
en cours d'exécution et que votre carte Arduino est connectée à l'USB de votre
ordinateur, cliquez sur: Outils> Traceur série

Le signal peut prendre un moment à se stabiliser, mais vous devriez voir


quelque chose comme ça.
Sentez le pouls dans votre poignet et regardez-le imiter les blips.

Code Arduino - Mesure de la fréquence


cardiaque (BPM)
Pour notre deuxième exemple, nous allons essayer de mesurer la fréquence
cardiaque (battements par minute ou BPM). Regardez dans le menu
d'exemples PulseSensor Playground pour Getting_BPM_to_Monitor et chargez-
le dans votre IDE Arduino.
Cette esquisse calcule le temps entre les impulsions pour obtenir la fréquence
cardiaque et l'affiche sur le moniteur série.

Avertissement:

Cette esquisse détecte optiquement la fréquence cardiaque. Cette méthode


est délicate et a tendance à donner de fausses lectures. Veuillez donc NE PAS
l'utiliser pour un diagnostic médical réel.

#define USE_ARDUINO_INTERRUPTS true // Set-up low-level interrupts for most


acurate BPM math
#include <PulseSensorPlayground.h> // Includes the PulseSensorPlayground
Library

const int PulseWire = 0; // 'S' Signal pin connected to A0


const int LED13 = 13; // The on-board Arduino LED
int Threshold = 550; // Determine which Signal to "count as a beat"
and which to ignore

PulseSensorPlayground pulseSensor; // Creates an object

void setup() {
Serial.begin(9600);

// Configure the PulseSensor object, by assigning our variables to it


pulseSensor.analogInput(PulseWire);
pulseSensor.blinkOnPulse(LED13); // Blink on-board LED with
heartbeat
pulseSensor.setThreshold(Threshold);

// Double-check the "pulseSensor" object was created and began seeing


a signal
if (pulseSensor.begin()) {
Serial.println("PulseSensor object created!");
}
}

void loop() {
int myBPM = pulseSensor.getBeatsPerMinute(); // Calculates BPM

if (pulseSensor.sawStartOfBeat()) { // Constantly test


to see if a beat happened
Serial.println("♥ A HeartBeat Happened ! "); // If true,
print a message
Serial.print("BPM: ");
Serial.println(myBPM); // Print the BPM
value
}

delay(20);
}

Après avoir téléchargé le croquis, gardez votre doigt aussi stable que possible
et attendez quelques secondes que les lectures aient un sens. Vous verrez un
résultat comme celui-ci.
Visualiseur de traitement
Les fabricants de Pulse Sensor ont mis au point un logiciel pour visualiser les
données du Pulse Sensor sur votre ordinateur. Il est écrit dans Processing . Ce
logiciel affiche toutes les données que l'Arduino reçoit du capteur
d'impulsions. Il trace le pouls de l'utilisateur en temps réel. Il trace également
le BPM (battements par minute) et l'IBI (intervalle d'intervalle) au fil du temps.

Cette esquisse de traitement n'effectue aucun calcul! Ils sont tous effectués


sur la carte Arduino, vous avez donc besoin d'un Arduino exécutant
le croquis PulseSensor_BPM pour utiliser le visualiseur. Ce logiciel lit
simplement le port série et visualise les données qu'il reçoit.
Télécharger une esquisse
Recherchez dans le menu Fichier> Exemples> Exemples de PulseSensor
Playground PulseSensor_BPM et chargez-le dans votre IDE Arduino.
Avant d'exécuter l'esquisse PulseSensor_BPM, pour que votre carte Arduino
puisse parler au visualiseur, vous devrez modifier une variable
appelée outputTypedans le code Arduino. Par défaut, il est défini
sur SERIAL_PLOTTER. Vous devez le changer en PROCESSING_VISUALIZER.
Ensuite, téléchargez le croquis Arduino et votre carte est prête à envoyer des
données comme le visualiseur de traitement aime les obtenir!

Installation
Téléchargez le code de traitement depuis github . Décompressez le
téléchargement et prenez le dossier
appelé PulseSensorAmpd_Processing_Visualizer et placez-le dans
votre dossier Documents / Processing .

Ensuite, ouvrez Traitement pour accéder au code via votre dossier


Sketch. Sélectionnez Fichier> Carnet de croquis… et
sélectionnez PulseSensorAmped_Processing_Visualizer
Installer
Le Sketch se lancera et vous serez invité à sélectionner le port USB associé à
votre carte Arduino. Utilisez le bouton Actualiser les ports série pour mettre à
jour la liste des ports si vous ne voyez pas votre Arduino.
Une fois que vous avez sélectionné le bon port, vous commencerez à voir les
données du rythme cardiaque!

Les fonctions
Il y a quelques choses intéressantes que vous pouvez faire pendant que
l'esquisse est en cours d'exécution:

1. Appuyez sur 's' pour prendre une capture d'écran de la fenêtre du


programme. L'image sera enregistrée dans le dossier d'esquisse au format
.jpg

2. Appuyez sur «r» pour remettre les fenêtres de données à zéro.

Vous aimerez peut-être aussi