FACOLTA’ DI INGEGNERIA Corso di Laurea in Ingegneria Elettronica PROGETTO DI SISTEMI DI CONTROLLO IN AMBIENTE MATLAB/SIMULINK PER LA PIATTAFORMA LEGO MINDSTORMS RELATORE: Ing. Michele Basso …………………………………………. CORELATORE: Dott. Massimo Vassalli …………………………………….. CANDIDATI: Elena Barani ……………………………………………….. Piero Danti ………………………………………………….. Anno Accademico 2007/2008 1 Indice 1. INTRODUZIONE 2. LEGO MINDSTORMS 2.1. HARDWARE .......................................................................................................... 3 2.2. SOFTWARE ............................................................................................................ 3 2.3. SOFTWARE UTILIZZATO 2.3.1 CONTROL DESIGN ......................................................................................... 3 2.3.2. SIMULINK 7.1 ................................................................................................. 3 2.3.3. REAL-TIME WORKSHOP.............................................................................. 3 2.3.4. REAL-TIME WORKSHOP EMBEDDED CODER ........................................ 3 2.3.5. VIRTUAL REALITY TOOLBOX ................................................................... 3 2.3.6. PROGRAMMAZIONE DEL LEGO MINDSTORMS NXT CON MATLAB E CON SIMULINK ................................................................................................ 3 2.3.7. EMBEDDED CODER ROBOT NXT PER LEGO MINDSTORMS ............... 3 2.3.8. ECROBOT NXT BLOCKSET ......................................................................... 3 2.3.9. ECROBOT NXT MODELING GUIDELINES ................................................ 3 3. ESEMPIO APPLICATIVO 3.1. PROGETTO............................................................................................................. 3 3.2. MODELLO .............................................................................................................. 3 3.3. CONTROLLO ......................................................................................................... 3 3.4. SCHEMA A BLOCCHI 3.4.1. CONTROLLORE ............................................................................................. 3 3.4.10. IMPIANTO ..................................................................................................... 3 3.4.11. SENSORI ........................................................................................................ 3 3.4.12. DATA LOGGING .......................................................................................... 3 3.4.2. CONFIGURAZIONE DEI TASK .................................................................... 3 3.4.3. TIPI DI DATI ................................................................................................... 3 3.4.4. SCHEDULER E TASKS .................................................................................. 3 3.4.5. PRIORITA' ....................................................................................................... 3 3.4.6. DATI CONDIVISI ........................................................................................... 3 3.4.7. NXTWAY ......................................................................................................... 3 3.4.8. VIEWER ........................................................................................................... 3 3.4.9. ATTUATORI .................................................................................................... 3 3.5. MODIFICHE APPORTATE 3.5.1. CONTROLLO EFFETTUATO MEDIANTE UN SENSORE DI LUCE ........ 3 3 3.5.2. CONTROLLO EFFETTUATO MEDIANTE DUE SENSORI DI LUCE ....... 3 3.5.3. DATA LOGGING DALL' ULTRASUONI E DAL SENSORE DI LUCE ...... 3 4. RISULTATI SPERIMENTALI ............................................................................... 118 APPENDICE .................................................................................................................. 118 Introduzione Negli ultimi anni la LEGO ha investito molto nel campo della robotica. La linea LEGO MINDSTORMS ha rivoluzionato la concezione delle persone riguardo all'azienda LEGO. I classici mattoncini sono stati affiancati da un prodotto che ha contribuito ad allargare notevolmente la fascia di età dei fan della LEGO. La filosofia dell'azienda è caratterizzata dalla volontà di rendere i prodotti della linea LEGO MINDSTORMS affascinanti, ma utilizzabili, sia da esperti nel campo della robotica sia da principianti in giovane età. La LEGO ha speso molte energie per la creazione di un percorso didattico adeguato alle varie fasi della crescita del ragazzo. Il punto di forza della linea LEGO MINDSTORMS sta nelle numerose possibilità che mette a disposizione per costruire un robot ideato secondo la propria immaginazione e i propri desideri. La nuova generazione di LEGO MINDSTORMS si basa sul successo del “Robotics Invention System”, rinomato in tutto il mondo, ma è di più veloce e facile impiego: nell'arco di qualche ora si può costruire e programmare un robot LEGO. L'interesse degli utenti più esperti è stato stimolato da nuove funzioni tecniche e dalla commercializzazione di sensori ancora più efficienti. L'Hitechnic ha stipulato un accordo di collaborazione con la LEGO che le permette di produrre e vendere accessori hardware certificati dal gruppo LEGO. Questo accordo rappresenta un'apertura, da parte della LEGO, verso la collaborazione con altre aziende e verso la trasformazione del software in open source. Anche Paal Smith Myer, dirigente LEGO, ha mostrato il suo entusiasmo verso questa collaborazione, poiché la ritiene un' opportunità per mostrare le potenzialità della piattaforma LEGO e per aumentare la capacità del prodotto di soddisfare le esigenze dell'utente. In un articolo della rivista PC Magazine “LEGO MINDSTORMS NXT è stato definito come un prodotto all'avanguardia nella tecnologia, in grado di combinare la creatività con la scienza. Il “cuore” del nuovo 5 prodotto è l'NXT, un microprocessore autonomo da 32 bit che può essere programmato sia da PC che da MAC. Questa tesi tratta di esperimenti di controllo effettuati mediante l’utilizzo del sensore giroscopio dell’Hi-Technic e dei prodotti della linea LEGO Mindstorms. Si è costruito e si sono studiate le caratteristiche di un Legway, che da un punto di vista fisico può essere modellato come un pendolo inverso con due ruote.L’ obbiettivo prefissato è quello di progettare un controllore, che riesca a far stare in equilibrio il Legway, ricorrendo al linguaggio di programmazione MATLAB/Simulink e ai toolbox Real-Time Workshop, Real-TimeWorkshop Embedded Coder, Embedded Coder Robot e Virtual Reality Toolbox. La complessità di questo software è compensata dalle enormi potenzialità che offre per lo sviluppo di un modello complesso e per la sua analisi. Infatti dopo aver modellato il Legway si sono potuti modificare, con estrema velocità e semplicità, i sensori utilizzati per il controllo del sistema fisico scelto. Sono stati realizzati tre Legway diversi: uno con il giroscopio e con il sensore ad ultrasuoni, un altro con il sensore ad ultrasuoni e con quello di luce e un terzo con due sensori di luce ed uno ad ultrasuoni. Grazie all’utilizzo del Bluetooth sono stati raccolti i dati ottenuti durante le simulazioni e questo ci ha consentito di modificare, in modo empirico, alcuni parametri all’interno degli schemi a blocchi costruiti. Utilizzando il toolbox Virtual Reality si è ottenuta una visualizzazione 3-D del modello creato capace di muoversi in un mondo di realtà virtuale, senza ricorrere all’implementazione fisica. L’esperienza fatta su questo modello piuttosto semplice è stata molto utile perché ci ha permesso di familiarizzare con il Model-Based Design e con i toolbox di MathWorks che insieme costituiscono una tecnica affermata per sistemi di controllo embedded anche molto complessi. Questa tecnica viene anche utilizzata per il controllo di satelliti, di velivoli e di altre applicazioni aereospaziali, per processi di controllo e per macchinari industriali. La tesi è strutturata come segue: • Capitolo 2: si descrivono i dispositivi hardware disponibili e si fa una valutazione dei possibili software da utilizzare. Poi si espongono le caratteristiche del Model-Based Design, dell’ ambiente Matlab/ Simulink e dei toolbox utilizzati. • Capitolo 3: si analizza la struttura del Legway, il suo modello, la tecnica di controllo impiegata, gli schemi a blocchi utilizzati e le modifiche necessarie per passare da un Legway ad un altro che possiede dei sensori diversi. • Capitolo 4: si riportano i risultati sperimentali ottenuti. 7 Capitolo 2 2 LEGO Mindstorms 2.1 HARDWARE Lego Mindstorms è una linea di prodotti LEGO che fonde i tradizionali mattoncini con sensori, attuatori, mattoncini programmabili e pezzi di LEGO- Technic (come assi,travi e ingranaggi) per la costruzione di robot ed altri sistemi automatici. Di questa linea di prodotti esiste una versione educativa: “LEGO Mindstorms for School” che viene fornita con un software di programmazione basato sulla GUI ROBOLAB. Tutti i tipi di sistemi elettromeccanici esistenti nella realtà posso essere modellati con i Mindstorms. Il primo prodotto rilasciato dalla LEGO in questo campo è stato l’ RCX (1998), antenato dell’attuale NXT(2006): entrambi definiti mattoncini (o brick) programmabili. L'RCX (Fig. 2.1) contiene un microcontrollore Renesas H8/300 come CPU interna e possiede 32 kB di RAM dove vengono salvati il firmware e i programmi dell’utente. Il brick viene programmato scaricando un programma (che può essere scritto in vari linguaggi di programmazione), da un PC o da un Macintosh, sulla sua RAM attraverso una speciale interfaccia ad infrarossi. Quando l’ utente avvia l’applicazione il robot costruito può funzionare in completa autonomia reagendo agli stimoli interni ed esterni in base alle istruzioni contenute nel programma. Oltre alla porta ad infrarossi, ci sono anche tre porte di ingresso per i sensori e tre porte di uscita per i motori. C'è anche uno schermo LCD che mostra: lo stato della batteria, lo stato delle porte I/O, il programma in esecuzione e altre informazioni. Le prestazioni dell’RCX sono molto inferiori rispetto a quelle dell’ NXT (qualità dei sensori, velocità, modalità di comunicazione, classi del processore) ma nonostante ciò l’RCX ha costituito un importante passo per lo sviluppo della tecnologia LEGO nel settore della robotica. 9 Figura 2.1: RCX brick L’NXT ha un processore a 32 bit Atmel AT91SAM7S256 (classe ARM7) a 48 MHz, con 256kB di flash memory e 64kB di RAM, un coprocessore 8 bit Atmel ATmega48 a 4 MHz, con 4kB di flash e 512 byte di RAM, uno schermo LCD con una risoluzione di 100x64 pixel, una porta USB 2.0 e connettività Bluetooth (per trasferire,senza fili, programmi all’NXT o per offrire un controllo remoto attraverso un cellulare,un palmare o un gamepad) . Il Mindstorms NXT (Fig. 2.2) possiede quattro porte di ingresso e tre di uscita, ma avendo delle connessioni digitali, sarà possibile aumentarne il numero con dei moduli esterni. I connettori non sono gli stessi dell'RCX e utilizzano porte simili ad un connettore RJ-11. Integrato nel mattoncino c'è un altoparlante da 8 kHz che permette di dar voce ai progetti. Il mattoncino richiede 6 batterie di tipo AA oppure la Batteria al Litio della casa. Il Lego Mindstorms NXT è venduto in due versioni: Retail e Education Base Set. La versione Retail è fornita col software di programmazione NXT-G, invece la versione educativa è venduta con batteria al litio e caricabatterie ma non contiene software. Quest'ultimo è venduto separatamente, con tre licenze distinte (Personal, Classroom, Site).
Description: