• Non ci sono risultati.

Lo studio per questa tesi della parte di controllo dell’elettronica del dispo- sitivo, si `e focalizzato sul firmware del MSP430FG43, realizzato da Adatec srl in linguaggio C++ su IAR Embedded Workbench. Il firmware control- la la gestione dei registri dei pin di I/O, i canali attraverso i quali vengono ricevuti i segnali acquisiti, il timer del sistema e imposta la frequenza di cam- pionamento su 512Hz. Una volta che i segnali analogici sono stati acquisiti e campionati, vengono digitalizzati attraverso il canale dell’ADC del microcon- trollore e vengono analizzati con un algoritmo che consente un elaborazione in tempo reale del segnale. L’algoritmo sviluppato, applicato al segnale ECG, permette di individuare il complesso QRS in maniera affidabile, di effettuare un filtraggio adattivo al segnale e di individuare i picchi R dell’ECG, indi- cativi del battito cardiaco. Tramite l’algoritmo viene generato un segnale di riconoscimento dei picchi che assume i valori 0 quando non c’`e battito, 200

quando viene rilevato un picco R, e 100 quando viene attivato il circuito di Hand Detection. Inoltre viene effettuato un calcolo dell’intervallo interbatti- to, cio`e della distanza temporale tra due picchi R successivi, dato necessario per il calcolo della frequenza cardiaca. L’algoritmo applica un filtro di Kal- man al segnale acquisito per eliminare il rumore e individuare i parametri principali del segnale, confrontati con quelli calcolati da un predittore che stima il picco R successivo e la durata del complesso QRS, dopodich´e viene applicato l’algoritmo di Pan-Tompkins per individuare il complesso QRS at- tuale, e successivamente avviene l’individuazione dei picchi R. L’algoritmo si `

e dimostrato robusto e accurato in diverse prove eseguite[18].

Il firmware elabora anche il segnale EDA applicando un filtro di Kalman. Durante la fase di testing sul dispositivo, sono state individuate delle soglie per il segnale EDA e per il segnale di Hand Detection che permettono di ge- nerare un segnale ”good” con valori tra 0 e 5, indice della bont`a del contatto cute-elettrodi durante l’acquisizione dei segnali. Per non sovraccaricare il microcontrollore che elabora i segnali in tempo reale, i pacchetti di dati ven- gono inviati attraverso pin di trasmissione al secondo microcontrollore della scheda che li invia al modulo XBee. Anche i pin di ricezione del microcon- trollore vengono untilizzati, per ricevere le istruzioni inviate dal software con il quale comunica e che seguono il percorso inverso dei segnali fisiologici. A seconda delle istruzioni ricevute dal software, il firmware prepara pacchetti di dati contenenti informazioni diverse.

La determinaione del contatto con gli elettrodi per quanto riguarda il se- gnale EDA si basa sui valori che questo assume e che variano se vengono contattati entrambi gli elettrodi, se ne viene contattao solo uno o se non c’`e alcun contatto. Per quanto riguarda il segnale ECG invece, si fa utilizzo del circuito di HD precedentemente descritto. Il procedimento logico che regola il firmware per attivare e disattivare il circuito di HD `e descritto nel grafo di flusso in figura3.10: il sistema all’accensione `e in modalit`a ECG, dunque

preleva e analizza il segnale acquisito; trascorso un intervallo di tempo di 2 secondi (Check Time), il sistema passa in modalit`a Hand Detection (HD) e verifica che il contatto tra le dita del paziente e gli elettrodi sia corretto: se non viene ritenuto tale, il sistema resta in modalit`a HD e ripete la verifica, altrimenti torna in modalit`a ECG e acquisisce il segnale. Dato che durante la verifica di contatto il circuito di acquisizione dell’ECG viene disattivato, il circuito di HD viene alimentato per qualche frazione di secondo, in modo da non perdere frazioni di segnale ECG importanti. Viene eseguita inoltre una verifica sulla baseline dell’ECG: nel caso ci sia un allontanamento dai valori medi oltre una certa soglia, il sistema passa in modalit`a HD e verifica il contatto, altrimenti il segnale viene giudicato buono e il sistema resta in modalit`a ECG fino a quando non sia trascorso il Check Time successivo.

Figura 3.10: Schema logico del firmware per attivazione e disattivazione dei circuiti di Hand Detection e ECG.

Capitolo 4

Sviluppo del software e testing

del dispositivo

Nel capitolo precedente, sono stati illustrati hardware e firmware del di- spostivo e ne `e stato descritto il funzionamento e lo schema logico che lo regola. Nell’ambito del tirocinio svolto, una volta acquisite le conoscenze necessarie, sono state effettuate delle modifiche a un software gi`a presen- te per arrivare a una versione definitiva adeguata alle caratteristiche finali del dispositivo e sono state realizzate delle prove finalizzate a supportare le decisioni progettuali per giungere alla versione finale.

4.1

Descrizione del software

Il software per questo dispositivo `e stato realizzatoin C] su Microsoft Vi- sual Studio 10.0, ambiente di sviluppo integrato realizato da Micrisoft e una volta compilato genera un applicativo compatibile con Windows XP, Vista e Windows 7 che non necessita di installazione. La versione finale del software `

e stata realizzate nell’ambito del tirocinio effettuato a partire da una prima versione disponibile. Durante l’esecuzione, il software comunica con il di- spositivo grazie a due moduli XBee: uno connesso alla scheda del dispositivo

tramite i pin di un connettore, l’altro connesso via USB al computer sul quale viene eseguito il software. Lo scopo di questo `e permettere la visualizzazione in tempo reale del segnale rilevato e offre la possibilit`a di salvare i dati su un file formato .txt.

All’avvio del file eseguibile, si apre una finestra di dialogo attraverso la quale `

e necessario selezionare la porta di comunicazione USB alla quale `e connes- so il modulo XBee collegato con il dispositivo mostrata in figura 4.1. Una

Figura 4.1: Finestra per la selezione della porta usb per la comunicazione con il dispositivo.

volta inizializzata la comunicazione wireless, si apre una finestra interattiva suddivisa in varie parti con funzioni specifiche mostrata in figura 4.2.

Nella parte superiore della finesta, si trovano le indicazioni relative al tempo e al segnale rilevato suddivise nei seguenti gruppi:

- Gruppo denominato Time: contiene tre parti in cui vengono indicate data attuale, orario di inizio e orario di fine acquisizione del segnale.

- Finestra denominata Time elapsed : contiene un timer che indica il tempo trascorso dall’inizio dell’acquisizione dati.

-Finestra denominata Heart Rate: contiene il numero di battiti al minuto rilevati dal dispositivo e si aggiorna ogni venti secondi.

Figura 4.2: Finestra interattiva del software per la visualizzazione e il salvataggio dei segnali.

delle ascisse vengono indicati e aggiornati in tempo reale i secondi trascorsi, mentre sull’asse delle ordinate sono presenti i valori del segnale espressi in Volt.

Sul lato sinistro accanto al grafico sono presenti due caselle da spuntare con accanto le etichette Start 1 e Start 2 la scelta di uno dei casi determina il ti- po di dati che verranno inviati dal microcontrollore ed eventualmente salvati; con Start 1 vengono ricevuti dal software: timer interno del microcontrollore, durata dell’intervallo interbattito (in numero di campioni), ECG (in valore logico), Segnale ”good” del contatto degli elettrodi; Con Start 2 vengono ricevuti: timer, segnale ECG, segnale ”good”, e il segnale di riconoscimento dei picchi R. Al di sotto del grafico un’altra casella se spuntata, modifica il segnale mostrato che pu`o essere ECG o EDA (nel caso la casella venga spuntata).

Il led posto sulla sinistra della finestra `e stato impostato in modo da assu- mere tre colorazioni che indicano quattro situazioni: il led di colore rosso segnala quando il dispositivo passa in modalit`a hand detection o viene invia- to il segnale di stop acquisizione, il led diventa blu quando il dispositivo `e

in modalit`a ECG ma non viene rilevato alcun battito, mentre diventa verde quando il dispositivo `e in modalit`a ECG e viene rilevato un battito, in modo che durante il funzionamento in modalit`a ECG il led lampeggi con la stessa frequenza cardiaca.

In basso a destra della finestra, sono presenti tre pulsanti di controllo: la freccia verde (in figure 4.2 appare ombreggiata perch´e la funzionalit`a `e uti- lizzata) trasmette al microcontrollore il segnale di inzio acquisizione, il pul- sante di Stop trasmette il segnale di fine acquisizione e il pulsante di ac- censione/spengimento permette di chiudere la finestra un volta terminata l’acquisizione.

Il pulsante in alto a destra apre una finestra di dialogo in cui l’utente pu`o scrivere il nome della cartella in cui vengono salvati i dati, una volta data la conferma, il nome della cartella compare in basso a sinistra per la dura- ta della registrazione, al termine della quale viene generato un file .txt con un’intestazione che indica la data e l’ora dell’inizio dell’acquisizione e sotto, le colonne di dati salvati il cui nome e unit`a di misura compaiono nella prima riga. L’utilizzo della modalit`a di salvataggio dati `e opzionale, infatti il si- stema pu`o essere utilizzato anche per una semplice visualizzazione in tempo reale del segnale ECG, che compare sul grafico centrale.

Alle azioni eseguibili tramite l’interfaccia sopra descritta, sono collegate varie parti del software, che gestiscono la comunicazione con i microcontrollori del dispositivo, il salvataggio dei dati e il trattamento dei segnali che vengono ricevuti. Questi infatti vengono inviati dal microcontrollore in valori logici e devono perci`o essere convertiti nelle rispettive unit`a di misura: il segnale ECG viene convertito in Volt per essere graficato e il segnale EDA viene convertito in µSiemens per il salvataggio, mentre per gli altri segnali inviati non `e necessaria una conversione poich´e possono essere salvati nei loro valori logici.

4.2

Protocollo delle prove per la scelta del

circuito di Hand Detection

La scelta del circuito per Hand Detection (HD) descritto nel capitolo precedente, `e avvenuta successivamente alla realizzazione di prove su un pro- totipo della scheda finale. Per effettuare le prove con i due metodi, i pin del microcontrollore relativi al controllo dell’alimentazione del circuito di HD, e quelli connessi agli elettrodi per l’acquisizione, sono stati collegati a una sche- da National Instruments tramite uno shield con terminali a vite e la scheda `

e stata gestita tramite un programma realizzato appositamente in Simulink, con il quale si `e anche acquisito il segnale prelevato all’elettrodo sinistro con una frequenza di campionamento di 100Hz. Il circuito per HD `e stato rea- lizzato su una board sulla quale sono state inserite le resistenze di prova, anch’essa collegata ai pin del microcontrollore e agli elettrodi. Per entrambi i circuiti di hand detection `e stato seguito lo stesso protocollo di prove, al fine di confrontare i risultati. Innanzitutto sono state testate tre modalit`a di alimentazione del circuito:

– Alimentazione gestita con Simulink, Vcc=3.3V, Ground=0V, per l’ac- censione del circuito;

– Alimentazione gestita con Simulink, Vcc=0V, Ground=0V, per lo spe- gnimento del circuito;

– Fili dell’alimentazione disconnessi o alta impedenza (High Impede), per lo spegnimento del circuito e nessun segnale di perdita.

Per ciascuna delle modalit`a di alimentazione, sono state effettuate sequenze di prove:

– Contatto bagnato (per migliorare la conduzione di segnale) per 60 secondi;

– Sequenza di contatti: `e stata eseguita una sequenza di contatti guidata da un segnale di riferimento a gradini generato da Simulink e inviato a una finestra di visualizzazione sullo schermo del computer, i cui valori corrispondono a determinate modalit`a di contatto da eseguire:

0 = assenza di contatto;

1= contatto leggero sugli elettrodi (per simulare cattivo contatto); 2= contatto normale;

3= contatto bagnato.

In figura 4.3, sono mostrati i grafici del segnale prelevato dall’elettrodo sini- stro, ricavato con il circuito a tre resistenze nel caso delle sequenze di contatti; per facilitare l’interpretazione dei valori, viene graficato anche il segnale di riferimento. Attraverso Simulink `e stata simulata l’attivazione e disattivazio- ne del circuito di hand detection a intervalli temporali brevi, prevista per il circuito a tre resistenze, per individuare eventuali disturbi sul segnale dovuti al cambiamento di alimentazione frequente; Al pin di Vcc del circuito sono stati quindi forniti valori di 3.3V e 0V alternati con una frequenza di 1Hz, la frequenza di campionamento `e stata mantenuta a 100Hz. Anche in que- sta modalit`a di alimentazione, `e stato seguito il protocollo di prove descritto in precedenza. In figura 4.4 il segnale acquisito durante l’esecuzione della sequenza di contatti. Il protocollo delle prove seguito per il circuito a tre resistenze `e stato seguito anche per quello a due resistenze, a eccezione delle prove con alimentazione alternata perch´e la modalit`a non era prevista, in figura 4.5, sono presenti i grafici relativi alle sequenze di contatti realizzati e del segnale di riferimento.

(a) Circuito a 3R, Vcc=3.3V, Gnd=0V

(b) Circuito a 3R, Vcc=0V, Gnd=0V

(c) Circuito a 3R, fili di alimen- tazione scollegati

Figura 4.3: Segnale acquisito dall’elettrodo sinistro durante le sequenze di prove realizzate sul circuito di hand detection a tre resistenze.

Figura 4.4: Andamento del segnale di hand detection con alimentazione tra 3.3V e 0V. Sequenza di contatti e segnale di riferimento.

(a) Circuito a 2R, Vcc=3.3V, Gnd=0V

(b) Circuito a 2R, Vcc=0V, Gnd=0V

(c) Circuito a 2R, fili di alimen- tazione scollegati

Figura 4.5: Segnale acquisito dall’elettrodo sinistro durante le sequenze di prove realizzate sul circuito di hand detection a due resistenze.

4.2.1

Risultati finali delle prove sul circuito di Hand

Detection

Dall’osservazione dei risultati su entrambi i circuiti di hand detection, si nota che il segnale prelevato all’elettrodo sinistro, segue lo stesso andamento per entrambi i circuiti. In condizioni di alimentazione infatti, e con contatto degli elettrodi, si ha un aumento della tensione rispetto a quando siamo in assenza di contatto. La tensione inoltre aumenta al migliorare della qualit`a del contatto, rendendo possibile la stima di soglie di valori di tensione. Il segnale acquisito dal circuito con tre resistenze risulta leggermente pi`u insta- bile di quello acquisito con due resistenze, fatto che potrebbe dare problemi nel confronto con le soglie scelte nella valutazione della presenza di contatto; entrambi i circuiti, forniscono un segnale con un disturbo sulla linea base, eliminabile facilmente con un filtro digitale.

Successivamente all’ispezione visiva di questi segnali sono state realizzate le schede con la circuiteria per hand detection integrata, lasciando per`o la pos- sibilit`a di cambiare le resistenze per testare i due metodi anche sulla nuova versione del dispositivo. Per passare dal metodo a tre resistenze a quello a due, `e sufficiente infatti cambiare le resistenze esterne e lasciare libero l’allog- giamento per la resistenza centrale. Sulle nuove schede, sono state effettuate misurazioni per entrambi i metodi sia per valutare l’andamento del segnale di hand detection che per valutare eventuali interferenze sul segnale ECG causate dai circuiti in esame. Le acquisizioni effettuate con le schede hanno confermato i risultati ottenuti con i circuiti di prova: entrambi i metodi di resistenze permettono di individuare soglie del segnale di hand detection da cui ricavare la condizione di contatto cute-elettrodi, il circuito a tre resistenze permette di ricavare un segnale meno stabile rispetto a quello a due resisten- ze; il circuito a due resistenze per`o, contrariamente a quanto atteso, fornisce un disturbo sul segnale di ECG che `e risultato, a un’ispezione visiva, meno stabile e pi`u rumoroso rispetto al segnale originale. Per questi motivi, `e stato scelto il circuito di hand detection realizzato con due resistenze simmetriche del valore di 4.7MΩ, attivato in maniera alternata rispetto al circuito per ECG come descritto precedentemente; i periodi di tempo in cui il circuito di hand detection viene alimentato interrompendo il rilevamento del segnale ECG, sono tali da non perdere informazioni importanti circa quest’ultimo.

4.3

Valutazione dell’acquisizione del segnale

EDA

Una volta realizzata la contattiera con elettrodi in rame per il rilevamen- to dei segnali, sono state effettuate delle acquisizioni per l’analisi del segnale EDA. Le prove sono state realizzate effettuando un contatto con due dita della mano sinistra sugli elettrodi per un periodo di circa trenta secondi; al-

l’inizio e alla fine della sessione di registrazione, `e stato acquisito il segnale in condizioni di non contatto per circa un secondo. In figura 4.6a viene mostrato il segnale EDA, espresso in µS; nelle regioni pi`u alte del segnale, si possono notare delle zone piatte che indicano la saturazione dell’amplificatore opera- zionale OP2348 dedicato al rilevamento del segnale. Una volta osservata la

(a) Segnale EDA con saturazione dell’aplificatore operazionele.

(b) Segnale EDA senza satura- zione dell’amplificatore operazio- nale.

Figura 4.6: Confronto tra segnale EDA saturo e segnale EDA non saturo

saturazione del segnale, `e stato scelto di sostituire la resistenza di amplifica- zione e filtraggio collegata a uno dei pin di ingresso dell’OP2348, abbassando il suo valore da 1620KΩ a 1000KΩ. Questo ha permesso di poter rilevare va- lori di EDA pi`u elevati senza arrivare a saturazione dell’amplificatore, come si pu`o vedere in figura 4.6b.

Il segnale osservato, ha presentato valori concordi con quelli presenti in letteratura [19],[3] e un andamento decrescente nel tempo ma privo di picchi in assenza di stimoli esterni per il soggetto da cui `e stato rilevato, confer- mando quanto atteso. L’andamento del segnale in corrispondenza di stimoli esterni per il soggetto non `e stato studiato perch´e ritenuto non rilevante in questa fase di sviluppo del dispositivo.

Per verificare che il contatto contemporaneo con tutti gli elettrodi della con- tattiera non compromettesse la qualit`a del segnale ECG, sono state condotte pi`u prove di durata variabile, il cui protocollo ha previsto l’esecuzione di

tutte le possibili combinazioni di contatto con gli elettrodi della contattiera. Un’ispezione visiva, ha permesso di verificare che il segnale ECG non `e affetto da disturbo nel caso in cui si verifichi contatto contemporaneo degli elettro- di per ECG e di quelli per EDA, i segnali possono dunque essere acquisiti contemporaneamente per il salvataggio o per un’analisi in tempo reale.

4.4

Testing del funzionamento del sistema

Una volta effettuate le modifiche al firmware e hardware del dispositivo e individuati i valori soglia del segnale HD, il sistema `e stato testato per verificare che il comportamento del dispositivo fosse quello atteso. Sono sta- te svolte varie prove con protocollo variabile a seconda della grandezza che si voleva verificare. In generale, il corretto funzionamento degli elettrodi e del firmware, sono stati testati effettuando sequenze di contatti in tutte le possibili situazioni: contatto con i soli elettrodi per ECG, contatto con i soli elettrodi per EDA, assenza di contatto. In tutti i casi, il dispositivo ha rispo- sto come atteso: nel caso di solo contatto con elettrodi per ECG e contatto con tutti gli elettrodi il dispositivo resta in modalit`a ECG e viene effettuato il riconoscimento dei picchi, mentre nel caso di solo contatto con elettrodi per EDA, il dispositivo passa in modalit`a HD ma continua a misurare il se- gnale EDA. Anche il segnale ”good” ha assunto i valori attesi nei vari casi di contatto e i valori del segnale HD si sono mantenuti coerenti con le so- glie rilevate in fase di testing iniziale. In figura 4.7, viene mostrata a titolo esemplificativo, una sequenza di contatti che inizia con il contatto dei soli elettrodi per EDA in cui il segnale ECG risulta piatto come atteso e il segna- le Reco assume un valore intermedio tra il massimo e il minimo assegnatogli quando il dispositivo entra in modalit`a HD; successivamente viene effettuato un contatto corretto con tutti gli elettrodi della contattiera e difatti avviene il riconoscimento dei picchi R del segnale ECG; infine avviene il contatto con

i soli elettrodi per ECG e il segnale EDA risulta piatto. I brevi intervalli che separano ciascuna prova sono i casi in cui non avviene nessun contatto e il dispositivo passa in modalt`a HD. I valori riportati nel grafico sono stati scalati per avere una sovrapposizione che facilitasse la comprensione del fun- zionamento del sistema e non corrispondono ai valori reali, fatta eccezione per il segnale ECG che qui appare con suoi i valori logici.

Figura 4.7: Sequenza dio contatti per la verifica del funzionamento del sistema: EDA, EDA e ECG, ECG, separati da intervalli in assenza di contatto.

Capitolo 5

Validazione del sistema

Una volta realizzate le versioni definitive delle componenti del sistema

Documenti correlati