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