• Non ci sono risultati.

Acquisizione sul PC e Prove Sperimentali

N/A
N/A
Protected

Academic year: 2021

Condividi "Acquisizione sul PC e Prove Sperimentali"

Copied!
18
0
0

Testo completo

(1)

Capitolo 7

Acquisizione sul PC e Prove Sperimentali

7.1 Il Software LabView TM

Nello sviluppo del progetto abbiamo affiancato alla parte hardware anche l’im- plementazione di un’interfaccia su PC per l’immagazzinamento e la successiva elaborazione dei dati acquisiti tramite la scheda. L’interfaccia ` e stata imple- mentata con il software LabView

TM

della National Instruments [27]. Si tratta di un linguaggio ad oggetti in forma grafica che prende il nome di G Language.

In esso il programma viene implementato sotto forma di diagramma a bloc- chi e non di sequenza di codici. Questa caratteristica da a LabView

TM

molta flessibilit` a e fornisce al programmatore la possibilit` a di lavorare in pipeline, eseguendo operazioni in parallelo. Il flusso di programma, infatti, non ` e fissato dall’ordine con cui si presentano le istruzioni all’interno del codice scritto, co- me avviene nei linguaggi tradizionali, ed ogni istruzione viene eseguita appena sono disponibili i dati al suo ingresso. Nonostante questo, LabView

TM

prevede, come gli altri linguaggi, le stesse strutture di controllo del flusso come i cicli WHILE, FOR ecc...

Un programma in ambiente labview viene chiamato Virtual Instrument (VI)

ed ` e contraddistinto da tre parti: il diagramma a blocchi, il pannello frontale

(2)

7.2 Il Programma di Acquisizione su PC

e l’icona/connettore. Se il diagramma a blocchi rappresenta il cuore del pro- gramma, in cui vengono interconnessi i vari blocchi per dar vita al programma vero e proprio, il pannello frontale rappresenta l’interfaccia grafica con cui l’u- tente pu` o interagire con il programma stesso. Esso si compone di controllori e indicatori: i primi rappresentano le variabili di ingresso al programma o ad alcuni blocchi del programma che l’utente pu` o impostare e modificare durante l’esecuzione; i secondi, invece, restituiscono le variabili di uscita del programma che possono essere visualizzate in forma numerica o di grafico. Ogni indicatore e controllore ` e implementato in forma grafica dando al pannello frontale l’aspet- to di un vero e proprio strumento virtuale. La coppia icona/connettore, infine, fornisce la rappresentazione grafica di un dato strumento virtuale (icona) con le proprie uscite e i propri ingressi (specificati univocamente dal connettore).

Ogni VI ` e dotato di una coppia icona/connettore che ne consente l’inserimento e l’interconnessione con altri blocchi per l’utilizzo come sub-VI all’interno di un altro VI.

7.2 Il Programma di Acquisizione su PC

Il diagramma a blocchi del programma complessivo ` e visibile in figura 7.1. Il programma ` e strutturato in modo da poter selezionare se acquisire i dati attra- verso il canale ad ultrasuoni oppure attraverso il canale di acquisizione digitale dei segnali a bassa frequenza. Il tutto ` e ottenuto con una struttura CASE che esegue uno dei due sottoprogrammi in base al valore della variabile booleana

“switch canale”impostata dall’utente. Nella 7.1 si vede solo uno dei due sot- toblocchi della struttura case, quello relativo al canale ultrasonico. Dopo aver abilitato inizialmente la porta seriale del PC, settando i vari parametri dello standard di comunicazione (baudrate, parit` a ecc...), il programma, all’interno di un ciclo WHILE, che si ripete finch` e il valore della variabile booleana Stop non diventa true, testa il valore di “switch canale”ed esegue il corrispondente sub-VI.

Nel caso sia selezionato il canale ultrasonico il relativo sottoprogramma ` e

105

(3)

7.2 Il Programma di Acquisizione su PC

Figura 7.1: Il programma di acquisizione dati

106

(4)

7.2 Il Programma di Acquisizione su PC

visualizzato in figura 7.2. Il sub-VI legge dalla seriale un numero di caratteri impostato dall’utente, convertendoli dalla codifica ASCII in un array di byte con rappresentazione unsigned. In seguito moltiplica il dato per 0, 2583, per avere in uscita la distanza tra il sensore e il target (la parete cardiaca). Tale valore ` e determinato facendo uso delle relazioni del capitolo 4. In particolare, dalla 4.11 espressa in millimetri, si ottiene la risoluzione spaziale corrisponden- te all’unit` a di conteggio, che, moltiplicata per il numero di conteggi, fornisce il valore cercato. Il blocco successivo viene eseguito solo se richiesto dall’utente ed esegue un controllo sui dati in arrivo dalla seriale. Esso scorre ad uno ad uno tutti gli elementi del vettore di bytes in ingresso, attraverso un ciclo FOR con i che va da 0 ad N − 1, con N dimensione dell’array, e quando trova il valore 65.8665, che corrisponde ad un valore 255 inviato dal PIC e quindi al verificarsi di un overflow (cfr. 4.3.3), lo rimpiazza con il valore immediatamente prece- dente. Il led luminoso “errore”sul pannello frontale si accende per segnalare l’evento. Se il controllo non ` e attivato, invece, i dati passano inalterati. Dopo il ciclo di controllo i dati vengono processati da un filtro a media mobile, gi` a presente nelle librerie di LabView

TM

, di cui l’utente pu` o selezionare l’ordine.

Il filtro ha lo scopo di smussare le transizioni brusche introdotte dall’algorit- mo di rimpiazzo. Infine, i campioni cos`ı ottenuti vengono assemblati in una waveform, ovvero una tipologia di dati che contiene anche informazioni sulla distanza temporale tra un campione e l’altro. Tale valore viene immesso dall’u- tente in base al rate scelto per gli invio degli impulsi ultrasonici. La waveform ottenuta pu` o, a quel punto, essere visualizzata su grafico.

Nel caso sia selezionato il canale di acquisizione a bassa frequenza (d’ora in avanti indicato come canale ADC), il relativo sub-Vi che viene richiamato

`

e illustrato nella figura 7.3. Il sub-VI legge anch’esso dalla seriale un numero di caratteri impostati dall’utente e li converte in un array di bytes unsigned, estendendone la rappresentazione su 16 bit. Successivamente, poich` e il dato in arrivo dalla seriale ` e composto da 10 bit, contenuti in 2 bytes distinti (cfr. 5), il sottoprogramma esegue un ciclo For con i che va da 0 a

(N −1)2

, dove N ` e la dimensione dell’array, in cui scorre gli elementi e somma le componenti pari,

107

(5)

7.2 Il Programma di Acquisizione su PC

Figura 7.2: Il sottoprogramma relativo al canale ultrasonico 108

(6)

7.2 Il Programma di Acquisizione su PC

Figura 7.3: Il sottoprogramma relativo al canale a bassa frequenza 109

(7)

7.2 Il Programma di Acquisizione su PC

corrispondenti ai primi 8 bit di ogni campione acquisito, con le componenti dispari moltiplicate per 256. Il risultato ` e il valore del campione acquisito. Il programma ` e anche dotato di un controllo per verificare la corretta sincroniz- zazione dei dati:se il secondo campione di ogni coppia, dopo la moltiplicazione, restituisce un valore inferiore a 768 vuol dire che la ricezione e successiva con- versione sono sincronizzate con l’invio da parte del PIC, altrimenti, poich` e il secondo byte di ogni campione ` e per forza ≤ 3, significa che si ha un disalli- neamento dei dati e che i bytes di ordine dispari dell’array corrispondono in realt` a al primo byte di ogni campione. In questo caso allora, si ha un valore true in uscita al blocco di test e quindi in uscita al successivo blocco OR. Tale variabile ` e resa disponibile per l’iterazione successiva del ciclo, in cui verr` a ese- guita la parte della struttura case relativa alla condizione true, diminuendo di 1 l’indice di scorrimento dell’array e ottenendo cos`ı la corretta sincronizzazione.

Da notare che, in seguito al verificarsi della condizione true e alla correzione dell’indicizzazione dell’array, all’iterazione successiva la condizione di test re- stituisce un valore false. Per questo si ` e inserito il blocco OR, che garantisce un uscita true per tutta la restante durata del ciclo For susseguente al verificarsi della condizione di disallineamento. Se cos`ı non fosse vi sarebbe un continuo

“palleggiamento”tra le due indicizzazioni e dunque si avrebbe la perdit` a di validit` a dei dati. Una volta ricostruito l’array di campioni, viene costruita anche qui una waveform contenente informazioni sulla distanza temporale dei campioni che, come illustrato nel capitolo 5, ` e di 250 µs. Proseguendo con la descrizione del programma principale, sempre con riferimento alla figura 7.1, in ognuno dei due casi selezionati, la waveform in uscita dalla struttura CASE viene graficata e il blocco frequency calcola la frequenza principale del segnale (quella con ampiezza maggiore). Inoltre si pu` o scegliere se salvare i dati su file attraverso il blocco Write To Measurement File. Solo nel caso che sia attivato il canale ADC vengono plottati i grafici relativi ai segnali cardiaci e respiratori, ottenuti come filtraggio software del segnale acquisito, attraverso filtri passa banda di butterworth rispettivamente con frequenza di taglio a 0.5 Hz e 0.25 Hz. All’utente il software si presenta solo attraverso il pannello frontale del

110

(8)

7.3 Prove Sperimentali

Figura 7.4: L’interfaccia utente su PC

programma, che ` e riportato in figura 7.4.

7.3 Prove Sperimentali

Il dispositivo finale ` e stato assemblato in forma prototipale, realizzando il PCB

1

attraverso l’uso del CAD PROTEL2004

TM

di Altium Limited [28]. In Appen- dice a questo scritto sono riportati i Layout utilizzati per la stampa del circuito attraverso il processo fotolitografico. Il circuito finale, composto dai tre mo- duli separati, ` e quello di figura 7.5. Per il test del dispositivo si ` e proceduto dapprima ad una verifica del corretto funzionamento e poi alle prove in vivo sull’uomo. Naturalmente si ` e provveduto anche a testare tutti gli aspetti rela- tivi alla corretta trasmissione wireless dei dati e al funzionamento dello switch del canale tramite interruttore sulla scheda, verificandone la validit` a.

1

Printed Circuit Board

111

(9)

7.3 Prove Sperimentali

Figura 7.5: Il dispositivo finale con i 3 moduli visti dall’alto

7.3.1 Prove sul Canale Ultrasonico

Per quanto riguarda il canale ultrasonico abbiamo inizialmente testato la ca- pacit` a di rilevare un bersaglio mobile da parte del dispositivo. Per far questo ` e stata utilizzata inizialmente una protesi al silicone, il cui compito era quello di trasmettere l’ultrasuono dal sensore al bersaglio, rappresentato da una placca di metallo. L’insieme di sensore, protesi e placca ` e visibile in figura 7.6, do- ve si nota anche il gel utilizzato per accoppiare acusticamente il sensore e la superficie della protesi.

Una volta verificato il corretto funzionamento del canale ultrasonico si ` e proceduto ad una stima dell’errore da esso introdotto nella misura di distan- za. Per far questo ` e stato costruito un apposito apparato di misura visibile in figura 7.7. Esso ` e composto da un carrello mobile sul quale ` e posizionato un encoder che ` e in grado di rilevare la posizione dello stesso. Sul carrello, inoltre,

`

e montato un braccio mobile connesso ad una placca di metallo immersa in una bacinella d’acqua. La placca serve da bersaglio per l’impulso ultrasonico invia- to dal trasduttore. Con tale sistema si sono effettuate alcune prove statiche: si

`

e posizionato il bersaglio a diverse distanze rispetto al trasduttore, andando ad

112

(10)

7.3 Prove Sperimentali

Figura 7.6: Prove effettuate con la protesi in silicone

Figura 7.7: Apparato per i test statici del canale ultrasonico

113

(11)

7.3 Prove Sperimentali

Figura 7.8: Esempio di misura statica alla distanza di 4 cm

acquisire il dato su PC attraverso il canale ultrasonico e confrontandolo con la misura ottenuta con l’uso dell’encoder e di un metro. Il risultato della misura alla distanza di 4 cm ` e visualizzato in figura 7.8, dove si vede come l’errore commesso dal nostro dispositivo sia effettivamente molto piccolo. Poich` e l’en- coder dava solo una misura di posizione relativa, rispetto alla sua posizione iniziale, non ` e stato possibile utilizzarlo nelle misure di distanza assoluta tra il sensore e il bersaglio. Un’ altra prova, dunque, ancora pi` u precisa, ` e consistita nel porre il carrello in due posizioni distinte e distanti tra loro 1 cm (misurato appunto con l’encoder) e andando a vedere i valori rilevati dal nostro dispositi- vo. Il sistema ultrasonico ha restituito una distanza tra il bersaglio e il sensore di 2,14 cm circa nella prima posizione e di 3,15 circa nella seconda, con un errore di un decimo di millimetro (figura 7.9). Successivamente, con l’uso di un plotter pilotato da un oscillatore, si ` e fatto oscillare il bersaglio mobile con segnali diversi, misurando contemporaneamente l’escursione fatta dal braccio mobile grazie ad un pennino che scriveva su foglio (vedi figura 7.10). Si ` e po-

114

(12)

7.3 Prove Sperimentali

Figura 7.9: Risultato della misura di 2 posizioni a distanza di 1 cm l’una dall’altra

Figura 7.10: Il plotter usato per i test in movimento del canale ultrasonico

115

(13)

7.3 Prove Sperimentali

Figura 7.11: Acquisizione ultrasonica con bersaglio in movimento pilotato da una sinusoide di 0,6 Hz circa

tuto in questo modo verificare che il movimento del plotter, a cui era connesso il bersaglio, era praticamente identico, in termini di morfologia e frequenza, al segnale che lo pilotava, contemporaneamente visualizzato sull’oscilloscopio.

In particolare, si ` e mandato un segnale sinusoidale alla frequenza di 0,6 Hz cercando di simulare il movimento della parete cardiaca. Con il metro si ` e misurata l’escursione tracciata dal pennino regolandola ad 1,5 cm. Il risultato dell’acquisizione ` e mostrato nella figura 7.11. Si pu` o apprezzare la capacit` a del sistema di ricostruire in maniera fedele il movimento del bersaglio e di rilevarne correttamente la frequenza (misurata in mHz). Si nota un rumore sovrapposto in alta frequenza, dovuto evidentente agli attriti e alla rugosit` a della guida su cui il carrello scorreva.

Successivamente si ` e proceduto a pilotare il bersaglio con un’onda triangolare con stessa escursione e stessa frequenza. Il risultato ` e visibile in figura 7.12.

7.3.2 Prove sul Canale a Bassa Frequenza

Il testing del canale di acquisizione digitale a bassa frequenza, invece, ` e stato effettuato, inizialmente, con l’ausilio di un generatore di segnale. Sono stati mandati in ingresso al dispositivo dei segnali sinusoidali di prova con frequenze nel range della banda del canale. Nella figura 7.13 ` e visibile il risultato ottenuto per l’acquisizione di una sinusoide alla frequenza di 150 Hz. Come si pu` o notare il calcolo della frequenza restituisce il valore 149.81 Hz, con un errore di appena

116

(14)

7.3 Prove Sperimentali

Figura 7.12: Acquisizione ultrasonica con bersaglio in movimento pilotato da un’onda triangolare di 0,6 Hz circa

Figura 7.13: Acquisizione di una sinusoide a 150 Hz

lo 0.13 %.

Una volta accertato il corretto funzionamento del canale a bassa frequen- za si ` e provveduto ad acquisire i segnali cardio-respiratori direttamente su un soggetto. Il risultato ` e visibile in figura 7.14. In particolare si vede come il segnale acquisito si componga di 2 segnali sovrapposti. Essi sono visualizzati separatamente dall’alto in basso: il primo, di frequenza pi` u bassa e ampiezza molto grossa, corrisponde al pattern respiratorio, mentre il secondo, di ampiez- za minore e frequenza pi` u elevata, ` e rappresentato dai toni cardiaci, evidenziati nel dettaglio nella figura 7.15.

Per avere una validazione dei risultati ottenuti si ` e proceduto ad acquisire in contemporanea sia con il nostro sistema, sia attraverso un sistema commer-

117

(15)

7.3 Prove Sperimentali

Figura 7.14: Esempio di acquisizione dal canale a bassa frequenza

Figura 7.15: Toni cardiaci in evidenza

118

(16)

7.3 Prove Sperimentali

Figura 7.16: Segnale cardiaco acquisito dal nostro sistema (sopra) ed ECG acquisito con Biopac System (sotto)

ciale, il Biopac System, capace di rilevare l’ECG e gli atti respiratori. In figura 7.16 si vedono, dall’alto in basso, il segnale relativo ai battiti cardiaci rilevati col nostro sensore e il segnale ECG. Si pu` o notare come il segnale misurato dal nostro sistema non sia sincronizzato con i picchi R, ma sia posizionato, invece, in corrispondenza dei gruppi S-T.

Nella figura 7.17 sono invece confrontati gli spettri frequenziali dei due segnali, dopo che su di essi ` e stato applicato l’algoritmo FFT. Come si vede la frequenza

`

e sostanzialmente la stessa per entrambi i segnali. Per il segnale ECG il cal- colo della frequenza restituisce 77 battiti al minuto circa, mentre con il nostro dispositivo viene rilevata una frequenza cardiaca pari a 75 battiti al minuto circa, con un errore del 2.5%. Per quanto riguarda invece la misura degli atti

119

(17)

7.3 Prove Sperimentali

Figura 7.17: FFT del segnale ECG(sopra) e del segnale cardiaco acquisito dal nostro sistema (sotto)

respiratori, nella figura 7.18 sono messi a confronto i risultati ottenuti con i due dispositivi. Anche in questo caso i risultati sono molto simili e il calcolo della FFT su entrambi i segnali ` e visibile nella figura 7.19. Per il nostro segnale il calcolo della frequenza principale restituisce un valore di 0,411 Hz, mentre per il segnale acquisito con Biopac d` a un valore di 0,391 Hz con un errore minore dello 0,5%.

120

(18)

7.3 Prove Sperimentali

Figura 7.18: Segnale respiratorio acquisito con il nostro sistema (sopra) e con il Biopac System (sotto)

Figura 7.19: FFT del segnale respiratorio acquisito con il Biopac System (sopra) e con il nostro sistema (sotto)

121

Riferimenti

Documenti correlati

Nei collegamenti tra computer connessi ad Internet, che coinvolgono pi`u linee di intereconnessione (come ADSL, Wi-Fi, linee dedicate,. ) e pi`u centrali telefoniche, si parla

• espresso espresso espresso espresso: non può essere desunto per facta concludentia e non è sufficiente se tacito, pur non occorrendo formule sacramentali; è

O1261

La sorgente di noise dominante e’ tipicamente interna all’amp e soltanto in configurazione fed back parte di questo noise e’ presente all’input; in altre parole, il segnale

Un processo stocastico stazionario in senso lato caratterizzato da autocorrelazione H xx (τ ) = 4sinc(4τ ) viene posto in ingresso a un sistema lineare tempo invariante avente

ANALISI MATEMATICA II- 8 GENNAIO 2018 - C.d.L.: EDIQQ, EDILMU.. Il numero del compito `e dato dall’intero nell’argomento di log

[r]

Utilizzando indirizzi IP di una rete di classe B a vostra scelta, indicate un possibile schema di indirizzamento completo assegnando, ovunque necessario, gli indirizzi IP scelti e