Il pulsiossimetro è uno strumento dal nome più complesso del suo funzionamento, ma è di estrema utilità in quanto, grazie ad esso, è possibile visualizzare l’andamento del battito cardiaco e misurare in maniera non invasiva la quantità di emoglobina nel sangue. La tecnologia odierna e la mania di realizzare tutto in casa, ha portato alla nascita di alcuni progetti davvero interessanti, come quello del pulsiossimetro fai-da-te; si tratta in realtà di un dispositivo, basato su Arduino, in grado di controllare e visualizzare il battito del cuore ma, a causa della mancanza di ricerche e sperimentazioni, ovviamente, non può essere considerato in alcun modo uno strumento medico.
Cosa si può fare con il pulsiossimetro fai-da-te realizzato con Arduino?
Come suggerisce l’autore del DIY, con questo dispositivo è possibile visualizzare il battito del proprio cuore ovviamente a solo titolo informativo (il medico resta sempre l’unica voce in capitolo in questo ambito) oppure ci si può divertire utilizzandolo come macchina della verità: appena l’esaminato mente, si dovrebbe vedere un picco nelle oscillazioni della pulsazione.
Cosa include questa guida?
- Codici Arduino e Codici Processing 2
- I passaggi per realizzare un sensore per le pulsazioni
- Il Software Virtual Graphing
- Diagrammi schematici
Di cosa ho bisogno per portare a termine il progetto?
- Una gruccia
- Un led chiaro/luminoso
- Un LDR (Light Dependent Resistor, un fotoresistore)
Problematiche possibili
Perché il mio pulsiossimetro non funziona? I fotoresistori, per qualche motivo, potrebbero non fornire un valore standard della resistenza; c’è quindi bisogno di diversi aggiustamenti e di esperienza con Arduino e con i dispositivi elettronici.
Questo progetto è ispirato al dispositivo di controllo del battito di Make Magazine
Nel nostro caso, però, non viene usato un chip LM324 Op-Amp. Il tutorial di Make Magazine funziona comunque con questa configurazione.
1. Trovare la gruccia adatta
Questo progetto funziona al meglio utilizzando un gruccia con clip ricoperti di gomma.
2. Tagliare i clip
Utilizzare un paio di cesoie.
3. Smontare i clip
4. Fare dei buchi con il trapano
Praticare un foro esattamente al centro della gomma.
5. Installare l'LDR
Piegare le guide dell’LDR e inserirle negli spazi appositamente creati, quindi utilizzare la termocolla per bloccare il fotoresistore.
6. Installare il Led
Utilizzare colla tipo superattack per tenere il Led attaccato al clip; è meglio aggiungere una resistenza per proteggere il Led.
7. Se non funziona
Se ci sono problemi, è possibile utilizzare questo circuito per amplificare le letture; D1 è solo un indicatore e non il Led rosso. È meglio utilizzare un trimmer resistivo da 10K per R3 invece di un resistore a valore fisso.
8. Collegare con i fili
Seguire lo schema riportato sotto. PCB/Perfboard non sono necessari, i fili sono sufficienti!
9. Download dei software
Processing 2 è il software che visualizzerà i dati mentre l’ambiente di sviluppo (IDE) di Arduino serve per l’upload degli sketch di Arduino. C’è bisogno di entrambi per avviare il progetto. Cliccare sui link qui sotto per scaricarli.
Arduino 1.0.5 IDE
Processing 2 IDE
10. I codici
Lanciare questi codici sul corretto IDE. Se i codici di Processing 2 mostrano un errore, cambiare il numero della porta (si trova nei codici).
//Arduino Codes:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(analogRead(0));
delay(50);
}
________________________________________
//Processing 2 Codes:
import processing.serial.*;
Serial myPort;
int xPos = 1;
float oldHeartrateHeight = 0;
void setup () {
// set the window size:
size(1000, 400);
frameRate(30);
// List available serial ports.
println(Serial.list());
// Setup which serial port to use.
// This line might change for different computers.
myPort = new Serial(this, Serial.list()[0], 9600);
// set inital background:
background(0);
}
void draw () {
}
void serialEvent (Serial myPort) {
// read the string from the serial port.
String inString = myPort.readStringUntil('\n');
if (inString != null) {
// trim off any whitespace:
inString = trim(inString);
// convert to an int
println(inString);
int currentHeartrate = int(inString);
// draw the Heartrate BPM Graph.
float heartrateHeight = map(currentHeartrate, 0, 1023, 0, height);
stroke(0,255,0);
line(xPos - 1, height - oldHeartrateHeight, xPos, height - heartrateHeight);
oldHeartrateHeight = heartrateHeight;
// at the edge of the screen, go back to the beginning:
if (xPos >= width) {
xPos = 0;
background(0);
} else {
// increment the horizontal position:
xPos++;
}
}
}
11. Imparare ad usare il sensore di battito cardiaco
Make Magazine ha realizzato un progetto simile che funziona esattamente allo stesso modo. I codici sono stati ripresi da lì, in questo video vengono spiegate le procedure di programmazione.
Article by ASCAS courtesy of Instructables
Troppo forte, con pochissimi componenti si realizza uno strumento del genere! Proverò a realizzarlo.
il listato di Precessing, così com’è pubblicato, non è compatibile con la versione 3. Per renderlo compatibile occorre spostare l’istruzione “line(xPos – 1, height – old…” all’interno della funzione “void draw()” e sostituire le coordinate delle linee con due variabili globali
giuste le premesse non è un apparecchio medico, il nome corretto di questo apparecchio è pulsimetro, il pulsossimetro misura veramente oltre alla frequenza cardiaca la quantità di ossigeno nel sangue e per farlo oltre ad avere una tabella interna di compensazione ha bisogno di almeno due led di solito un rosso a 660 nm ed un infrarosso di solito a 940 nm, tra cui fa la differenza dopo aver estratto la continua , che corrisponde allo spessore del tessuto che non partecipa alla perfusione, ecc, ecc, ecc, non è così difficile, ma rimane un discreto casino, oggi è più facile farlo perché ci sono circuiti con sensore e front end dedicato, vedi Texas e Maxim, chiedo scusa se sembro saputello, ma in realtà anni addietro ci ho perso un sacco di tempo.ciao
Grazie delle indicazioni, anche io l’ho sempre chiamato (erroneamente evidentemente) pulsossimetro.
Se hai ulteriori info o link degli integrati TI e Maxim che hai studiato, sono ben accetti 🙂
P.S. Non sei saputello, ma divulgatore di conoscenze 🙂
ciao, i riferimenti maxim, li potete trovare nel sito della stessa: maximintegrated.com, essendo un prodotto nuovo probabilmente è ancora nella prima pagina con il nome maxrefdes117, deve essere molto interessante per gli esperti di arduino e simili, perché ci sono anche esempi di codice proprio per implementare un oximetro con arduino.
Questo mi sembra fatto veramente bene e deve essere divertente da provare.Anche per il Texas basta andare nella pagina e cercare “oximeter” anche qui c’è tutto disponibile sensore, front end ecc. non ho mai avuto tempo di approfondire, ma mi sembra meno semplice del maxim. Vedere questi prodotti per me è in parte è frustrante perché solo 10 anni fa non c’era niente nemmeno documentazione sul principio, ma meglio così. Solo una precisazione tu lo chiamavi correttamente, il pulsossimetro o oximeter, misura frequenza e ossigeno, mentre ho sottolineato il nome corretto per quello indicato nel progetto che siccome misura solo la frequenza cardiaca, esiste anche lui come strumento, ma si chiama semplicemente pulsimetro.
grazie per la tua risposta e scusa se mi sono dilungato.
Grazie per l’interessante commento. Il fatto di chiamarlo pulsimetro mi sembra anche giusto perchè non misurando l’ossigeno (“ossi”) è inutile chiamarlo pulsossimetro o pulsiossimetro. In ogni caso la scienza di riferimento è la pulsossimetria, la pulsimetria per esempio non esiste. Hai un riferimento per il termine “pulsimetro” ? I riferimento della Maxim sono per i pulsiossimetri.
Segnalo un link http://it.emcelettronica.com/progetto-di-un-pulsiossimetro-con-dspic.
hai perfettamente ragione, ” pulsimetro” si potrebbe definire una di quelle semibestialità come i vari neologismi vedi, “cliccare”ecc… che uno, non solo lentamente accetta, ma finisce pure per utilizzare. Ad essere finalmente precisi il vero nome di uno strumento analogo sarebbe cardiofrequenzimetro. Io ho lavorato per la medicina veterinaria, qui l’elettronica è arrivata dopo, anche se parliamo di diversi anni fa e gli strumenti inizialmente non erano così sofisticati così come gli utilizzatori, per questo forse nascevano questi nomi un po’ confusi. Oggi è totalmente un altra situazione molti nuovi veterinari inseguono le novità e un semplice cardiofrequenzimetro non lo vogliono nemmeno vedere, anche il pulsossimetro ormai è poca cosa di fronte all’utilità del capnografo, insomma ne vogliono sempre una nuova…….. non sarà per nascondere qualcosa?
Comunque a chi avesse voglia di progettare un pulsossimetro completo indico volentieri le specifiche che dovrebbe avere:
-ovviamente l’indicazione numerica di frequenza e ossigeno
– l’errore dovrebbe essere non più dell’1% per la frequenza, mentre per l’ossigeno varia tra l’1% e il 2%
-fondamentale è la possibilità di avere allarmi di valori minimi e massimi impostabili, perché questo tipo di strumento trova il suo impiego migliore durante l’anestesia e avere gli allarmi dà al chirurgo un pensiero in meno.
– la visualizzazione grafica della forma d’onda nel caso dell’ossimetria non è molto utile, anche se può dare un idea della qualità del segnale individuato
il problema più grande con questo tipo di strumento sono i disturbi da movimento della sonda, che produce falsi impulsi difficili da discriminare, per questo la soluzione finale sarebbe implementare nel software i “filtri di Kalman” che sono veramente prodigiosi. Io a suo tempo ho dovuto dedicarmi ad altro, ma ho potuto verificare molti apparecchi di marchi importanti senza che nessuno mi abbia molto impressionato, con un po’ di buona volontà, di tempo e soprattutto implementando i filtri kalman si può sicuramente fare di meglio.
tornando comunque al progetto originario, volevo complimentarmi sinceramente con l’autrice, perché nonostante la semplicità offre un modo per introdurre l’argomento, per il quale è sicuramente necessario passare : vedere la forma d’onda.
Per la soluzione della pinzetta sperimentale poi ci vuole un encomio solenne, non sai in quanti sperimentatori si sono appiccicati sensori con nastro adesivo! attenzione solo a che non stringa molto, più si ostacola la perfusione più il segnale diventa piccolo, fino anche a scomparire e amplificare di più non serve perché si amplificano anche i disturbi.
Anche la temperatura rompe le scatole. mani fredde=vasocostrizione= segnale piccolo.
Qual è il principio di funzionamento di questo progetto ?