• Non ci sono risultati.

Per comandare l’apertura e la chiusura delle elettrovalvole è stato necessario progettare il sistema di controllo. Si è scelto di utilizzare un controllore facilmente disponibile in commercio, programmabile e con costi contenuti.

133 Per il corretto funzionamento del ventricolo, è necessario fornire le pressioni corrette insieme alla frequenza cardiaca. Dunque il controllo si basa sull’immissione da parte dell’utente del valore di frequenza cardiaca e della percentuale di durata della sistole rispetto alla durata totale di un battito.

Circuito elettrico

La strumentazione elettronica consiste in un microcontrollore Arduino (ARDUINO MEGA 2560, Arduino LLC, Ivrea), una breadboard con 830 punti, un display industriale a 16 caratteri divisi in 2 righe (1602A QAPASS) compatibile con il driver Hitachi HD44780 e un tastierino a membrana a 12 tasti.

La scheda Arduino a disposizione è basata sul microcontrollore ATMega2560, in grado di memorizzare fino a 256 KB di istruzioni sulla memoria flash integrata, che ne permette l’utilizzo indipendente da un computer una volta programmato. Esso viene generalmente alimentato a 5 V da un alimentatore esterno connesso alla rete elettrica, ma è in grado di fornire fino ad un massimo di 12 V se viene utilizzato un alimentatore di pari voltaggio. Per il controllo delle elettrovalvole è stato necessario utilizzare un ulteriore alimentatore a 24 V (LPV-35-24, Mean Well Enterprice Co., Taiwan).

I collegamenti tra breadboard e hardware sono stati effettuati tramite jumper in dotazione, quando possibile, altrimenti utilizzando cavo 22AWG opportunamente sezionato.

La breadboard utilizzata contiene 63 x 2 file da 5 pin centrali, utili per collegare i componenti, e 10 gruppi da 10 fori ciascuno disposti su entrambi i lati lunghi, utilizzati per l’alimentazione e la massa, come mostrato in Figura 5.44. I collegamenti elettrici all’interno della breadboard sono per colonna nella zona centrale, e per fila nella zona laterale (Figura 5.44).

Figura 5.44 Disposizione dei pin e visualizzazione dei collegamenti interni.

La scheda Arduino (Figura 5.45), è stata collegata tramite i pin 5 V e GND rispettivamente alla penultima e ultima fila della breadboard, fissando l’alimentazione di metà di essa a 5 V.

134 L’altra metà della breadboard è stata alimentata con il generatore a 24 V, collegando il morsetto positivo e il morsetto negativo con l’ultima e la penultima fila rispettivamente.

Figura 5.45 Scheda Arduino Mega 2560.

Una volta alimentata la breadboard, il display (Figura 5.46) è stato collegato tramite i pin presenti,

Figura 5.46 Disposizione pin digitali del display.

Seguendo lo schema riportato in Figura 5.47 ottenuto tramite il programma open-source Fritzing (versione 0.9.3b, Interaction Design Lab Potsdam) si possono vedere i collegamenti dei componenti.

135

Figura 5.47 Disposizione del circuito del sistema di controllo.

Si è inoltre inserito un trimmer da 10 KΩ, collegato al pin VE del display, per agevolarne la regolazione del contrasto. Questo componente è in grado di fornire una resistenza variabile da 0 ohm al valore massimo per cui è stato costruito. La regolazione avviene inserendo un cacciavite a stella nell’apposito foro, il quale agisce da cursore modificando il valore della resistenza interna.

Il tastierino utilizzato, anch’esso di facile reperibilità, è stato collegato, tramite i suoi 7 pin di output, ai pin sulla scheda Arduino come mostrato in Figura 5.47. Esso è composto da una matrice di pulsanti disposti in 4 righe e 3 colonne, collegati elettricamente (Figura 5.48).

136 Quando viene premuto un pulsante, viene collegata elettricamente una riga ad una colonna. Siccome ciascun pin del tastierino corrisponde ad una riga o ad una colonna, il collegamento di due linee permette lo scorrimento di corrente e quindi l’individuazione da parte di Arduino dei pin attivi.

Gli elementi che vengono controllati sono le elettrovalvole del circuito dell’aria. Per sopperire alla mancanza di alimentazione diretta a 24 V da parte di Arduino, è stato utilizzato un alimentatore esterno la cui tensione viene gestita utilizzando un transistor (TIP102, STMicroelectronics, Ginevra).

Questo transistor è di tipo BJT o a giunzione bipolare, ed è stato utilizzato come componente attivo con funzione di interruttore. Si è utilizzato quello con polarità NPN, ovvero avente i materiali semiconduttori di cui è formato in ordine negativo-positivo-negativo. I terminali di un transistor sono tre: Base (B), Emettitore (E) e Collettore (C). Il diagramma circuitale equivalente presenta un diodo tra base ed emettitore, orientato come mostrato in Figura 5.49.

Figura 5.49 Diagramma circuitale di un transistor NPN.

Per come viene progettato questo tipo di transistor, la corrente può scorrere dal collettore all’emettitore, anche per basse differenze di potenziale. Un transistor, in generale, può essere utilizzato come amplificatore o interruttore. In questo progetto esso viene utilizzato come interruttore e vengono sfruttati perciò i due stati che può raggiungere: quello di saturazione (stato ON) e quello di interdizione (stato OFF).

Nello stato di saturazione i terminali collettore ed emettitore risultano collegati come se ci fosse un cortocircuito. Per raggiungere questo stato è necessario che il “diodo” venga polarizzato, e quindi che esso veda tra i suoi capi una differenza di tensione maggiore di circa 0.7 V. Invece, lo stato di interdizione viene mantenuto se sulla base vi è una tensione

137 inferiore a quella presente sul collettore e sull’emettitore. In questo caso il diodo si comporta come circuito aperto, non permettendo il passaggio di corrente.

Nel circuito, viene inoltre inserita una resistenza da 15 kΩ in serie alla base per proteggere il transistor da eccessive correnti in ingresso che potrebbero danneggiarlo.

In particolar modo, il transistor utilizzato, è in configurazione Darlington, quindi composto da due BJT in cascata, e presenta due diodi orientati come in Figura 5.50, i quali permettono il passaggio di corrente solo dalla base all’emettitore.

Figura 5.50 Diagramma circuitale del transistor Darlington.

L’ultimo componente che è stato utilizzato per la gestione della tensione e corrente in ingresso alle elettrovalvole, è un diodo di potenza con il catodo orientato come mostrato in Figura 5.47. Esso è necessario per proteggere le elettrovalvole da correnti retrograde quando il transistor si trova nella condizione di interdizione.

Infine è stato inserito nel circuito un tasto per agevolare il RESET della scheda Arduino. Vi è un tasto reset integrato sulla scheda, ma per necessità ne è stato aggiunto uno a pannello in modo che esso possa essere facilmente raggiungibile dall’utente.

Programmazione

Per interfacciare i componenti hardware con il controllore è stato necessario programmare quest’ultimo.

Si è collegata la scheda Arduino al PC tramite cavo USB all’ingresso integrato su di essa. Utilizzando poi il software open-source Arduino IDE (ver. 1.8.3) è stato possibile scrivere le istruzioni in linguaggio Java da compilare e caricare sulla memoria.

Il codice utilizzato per controllare le elettrovalvole, riportato in appendice A, è diviso in 3 sezioni: la prima, in cui vengono caricate le librerie necessarie per utilizzare il display e il tastierino, e in cui si inizializzano questi ultimi; la seconda, che corrisponde al setup, in cui

138 vengono attivati i pin a cui sono collegate le elettrovalvole; la terza, infine, che corrisponde al loop, ed è divisa a sua volta in tre sezioni distinte. Di queste, la prima contiene le righe necessarie a salvare in memoria la frequenza cardiaca immessa dell’utente tramite tastierino, la seconda contiene le righe necessarie a salvare in memoria la percentuale di durata della sistole e la terza contiene le righe necessarie a comandare l’apertura e la chiusura delle valvole secondo le tempistiche impostate.

In dettaglio l’algoritmo del loop è il seguente:

• Fintanto che l’indicatore rimane 0

o Viene mostrata a schermo la richiesta di inserimento della frequenza cardiaca;

o Il controllore si aspetta un numero con massimo 3 cifre e ogni cifra viene salvata nella variabile (bpm);

o Viene effettuata la conversione in numerazione ASCII dei numeri inseriti; o Alla pressione del tasto * l’indicatore viene cambiato a 1

• Fintanto che l’indicatore rimane 1

o Viene mostrata a schermo la richiesta di inserimento della percentuale di sistole;

o Il controllore si aspetta un numero con massimo 2 cifre e ogni cifra viene salvata nella variabile (sist);

o Viene effettuata la conversione in numerazione ASCII dei numeri inseriti; o Alla pressione del tasto * l’indicatore viene cambiato a 2;

• Fintanto che l’indicatore rimane 2

o Vengono mostrati a schermo i parametri inseriti;

o Viene calcolato il tempo di ciascuna fase del ciclo cardiaco; o Vengono mostrati a schermo i tempi calcolati;

o Viene modificato l’indicatore a 3;

• Fintanto che l’indicatore rimane 3

o Vengono aperte e chiuse le due valvole seguendo i tempi calcolati precedentemente;

Nello svolgere il codice, il microcontrollore esegue una sola volta le prime due sezioni, mentre il loop viene eseguito infinite volte, fino a che non viene resettata la scheda. Per

139 impostare una nuova coppia di parametri si può premere il tasto RESET in un momento qualsiasi. Così facendo viene riavviato il microcontrollore e il codice viene eseguito dall’inizio.

Documenti correlati