CarWiFi - Informatici - Scuola media Pietro Coppo

Scuola Media Pietro Coppo
CarWiFi
Indirizzo informatico
Alunno: Bruno Fikon
Mentore: Maurizio Škerlič
Anno scolastico: 2013/2014
INDICE
INDICE ...................................................................................................................................... 2
INTRODUZIONE...................................................................................................................... 3
LA PROGETTAZIONE ............................................................................................................ 3
LA PROGETTAZIONE DEI CIRCUITI STAMPATI ............................................................. 8
LA PROGRAMMAZIONE DEI MICROCONTROLLORI ................................................... 11
PROBLEMI RISCONTRATI .................................................................................................. 12
IL PROGRAMMA DI PILOTAGGIO .................................................................................... 13
CONCLUSIONI ...................................................................................................................... 13
BIBLIOGRAFIA ..................................................................................................................... 14
2
INTRODUZIONE
Lo scopo del progetto è quello di pilotare un veicolo, nel nostro caso una macchinina
giocattolo, tramite il computer mediante collegamento Wi-Fi. L’idea ci è venuta discutendo
di modellini di elicotteri, aeroplani e macchine radiocomandate.
Nel nostro articolo spiegheremo come abbiamo realizzato il progetto, le varie fasi e le
problematiche riscontrate durante lo sviluppo.
LA PROGETTAZIONE
Il cuore del nostro progetto è l’arcinoto router WRT54GL della Linksys il quale sistema
operativo è stato sostituto con quello a sorgente aperta (ingl. open source) “OpenWRT” [5] e
l’interfaccia grafica “XWRT” [7].
Oltre al router abbiamo utilizzato la scocca di un modellino di macchina giocattolo della
Nikko e la telecamera IP della Foscam modello FI8907W [2]. La scelta di tale telecamera è
dovuta dal fatto di mantenere bassi i costi e le dimensioni ridotte anche se a scapito della
risoluzione e la qualità delle immagini video. Nella Figura 1 possiamo osservare la
telecamera utilizzata nel nostro progetto.
Figura 1. Telecamera IP FI8907W utilizzata nel nostro progetto [1].
Per la progettazione abbiamo utilizzato sia il sistema operativo Windows 7 che Linux Ubuntu.
Inoltre abbiamo utilizzato diversi programmi quali Eagle, Microsoft Office Word 2010,
Virtual Box, MPLAB, Putty [6], Notepad++ [3], Mplab e i linguaggi di programmazione
Visual Basic, Basic for PIC e C++.
3
Per prima cosa abbiamo iniziato a raccogliere più informazioni possibili su internet, come
poter collegare un dispositivo al computer tramite la rete Wi-Fi, successivamente abbiamo
disegnato uno schema a blocchi per facilitare la realizzazione. Nella Figura 2 possiamo
osservare lo schema a blocchi del nostro progetto.
CarWifi
Batteria (alimenta tutto)
Alimentatore switching
Circuito elettronico di controllo
dati
Il router Linksys WRT54GL
dati e
PIC aggiuntivo
PIC principale
video
video
Antenne
Horn (clacson)
Camera IP
Luci anteriori
Luci posteriori
Controllo motore
Circuito elettronico
di supporto
elettrico di trazione
posteriore e sterzo
PIC di supporto
Luci polizia
Luci “supercar”
Sirena polizia
Figura 2. Lo schema disegnato da noi, dove viene visualizzato il funzionamento e i collegamenti tra i
componenti.
4
Una volta realizzato lo schema a blocchi ci siamo dedicati alla progettazione dell’aspetto
finale del nostro prototipo. Nella Figura 3 si possono osservare vari schizzi e disegni in fase
di progettazione.
Figura 3. Schizzi disegnati per avere un’idea di come sembrerà il progetto finito.
Per prima cosa abbiamo sostituito il sistema operativo del WRT54GL installando quello a
sorgente aperta OpenWRT e l’interfaccia grafica XWRT.
Nella Figura 4 possiamo osservare la fase di sostituzione del sistema operativo del router
Linksys e nella Figura 5 il router già modificato collegato alla telecamera IP.
5
Figura 4. Sostituzione del sitema operativo
Figura 5. Il router Linksys WRT54GL collegato
OpenWRT sul router Linksys WRT54GL.
alla camera IP.
Finita l’installazione siamo passati alla programmazione dei microcontrollori PIC. Nel nostro
progetto ne sono stati utilizzati ben tre, tutti della famiglia PIC della Microchip.
Per la programmazione ci siamo serviti del programmatore USB a sorgente aperta auto
costruito, “Open Programmer v0.9.x” [4], vedi Figura 6. Questo è l’unico programmatore
USB a sorgente aperta disponibile sulla rete.
Figura 6. In questa figura possiamo osservare il programmatore dei PIC Open Programmer 0.9.x. [6]
Tutti i circuiti sono stati fissati con viti ad un supporto di lamiera in acciaio inox. Per il
fissaggio della batteria e della telecamera sono stati necessari ulteriori supporti, che per
6
mantenere basso il peso della macchina sono stati realizzati in alluminio. Le luci anteriori e
posteriori per motivi tecnici e pratici sono stati realizzati in rame.
Nella Figura 7 e nella Figura 8 si possono osservare le varie fasi della progettazione e del
montaggio dei singoli componenti sulla macchinina.
Figura 7. Fasi della progettazione del supporto.
Figura 8. Il router WRT54GL con la camera IP e la batteria a 12V provvisoriamente fissati la base.
Per il corretto funzionamento e ridurre i disturbi i circuiti della macchina hanno bisogno di
alimentazioni differenti e separate. Difatti, i motorini in fase di partenza consumano
moltissimo provocando una caduta di tensione, che vanno a disturbare il funzionamento di
7
altri circuiti collegati alla stessa alimentazione. Quindi i circuiti di controllo e la telecamera
IP sono alimentati con una tensione di cinque volt, il router WRT54GL con una tensione di
nove volt e i motorini con una tensione di 9,6 volt. Il router normalmente viene alimentato
con una tensione maggiore cioè 12 volt, noi abbiamo preferito alimentarlo con una tensione
minore cioè 9 volt per mantenere bassi i consumi. Facendo questo, abbiamo ridotto la potenza
del trasmettitore Wi-Fi e di conseguenza la portata.
Una tra le ultime cose che abbiamo pensato di aggiungere alla macchina erano le targhe, in
modo da renderla il più realistica possibile. Sprovvisti di un programma per il disegno grafico,
le abbiamo realizzate con il programma Microsoft Office Word 2010. La targa anteriore e
quella posteriore anche se graficamente simili sono di dimensioni differenti a causa del poco
spazio a disposizione. Nella Figura 9 possiamo osservare il risultato finale della targa. Inoltre
ai lati della macchina abbiamo aggiunto due scritte con il logo della scuola.
Figura 9. Targa della macchinina con il nome della nostra scuola.
LA PROGETTAZIONE DEI CIRCUITI STAMPATI
Il circuito elettronico principale è stato progettato per adattarsi al circuito stampato del router
WRT54GL e connettersi con l’uscita seriale. Questo circuito ospita due processori, un
PIC18F452 il cervello del nostro progetto e un PIC12F675 utilizzato per riprodurre l’effetto
del motivetto “La cucaracia”, quando viene attivato il clacson. Oltre a questo circuito
stampato, abbiamo dovuto realizzare un secondo circuito per il pilotaggio dell’effetto
“supercar” e quello della sirena della polizia con i LED rosso e blu lampeggianti.
Nelle Figure 10, Figura 11, Figura 12, Figura 13, Figura 14, Figura 15 e Figura 16 possiamo
osservare i circuiti stampati realizzati con il programma Eagle.
8
Figura 10. Il circuito stampato del circuito di supporto.
Figura 11. Circuito stampato del circuito elettronico centrale.
Figura 12. Il circuito stampato delle luci della polizia.
9
Figura 14. Circuito stampato dell’alimentatore con
Figura 13. Il circuito stampato dell’alimentatore.
i componenti.
Figura 15: Circuito stampato dei fanali anteriori.
Figura 16: Circuito stampato dei fanali posteriori.
Una volta realizzati i circuiti stampati con il procedimento della fotoincisione, il rame è stato
coperta da uno strato sottile di stagno. Per facilitare la stagnatura abbiamo utilizzato una
punta piatta. Una volta tolti i residui di flussante con l’alcol isopropanolo, abbiamo forato la
piastrina. La foratura è stata effettuata con punte di 0,8 mm e di 1 mm di diametro. Terminata
la foratura i componenti sono stati inseriti nelle rispettive posizioni e saldati. Prima sono stati
saldati i componenti più bassi e successivamente quelli più alti.
Nella Figura 17 possiamo osservare gli attrezzi per la realizzazione dei circuiti stampati.
10
Figura 17. Attrezzi utilizzati per la realizzazione dei circuiti stampati.
Nella Figura 18 possiamo osservare il circuito dell’effetto “supercar” ed i fari a LED montati
sulla macchinina.
Figura 18. Frontale della macchinina dove si possono osservare l’effetto “supercar” i fari a LED e i LED
dell’effetto polizia.
LA PROGRAMMAZIONE DEI MICROCONTROLLORI
I microcontrollori sono stati programmati con il linguaggio PIC Basic compilato con
l’ambiente di sviluppo Proton IDE. Il programma residente nel router WRT54GL, che viene
lanciato durante l’avvio, è stato scritto nel linguaggio C++ e compilato con il “cross
compiler” sul pc utilizzando il pacchetto di compilazione scaricato dal sito ufficiale
dell’OpenWRT. Il programma di comunicazione tra computer e macchinina per semplicità è
stato scritto con il programma “Visual Basic”. Per il router WRT54GL oltre al programma di
11
comunicazione è stata scritta anche una pagina HTML in Javascript per la gestione della
trasmissione video della telecamera IP.
PROBLEMI RISCONTRATI
Durante la realizzazione del progetto abbiamo dovuto risolvere innumerevoli problemi, uno
tra i quali era il connettore RJ45 del cavo UTP troppo ingombrante, che andava a sbattere sul
supporto della telecamera. Per questo motivo abbiamo dovuto accorciare la plastica,
tagliando via parte del connettore UTP. Nella Figura 18 si può osservare la fase di
smontaggio e modifica della telecamera IP. Per rendere il tutto più affidabile e compatta
abbiamo dovuto togliere i connettori di alimentazione sia della camera IP, sia del router
Linksys.
Per ridurre i consumi ed allo stesso tempo prolungare la durata della batteria, abbiamo
rimosso il trasmettitore Wi-Fi e tutti i LED della camera IP e del router WRT54GL.
Per facilitare la guida abbiamo pensato di utilizzare un gamepad (chiamato anche joypad), il
quale è un apparecchio che si collega tramite un cavo USB al pc, che simula le funzioni dei
tasti della tastiera facilitando notevolmente il controllo dei programmi, nel nostro caso i
comandi inviati alla macchinina tramite collegamento Wi-Fi.
Per la realizzazione dei circuiti stampati abbiamo utilizzato la tecnica della fotoincisione e i
componenti SMD, che ha reso ancora più impegnativa la realizzazione di questi ultimi. Per il
processo della foto incisione abbiamo utilizzato un bromografo auto costruito che possiamo
osservare in Figura 19.
Figura 19. Il bromografo
12
Il programma di pilotaggio
Per il controllo del nostro progetto abbiamo scritto un programma in Visual Basic la cui
interfaccia grafica la possiamo vedere in Figura 20. Per la realizzazione del programma ci
siamo avvalsi di uno simile trovato in rete. Nella parte sinistra abbiamo posizionato una
finestra per la visualizzazione dello streaming della telecamera IP Foscam modello FI8907W,
mentre nella parte destra ci sono i comandi delle varie funzioni. Una volta lanciato il
programma questo si collega tramite socket alla porta 1500, visualizzando lo streaming video
nell’apposita finestra a sinistra. Per poter pilotare la macchina bisogna prima schiacciare il
tasto “c” (connect), per far capire al programma che vogliamo trasmettere i dati. Questa
funzione è stata introdotta come protezione di sicurezza per ovviare che qualcuno
accidentalmente schiacciando qualche tasto faccia spostare la macchinina distruggendola.
Nella Figura 20. possiamo osservare il programma di pilotaggio.
Figura 20. Programma di pilotaggio.
CONCLUSIONI
Il progetto ci sembrava interessante perché in tal modo abbiamo appreso maggiori
conoscenze. Anche se il progetto a prima vista sembra semplice, in realtà è complicato da
realizzare, poiché abbiamo dovuto utilizzare molti linguaggi di programmazione, tra i quali
C++, Basic for PIC e Visual Basic. Ringrazio il mentore Maurizio Škerlič, per averci seguito,
13
spiegato ed insegnato molte cose, le quali ci saranno di grande utilità nella nostra carriera
professionale. Sono fiero di avere creato, con il mio compagno di classe Boštjan Klančič, un
progetto, seppure difficile, interessante e divertente.
BIBLIOGRAFIA
[1].
FI8907W, (2014). Foscam. URL: http://www.foscam.com/prd_view.aspx?id=105.
[2].
Foscam, (2014). URL:http:// http://foscam.com.
[3].
Notepad++, (2011). URL:http://notepad-plus-plus.org.
[4].
Open Programmer v0.9.x, (2014). URL:http://openprog.altervista.org.
[5].
OpenWRT, (2014). URL:https://openwrt.org.
[6].
PuTTy, (2014). URL:http://www.chiark.greenend.org.uk/~sgtatham/putty.
[7].
XWRT, (2014). URL:http://x-wrt.org.
14