Data logger per elettrocardiogramma

Buongiorno a tutti.
Mi stavo divertendo con la schedina AD8232 per farmi un elettrocardiogramma: se il "paziente" rimane immobile (e magari smette anche di respirare... :slight_smile: ) il risultato è un preciso elettrocardiogramma.

Ora mi stavo domandando se l'output su plotter seriale sia possibile memorizzarlo per poi trasmetterlo o più semplicemente memorizzarlo per vederlo di nuovo. In fin dei conti è un treno di valori analogici che potrei memorizzare in un file separato da virgole.

Ho cercato un po' in giro ma non vedo niente del genere e un data logger trovato in rete non mi funziona...

metti qui il codice, che si guarda

void setup() {
  // initialize the serial communication:
  Serial.begin(4800);
  pinMode(10, INPUT); // Setup for leads off detection LO +
  pinMode(11, INPUT); // Setup for leads off detection LO -

}

void loop() {
  
  if((digitalRead(10) == 1)||(digitalRead(11) == 1)){
    Serial.println('!');
  }
  else{
    // send the value of analog input 0:
      Serial.println(analogRead(A0));
  }
  //Wait for a bit to keep serial data from saturating
  delay(1);
}

Niente di che, legge l'analogica e la manda al plotter seriale.

e vuoi scriverlo su una SD nella UNO?
devi prevedere come ri-leggerlo...

Pensavo più a come registrare la serie di valori direttamente su PC

Mi spiace, su PC non so aiutarti...

steve-cr:
Pensavo più a come registrare la serie di valori direttamente su PC

Invece di usare il monitor seriale, usa un qualsiasi emulatore di terminale con la possibilità di registrare su disco ciò che riceve ... COOLTERM ad esempio è multipattaforma ed è gratuito.

Guglielmo

Grazie Guglielmo, non ci avevo mai pensato a questa soluzione...

Che tipo di dato ti tira fuori la scheda? Per un tempo prestabilito o sei tu a dare "inizio/fine"? Hai pensato di usare il db? Per poi poterli recuperare o visualizzare?

La scheda in questione ha una uscita analogica continua, quindi letta a 4800 baud (9600 l'elettrocardiogramma è troppo veloce e ha troppa risoluzione) si ottiene appunto la traccia.
Mi era sufficiente memorizzarmi qualche ecg nei momenti "opportuni", momenti o giornate in cui ho delle continue serie di fastidiose extrasistoli, dato che quando vai dal cardiologo è sempre tutto a posto e questo ti chiede anche "ma perché fa tutti questi esami che ha un cuore perfetto???".
Figuratevi se con l'Holter per 24 ore me ne ha beccata almeno una !!!

Voglio vedere la faccia del mio cardiologo quando vedrà un ECG che non ha fatto lui... :smiley: ;D 8)

Se mi presentassi dal mio dottore con la traccia di un ECG fatto da me con tre elettrodi contestando Holter e ECG con 12 elettrodi e apparati elettromedicali certificati, anche se avessi ragione (e non sto mettendo in dubbio la tua parola e non vado dicendo che NON hai un problema) se mi va bene mi lancia fuori dallo studio se mi va male mi fa un completo ed approfondito esame della prostata ;D

steve-cr:
Figuratevi se con l'Holter per 24 ore me ne ha beccata almeno una !!!

Ma a te capitano tutti i giorni? almeno quelle di cui ti accorgi.
Perchè se capitano una volta ogni tanto è dura beccarle con un esame su sole 24h.
Appurato che non è una cosa continua di cui tu rilevi solo i picchi.
Con il tuo strumento potresti cercare di correlare ad es. evento e stato emotivo o altre cause scatenanti, per poter rifare l'esame con l'Holter cercando di indurle, magari capisci che sono le notti in discoteca a scatenarle... o i G negativi...

Tornando al quesito, puoi memorizzare su SD anche i singoli byte o int, visto che la analogRead legge fino a 1023. Così riduci il tempo di scrittura evitando la conversione in ascii e risparmiando sui separatori.
E rileggi allo stesso modo, 2 byte per valore.
Eviterei come la peste i DB, è mooooooooolto più performante un file binario o anche ascii con separatore, se preferisci.
Sarebbe come montare una gru per spostare le borse della spesa.

EDIT:
Una volta salvati i dati su sd, secondo me, potresti farti una routine che legge i 2 byte e li scrive con Serial.println() così da poterli avere sempre sul serial plotter a chiamata, magari ci metti un pulsante per attivare la rilettura.

maubarzi:
Ma a te capitano tutti i giorni? almeno quelle di cui ti accorgi.
Perchè se capitano una volta ogni tanto è dura beccarle con un esame su sole 24h.

Se mi capitassero tutti i giorni l'holter me le avrebbe registrate (e io darei fuori di testa!)
Però quando vai a fare la "ricetta" per l'holter, non è che te lo danno subito.... (cioè! Ve lo devo spiegare io?)
E quando finalmente un bella infermierina ti attacca tutti quei sensori e ti ci mette sopra una calza a rete (non delle sue, ma quelle per tenere insieme tutto sul torace) di estrasistoli ce ne saranno state tre (quindi ti dicono che è tutto normale...)

maubarzi:
Appurato che non è una cosa continua di cui tu rilevi solo i picchi.
Con il tuo strumento potresti cercare di correlare ad es. evento e stato emotivo o altre cause scatenanti, per poter rifare l'esame con l'Holter cercando di indurle, magari capisci che sono le notti in discoteca a scatenarle... o i G negativi...

Lo stress è sicuramente una causa, ma è molto subdola perché tu pensi di non essere stressato ma lo sei.
Poi le mangiate di Natale (chissà perché a Natale succede sempre...) dove la causa è dovuta allo stomaco (forse una ernia iatale)
Poi i cambi di stagione, e magari ci mettiamo anche la luna piena....

fabpolli:
Se mi presentassi dal mio dottore con la traccia di un ECG fatto da me con tre elettrodi contestando Holter e ECG con 12 elettrodi e apparati elettromedicali certificati.....

Non ho assolutamente contestato l'Holter, ci mancherebbe!
Ho contestato il mio cuore che ha fatto il bravo durante il periodo di controllo.

La volete sapere una bella storiella?
Alla visita medica di implotonamento nell'Esercito Italiano (eh si, io ho fatto il militare, "a quei tempi" si faceva...) il dottore, a cui avevo illustrato il problema, mi attacca tutti gli elettrodi e mi dice:
"fammene vedere anche solo una di extrasistole e ti mando subito a casa in congedo illimitato."
Secondo voi, il "bastardo" ne ha fatta una?

Doveva dirti, se non me ne fai vedere nemmeno una ti mando di guardia per 24 mesi di fila e allora avresti avuto pure un arresto cardiaco e lo avresti saltato il militare, di riffa o di raffa :wink:
P.S.
Fatto pure io, alpino ma non silvestre, proprio alpino con tanto di penna nera e mulo parlante come mezzo di trasporto (questo veramente l'ho schivato, ma per poco mi sa).

steve-cr:
Buongiorno a tutti.
Mi stavo divertendo con la schedina AD8232 per farmi un elettrocardiogramma: se il "paziente" rimane immobile (e magari smette anche di respirare... :slight_smile: ) il risultato è un preciso elettrocardiogramma.

Ho cercato un po' in giro ma non vedo niente del genere e un data logger trovato in rete non mi funziona...

Con il problema delle EV sporadiche, ho realizzato questo registratore ECG (Holter) che funziona abbastanza bene.
Cerca in rete " Adnovea , Holter" oppure qui su Surceforge [u]https://sourceforge.net/projects/ecg-logger/[/u]

Utilizza un arduino uno e memorizza i dati su SD che poi viene visualizzata sul PC.

Il funzionamento in modo Holter con alimentazione autonoma da batteria, permette il monitoraggio notturno che per il ridotto movimento del corpo, fornisce una registrazione con meno artifatti.

Attenzione al rischio di folgorazione, io, quando faccio il monitoraggio diretto tramite PC, uso un portatile con alimentazione da sola batteria.

Notevole! Bel lavoro.
Complimenti.

Grazie, ma il mio lavoro è stato solo quello di assemblare e caricare il file binario, perchè non viene fornito lo sketch leggibile. I programmi da caricare sul PC e consentono di scaricare i dati dalla SD, a volte non vedono la relativa seriale, ma come si dice " a caval donato non si guarda in bocca"
Dino

Ah, scusa, "ho realizzato" nel senso che lo hai montato ma non lo hai inventato tu.
Comunque mi sembra un bel progettino ed era una idea che era venuta anche a me con NANO ed una SD, ma dato che c'è già pronta, perché non utilizzarla?
Quindi il NANO va programmato con un programmatore?

Si, l'HW è costituito da una Arduino Nano, un AD8232 (amplificatore ecg) e un modulo per gestire la memoria SD, oltre a qualche resistenza,led e batterie.
Scarica i file da surceforge, ci sono due versioni, "Logger" che consente la visualizzazione diretta e la programmazione del funzionamento off-line come Holter, inoltre ha anche una funzione per "pulire" i dati letti dalla SD per rimuovere gli artefatti e individuare episodi di EV (extrasistole ventricolari), bradicardia, tachicardia. Altra versione "Lite" gestisce la sola programmazione e scarico dati da SD.
I files scaricati contengono sia la descrizione di funzionamento che schemi per l'assemblaggio.
E' incluso anche un programma dedicato al trasferimento del file binario (incluso) dal PC al Nano.
Dino