Introduzione al Progetto
Negli ultimi anni abbiamo assistito ad una crescente diffusione dei dispositivi a
controllo remoto nella vita di tutti i giorni. Fino a qualche tempo fa il telecomando
ad infrarossi della televisione o dello stereo, era l’unica applicazione del controllo
a distanza presente nelle nostre case. Attualmente, invece, si registra una
proliferazione di periferiche senza fili in ambito lavorativo così come domestico.
Per interagire con un numero sempre crescente di applicazioni di questo tipo,
spesso collocate in una stessa regione operativa, si manifesta sempre più la
necessità di un loro inserimento entro un’unica rete di comunicazione wireless
gestibile attraverso un’unica interfaccia di controllo standard. Queste reti sono le
“Home Area Network” (HAN) ed uno dei protocolli più promettenti con cui
gestirle prende il nome di “Zigbee”. Per questo motivo, tale protocollo, è stato
utilizzato per l’implementazione di un’applicazione biomedicale. L’introduzione
di un’innovazione nella tecnologia del controllo remoto è giustificata, in parte dal
numero sempre più alto di sistemi da controllare e, in parte dall’inadeguatezza
degli standard già esistenti in alcune applicazioni come l’automazione ed il
controllo di infrastrutture domestiche e commerciali; applicazioni per cui Zigbee
risulta, invece, esplicitamente studiato nella sua formulazione. Se si prende come
esempio la già citata tecnologia ad infrarossi con cui si può attualmente accendere
la TV, aprire la porta del garage o il cancello, accendere le luci, ecc…, essa
presenta un problema legato al fatto che supporta una comunicazione di tipo
punto-punto, per cui si deve tipicamente disporre di tante unità di controllo quanti
sono i dispositivi slave comandati. Inoltre una comunicazione IR necessita di
essere a vista per la sua attuabilità, per cui gli ambienti domestici, tanto per restare
in tema, risulterebbero difficilmente controllabili da un’unica postazione. Invece
la realizzazione di una rete HAN a radiofrequenza risolve facilmente entrambi i
problemi, in quanto non necessita di comunicazione a vista ed è gestibile nel suo
complesso tramite un unico nodo coordinatore.
Quello di “Wireless Area
Network” non è certo un concetto nuovo; al contrario alcuni standard come
WiFi o Bluetooth con cui è possibile attuare il trasferimento di informazioni
1
tra PC o altre periferiche collegate tra loro entro una stessa rete senza fili,risultano
già ben consolidati e maturi. Il problema, tuttavia, è legato al fatto che tali
tecnologie non rispondono alle peculiari esigenze delle reti di sensori o attuatori.
Dispositivi come i rivelatori di fumo o gli allarmi antifurto, tanto per citare dei
sistemi largamente diffusi, trascorrono risaputamene gran parte del tempo in
modalità “sleep”, attivandosi solo nel caso si verifichi un evento anomalo da
segnalare. Una loro possibile realizzazione wireless si fonderebbe su due
sostanziali imperativi: basso costo del nodo che li collega alla rete (basso rispetto
a quello del sensore di rilevazione) e consumo di potenza estremamente ridotto.
Inoltre tali tipi di applicazioni richiedono configurazioni potenzialmente
complesse del network in maniera da garantire la copertura di superfici ambientali
anche estese e, di contro, non presentano eccezionali pretese in termini di velocità
di trasmissione dei dati, tenuto conto della natura “semplice” dell’informazione
che deve essere trasferita. Gli standard attuali supportano, prevalentemente,
applicazioni ad alto data-rate per consentire il trasferimento efficiente di voce,
video, immagini, file, ecc…, non risultano però ottimizzate per il basso consumo
dei singoli nodi di rete. Di conseguenza, l’adozione di tali standard per le
applicazioni di cui sopra, costringerebbe l’utente ad una frequente sostituzione
delle batterie a bordo di ciascun terminale, considerati i pesanti protocolli che
devono essere supportati. Già questo, senza considerare gli annessi problemi di
costo, rappresenterebbe un serio vincolo alla diffusione delle HAN. La
proliferazione del wireless anche in questa direzione, si fonda quindi, sulla
disponibilità di un protocollo semplice e funzionale, nonché sulla progettazione
elettronica dei nodi selettivamente orientata al basso consumo di potenza. In
questo lavoro di tesi vengono ripresi tutti questi concetti cercando di approfondirli
per la realizzazione di un radiocomando in grado di gestire l’apertura a distanza di
microelettrovalvole per una particolare applicazione medica in ambito
odontoiatrico. L’applicazione prevederà lo sviluppo di un modulo ricevitore da
inserire alla poltrona dentistica che permette, tramite un trasmettitore con
interruttori a pedali opportunamente realizzato, di comunicare in modalità wifi
con quest’ultimo (figura 1) .
2
WIFI
Modulo
Ricevitore
Modulo
Trasmettitore
Figura 1: Schema dell’applicazione
Ogni pressione del pedale farà aprire la corrispondente microelettrovalvola che
consentirà il flusso di uno specifico liquido. La chiusura di tali elettrovalvole è
stata programmata per avvenire con una successiva pressione del pedale stesso.
Il Trasmettitore essendo in effetti un radiocomando può essere alimentato con un
opportuno regolatore di tensione esterno da 9V oppure per mezzo di una
pila/batteria a 9V. Il Ricevitore, invece, prevede che l’alimentazione a 9V gli
venga fornita direttamente dalla poltrona dentistica attraverso un regolatore di
tensione a 9V. Inoltre i relè a 5V, collegati in uscita al modulo ricevitore,
permetteranno
di
microelettrovalvole
realizzare
il
collegamento
tra ricevitore
e
consentendo un isolamento da queste ultime che sono
alimentate a 12V e 24V attraverso regolatori presenti sulla poltrona stessa. Nello
specifico le microelettrovalvole che servono a far fluire il liquido, sono alimentate
a 12V mentre l’unica microelettrovalvola che serve al risucchio del liquido stesso,
3
quella relativa al pedale di colore rosso, è alimentata a 24V perché necessita di
una potenza maggiore in relazione alla specifica operazione che dovrà svolgere.
Realizzazione Ricetrasmettitore
5.1 - Realizzazione circuito Trasmettitore
Il circuito Trasmettitore realizzato (figura 5.1) è in grado di gestire a distanza
l’apertura di microelettrovalvole per una particolare applicazione in ambito
odontoiatrico.
Figura 5.1: Realizzazione Trasmettitore su basetta di prova
Al trasmettitore sono stati applicati quattro pulsanti/pedali la cui pressione sarà
riconosciuta dal microcontrollore PIC16F628 il quale, a seconda del pulsante
premuto, invierà al modulo Xbee trasmettitore un segnale codificato che verrà
riconosciuto dal circuito ricevitore per l’attivazione della corrispondente
microelettrovalvola.
4
Figura 5.2: inquadrature varie del trasmettitore su basetta di prova
5.1.1 - Circuito Trasmettitore
Utilizzando il software Eagle, come descritto dettagliatamente nel Capitolo 2, è
possibile realizzare una rappresentazione 3D del progetto. Si descriverà per prima
come è stato realizzato il circuito(figura 5.3).
Figura 5.3: Circuito Trasmettitore
5
5.1.2 - Componenti del circuito Trasmettitore
I vari componenti che caratterizzano tale lavoro di tesi sono:
1. Regolatore di tensione 9V.
2. Regolatore di tensione 5V.
3. Interfaccia XbeePC.
4. Interfaccia PIC16F628 PC.
5. Modulo Xbee.
6. Altri componenti utilizzati.
1 Regolatore di tensione a 9V:
In un qualunque circuito elettronico, una delle parti più importanti è lo stadio
dell'alimentazione. Esiste tutta una serie di regolatori di tensione in grado di
fornire al circuito le giuste tensioni.
Il regolatore di tensione variabile per
tensione positiva utilizzato, è l’ LM317 prodotto dalla National Semiconductor.
Osserviamo più da vicino questo componente:
LM317: tensione positiva.
I regolatori di tipo LM317 permettono di ottenere delle tensioni positive variabili
mediante solo due resistenze. Inoltre esistono, sostanzialmente, due sotto-serie
del circuito integrato LM317: LM317 e LM317L. La differenza riguarda la
corrente che sono in grado di fornire in uscita: fino a 1,5A e fino a 100mA,
rispettivamente. Può essere utile sapere che il ripple, cioè l'ondulazione in uscita,
è al massimo di -80db ovvero -10.000 volte il valore della tensione nominale.
Quindi per Vout=5volt, il ripple è di solo 0,5mV e la potenza massima dissipabile
è di 15W. Per basse tensioni in uscita è necessario prestare un po' di attenzione per
stabilire la massima tensione in ingresso, tenendo conto della corrente che si andrà
a prelevare. Nella tabella si possono vedere le principali caratteristiche per
ciascuna sotto-serie.
6
Tabella 11: Caratteristiche dei regolatori LM317/LM317L
In figura 5.4 viene mostrato il circuito elettronico completo di un regolatore di
tensione positiva fissa. E' presente inoltre l'elenco dei valori dei componenti. Il
diodo ‘D1’ serve per scaricare il condensatore ‘C3’ durante lo spegnimento in
modo che non venga danneggiato il circuito integrato; ‘D2’ per scaricare ‘C4’ in
caso di cortocircuito in uscita; ‘C4’ stabilizza la tensione di regolazione sul
terminale "R". La tensione in uscita viene stabilita mediante il valore di ‘R2’ in
quanto R1=220 Ohm, come viene consigliato dalla casa costruttrice. C'è inoltre
una formula (semplificata) per determinare ‘Vout’ , nota ‘R2’ , tenendo conto che
‘Vout’ è espresso in Volt e ‘R2’ in Ohm:
Vout= 1,25 * ( 1 + R2 / R1 )
Conoscendo invece ‘Vout’ è possibile risalire al valore di ‘R2’ , mediante la
formula posta sotto, tenendo conto che ‘R2’ è espresso in Ohm, Vout in Volt:
R2= ( (Vout/1,25) - 1 ) * R1
Il valore di ‘R2’ calcolato difficilmente corrisponderà ad uno standard. Sarà
quindi necessario scegliere il valore standard più vicino e poi utilizzare la prima
formula per ricavare la tensione ‘Vout’ con il valore standard di ‘R2’. Questo
consentirà di valutare di quanto ‘Vout’ differisca dal valore che si voleva ottenere.
Per diminuire ancora di più tale scarto, è possibile variare leggermente il valore di
‘R1’ scegliendo tra 270Ohm e 560Ohm. Lo scarto in percentuale può essere
calcolato mediante la seguente formula:
%= 100 * (1 * (valore ideale - valore reale))
Per ‘R1’ e ‘R2’ si possono usare delle normali resistenze da 1/4 di Watt.
7
Figura 5.4: Regolatore di tensione positivo variabile per Vout=3.3V
Figura 5.5: Regolatore di tensione variabile per il modulo Trasmettitore e Ricevitore
I componenti che sono stati utilizzati risultano:
R1= 220 Ohm da 1/4 di Watt
R2= vedere formula nel testo
C1= 47-100 uF
C2= 100 nF
C3= 1-10uF
C4= 10uF
D1= 1N4007
D2= 1N4007
IC1= LM317 o LM317L
NOTA: Il valore del condensatore C1 deve essere maggiore di quello di C3, per
8
evitare di danneggiare IC1.
Il Regolatore di tensione così realizzato utilizzerà una tensione d’ingresso pari a
9V e fornirà in uscita, per mezzo del resistore variabile ‘R2’, una tensione pari a
3.3V che sarà l’alimentazione necessaria per il corretto funzionamento dei moduli
Xbee.
2 Regolatore di tensione a 5V:
Nell'alimentare i circuiti integrati , nello specifico i microcontrollori PIC16F628
è utile una tensione di 5 volt ma spesso questo valore non viene erogato
dall'alimentatore stabilizzato in possesso. Nel nostro caso i moduli, sia
trasmettitore che ricevitore, sono alimentati da un regolatore di tensione o da una
batteria da 9V. Lo schema utilizza un integrato della serie LM78xx (regolatore di
tensione positiva) che può essere facilmente sostituito con uno della serie
LM79xx (regolatore di tensione negativa) semplicemente collegando il piedino di
regolazione alla massa e i piedini ‘in’ e ‘out’ al positivo. Lo schema del circuito
realizzato è il seguente:
Figura 5.6: Circuito regolatore con Vout=5V
9
Figura 5.7:Circuito regolatore 3D con Vout=5V per Trasmettitore e Ricevitore
Componenti necessari:
C1 = condensatore elettrolitico 220µF
C2 = C3 = condensatori poliestere 100nF
C4 = condensatore elettrolitico 100µF
IC1= LM7805 / LM7905
R1 = resistenza 180 ohm
DL1 = diodo led
Attenzione: nella versione con 7905, il PIN GND di tale integrato va collegato al
‘+’ (in teoria diamo come riferimento al 7905 una tensione che per noi è positiva,
quindi è come se il ‘+’ fosse la massa, e i 5V fossero una tensione negativa).
Il cuore del circuito è l'integrato regolatore di tensione che fornisce in uscita 5V
avendo in ingresso una tensione continua a 9V. Essa è presa da un regolatore
esterno o da una pila/batteria nel caso del modulo trasmettitore. E’ possibile anche
inserire nella configurazione base del regolatore un led con in serie una resistenza
‘R1’ da 180Ohm collegato in parallelo all'uscita, la quale ci avvisa di eventuali
cortocircuiti, spegnendosi. In caso di sovraccarico (aumento eccessivo della
temperatura dell'integrato) quest'ultimo limiterà la corrente uscente facendo
affievolire la luminosità del LED. E' consigliabile non assorbire correnti elevate
se non si fissa l'integrato ad un adeguato dissipatore di calore; in questo caso la
corrente non deve comunque superare 1 Ampere.
10
Figura 5.8: Diagramma di connessione del regolatore LM7805
Le caratteristiche elettriche del regolatore sono mostrate nella figura seguente.
Una più dettagliata rappresentazione di questo componente è presente nel suo
specifico datasheet.
Tabella 12 : Caratteristiche elettriche del regolatore LM7805
3 Interfaccia XBEE  PC
Attraverso tale circuito si riesce ad interfacciare tramite porta seriale il modulo
Xbee ed il PC. Ciò permetterà poi tramite il software della DIGI
X-CTU,
visto nel capitolo precedente, di riuscire a configurare e modificare i parametri
sul modulo stesso.
11
Figura 5.9: Circuito d’interfaccia XbeePC attraverso Max232
Figura 5.10: Circuito d’interfaccia 3D XbeePC attraverso Max232
Per il posizionamento su circuito del modulo Xbee si sono utilizzati degli appositi
supporti (figura 5.11). Ciò consentirà una facile lettura dei pin da utilizzare in
fase di progettazione.
Figura 5.11 : Supporto per il montaggio dei moduli Xbee
12
Uno dei componenti principi dei circuiti d’interfaccia è il MAX232. E’ quindi
opportuno rappresentarne i pin ed il loro ruolo(figura 5.12).
Figura 5.12: Descrizione del Max232
4 Interfaccia PIC16F628  PC
Come nel caso dell’interfaccia del modulo Xbee con il PC i collegamenti sono
simili anche per l’interfaccia realizzata nel caso di microcontrollore PIC con il
PC. Si è comunque preferito utilizzare i piedini 10,9,8,7 del MAX232 perché
hanno la stessa funzione di quelli 11,12,13,14 evitando così di utilizzare gli stessi
piedini del collegamento con Xbee. Nel grafico (figura 5.13) sarà proposto il
collegamento iniziale e non quello poi utilizzato in fase di progettazione.
13
Figura 5.13 : Circuito d’interfaccia PIC16F628PC attraverso Max232
I
quattro condensatori collegati al MAX232 sono di 1uF;
se si utilizza
MAX232A o ST232 essi possono essere di 100nF.
Figura 5.14: PIC16F628 3D
Una volta realizzata l’interfaccia è possibile, tramite il collegamento seriale con il
nostro personal computer, far dialogare il microcontrollore PIC16F628 con
l’HyperTerminal del PC. Prima però bisogna definire la porta ‘COM’ su cui è
collegata l’interfaccia(figura 5.15) ed alcuni parametri fondamentali per la
comunicazione e per la corretta configurazione dell’ HyperTerminal .
Figura 5.15: Configurazioni per software HyperTerminal
Come si nota dalla figura 5.16 è opportuno, per la corretta configurazione
dell’HyperTerminal, tener presente i seguenti parametri:
 Bit per secondo
= 9600.
 Bit di dati
=8
 Bit di parità
= Nessuno
 Bit di stop
=1
14
 Controllo di flusso = Nessuno
Figura 5.16: schermata iniziale del software HyperTerminal
Eseguite tutte le istruzioni, sarà possibile visualizzare le eventuali stampe a video
previste nella programmazione in linguaggio C per verificare gli errori commessi
in fase di programmazione e progettazione.
5 Moduli Xbee
I moduli Xbee utilizzati in fase di progettazione sono stati ampiamente discussi
nel Capitolo 4. In questo capitolo verranno soltanto visualizzati.
Figura 5.17: Moduli e circuito virtuale Xbee
Le caratteristiche più importanti di questi componenti sono state riassunte nella
tabella seguente:
15
Tabella 13: Caratteristiche principali dei moduli Xbee
6 Altri componenti utilizzati
Si è pensato di inserire degli interruttori sia sul trasmettitore che sul ricevitore per
poterli disattivare nel momento in cui non si utilizzano. Ciò consentirà un minor
consumo delle batterie nel caso del Trasmettitore.
Figura 5.18: Vista 3D dell’interruttore utilizzato nel modulo Trasmettitore e Ricevitore
Gli interruttori inseriti (figura 5.19) sono normalmente aperti e vengono utilizzati
per verificare l’intero funzionamento del progetto. Comunque in fase di
realizzazione finale saranno sostituiti con quelli a pedali per una maggiore
manovrabilità da parte del medico.
16
Figura 5.19: Pulsantiera e pedaliera utilizzabili nell’applicazione del radiocomando
Il connettore (figura 5.20) è utilizzato per collegare il circuito all’alimentazione
esterna o per mezzo di un regolatore di tensione a 9V(ricevitore) o per mezzo di
una pila/batteria a 9V(trasmettitore).
Figura 5.20: Connettore 3D per collegare il circuito con le alimentazioni esterne
I dip switch (figura 5.21) sono di fondamentale importanza nel progetto poiché
consentono alle piste realizzate per interfacciare l’Xbee con il Personal Computer
di non interferire con le piste utilizzate per interfacciare invece il PIC16F628 con
il PC. Di conseguenza si eviteranno disturbi quando si dovranno programmare tali
dispositivi.
Figura 5.21: Dip switch
E’ tramite le seriali (figura 5.22), due per dispositivo, che avvengono le
comunicazioni con il Personal Computer dei moduli Xbee e dei PIC utilizzati.
17
Figura 5.22: Connettori Seriali 3D utilizzati nel progetto
I relè utilizzati sono gli SRD-S-105D della casa costruttrice SANYOU.
Figura 5.23: Relè a 5V
I vari tipi di relè vengono distinti per la tensione di pilotaggio che può essere
ricavata dalla sigla sottostante:
Figura 5.23: Relè a 5V
Le specifiche dei Relè sono elencate nella tabella seguente:
18
Tabella 14: Specifiche dei Relè SRD-S-105D della SANYOU
Una volta elencate le fasi di progettazione del modulo trasmettitore, si realizzerà
attraverso il software Eagle il suo
circuito stampato (PCB) dove saranno
visualizzati i collegamenti ottimizzati delle piste riferite sia al lato
superiore(colore rosso) sia a quello inferiore (colore blue).
Figura 5.24: Circuito stampato(PCB) del Trasmettitore
Si rappresenterà ora il circuito in forma tridimensionale avendo utilizzato
l’apposito script Eagle 3D(figura 5.25).
19
Figura 5.25: Trasmettitore 3D realizzato con lo script Eagle 3D
Figura 5.26: piste sul circuito stampato del Trasmettitore 3D
20
Figura 5.27: Inquadratura laterale del Trasmettitore 3D
5.2 - Realizzazione circuito Ricevitore
Il circuito Ricevitore (figura 5.28) avrà il compito, una volta ricevuto il carattere
in relazione al pulsante premuto sul circuito trasmettitore, di attivare il relè
corrispondente.
21
Figura 5.28: Realizzazione Ricevitore su basetta di prova
Tale relè piloterà l’apertura di una specifica elettrovalvola ad esso collegata. Tre
di queste elettrovalvole verranno utilizzate per far fluire del liquido; la quarta,
corrispondente al led di colore rosso, servirà come valvola di risucchio di tale
liquido. Il microcontrollore PIC utilizzato riconoscerà non solo il carattere inviato,
ma consentirà anche di spegnere il relè se questo è acceso.
22
Figura 5.29: Inquadrature del Ricevitore su basetta di prova
5.2.1 - Circuito Ricevitore
Così come si è realizzato un circuito 3D per il
Trasmettitore, è possibile
realizzarne uno per il Ricevitore (figura 5.30). Si descriverà per prima come si è
progettato il circuito.
Figura 5.30: Circuito Ricevitore
23
5.2.2 - Componenti del circuito Ricevitore
In questo paragrafo saranno descritti i vari componenti che caratterizzano il
Ricevitore. Non verranno presi in considerazione quelli già trattati nel paragrafo
precedente (Trasmettitore).
1. Regolatore di tensione 9V.
2. Regolatore di tensione 5V.
3. Interfacciamento XbeePC.
4. Interfacciamento PIC16F628 PC.
5. Modulo Xbee .
6. Rete per pilotaggio relè.
7. Altri componenti utilizzati.
6
Rete per pilotaggio Relè
Figura 5.31: Circuito di pilotaggio dei Relè
Lo schema elettrico è molto semplice e comprende quattro relè con relativi
transistor di pilotaggio e led di segnalazione. Il carattere in arrivo al modulo
ricevitore verrà opportunamente analizzato dal PIC16F628, il quale permetterà
24
di definire il corrispondente relè da attivare. Tutto il circuito di pilotaggio dei relè
viene alimentato a 5 volt così come i relè. Siccome i relè da 12 volt continui sono
più facilmente reperibili, potremmo montare questi ultimi al posto di quelli a 5
volt. In tal caso basterà distaccare il terminale dei relè che va alla tensione di 5volt
per collegarli ad un alimentatore che fornisca anche la 12 volt. Poi si farà
riferimento al suo circuito stampato (PCB figura 5.32).
Figura 5.32: Circuito stampato(PCB) del Ricevitore
Si rappresenterà ora il circuito in forma tridimensionale avendo utilizzato
l’apposito Script Eagle 3D(figura 5.33).
25
Figura 5.33: Ricevitore 3D realizzato con lo script Eagle 3D
Figura 5.34: Inquadratura piste sul circuito stampato del Ricevitore 3D
26
Figura 5.35: Inquadratura laterale del Ricevitore 3D
Possibili miglioramenti futuri
Le prime specifiche del protocollo ZigBee sono state ratificate nel dicembre del
2004, ed ora la ZigBee Alliance continuerà a convalidare tali specifiche attraverso
test di interoperabilità, scalabilità e miglioramenti futuri. L'Alleanza promuoverà
l'uso della tecnologia ZigBee nelle applicazioni del mondo reale per sostenere le
nuove e creative domande per il mercato, così come faciliterà l'adozione dello
standard ZigBee in tutto il mondo. L’obiettivo principale di questo lavoro di tesi
è stato la realizzazione di un radiocomando con relativo modulo ricevitore. Nei
circuiti realizzati sono state inserite le corrispondenti interfacce per effettuare le
configurazioni dei moduli Xbee che gestiscono la comunicazione wifi. Si è inoltre
utilizzato il programma HyperTerminal di Windows per verificare, attraverso
messaggi a video, eventuali errori nella programmazione. Le future applicazioni
potranno prevedere l’utilizzo di connettori usb, sostitutivi di quelli seriali, per la
comunicazione con il Personal Computer. Il motivo di tale sostituzione è dovuto
27
alla mancanza sempre più crescente di connettori seriali a 9 poli su computer
portatili. Un’ulteriore modifica sull’applicazione potrebbe essere la sostituzione
del regolatore di tensione variabile positivo con un regolatore specifico (LM11173.3), utilizzato per ottenere un’alimentazione di 3.3V sui moduli Xbee. L’
LM1117-3.3 consentirà di recuperare spazio sul circuito e diminuire le dimensioni
dell’applicazione stessa, ottenendo una maggior portabilità. E’ possibile inoltre,
negli sviluppi futuri, migliorare l’applicazione
aggiungendo ad essa
un’interfaccia virtuale user-friendly del radiocomando dal PC(figura 5.36). Il
motivo di prevedere tale interfaccia è dato dal sempre più crescente uso di
computer su applicazioni di vario genere.
Figura 5.36: Radiocomando virtuale
L’interfaccia virtuale potrebbe essere implementata aggiungendo, ad esempio, sul
circuito ricevitore un integrato pre-programmato della Nutchip. Poi utilizzando il
software ‘Commander’ i tasti si possono cliccare come su un radiocomando vero,
inoltre, sono presenti 8 led (4 rossi e 4 verdi) che mostrano in tempo reale gli
ingressi e le uscite del chip, ed un display per sapere sempre in quale stato si trova
il Nutchip.
Tale interfaccia e relativo circuito potrebbe essere utile per:

Comandare a distanza col PC; ad esempio cliccando sullo schermo si
accenderanno o si spegneranno dei relè.

Visualizzare sul PC ingressi e sensori remoti; ad esempio per verificare se
una microelettrovalvola è ON o OFF.
28
Per usare il ‘Commander’ , che rappresenta il software del radiocomando(figura
5.36), il Nutchip deve essere collegato al PC tramite l'interfaccia seriale (la stessa
che si è utilizzata per la programmazione dei PIC e dei moduli Xbee). Bisogna
però ricordare che lo standard delle porte seriali (RS232), per il corretto
collegamento, indichi in una decina di metri la lunghezza massima del cavo di
prolunga seriale.
Appendice per la programmazione dei PIC:
3.6.4 - Codice di programmazione del Trasmettitore
Prima di visualizzare il codice di programmazione del trasmettitore implementato
in C è opportuno rappresentare, come definito nei paragrafi precedenti, il FlowChart che ne descriverà i passi di programmazione (figura 3.15).
Figura 3.15: Flow-Chart Trasmettitore
29
Realizzato il Flow-Chart del trasmettitore è ora possibile visualizzarne il codice
implementato in linguaggio C del programma sviluppato:
Il Codice sopra descritto con il relativo flow-chart del modulo trasmettitore
definisce queste essenziali istruzioni per la programmazione dello stesso:
 Definizione delle librerie relative al linguaggio C (include..).
30
 Definizione dei fuses come descritto nel Capitolo 3.
 Definizione degli use (ritardi ed interfacce seriali uart utilizzate dal PIC).
 Settaggi variabili di progetto.
 Settaggi dei registri del PIC16F628 (set_tris_b e set_tris_a).
 Definizione delle porte utilizzate come input ed output.
Una volta definite le
direttive di programma si passa al cuore del codice
implementato:
Attraverso il ciclo ‘while( )’ il programma attende la pressione della pulsantiera /
pedaliera su uno dei pin precedentemente impostati come input. Il pulsante
premuto è riconosciuto per mezzo di una variazione della tensione di uno dei pin
d’ingresso da 5V a 0V. In seguito saranno le istruzioni ‘if( ) ed else( )’ che
definiranno quale area di codice eseguire in base alle condizioni imposte su tali
pin. Una volta riconosciuto il tasto premuto, il codice accenderà un led che ha il
solo compito di indicare all’utente se l’operazione è stata eseguita correttamente.
L’accensione del led si avrà rispettando i ritardi previsti in fase di progettazione
(1 secondo) attraverso l’istruzione ‘delay( )’ . Successivamente sarà inviato dal
pin ‘Tx’ del PIC16F628 il dato codificato (printf(“carattere”)) attraverso caratteri
così definiti:
 Tasto 1 (pin B0) = ‘A’.
 Tasto 2 (pin B3) =
 Tasto 3 (pin B5)
‘D’.
= ‘C’.
 Tasto 4 (pin B6) = ‘B’.
Il dato così definito sarà inviato al ‘Max232’ che consentirà di interfacciare il
PIC16F628 al modulo Xbee. Tale segnale verrà poi inviato dal Max232 sul pin
‘Rx’ del modulo Xbee trasmettitore. Successivamente esso sarà inviato dal pin
‘Tx’ del trasmettitore al pin ‘Rx’ del modulo Xbee Ricevitore.
3.6.5 - Codice di programmazione del Ricevitore
Ora si realizzerà il
Flow-Chart relativo al modulo Ricevitore che dovrà
comunicare con il modulo trasmettitore appena visto (figura 3.16) .
31
Figura 3.16: Flow-Chart Ricevitore
Il Codice in linguaggio C del modulo Ricevitore risulterà essere:
32
33
34
Il Codice sopra descritto con il relativo flow-chart
del
modulo Ricevitore
definisce queste essenziali istruzioni per la programmazione dello stesso:
 Definizione delle librerie relative al linguaggio C (include..).
 Definizione dei fuses come descritto nel Capitolo 3.
 Definizione degli use (ritardi ed interfacce seriale uart utilizzate dal PIC).
 Settaggi variabili di progetto.
 Settaggi dei registri del PIC16F628 (set_tris_b e set_tris_a).
 Definizione delle porte utilizzate come input ed output.
Una volta definite le
direttive di programma si passa al cuore del codice
implementato:
Attraverso il ciclo ‘while( )’ il programma attende la ricezione del carattere sul
pin ‘Rx’ del modulo Xbee Ricevitore e lo direziona attraverso il pin ‘Tx’ al
‘MAX232’. Il dato verrà poi inviato al pin ‘Rx’ del PIC16F628 precedentemente
impostato come pin di input. Tale microcontrollore risulta essere già fornito di
interfaccia uart per la comunicazione. L’arrivo di un carattere
è riscontrato
attraverso l’istruzione ‘getc( )’ presente nel ‘while( )’ . In seguito saranno le
istruzioni ‘if( ) ed else( )’ che definiranno quale area di codice eseguire in base
alle condizioni imposte sui pin d’ingresso (in base al carattere ricevuto) . Una
volta definito il carattere , il codice accenderà dei led che hanno il solo compito
di indicare all’utente se l’operazione è stata eseguita correttamente e di definire il
relativo relè attivato. Ovviamente i relè andranno collegati sui loro terminali
d’uscita a delle microelettrovalvole. I led anche in questo caso rispetteranno i
ritardi (di 1 secondo) previsti in fase di progettazione attraverso l’istruzione
35
‘delay( )’ . Inoltre nelle condizioni sulle istruzioni di scelta (if e else) saranno
presenti delle variabili di conteggio che permetteranno di definire se il led e la
microelettrovalvola
corrispondente va spenta o accesa. Di conseguenza
lo
spegnimento delle microelettrovalvole avviene sullo stesso pedale/pulsante come
da progettazione.
36