Non ci sono prodotti a carrello.
L’epidemia di Coronavirus che abbiamo vissuto e in un certo senso stiamo ancora vivendo, ha fatto arrivare sulla bocca di tutti termini come polmonite interstiziale, ventilatore polmonare, terapia intensiva e saturimetro; cose che quotidianamente la stampa ha portato nelle nostre case e che fortunatamente sono sempre state estranee a chi non fosse un addetto ai lavori o un ammalato coinvolto direttamente. Ci ha fatto conoscere aspetti che probabilmente non avremmo mai voluto conoscere, ma come ogni accadimento della vita, anche il COVID-19 puรฒ essere lโoccasione per imparare e fare tesoro di quanto abbiamo visto e sentito nostro malgrado. Vista lโattualitร della cosa, abbiamo pensato di dare un volto a uno degli apparati clinici ormai in voga, per il ruolo che ha nel monitorare lo stato di salute di un paziente colto da quella che sembra essere una delle principali complicanze del COVID-19, ossia lโinsufficienza respiratoria: intendiamo il saturimetro, che รจ un dispositivo medico in grado di rilevare il livello di ossigenazione del sangue e quindi la qualitร degli scambi gassosi e lโefficienza dellโapparato respiratorio; il saturimetro elettronico funziona analizzando la trasparenza dei vasi periferici del polpastrello del dito, investito da un raggio di luce di cui si rileva il riflesso o lโattraversamento del dito. La qualitร della radiazione giunta al diodo rivelatore di luce fornisce indicazioni sul tenore di ossigeno, giacchรฉ piรน il sangue รจ scuro e meno รจ ossigenato e, viceversa, piรน รจ chiaro (rosso vivo) e maggiore รจ la percentuale di ossigeno.
La saturazione si esprime in percentuale e quella massima รจ ovviamente รจ il 100%, mentre sono buoni valori sopra 92-93%. Naturalmente la percentuale rilevabile dipende, oltre che dallo stato dei polmoni, anche dalla qualitร dellโaria inspirata e dalla presenza di fattori che possono ridurre la disponibilitร dellโossigeno presente nellโaria.
Il progetto
Vediamo dunque di cosa si tratta, analizzando il dispositivo che vi proponiamo: per realizzare il saturimetro che vi proponiamo, che ovviamente รจ elettronico, ci siamo avvalsi di un misuratore di ossigenazione del sangue e rilevatore del battito cardiaco a riflessione di luce su breakout board, basato sullโintegrato MAX30100; per lโesattezza parliamo di un sensore per โpulsossimetriaโ ossia in grado di misurare, in maniera non invasiva e combinata, la quantitร di emoglobina legata allโossigeno nel sangue ed anche la frequenza delle pulsazioni (battito) cardiache attraverso la variazione del calibro dei vasi sanguigni.
Il sensore comunica via IยฒC-Bus i dati sulla saturazione ed anche quelli sulla pulsazione del sangue (che permetteranno di tracciare un grafico tipo elettrocardiogramma, nonchรฉ di desumere la frequenza del battito cardiaco) quindi abbiamo utilizzato una scheda Arduino per acquisire tali informazioni, elaborarle e trasformarle in un formato adatto a comandare un piccolo display IPS sul quale vedremo in alto un tracciato tipo ECG (elettrocardiogramma) sia pure non completo come quello ottenibile da un elettrocardiografo, e in basso la frequenza del battito (BPM, ossia battiti per minuto o, se preferite i termini anglosassoni, beats per minute…) a sinistra e la percentuale di saturazione dellโossigeno, sulla destra.
Il rilevamento di ossigeno e battito
A differenza della gran parte dei sensori per saturimetria da applicare al polpastrello (che proiettano un raggio di luce sulla cute e rilevano lโilluminamento dalla superficie dellโunghia) questo trasduttore della Maxim IC funziona emettendo verso lโalto del chip la luce prodotta da due LED, uno rosso (luce rossa alla lunghezza dโonda di 660 nm) e lโaltro infrarosso (emittente nellโinfrarosso a 880 nm): appoggiandovi sopra il dito, una parte della luce penetrata in esso viene riflessa e lโammontare della luce riflessa captato da un fotodiodo sulla stessa superficie da cui รจ emessa la luce combinata permette di determinare, sulla base della trasparenza e delle variazioni di trasparenza nel tempo sia lโandamento del flusso sanguigno, sia la percentuale di ossigeno in esso presente (la percentuale di emoglobina saturata dallโossigeno).
Nello specifico, il segnale elettrico prodotto dal fotodiodo viene inviato ad uno stadio amplificatore low-noise e condizionatore del segnale, quindi ciรฒ che ne risulta entra in un blocco di analog signal processing che permette di estrarre i dati sullโossimetria e sul battito cardiaco. Questโultimo si ottiene analizzando le variazioni nellโandamento del flusso sanguigno attraverso la dilatazione e il restringimento dei vasi periferici determinati dalla pulsazione e dal rilascio dei ventricoli del cuore, che causano aumento e conseguente calo della pressione arteriosa.
Il componente Maxim dispone inoltre di una funzione di rilevamento della prossimitร , per risparmiare energia e ridurre lโemissione di luce visibile quando il dito dellโutente non รจ sul sensore.
I segnali che vengono digitalizzati dal blocco signal processing diventano quindi numerici e sono inviati sul bus IยฒC, dal quale vengono letti dalla nostra Arduino Uno, il cui firmware, sfruttando una libreria specifica del sensore (chiamata MAX30100.h), puรฒ calcolare la frequenza cardiaca e la saturazione dellโossigeno in valore percentuale.
I dati elaborati permettono di preparare i pacchetti di dati e i comandi con cui comandiamo poi il piccolo display OLED che sarร la nostra interfaccia utente, vale a dire il pannello sul quale vedremo il grafico dellโandamento della pressione del sangue (quindi lโeffetto della pulsazione del cuore) la frequenza cardiaca e la saturazione rilevati dal sensore; il tutto aggiornato in tempo reale.
Il MAX30100 consente di impostare, attraverso il bus IยฒC e in fase di inizializzazione, il sample-rate e quindi il numero di campionamenti nellโunitร di tempo che il converter analogico/digitale posto a valle dellโanalog signal processor deve eseguire: una maggior frequenza determina unโanalisi e una visualizzazione piรน accurata ma accresce il consumo di elettricitร , mentre la riduzione della frequenza di campionamento (e perciรฒ della precisione della misura) si traduce in una riduzione dei consumi; questo รจ apprezzabile e rappresenta un compromesso nelle applicazioni in cui si desidera realizzare un saturimetro portatile.
Il circuito al completo
Guardando lo schema di cablaggio vediamo che la breakout board su cui รจ montato il sensore Maxim si connette ad Arduino Uno mediante tre fili piรน la massa e lโalimentazione a 5V (prelevata rispettivamente da GND e il pin 5V della Arduino Uno); le tre linee sono SCL ed SDA del bus IยฒC e INT, ossia lโuscita di interrupt open-drain attiva a livello basso che segnala la disponibilitร dei dati per la lettura. Sono open-drain anche le linee SDA ed SCL, ragion per cui รจ opportuno prevedere le resistenze di pull-up, che nella breakout board sono da 4,7 kohm ma terminanti sulla linea di alimentazione interna.
Le tre linee necessitano ciascuna di un resistore di pull-up da 4,7 kohm portato al positivo dei 5 volt, giacchรฉ la breakout board funziona a 5 volt, sebbene il MAX30100 operi fra 1,8 e 3,3V; questo perchรฉ a bordo della piccola scheda sono presenti i regolatori per il componente.
Per questa ragione, essendo Arduino Uno alimentata internamente a 5 volt ed avendo gli I/O funzionanti a tale tensione (ma comunque capaci di leggere livelli logici 1 di valore piรน basso) converrebbe rimuovere i resistori di pull-up interni e applicare quelli esterni terminanti sulla linea dei 5V di Arduino Uno, come mostra lo schema di cablaggio proposto in queste pagine.
Per visualizzare i parametri sulla frequenza cardiaca, la saturazione e il tracciato del battito cardiaco, ci siamo avvalsi di un display miniatura TFT/IPS da 1,44โ di diagonale 128×128 pixel (lโarea grafica รจ ampia 25,5×26,5mm, quindi praticamente quadrata) a interfaccia seriale a bus di tipo SPI.
Questo display riceve i dati da visualizzare preparati dallo sketch di Arduino Uno a partire da quelli ricevuti dal sensore MAX30100 e li visualizza.
Allo scopo il firmware inizializza gli I/O di Arduino Uno affinchรฉ funzionino come interfaccia SPI a quattro linee piรน reset.
Il display, essendo in tecnologia IPS LCD full-color, garantisce un ottimo contrasto, una profonditร di colore eccellente e un ampio angolo di visione pari a ยฑ80ยฐ.
La sua elettronica di controllo si basa sul collaudatissimo controller ST7735, dotato, appunto, di interfaccia dati SPI; la gestione firmware viene semplificata dallโapposita libreria Adafruit_ST7735.h.
Lโalimentazione del modulo รจ a tensione compresa fra 3 e 5,5V e le connessioni avvengono mediante 8 piazzole poste sul lato inferiore, cui si possono saldare dei comuni pin strip per facilitarne le connessioni, giacchรฉ sono a passo 2,54 mm.
Il significato delle piazzole di connessione del display รจ il seguente:
GND = massa comune;
VCC = alimentazione positiva;
SCL = SPI clock;
SDA = SPI data line;
RES = reset;
DC = Data/command selection;
CS = Chip select signal, attivo a 0 logico;
BLK = comando backlight control.
Questโultima linea permette di accendere o spegnere la retroilluminazione e puรฒ essere lasciata aperta se non si desidera il backlight, mentre per accendere la retroilluminazione va posta a zero logico.
Il firmware
Bene, vediamo adesso di spendere qualche parola sullo sketch da caricare in Arduino Uno per far funzionare il nostro saturimetro; per esso abbiamo preso spunto a unโidea di Xtronical (www.xtronical.com/ColourHeartMonitor) che permette, oltre a quanto spiegato in queste pagine, anche di pilotare un cicalino piezo con elettronica per fargli emettere una nota ogni volta che viene rilevato il battito cardiaco, come se si stesse eseguendo un elettrocardiogramma. Il beep puรฒ essere utile ad esempio se utilizziamo lo strumento come monitor per attivitร sportiva.
Trovate lo sketch completo nel Listato 1; di esso notiamo lโinclusione delle librerie MAX30102.h per gestire la breakout board sensore, la MAX30102_PulseOximeter.h per impostare il range dello stesso, la Adafruit_GFX.h che รจ una libreria grafica per tracciare il diagramma cardiaco sul display e la Adafruit_ST7735.h per la comunicazione con il display stesso attraverso lโinterfacciamento al controller ST7735.
Conclusioni
Bene, con questo riteniamo di avervi spiegato proprio tutto quello che serve per realizzare e utilizzare correttamente il saturimetro; oltre che in casa, come strumento di diagnosi fissa, potrete utilizzarlo nello sport allโaperto montandolo su un ditale in gomma, sostituendo Arduino Uno con una Arduino Micro o Nano da sistemare ad esempio in una custodia da mettere su un giubbino o applicata a una maglia (collegando il tutto con della piattina multifilare sottile) in modo da realizzare un vero e proprio cardiofrequenzimetro con saturimetro integrato, magari in grado di memorizzare i tracciati dellโattivitร fisica svolta in una sessione di allenamento.
3 Commenti