1. Il Progetto
Transcript
1. Il Progetto
G.P.R. - GENERAL PURPOSE ROBOT di Francesco Moraglio e Federico Fontana PREMESSA L'immagine di copertina potrebbe dare al lettore un'idea di scarsa serietà o, peggio ancora, di un progetto a tematica non scientifica. Nonostante ciò, abbiamo deciso di mantenerla. Nella nota pellicola di George Lucas da cui la foto è tratta, infatti, è presentato un mondo futuristico dominato dalle più bizzarre tecnologie, tra le quali spiccano fantasiosi robot di ogni genere e forma. Questi collaborano con gli esseri umani, assolvendo a compiti che variano dal massimo della banalità a operazioni che per noi risulterebbero in qualche modo troppo complesse o rischiose, o addirittura del tutto impossibili. Ed è proprio da questo concetto basilare che parte lo sviluppo del nostro progetto: la creazione, nei limiti delle nostre modeste competenze e disponibilità economiche, di un modello di robot semplice ed economico il cui uso possa essere esteso alle masse per i più svariati fini. INTRODUZIONE In informatica l'espressione “general purpose” (letteralmente “finalità generale”) identifica hardware e software che risolvono problemi generali e quindi non sono dedicati ad un' unica funzione specifica (detti invece “special purpose”) . L'esempio più calzante di General Purpose per quanto riguarda l'hardware è costituito dal Personal Computer, che infatti non risponde a una particolare esigenza ma si adatta a quelle dell'utilizzatore. Un software General Purpose è invece, ad esempio, un foglio di calcolo, un database, un'applicazione multimediale, che per risolvere un problema deve essere personalizzato dall'utente. Nel nostro caso si è trattato di realizzare un'apparecchiatura per l'appunto versatile, personalizzabile, non troppo costosa e, non ultimo, di facile utilizzo. Il nostro progetto è quello di un robot mobile con un sistema di controllo remoto ed integrabile con dispositivi di rilevazione (di vario tipo) a scelta dell'utente, gestiti da un microcontrollore liberamente programmabile. Sono infatti molti i campi in cui, a nostro parere, potrebbero essere impiegati efficacemente piccoli robot in sostituzione delle tecnologie d'uso comune (per una trattazione più ampia di questa tematica si veda la sezione “Possibili applicazioni future” del presente progetto). Da qui deriva il nome del prototipo: General Purpose Robot. P R O G E T TA Z I O N E D E L P R O T O T I P O La difficoltà maggiore incontrata nella progettazione del modello è consistita nel riuscire a trovare un sistema di guida adattabile all'applicazione di più periferiche. Inizialmente avevamo pensato di architettattare il tutto intorno ad un economico microcontrollore Arduino, noto in ambiente informatico per la sua elevatissima plasticità. Questo dispositivo è ideale per la programmazione di sensori praticamente di ogni genere, ma affidandosi unicamente ad esso sarebbe stato problematico realizzare i dispositivi wireless per il controllo a distanza. Aldilà delle difficoltà intrinseche alla costruzione, ciò avrebbe soprattutto compromesso la semplicità d'impiego del prototipo da parte di persone poco esperte. Dopo aver condotto alcune ricerche in internet, abbiamo trovato un modo per ovviare al problema. La soluzione sta nell'impiego di un nuovissimo dispositivo dedicato specificamente al settore della robotica amatoriale: il WiRC (acronimo per “Wireless RC receiver”). Prodotto dalla' americana Dension, ditta specializzata in apparecchiature high-tech per uso privato, esso è composto essenzialmente da un microcontrollore che gestisce una webcam ed una microantenna wireless per lo scambio di dati. Il grandissimo vantaggio del WiRC è la sua compatibilità, tramite un'applicazione dedicata, con la maggior parte dei dispositivi Android e iOS (ad esempio un qualsiasi smartphone o tablet di questo tipo), evitando la costruzione e la programmazione di telecomandi specifici. Ciò, abbinato all'estrema semplicità della applicazione (fornita dalla stessa Dension) permette praticamente a chiunque di impiegare correttamente il robot. Ovviamente il dispositivo è anche perfettamente compatibile con un qualsiasi PC. Il limite del WiRC consiste nel fatto che non è adatto all'idea di un G.P.R. integrabile con periferiche aggiuntive. Pertanto è stato deciso di mantenere il microcontrollore Arduino. Per quanto riguarda invece il sistema di locomozione, abbiamo optato per un semplice quanto efficace sistema di cingoli in gomma mossi da quattro motori elettrici separati. Essi sono comandati attraverso un'apposita scheda detta “Motorshield” che si ricollega al microcontrollore Arduino ed al WiRC (per una trattazione dettagliata della componentistica si veda la sezione “Specifiche tecniche dei componenti”). Questa scelta dipende dal fatto che la cingolatura permette, rispetto alle ruote, una mobilità maggiore su terreni leggermente accidentati, nonostante sacrifichi parzialmente manovrabilità e velocità del mezzo. Inoltre essa permette una meccanica interna più semplice, evitando il sistema di sterzo necessario ad un mezzo gommato. Relativamente infine all'alimentazione va precisato che il robot richiede una doppia tensione di alimentazione per le differenti caratteristiche dei componenti. Essa può essere risolta o con un pacco-batteria unico dotato dei relativi trasformatori o semplicemente con due batterie distinte. SPECIFICHE TECNICHE DEI COMPONENTI Sono elencati di seguito i componenti principali del prototipo, con le relative caratteristiche. I componenti sono stati acquistati tramite il sito internet di robotdomestici.it ; un sito specializzato nella vendita di componenti e materiale per la realizzazione di automatismi, robot, prototipi e in generale progetti di informatica ed elettronica. Dension WiRC* Il Dension WiRC è un modulo di comunicazione Wireless dotato di due ingressi USB, che collegano rispettivamente una webcam Logitech (fornita insieme al WiRC, ma tranquillamente sostituibile) ed un'antenna WiFi. Dispone di 8+4 canali di output, di cui si può regolare la sensibilità come per un trasmettitore professionale. Punto di forza del dispositivo è la sua grande compattezza. Caratteristiche: 8 PPM canali di uscita per Servo o controllo ESC 4 uscite digitali (on/off) 4 ingressi digitali (on/off) 1 ingresso analogico Funzione di sicurezza Controllo del voltaggio della batteria Fino a 2 videocamere digitali USB (con un HUB USB esterno) Ingresso microfono Uscita speaker Registrazione video Compatibile con i seguenti dispositivi: iPhone 4S, 4, 3Gs e 3G (minima versione iOS supportata: 4.0) iPod Touch iPad Android (beta) PC Windows (con applicazioni personalizzate) Specifiche tecniche: Dimensioni: 44 x 28 x 18 mm Alimentazione: 6 – 16V Dotato di connettore alimentazione Tamiya processore 240 MHz ARM9 16 MB SDRAM 4 MB FLASH 2 Host USB WiFi 802.11b/g Risoluzione Video: 325x288 (CIF) Frame rate: 15 FPS Consumo Energetico: 100mA @ 6V (minimo) 200 mA @ 6V (Webcam e WiFi accesi) Arduino Leonardo* Arduino Leonardo è una scheda basata su microcontrollore ATmega32u4. Contiene tutto il necessario per supportare il microcontrollore; per utilizzarlo, basta connettetelo a un PC via USB o alimentarlo via adattatore AC>DC o tramite batterie. Leonardo differisce da tutte le schede precedenti in quanto l'ATmega32u4 fornisce comunicazione USB built-in, eliminando il bisogno di avere un processore secondario. Ciò permette a Leonardo di apparire a un computer connesso come un mouse o una tastiera, oltre che di emulare permanentemente una porta seriale (CDC) / COM port. Ciò inoltre consente una notevole semplificazione della programmazione della scheda, che si esegue con un programma dedicato di facile utilizzo. Caratteristiche Tecniche Microcontrollore: Atmega32u Tensione operativa di funzionamento: 5 V Input Voltage (consigliata): 7-12 V Input Voltage (limiti): 6-20 V Pin di I/O Digitali: 20 Canali PWM: 7 Canali analogici in ingresso: 12 Corrente massima ai pin di I/O: 40 mA Corrente massima per i pin a 3.3 V: 50 mA Flash Memory: 32 KB (ATmega32u4) dei quali 4 KB usati come bootloader SRAM: 2.5 KB EEPROM: 1 KB Frequenza di clock: 16 MHz *le specifiche tecniche sono fornite direttamente dai relativi produttori Motor shield Il motor shield è una scheda che permette l’interazione tra la scheda Arduino e la base mobile Dagu Rover 5. Essa è stata acquistata in kit completo di montaggio ed è stata assemblata da noi tramite un classico saldatore a stagno per componenti elettroniche. Base Mobile La base mobile è una Dagu Rover 5 composta da 4 motori eletrici indipendenti con relativi encoders. La struttura è realizzata in plastica per contenerne il peso, ma mantiene comunque una buona rigidità. Sensori Il prototipo è dotato di quattro diversi sensori ambientali. Due di essi servono per la rilevazione della presenza di gas, un terzo misura la temperatura ed il quarto serve per valutare il grado d'umidità dell'aria. Essi funzionano tramite il microcontrollore Arduino ed i valori rilevati vengono inviati al dispositivo di comando tramite specifici canali digitali del WiRC. Alimentazione L’alimentazione è fornita da un pacco batterie da 12V e uno da 6V. L’alimentazione da 12V fornisce l'energia necessaria per il corretto funzionamento della base mobile, della scheda Arduino e funge anche da alimentazione primaria per il modulo di comunicazione (WiRC). L’alimentazione secondaria di quest’ultimo è fornita dal pacco batterie da 6V. ASSEMBLAGGIO DEI COMPONENTI I componenti sono stati assemblati su una base in plexiglass. Il tutto è contenuto all’interno di una scocca esterna realizzata da noi. I collegamenti effettuati sono molteplici. Il più importante collega la scheda Arduino ed i motori (collegati in coppia) al motor shield e questo permette al robot di muoversi. Altro collegamento è presente tra il modulo di trasmissione WIRC e la scheda Arduino ( per l’interazione tra il robot e uno smartphone, tablet o computer). Sono inoltre presenti i vari collegamenti dei sensori alla scheda Arduino e quelli relativi all’alimentazione che coinvolgono i due pacchi batterie. P R O G R A M M A Z I O N E E F U N Z I O N A M E N T O D E L G. P. R . Il microcontrollore, che permette il movimento del robot ed il corretto funzionamento dei sensori, è stato interamente programmato da noi usando un apposito compilatore Arduino fornito dal produttore stesso della scheda. Il modulo di trasmissione (WiRC) è già pre-programmato per il corretto funzionamento con la scheda Arduino e la relativa applicazione per smartphone e tablet (Android o iOS). L’applicazione originale è scaricabile gratuitamente dall’Appstore o dal Play Store (a seconda del sistema operativo utilizzato). Essa include una preconfigurazione personalizzabile che ne consente un semplice utilizzo. Sullo schermo del dispositivo utilizzato per il controllo viene visualizzata una schermata composta dall’immagine fornita dalla webcam e da due joystick virtuali (corrispondenti agli assi X ed Y di movimento) con cui far muovere il robot. Sono inoltre presenti “bottoni” personalizzabili corrispondenti alle uscite ed entrate del WiRC ed un indicatore del voltaggio fornito dalla batteria. Per quanto riguarda invece l’applicazione che consente l’uso del modulo di comunicazione con PC Windows, ne è reperibile gratuitamente in rete una versione realizzata da un amatore. POSSIBILI APPLICAZIONI FUTURE La struttura del prototipo permette una vastissima personalizzazione sia hardware che software. Questo fatto può essere sfruttato in moltissimi modi diversi, di cui di seguito do solo pochi esempi a titolo esplicativo. La compatibilità con sensori di ogni tipo, unito alla base mobile cingolata, lo rende adatto all'esplorazione di luoghi a alto rischio ambientale per l'uomo. Per esempio, con la dotazione di un contatore Geiger (di cui peraltro esistono già varianti compatibili con i microcontrollori Arduino), sarebbe adatto alla misurazione della radioattività in zone contaminate. Dotarlo invece di un semplice metal detector lo renderebbe un utile supporto agli operatori umani nel settore dello sminamento di aree post-belliche. Inoltre esso, ovviamente fornito degli opportuni strumenti di rilevazione, sarebbe anche adattabile al fine di eseguire ispezioni statiche di strutture a rischio di crollo (come vecchi ponti ed edifici). Altro settore in cui un robot di questo tipo troverebbe un'applicazione utile sarebbe, a nostro parere, quello della videosorveglianza. Una sola unità, opportunamente programmata tramite Arduino, sarebbe in grado di seguire percorsi prestabiliti sostituendo le numerose telecamere a circuito chiuso d'uso comune. Infine l'utilizzo puramente ludico del robot sarebbe comunque interessante perchè permetterebbe di scoprirne pienamente le potenzialità e di correggerne eventuali difetti. ECOLOGIA L'idea della realizzazione del G.P.R. è stata sin da subito accompagnata dalla volontà di impiegare per il prototipo materiale di riuso, al fine di contenerne il costo. Purtroppo però già durante la fase progettuale ci siamo resi conto dell' infattibilità di ciò, data la necessità di parti tecnologicamente avanzate per il funzionamento del robot. Tuttavia non ci siamo del tutto arresi e abbiamo cercato di usare dove possibile materiali altrimenti destinati a diventare rifiuti. Per esempio, il cablaggio interno è stato interamente realizzato con connettori vari recuperati da vecchi PC un tempo in uso presso il nostro liceo ma attualmente sostituiti da parecchi anni. La scocca esterna invece è stata ricavata da confezioni di patatine in cartoncino. Ciò, per quanto possa apparire bizzarro, ha consentito di creare una copertura decisamente leggera e quindi vantaggiosa per il nostro prototipo. ************* RINGRAZIAMENTI Il Dirigente Scolastico: Prof. Bruno Gabetti La Coordinatrice didattica: Prof.ssa Marina Orazietti I Docenti: Prof. Roberto Aimasso e Prof. Mario Olmo