Gli intervalli del battito cardiaco possono essere rilevati in modo efficiente dal punto di vista energetico utilizzando sensori piezoelettrici economici ed efficienti dal punto di vista energetico, che ovviano alla necessità di utilizzare monitor di battito cardiaco complessi come l’elettrocardiogramma o il fotopletismogramma (un metodo basato su led molto rumoroso e che richiede molta energia). Inoltre, i nostri esperimenti mostrano che i sensori piezo possono misurare gli intervalli del battito cardiaco su molti posizioni diverse del corpo, fra cui petto, polso, vita, collo e caviglia.
Con i recenti progressi nelle reti di sensori wireless e nelle tecnologie informatiche incorporate, la popolarità di dispositivi indossabili, come ad esempio il FitBit e l’Apple Watch, sono alle stelle. Un recente sondaggio mostra che il mercato dei dispositivi indossabili è pieno di centinaia di diversi tipi di prodotti, tra cui occhiali intelligenti, gioielli intelligenti, indumenti elettronici, patch per la pelle e persino impianti di dispositivi medici che forniscono servizi sanitari e/o di altro tipo avanzati.
Negli attuali dispositivi indossabili, le letture dell’intervallo fra pulsazioni (IPI, o Inter-Pulse Interval) vengono solitamente campionati da sensori di elettrocardiogramma (ECG) o fotopletismogramma (PPG): vedi, rispettivamente, il nostro articolo sull’elettrocardiogramma, che trovi qui, e quello sul pulsossimetro, che trovi qui. Nel frattempo, gli studi mostrano anche che il segnale del battito cardiaco può essere misurato dagli accelerometri presenti nello smartphone e usato per estrarre l’IPI.
Un sensore di impulsi cardiaci compatibile con Arduino (che puoi trovare qui): è un sensore IR con una fotocellula che viene utilizzata per emettere e rilevare la luce infrarossa. È essenzialmente un fotopletismografo, che è un noto dispositivo medico non invasivo utilizzato per il monitoraggio della frequenza cardiaca.
Sfortunatamente, i metodi basati sull’accelerometro possono misurare solo il sismocardiogramma (SCG), che è il movimento del torace in risposta al battito cardiaco e non riesce a rilevare i battiti cardiaci in altre posizioni, come ad es. il polso. Inoltre, un altro vantaggio del sensore di vibrazione piezoelettrico rispetto al biosensore ECG e all’accelerometro è la sua efficienza in termini di costi ed efficienza energetica, che lo rende più adatto per dispositivi indossabili con risorse limitate.
L’uso di un sensore piezo per rivelare le vibrazioni corporee
La tensione AC generata da un sensore piezoelettrico può essere efficacemente usata non soltanto per il rilevamento e la misurazione delle vibrazioni di sistemi fisici, come illustrato nel nostro articolo Come usare un trasduttore piezoelettrico (che trovi qui) o per la rivelazione di ultrasuoni, come illustrato nel nostro articolo Come rivelare e misurare gli ultrasuoni (che trovi qui), ma anche per il rilevamento e l’analisi delle vibrazioni corporee, ed in particolare di quelle legate al battito del cuore.
La parte (a) della figura qui sotto raffigura due forme d’onda elettrocardiografiche (ECG) tipiche di una persona sana. Un ciclo di battito cardiaco nell’ECG è caratterizzato dalla combinazione di tre deflessioni grafiche (onde Q, R e S), che è anche noto come complesso QRS. Il picco R è la caratteristica più cruciale della forma d’onda di un elettrocardiogramma, in quanto corrisponde al “battito” in un battito cardiaco. Il tempo. L’intervallo tra due picchi R consecutivi è l’intervallo inter-impulso (IPI).
La distanza inter-impulso in rappresentazioni differenti.
Il principio dell’utilizzo dei sensori di vibrazione piezoelettrici per rilevare gli IPI può essere spiegato come segue. Sul petto e in vita, la contrazione del cuore causerà vibrazioni regolari nel torace, creando un tracciato che viene chiamato sismocardiogramma (SCG). Tali vibrazioni possono essere rilevate dal sensore di vibrazione piezoelettrico attaccato al torace e alla vita, come mostrato in figura (b). Dopo ogni battito cardiaco, il sangue viene espulso dal cuore nelle arterie di tutto il corpo.
Al fine di accogliere il sangue, le arterie devono espandersi e restringersi regolarmente e producono un segnale noto come balistocardiogramma (BCG). L’effetto di espansione e rinculo, noto anche come il polso della pressione sanguigna, può essere misurato sulla pelle vicino alle arterie (ad es. l’arteria radiale nel polso). Perciò, se colleghiamo un sensore piezoelettrico vicino all’arteria in altre posizioni (ad es. polso), possiamo estrarre informazioni IPI dalle misure, come mostrato in figura (c).
Un sensore commerciale per la frequenza cardiaca: il cardiofrequenzimetro a fascia della Polar, che puoi trovare ad esempio qui.
Dalla figura precedente, troviamo anche che le curve del ciclo del battito cardiaco misurate da diverse posizioni del corpo non seguono lo stesso modello come tipico complesso QRS. Tuttavia, possiamo applicare un locale punto di picco (massimo o minimo) per rappresentare ciascun battito cardiaco ed estrarre ulteriormente le IPI. Quindi c’è una domanda che dobbiamo porci a questo punto: quanto preciso è l’intervallo inter-impulso misurato da un sensore piezoelettrico?
A tal fine, confrontiamo la precisione di misura di un sensore piezoelettrico con un dispositivo commerciale di monitoraggio della frequenza del cuore Polar H101. I risultati raccolti da alcuni ricercatori su 23 partecipanti mostrano che l’RMSE degli IPI è misurato dai sensori piezo è di solo 6 ms. Dalla figura qui sotto possiamo vedere che gli IPI basati sul sensore piezo sono molto simili a quelli misurati dal biosensore ECG. Pertanto, è possibile utilizzare sensori piezoelettrici per misurare IPI precisi.
Confronto fra sensore piezoelettrico ed elettrocardiografico.
Rimangono due piccoli problemi. In primo luogo, gli IPI misurati da diverse posizioni del corpo sono leggermente diverse. Ad esempio, l’IPI misurato nel polso è leggermente più lungo di quello misurato nel petto. Inoltre, sebbene i sensori piezoelettrici collocati in posizioni diverse del corpo possano catturare contemporaneamente il segnale del battito cardiaco, le misurazioni non corrispondono tuttavia perfettamente e contengono un rumore significativo.
Per estrarre con precisione i valori IPI, si può applicare innanzitutto un filtro sul segnale grezzo per ridurre l’impatto del rumore, che può levigare le curve originali senza cambiare le posizioni dei picchi nelle curve (in alternativa, si può effettuare un filtraggio a livello software). Dopodiché, si può individuare ogni battito cardiaco utilizzando un algoritmo di rilevamento del picco locale. I valori IPI possono essere infine calcolati dalla differenza di tempo di battiti cardiaci consecutivi.
Come misurare il battito cardiaco con un sensore piezo
Se si prende un sensore piezoelettrico di quelli piatti – di tipo ceramico, che abbiamo usato in numerosi altri progetti illustrati in questo sito e che puoi acquistare ad es. qui – e lo si attacca attorno al proprio dito, si possono ottenere valori che costituiscono una rappresentazione priva di rumore della propria frequenza cardiaca. Questa tecnica di misurazione della frequenza cardiaca è ancora più semplice rispetto all’utilizzo dei LED, in quanto richiede solo un sensore piezo e una scheda Arduino.
Valori analogici di un sensore piezoelettrico attaccato al dito acquisiti con Arduino.
Di per sé, il segnale dell’intervallo di battito cardiaco catturato dai sensori di vibrazione piezoelettrica ha un rapporto segnale / rumore (SNR) relativamente basso, perché tali sensori – a differenza dei sensori ECG o degli accelerometri – non sono progettati come cardiofrequenzimetri di precisione o per la misurazione precisa di un movimento. Tuttavia ciò non non è un problema, poiché si può rimediare facilmente a livello software nell’algoritmo di elaborazione dei dati raccolti.
Pertanto, l’intervallo fra pulsazioni misurato dai sensori piezoelettrici contiene un rumore significativo. Quando si definisce una soglia arbitraria (ad esempio metà del valore massimo misurato), il fronte di salita del segnale passerà la soglia una volta per battito cardiaco, rendendo la misurazione semplice come misurare il tempo tra due battiti successivi. Per esempio, ho scelto di calcolare la frequenza cardiaca usando la media delle ultime 16 differenze di tempo tra i battiti.
Puoi trovare qui un codice (sketch) rapido che calcola la frequenza cardiaca e genera la frequenza cardiaca media negli ultimi 16 battiti ad ogni battito. Fai un copia e incolla sul Tuo Arduino IDE e poi caricalo sulla scheda Arduino. Se vuoi provare questo progetto a casa, per realizzare il circuito collega semplicemente l’uscita analogica + (filo rosso) del sensore sul piedino A2 (oppure modifica il codice se vuoi utilizzare un piedino analogico diverso) e quella “-” (filo nero) a GND.
Il sensore piezoelettrico attaccato al dito con dello scotch.
Si noti che, nel ciclo “for (int i = 0; i <64; i ++)” presente nel codice da noi proposto, si è usato “64” per ottenere la media di 64 misurazioni fornite dall’ADC. Ciò aumenta la risoluzione e riduce il rumore. Se lo modifichi in modo che un periodo completo di ronzio a 50 Hz di frequenza sia coperto – ad esempio usando millis () o delay_us () – il rumore di rete (50 Hz) diventa ancora più basso.
Due avvertenze importanti. Innanzitutto, tieni presente che la connessione seriale è impostata su 57600 baud, quindi devi impostarla su tale valore anche nel monitor seriale. In secondo luogo, poiché se batti inavvertitamente sul sensore piezo puoi generare una tensione elevata (finanche 25 V o più), per non danneggiare la scheda Arduino occorre prevedere un qualche tipo di protezione dalle sovratensioni: ad esempio, un diodo zener di protezione fra l’ingresso analogico e Vdd.
Un modo tipico per proteggere l’ingresso analogico di Arduino dalle sovratensioni. La resistenza serve per limitare la corrente che fluisce in Arduino se qualcosa dovesse andare storto.
Meglio ancora, però, è se il segnale prodotto dal sensore piezoelettrico è anche ridotto opportunamente in tensione (cioè “condizionato”) tramite un partitore di tensione oppure è acquisito con l’apposito modulo di Arduino (vedi il nostro articolo Misurare una tensione DC, AC o PWM con Arduino, che trovi qui), e quindi convertito in dati digitali da Arduino stesso. Usando la comunicazione seriale, i dati saranno inviati a un computer per la visualizzazione e ulteriori analisi. Dai risultati della misurazioni, è risultato che il sistema funziona meglio quando il sensore piezoelettrico viene posizionato sul polso rispetto al petto.