Radar e Sistema di Puntamento con Arduino e Processing ISTITUTO INTERNAZIONALE EDOARDO AGNELLI Istituto Tecnico Industriale - Liceo Scientifico Classe IV Eln.
Premessa L uso della scheda Arduino è oramai prassi consolidata nel triennio dell ITI. Pensata per interagire con l ambiente circostante, dispone di vari pin a cui possono essere collegati sensori e attuatori. Sensori e attuatori comunicano con il processore che interpretando gli input dei sensori determina il comportamento degli attuatori in base alle istruzioni con cui è stato programmato. Quello che manca al mondo Arduino è la capacità di visualizzare le informazioni oltre ad una certa rigidità nel comunicare con altri ambienti software, a meno che non si voglia ricorrere a moduli hardware esterni (shields) e moduli software (librerie) progettati solo per l ambiente Arduino. Questo progetto nasce dalla voglia di superare questi vincoli, facendo diventare Arduino parte di un sistema complesso nel quale sia la parte visuale che la parte algoritmica diventano predominanti. Progetto Radar con Sistema di Puntamento Pagina 1
Il Progetto L idea è stata quella di utilizzare il software Processing come elemento principale del progetto. In questo caso Processing si comporta da Master mentre Arduino da Slave. Per comodità di comprensione possiamo pensare al progetto diviso in passi successivi: 1. Arduino legge i valori provenienti dal sensore ad ultrasuoni ed invia al software Processing queste letture rispettando un protocollo da noi stabilito. Il sensore è montato su una piattaforma mobile collegata ad una scheda Arduino, il quale gestisce il movimento rotatorio (da 0 a 180 ) del sensore registrando angolo e distanza. Il sensore è del tipo (HC-SR04). Progetto Radar con Sistema di Puntamento Pagina 2
2. A questo punto il software Processing secondo i dati ricevuti visualizza a video queste informazioni (sotto forma di linee e cerchi colorati di rosso) integrandole su una interfaccia grafica già sviluppata. L interfaccia prevede sia effetti visivi, sotto forma di una barra che spazzola la zona di spazio da controllare oltre a informazioni su angolo e distanza e sia effetti sonori; 3. Se le letture evidenziano la presenza di oggetti non identificati viene attivata una procedura per il puntamento dell oggetto sempre da parte del software Processing. E stato sviluppato un algoritmo per il riconoscimento di un oggetto attraverso l analisi delle informazioni ricevute dal sensore. L attivazione della procedura di puntamento avviene attraverso la comparsa sul monitor di un tasto dedicato. L interfaccia prevede anche l attivazione di un allarme sonoro; Progetto Radar con Sistema di Puntamento Pagina 3
4. A questo punto il software Processing delega ad Arduino tutte le operazioni per il movimento dei servo motori del sistema di puntamento. Anche in questo caso è stato necessario sviluppare un algoritmo nuovo per convertire i dati ricevuti dal sistema Radar nelle nuove coordinate (angolo e distanza) utilizzabili dal sistema di puntamento, che ricordiamolo, è situato in un altra zona dello spazio. Arduino ricevute queste informazioni, attraverso un suo programma le elabora e le invia sotto forma di comandi ad un Servo Bracket (sistema combinato di due servo motori) che si allinea con l oggetto e attiva un puntatore laser a bassa potenza; Progetto Radar con Sistema di Puntamento Pagina 4
Problemi e Soluzioni Lo sviluppo pratico dell idea sopra esposta, ha portato ad affrontare e risolvere diversi problemi: a) La creazione di un protocollo per lo scambio di informazioni tra Arduino e Processing da un lato e Processing e Arduino dall altro. Soluzione: Dopo diverse prove si è deciso di adottare il seguente protocollo: i due software (Processing ed Arduino) si scambiano via seriale stringhe di 4 bytes secondo il formato Angolo virgola Distanza punto. E stata sviluppata una subroutine che legge la stringa, capisce quando finisce e separa l Angolo e la Distanza. b) Lo sviluppo di una interfaccia grafica coinvolgente in grado di visualizzare i dati provenienti dal sensore. Soluzione: in questo caso l uso del software Processing è stato fondamentale: si sono sfruttate al massimo tutte le sue primitive grafiche oltre a tecniche di programmazione tipiche di linguaggi evoluti. Il programma prevede una programmazione ad oggetti ed una gestione degli eventi, caratteristiche peculiari di programmi ad alto livello. c) La calibrazione del sensore ad ultrasuoni. Bisognava che la lettura fosse precisa e priva di segnali spuri. Soluzione: anche in questo caso il passaggio dalle specifiche del datasheet del sensore al caso concreto operativo non è stato semplice. Sono state effettuate numerose prove e valutazioni per stabilire il range ottimale di funzionamento del sensore. Alla fine i valori che abbiamo ottenuti sono quelli che ci garantiscono una buona rilevazione dell oggetto, evitando false letture o dati non corretti. Progetto Radar con Sistema di Puntamento Pagina 5
d) Lo sviluppo di un algoritmo risolutivo per il sistema di puntamento. Infatti non era per niente banale e scontato il passaggio da: angolo e distanza rilevati dal sensore ad angolo e distanza del sistema di puntamento il quale è posizionato in una zona di spazio differente da quella del sensore. Soluzione: in questo caso la soluzione è stata nel creare un triangolo virtuale che ha in due dei suoi vertici il sensore e il sistema di puntamento. Attraverso poi lo studio delle proprietà dei triangoli simili è stato sviluppato un algoritmo per il calcolo dell angolo di puntamento. I Componenti 1. Sensore a ultrasuoni 2. Servo motore 3. Servo Bracket 4. Ambiente di sviluppo Processing 5. Ambiente di sviluppo Arduino 6. Puntatore Laser a bassa potenza Conclusioni Possiamo concludere dicendo che l aspetto innovativo del nostro progetto può essere riscontrato in diversi punti. Sicuramente la sua complessità è già un qualcosa di innovativo: abbiamo dovuto far dialogare due ambienti software differenti (sia nelle potenzialità che nelle caratteristiche), a loro volta collegati con due ambienti hardware differenti, attraverso un continuo scambio di dati. Anche lo sviluppo di una interfaccia grafica non è stata solo un abbellimento ma, nelle nostre intenzioni, doveva svolgere la funzione di tramutare le informazione (le letture del sensore) in conoscenza (vedo quindi capisco). Questo aspetto è stato per noi molto importante in quanto crediamo che una buona visualizzazione dei dati costituisca un valore aggiunto in qualunque progetto. Siamo ormai nell era dell Infografica e della Realtà Aumentata e quindi convertire l informazione in conoscenza diventa sempre più importante oltre che necessario. Inoltre aver utilizzato software Open Source e componentistica standard, invece di hardware e software ad hoc, ci ha permesso di non avere vincoli progettuali di alcun tipo, tranne ovviamente la nostra fantasia e la nostra capacità tecnica. Progetto Radar con Sistema di Puntamento Pagina 6
Sviluppi Futuri Come accade sovente, durante la realizzazione del progetto, continuamente ci venivano in mente possibili migliorie e sviluppi futuri. Chiaramente l obiettivo primario era portare a termine questo progetto, ma ci piace accennare a tre possibili (ma soprattutto fattibili) sviluppi futuri. Il primo riguarda l integrazione del sistema radar con Internet, attraverso lo sviluppo di Apps dedicate, consentendo cosi sia il monitoraggio che l interazione a distanza. Il secondo riguarda la Realtà Aumentata, ossia la possibilità di sovrapporre informazioni algoritmiche a scenari reali ed infine il terzo che riguarda la Realtà Virtuale. In questo caso l operatore invece di stare fisicamente davanti al radar, può utilizzare un visore di Realtà Virtuale. Importante Un video di presentazione del progetto è disponibile al seguente indirizzo Internet: https://www.youtube.com/watch?v=fuftslrjh2c Progetto Radar con Sistema di Puntamento Pagina 7