Misurare il battito cardiaco con Arduino? Certo che sì.

Arduino Uno r3 e il sensore di battito cardiaco (Misurare il battito cardiaco con Arduino)
Arduino Uno r3 e il sensore di battito cardiaco
0
(0)

Vediamo insieme come misurare la frequenza cardiaca con Arduino utilizzando un sensore di battito cardiaco.

Per il tutorial ufficiale, fatto dagli sviluppatori del sensore e della libreria vi rimando al sito www.pulsesensor.com, qua non affronterò l’argomento in maniera dettagliata ma solamente i passaggi necessari per le prime letture.

Come prima cosa è necessario scaricare la libreria PulseSensor Playground, vi rimando alla guida su come aggiungere una libreria su Arduino IDE.

I collegamenti da fare

L’immagine di Fritzing è presa dal tutorial ufficiale.

Collegamenti da effettuare. Noi useremo come led quello già integrato sul pin 13. (Misurare il battito cardiaco con Arduino)

Collegamenti da effettuare. Noi useremo come led quello già integrato sul pin 13.

– (simbolo meno) – GND
+(simbolo più) – 5v
S – pin analogico A0

Lo sketch

Vediamo insieme l’esempio GettingStartedProject presente nella libreria PulseSensor Playground. Commenterò solamente i passaggi meno chiari.

/*  PulseSensor™ Starter Project and Signal Tester
 *  The Best Way to Get Started  With, or See the Raw Signal of, your PulseSensor™ & Arduino.
 *
 *  Here is a link to the tutorial
 *  https://pulsesensor.com/pages/code-and-guide
 *
 *  WATCH ME (Tutorial Video):
 *  https://www.youtube.com/watch?v=82T_zBZQkOE
 *
 *
-------------------------------------------------------------
1) This shows a live human Heartbeat Pulse.
2) Live visualization in Arduino's Cool "Serial Plotter".
3) Blink an LED on each Heartbeat.
4) This is the direct Pulse Sensor's Signal.
5) A great first-step in troubleshooting your circuit and connections.
6) "Human-readable" code that is newbie friendly."

*/


//  Variables
int PulseSensorPurplePin = 0;        // Pulse Sensor PURPLE WIRE connected to ANALOG PIN 0
int LED13 = 13;   //  The on-board Arduion LED


int Signal;                // holds the incoming raw data. Signal value can range from 0-1024
int Threshold = 550;            // Determine which Signal to "count as a beat", and which to ingore.


// The SetUp Function:
void setup() {
  pinMode(LED13,OUTPUT);         // pin that will blink to your heartbeat!
   Serial.begin(9600);         // Set's up Serial Communication at certain speed.

}

// The Main Loop Function
void loop() {

  Signal = analogRead(PulseSensorPurplePin);  // Read the PulseSensor's value.
                                              // Assign this value to the "Signal" variable.

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


   if(Signal > Threshold){                          // If the signal is above "550", then "turn-on" Arduino's on-Board LED.
     digitalWrite(LED13,HIGH);
   } else {
     digitalWrite(LED13,LOW);                //  Else, the sigal must be below "550", so "turn-off" this LED.
   }


delay(10);


}

28 Variabile dove verrà salvato il valore analogico del sensore
29 Valore di soglia sopra il quale dovrebbe riconoscere la presenza di un battito cardiaco. Va calibrato, nel qual caso rilevi sempre un battito bisognerà alzare il valore, diversamente dovrà essere abbassato.
Nota bene: a volte le entrate analogiche ‘impazziscono’, nel senso che le letture dei valori possono essere molto variabili e instabili. Si può provare a cambiare porta, ma di solito è un problema che si risolve da solo nel giro di poco tempo.
42 Lettura sulla porta analogica 0 e salvataggio del valore nella variabile intera di nome Signal precedentemente dichiarata.
48 Se il valore analogico è superiore alla nostra soglia accende il led integrato
50 Altrimenti spegne il led integrato

Guardiamo il nostro battito

Una volta caricato lo sketch, questo è quello che dovreste vedere selezionando Tools>Serial Plotter

Il grafico del mio battito cardiaco (Misurare il battito cardiaco con Arduino)

Il grafico del mio battito cardiaco

Chiaramente sulle x (asse orizzontale) abbiamo il tempo mentre sulle y (asse verticale) abbiamo il valore letto dal sensore.

How to clean a table with a kitty

I picchi alti sono i battiti del nostro cuore. Figo eh?

Spero che anche questo tutorial possa esservi d’aiuto, rimango a disposizione per eventuali bisogni.

Grazie,
Alessandro

Votalo e aiutami a migliorare!

Kite pack, the open source backpack!

Rating medio 0 / 5. Numero di voti 0

Nessun voto per il momento, vuoi essere il primo?

Clicca sul tuo social preferito.

SMILEBACK project - HOW to build the backpanel

Cosa ho sbagliato?

Hai qualche consiglio per migliorare la qualità?

Alessandro Oppo

Alessandro è un milanese che vorrebbe scappare da Milano, è appassionato di informatica ma vorrebbe vivere senza telefono, è un artigiano eppure vorrebbe robotizzare tutto, impara una cosa e già vorrebbe studiare dell’altro. Autodidatta da sempre, gli piace sbattere la testa finché tutto non funziona come vuole lui, spesso ci riesce anche! Il motto che si ripete dentro la testa è: “Se ci sono riusciti gli altri ci posso riuscire anche io”.

Potrebbero interessarti anche...

5 risposte

  1. Sara ha detto:

    Salve,
    io ho comprato un sensore di battito cardiaco e sto provando a farlo funzionare, ho svolto anche questo esempio. Non capisco perchè non mi restituisce il valore effettivo del mio battito cardiaco, anche nell’esempio non capisco che cosa rappresentano quei valori sulle ascisse e le ordinate. Mi saprebbe rispondere? La ringrazio.

    • Alessandro Oppo ha detto:

      Ciao Sara, il sensore è identico a quello usato nel tutorial?
      Sulle ascisse abbiamo il tempo mentre sulle ordinate c’è il valore letto dal sensore.
      Ognuno dei picchi rappresenta un battito cardiaco. Se vuoi sapere quanti battiti il tuo cuore compie in un secondo è possibile farlo aggiungendo un contatore che aumenti ad ogni battito e che stampi il valore dopo un minuto. Se hai bisogno di aiuto dimmelo, intanto cerchiamo di far andare il sensore! Alessandro

  2. sara ha detto:

    Ciao Alessandro ho letto la tua risposta ma il mio sensore continua a non andare !! aiuto!!! non c’è un modo per contattarti in privato? in modo da potermi spiegare meglio se sei disponibile ? Grazie

    • Alessandro Oppo ha detto:

      Ciao Sara, se hai Telegram puoi contattarmi lì, io sono @chiocciolab altrimenti scrivimi pure qui nei commenti e cerco di risponderti al più presto.

      Ma il sensore è identico a quello che ho usato io?

  3. fabio ha detto:

    io ho comprato su ebay: Modulo con sensore frequenza cardiaca battito cardiaco cuore per arduino ID163

    https://www.ebay.it/itm/Modulo-con-sensore-frequenza-cardiaca-battito-cardiaco-cuore-per-arduino-ID163/262770966836?hash=item3d2e5ec134:g:TKwAAOSwEzxYWWq9

    che sembra esattamente il tuo ma non riesco a rilevare il battito anche se vedo un grafico ininterpretabile.
    Sai aiutarmi?

    Fabio

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.