Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2012 Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE Della squadra MecInfo Istituto I.I.S. A.Volta ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per la Robocup Jr ITALIA” è espressione dell’Autonomia scolastica regolata dal D.P.R. 275/99 (art. 7) che permette alle scuole statali di operare sinergicamente per obiettivi condivisi e ritenuti importanti per l’offerta formativa erogata all’utenza. La Rete di scuole è nata sulla condivisione di una serie di principi EDUCATIVI e DIDATTICI riferiti alla realtà della scuola italiana. Questi principi e le conseguenti proposte operative erano stati riportati in un documento del maggio 2008 dal titolo: Manifesto per una RoboCupJr italiana - una proposta per la diffusione dell’utilizzo didattico della Robotica nelle scuole a cura di Andrea Bonarini, Augusto Chioccariello e Giovanni Marcianò. Maggio 2008 L’obiettivo della Rete – organizzare l’edizione italiana della Robocup Jr – concretizza una spinta al confronto e alla collaborazione tra Istituti scolastici, elementi che motivano docenti e studenti all’impegno nell’innovazione, sia didattica che tecnologica, affrontando i problemi che costituiscono uno standard internazionale dal 2000, quando la Robocup (manifestazione riservata alle Università di tutto il mondo) ha proposto le tre “gare” per la scuola: Dance – Rescue – Soccer. La Robocup Jr ITALIA è Una manifestazione nazionale fondata di tre punti forti: 1. una struttura che cura l’organizzazione e gestisce gli aspetti di organizzazione, promozione, svolgimento ai diversi livelli, regionali e nazionali; 2. un contenuto condiviso, ovvero regolamenti, formule di gara, supporto formativo e informativo ai partecipanti; 3. una documentazione delle proposte didattiche e del lavoro degli studenti che coinvolgono l’uso di kit o robot auto costruiti per la partecipazione agli eventi organizzati dalla 3 Rete. Questo volumetto documentazione. appartiene alla collana di Sul piano organizzativo e gestionale della Rete di scuole lo Statuto prevede organismi ben distinti ma fortemente integrati: COMITATO DI GESTIONE – formato dai Dirigenti scolastici degli Istituti fondatori o associati alla Rete. Si riunisce due volte l’anno in via ordinaria, e online per decisioni straordinarie. ISTITUTO CAPOFILA – come previsto dal DPR 275/99 cura gli aspetti burocratici, amministrativi e contabili della Rete. Il Dirigente scolastico dell’Istituto capofila è il legale rappresentante della Rete e provvede a dare esecuzione alle delibere del Comitato di Gestione. COMITATO TECNICO – formato dai docenti referenti degli Istituti fondatori o associati alla Rete, provvede a definire il Bando e i Regolamenti di gara per la manifestazione annuale nazionale, trasmettendoli al Comitato di gestione che li deve approvare. COMITATO LOCALE - Cura l’edizione annuale della manifestazione, ed è formato a cura del’Istituto fondatore o associato a cui il Comitato di Gestione ha assegnato la cura dell’evento. ISTITUTI PARTECIPANTI – iscrivendosi alle gare, beneficiano del supporto della Rete ma non partecipano alle decisioni gestionali o tecniche. La partecipazione alla gara nazionale li rende idonei per aderire alla Rete. Diversamente serve il parere del Comitato Tecnico. ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE autori MecInfo PARTECIPA ALLA GARA DI RESCUE A Istituto I.I.S. A.Volta Classe 4° Informatica/Meccanica 5 ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 1 - DATI GENERALI La squadra MecInfo è un team dell’istituto I.I.S. A.Volta di Pescara, composta da 5 elementi: Di Francesco Davide Colarossi Francesco Liberatore Stefano Finizio Luca Ruggiero Marco 4°A Informatica 4°A Informatica 4°B Meccanica 4°A Informatica 4°A Informatica Il progetto è a cura del docente di sistemi ed automazioni, professore Delle Monache Renzo. Gennaio 2012 ha dato inizio ai lavori; inizialmente occupando il solo orario scolastico, e successivamente ampliandosi anche nelle ore pomeridiane. Un particolare ringraziamento và anche al professore di laboratorio di informatica e sistemi: D’Ottavio Duilio, e agli altri docenti che hanno permesso l’avanzamento del progetto. Un ulteriore ringraziamento al nostro amico e fotografo Paolo Di Giuseppe. 7 Il team Mecinfo. Da sinistra: Finizio Luca, Ruggiero Marco, Di Francesco Davide, Colarossi Francesco, Liberatore Stefano. ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE Hunter, il nostro robot. 9 ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 2 - DATI DI CONTESTO E MOTIVAZIONE La squadra MecInfo si trova alla sua prima partecipazione alla Robocup Jr Italia; l’idea è stata lanciata dal professor Delle Monache Renzo circa 3 anni fa e, sulla scia degli altri studenti che hanno aderito a quest’iniziativa, anche la nostra squadra ha deciso di cimentarsi nel progetto quest’anno. I primi ostacoli si sono presentati da subito a causa della mancanza di un secondo sensore di luce, tempestivamente risolto dal docente tramite l’acquisto di un secondo di essi (utilizzati per seguire la linea nera). Un ulteriore problema è stato riscontrato nell’eseguire l’operazione di aggancio della lattina in quanto, a causa della presenza nel brick lego mindstorms di tre sole porte di output (due delle quali utilizzate per la connessione dei due motori adibiti all’avanzamento del robot), risultò complesso creare un braccio meccanico in grado di fare ciò. Una discreta esperienza in questo campo è stata acquisita grazie alla partecipazione della nostra squadra alla RomeCup del 2012, classificatasi al terzo posto. In questa competizione, oltre ad una meccanica non eccellente, l’errore più gravoso si è presentato durante il nostro turno della finale a causa di un’errata condizione nel programma software. Questa esperienza ci ha spronato a lavorare sempre più, con più impegno e facendo attenzione ai particolari e ai vari meccanismi. Per aumentare le prestazioni meccaniche del nostro costrutto abbiamo deciso di ampliare il numero di 11 componenti della squadra (inizialmente quattro), optando per uno studente frequentante l’indirizzo meccanico della nostra scuola. Questo progetto ha notevolmente interessato tutti noi sin dall’inizio, portandoci ad un più alto grado di apprendimento, e ad un più approfondito studio, anche autonomo. Hunter in azione ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 3 – NOME E STRUTTURA DEL ROBOT Cercare il nome del robot è stata una pratica alquanto lunga per noi, in quanto eravamo orientati verso il nome di un personaggio della nota serie televisiva “Pokémon”, ma ognuno di noi desiderava attribuirgli l’appellativo di un protagonista differente. La scelta finale è ricaduta sul nome Hunter, tradotto in italiano “cacciatore”, che sta a sottolineare anche la indole del robot nel “cacciare” la vittima da salvare. Per la costruzione del robot sono stati impiegati due kit: Lego Mindstorms Education 9797 Lego Mindstorms Education 9695 Il kit Lego Mindstorms Education 9797 ci fornisce i seguenti elementi: 13 Nome Immagine Descrizione Mindstorms NXT Elettrico(Preassemblato) NXT Intelligent Brick Sensore luce di Sensore di luce elettrico NXT Sensore suono di Sensore di suono elettrico NXT Sensore ultrasuoni a Sensore a ultrasuoni elettrico NXT Sensore contatto di Sensore di contatto elettrico NXT ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE Motore Servomotore elettrico NXT Cavo USB Cavo elettrico seriale USB Cavi di collegamento Cavetti di collegamento di varie misure con connettori RJ12 Ingranaggi Ingranaggi di varie forme e dimensioni Cingoli Cingoli di varie dimensioni 15 ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 4 – MECCANICA Tutto il telaio del nostro robot è stato progettato seguendo come base il triangolo rettangolo, che al momento è la struttura geometrica più solida esistente. Dopo vari tentativi si è scelto di posizionare i sensori di luce all'interno del robot, procurandogli lo spazio necessario montando i motori in posizione obliqua (circa 45°) ed alloggiando quindi i sensori di luce sotto di essi. Così facendo si riesce anche ad ottenere un migliore bilanciamento del robot. Con i sensori di luce posizionati al di sotto dei motori si riesce ad evitare il problema della diversa illuminazione fra le stanze, dato che i sensori si trovano al “coperto” e quindi esposti sempre alla stessa intensità di luce. Nella parte anteriore del robot è stata montata una spazzola (leggermente appuntita al centro), che ci permette di spostare eventuali trucioli presenti lungo la pista; inoltre è anche in grado di elevarsi di pochi millimetri per permettere di superare eventuali ostacoli fissi a terra. Per quanto riguarda il braccio, lo spunto è stato preso dal parallelepipedo articolato elevatore. Con questo sistema, il braccio è in grado di sollevare i carichi tenendoli in verticale e perpendicolari al suolo. Questo sistema è molto efficiente anche perché permette di ridurre di molto gli spazi; inoltre è in grado di richiudersi completamente su se stesso, e su di esso gravano minori sollecitazioni. La costruzione della pinza è basata su un sistema di ingranaggi a castello utilizzando un solo motore. 17 Braccio chiuso ed alzato. ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE Braccio aperto ed abbassato. 19 ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 5 – UNITÀ DI CONTROLLO Il robot impiegato per la gara utilizza un' unità centrale chiamata "NXT Intelligent Brick", che appartiene al kit Lego Mindstorms Education 9797. Le specifiche dell'NXT sono le seguenti: Processore a 32 bit Atmel AT91SAM7S256 (classe ARM7) a 48 MHz; Memoria flash 256KB; RAM 64KB; 21 Coprocessore a 8 bit Atmel ATmega48 (classe AVR: RISC a 8 bit) a 8 MHz, con 4KB memoria flash e 512 byte RAM; Display LCD bianco e nero con risoluzione 100×64 pixel; Interfaccia bluetooth v2.0+EDR (chipset CSR BlueCore 4 version 2, clockato a 26 MHz, con propri buffer RAM e firmware stack Bluelab 3.2), con velocità teorica massima 0,46 Mbit/sec (per trasferire il software o per controllare il robot da remoto); Porta USB 2.0; 4 Porte di ingresso; 3 Porte di uscita; 1 Batteria al litio ricaricabile; in alternativa è possibile utilizzare 6 batterie AA da 1,5V; Speaker mono 8 bit fino a 16 KHz; Tastiera con quattro tasti in gomma; Gli utenti possono creare nuovi software con LabVIEW di National Instruments Connettività Bluetooth per trasferire il software o per controllare il robot da remoto Interfaccia per permettere lo sviluppo di periferiche da parte di terze parti. Può essere programmato su PC o Mac; ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE Il firmware da noi installato sul brick si chiama "NXT 9.0". Il software utilizzato per il collegamento del brick al PC è JCreator LE 5.0, opportunamente configurato per potersi interfacciare col brick. 23 ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 6 – SENSORI Per poter effettuare le varie fasi di gara il nostro team ha optato per l'impiego dei seguenti sensori: - 2 sensori di luce; - 1 sensore a ultrasuoni; Tutti i sensori utilizzati fanno parte del kit Lego Mindstorms Education 9797, e comunicano con il brick tramite cavetti (sempre della Lego), con connettori di tipo RJ12. I sensori di luce sono utilizzati per seguire la linea nera presente sul campo di gara. Quelli a ultrasuoni sono posizionati uno davanti il robot, e l'altro sul lato; e servono rispettivamente per la rilevazione di ostacoli, e per la ricerca della lattina. Lista dei sensori presenti nel kit: Sensore di contatto 25 Rileva se attualmente è premuto, è stato urtato, o rilasciato. Sensore di tipo passivo che viene collegato a una delle 4 porte di INPUT (1, 2, 3, 4). Il segnale fornito è di tipo ON-OFF (0 se rilasciato, 1 se premuto). E' possibile settare il sensore per leggere il valore grezzo(RAW da 0 a 1023). Sensore di luce Sensore di tipo attivo che viene collegato a una delle 4 porte di INPUT (1, 2, 3, 4). Il segnale fornito è di tipo analogico ed è proporzionale alla luminosità registrata. E'possibile rilevare diverse intensità di luce e riconoscere le tonalità di grigio. ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE Sensore a ultrasuoni Sensore di tipo attivo che viene collegato a una delle 4 porte di INPUT (1, 2, 3, 4). Il segnale fornito è di tipo analogico ed è proporzionale alla distanza dell'oggetto rilevato. Misura distanze in centimetri ( o pollici) da 0 a 255cm con precisione di + / - 3 cm. E' più sensibile a oggetti grandi con superfici dure, mentre lo è meno con oggetti sottili, piccoli o con superficie non piana. Misura la distanza dall'ostacolo calcolando il tempo impiegato da un'onda sonora a colpirlo e tornare indietro. 27 ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 7 – ATTUATORI Servomotore funzionante in corrente continua (DC), che viene collegato a una delle 3 porte di OUTPUT (A B C). Caratteristiche: -Tensione alimentazione 9V (DC) -Velocità max 170 rpm (giri/minuto) (117 rpm a 9V); -Potenza meccanica a 9V 2,03W; -Potenza elettrica a 9V 4,95W; -Efficenza a 9V 41%; -Assorbimento a 9V, 55A; -No-Load current 60 mA; -Coppia a 9V 16,7 N*cm; -Coppia in stallo 50 N*cm; -Corrente di stallo 2 A; -Peso 80 gr; 29 Il servomotore ha al suo interno un sensore di rotazione che permette di misurare la velocità e/o la distanza percorsa. Grazie al software è possibile sincronizzare più motori e garantire che si muovano alla stessa velocità. Inoltre con gli ingranaggi presenti nel Kit è possibile modificare ulteriormente il rapporto di trasmissione. Il servomotore assemblati con encoder di rotazione ottici interni che permettono di misurare la velocità e/o la distanza percorsa. ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE 31 ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 8 – AMBIENTE DI SVILUPPO Il programma da noi utilizzato per la programmazione del robot è JCreator LE 5.0, opportunamente configurato con le librerie JDK version 1.6.0_21 e le classi LeJOS. E’ installato su macchina con ambiente Windows ed il linguaggio utilizzato è il Java. Si è scelto di utilizzare il Java per il fatto di essere multipiattaforma (cioè può essere utilizzato in ambienti diversi), è orientato agli oggetti (argomento di studio quest'anno), e può eseguire codice da sorgenti remote in modo del tutto sicuro. 33 ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 9 – IL PROGRAMMA SOFTWARE Il seguente scritto sarà lo scheletro del programma software da noi utilizzato con gli opportuni commenti: /** * @(#)Programma.java * * Programma application * * @author Di Francesco, Ruggiero, Finizio, Colarossi, Liberatore * @version 2.01 2012/4/13 */ import lejos.nxt.*; import lejos.util.Delay; public class Programma1 { public static void main(String[] args) { // Inizio della parte dichiarativa LightSensor sin=new LightSensor(SensorPort.S4); LightSensor des=new LightSensor(SensorPort.S1); UltrasonicSensor cen= new UltrasonicSensor(SensorPort.S3); Motor.C.setSpeed(300); Motor.B.setSpeed(300); boolean trovato=false; boolean argento=false; int soglia=36; int sogliastanza=53; // Fine della parte dichiarativa 35 // Inizio del ciclo segui linea / aggira ostacolo while (argento==false) { LCD.drawString ("Valore S: "+sin.readValue(),0,0); LCD.drawString ("Valore D: "+des.readValue(),0,1); if (sin.readValue()>sogliastanza && des.readValue()>sogliastanza) argento=true; if (sin.readValue()>soglia) Motor.C.forward(); else { } if (des.readValue()>soglia) Motor.B.forward(); else { } if (cen.getDistance()<=7) { } } // Fine del ciclo segui linea / aggira ostacolo // Inizio ciclo terza stanza while (trovato==false) { } // Fine ciclo terza stanza } } ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE CAP. 10 – SORGENTE DI ALIMENTAZIONE Tipo AA Capacità (mAh) Immagine 1200 (alcalina) 540 (zinco-carbone) 800-1000 (Ni-MH) La soluzione da noi adottata è l’utilizzo di una batteria ricaricabile. 37 INDICE P.7 - CAP. 1 - DATI GENERALI P.11 - CAP. 2 - DATI DI CONTESTO E MOTIVAZIONE P.13 - CAP.3 - NOME E STRUTTURA DEL ROBOT P.17 - CAP. 4 - MECCANICA P.21 - CAP. 5 - UNITÀ DI CONTROLLO P.25 - CAP. 6 - SENSORI P.29 - CAP. 7 - ATTUATORI P.33 - CAP. 8 - AMBIENTE DI SVILUPPO P.35 - CAP. 9 - IL PROGRAMMA SOFTWARE P.37 – CAP.10 ALIMENTAZIONE – SORGENTE DI ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE 39