ROBOCUP JR ITALIA 2012€¦ · La “Rete di scuole per la Robocup Jr ITALIA” è espressione...
Transcript of ROBOCUP JR ITALIA 2012€¦ · La “Rete di scuole per la Robocup Jr ITALIA” è espressione...
Rete di scuole per la ROBOCUP JR ITALIA
ROBOCUP JR ITALIA 2012 Riva del Garda (TN)
19-21 aprile
REPORT DI DOCUMENTAZIONE
della squadra Other Robot ITIS G.B.Pininfarina Moncalieri (Torino)
IL NOSTRO ISTITUTO
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
3
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
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
5
Rete. Questo volumetto appartiene alla collana di documentazione. Sul piano organizzativo e gestionale della Rete di scuole lo Statuto prevederà 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. RICERCATORI ASSOCIATI – portano nella Rete il loro contributo scientifico di alto livello. Partecipano di diritto al Gruppo Tecnico e un loro rappresentante al Comitato di Gestione (senza diritto di voto). 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.
Sandro La Marca Alessandro Marello
Davide Patanè Carmelo Andrea Russotto
Elio Hu
OTHER ROBOT
PARTECIPA ALLA GARA DI
RESCUE A ITIS G.B.Pininfarina
Classi: 5B tele – 5B info – 3C mecc
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
7
CAP. 1 - DATI GENERALI
Componenti della squadra: Sandro La Marca (elettronico). Alessandro Marello (elettronico) Davide Patanè (informatico) Carmelo Andrea Russotto (informatico) Elio Hu (meccanico)
Docenti: Antonio Spano Cesare Iacobelli Enrico Nicola
Istituto di appartenenza: I.T.I.S. “G.B. Pininfarina” – Moncalieri (TO)
CAP. 2 - DATI DI CONTESTO E MOTIVAZIONE
L’idea di partecipare alla RobocupJR è già stata lanciata tre anni fa dai professori responsabili (Iacobelli e Spano) come attività pomeridiana extra – scolastica. Gli allievi interessati si sono iscritti a questo corso in cui sono state date le basi per poter realizzare robot sia partendo dai Kit della Lego che procedendo alla costruzione da zero. La nostra squadra ha deciso di progettare e costruire un robot ex-novo, comprando e assemblando vari componenti e dispositivi presenti sul mercato come ad esempio i due processori Arduino e realizzando i circuiti necessari.
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
9
CAP. 3 – NOME E STRUTTURA DEL ROBOT Il nostro Robot si chiama Other Robot; il nome deriva dal robot che ha partecipato alle ultime tre edizioni della Robocup JR anche se il robot è stato completamente riprogettato;
FIGURA 1 SCHEMA A BLOCCHI DEL ROBOT
Per la gestione dei comandi e dei segnali provenienti dai
sensori sono state utilizzate due schede elettroniche Arduino
Uno perché la complessità dei compiti da svolgere non
avrebbe permesso ad una singola scheda di svolgerle
rapidamente. Una scheda si occupa di gestire i segnali
provenienti dal sensore ad ultrasuono (rilevazione ostacoli e
Arduino Uno A
Arduino Uno B
Sensori di luce
Motori
Sensore di ultrasuono
lattina) e di adeguare di conseguenza i movimenti del robot;
la seconda scheda si occupa di ricevere i segnali provenienti
da sensori di luce (inseguimento linea) e di gestire i comandi
per i motori
FIGURA 2 STRUTTURA DEL ROBOT
Il sensore ad ultrasuoni è mosso utilizzando un piccolo motore, in questo modo può esplorare l’ambiente circostante senza dover muovere tutto il robot, ma è necessario che la scheda di controllo esegua un controllo accurato dei movimenti del sensore.
Sensore a ultrasuoni
Pinza
Sensori di luce Motore per
sensore a ultrasuoni
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
11
CAP. 4 – MECCANICA Questo robot è un autocostruito. La struttura portante del robot è realizzata in bachelite recuperata dagli scarti delle piastre elettroniche utilizzate durante le esperienze di laboratorio.
FIGURA 3 IL ROBOT
È composto da un sistema di trazione formato da due ruote azionate da due motori che lavorano in continua, con motoriduttore pilotati dall’integrato L293D. Sul retro è posta un ruotino libero di ruotare e che serve a creare il terzo punto di appoggio.
Le pinze sono state costruite utilizzando basette di bachelite e rame e rivestite di materiale poroso. Esse sono azionate da due servomotori minori che effettuano i movimenti di apertura e chiusura; un terzo motore, avente portata pari a 24Kg, avrà il compito di sollevare la lattina dopo che la pinza si è chiusa
FIGURA 4 PINZE PER AFFERRARE LA LATTINA
Questi servomotori verranno controllati dall’Arduino A.
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
13
FIGURA 5 PROVE PER MODULAZIONE SEGNALE PWM DEI MOTORI
CAP. 5 – UNITÀ DI CONTROLLO
FIGURA 6 SCHEDA ARDUINO UNO
L’immagine rappresenta una delle due unità di controllo utilizzate: Arduino Uno. Il micro-controllore utilizzato sull’Arduino è l’ATMEGA 328p prodotto dall’ATMEL.. Sono state implementate due unità di controllo (A e B) poiché ciascuna svolge una funzione differente. L’Arduino A controlla i motori, inoltre riceve in input i dati raccolti dai 4 sensori di luce.
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
15
Le schede sono alimentate a 6 V attraverso un pacco batterie; lavorano a una frequenza di 16 MHz con un segnale generato sulla scheda stessa. La scheda Arduino A utilizza 4 ingressi analogici e 6 uscite digitali di cui 2 con modulazione di segnale PWM e le rimanenti per le due direzioni di ogni motore. L’Arduino B riceve i dati raccolti dal sensore ad ultrasuono e controlla i tre servo-motori della pinza. Questa scheda si attiva nella terza camera e nel momento in cui si presenta un ostacolo da evitare. Vengono utilizzate 6 uscite digitali di cui 3 per i motori della pinza, 2 per il sensore a ultrasuono e il rimanente per le lamelle che rilevano la striscia di alluminio posta all’ingresso della terza stanza Il linguaggio utilizzato è di tipo C-like. Entrambe le unità di controllo comunicano tra di loro rendendo il robot un sistema a doppio processore
CAP. 6 – SENSORI
Per rilevare la presenza della riga nera da seguire è stato utilizzato un sistema a 4 sensori in linea. Il QRD è un sensore che funziona per mezzo di un LED a raggi infrarossi e il ricevitore è un foto-transistor. Lavora fino a un cm da terra, parallelamente alla superficie. Ha una tensione di alimentazione di 5V e assorbe 20 mA.
FIGURA 7 DATI TECNICI MECCANICI DEL SENSORE QRD
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
17
FIGURA 8 LA BASETTA SU CUI SARÀ MONTATO IL SENSORE QRD
Per regolare la corrente nel transistor abbiamo utilizzato una resistenza di 220Ω Per regolare la corrente nel LED abbiamo utilizzato una resistenza di 10KΩ.
FIGURA 9 STRUTTURA INTERNA DEL SENSORE QRD
Il sensore ultrasuoni SRF05; lavora con un angolo di 180°, ma per le nostre esigenze l’abbiamo ridotto l’ampiezza a 90°.
FIGURA 10 SENSORE AD ULTRASUONI SRF05
Il sensore lavora su differenze di livello di 10 cm rilevando l’ostacolo
FIGURA 11 DIAGRAMMA DI RADIAZIONE DEL SENSORE SRF05
Per rilevare la piattaforma su cui poggiare la lattina saranno utilizzati dei sensori SHARP ad infrarossi
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
19
CAP. 7 – ATTUATORI
In questo robot gli attuatori sono costituiti dai motori che controllano i vari movimenti. Sono stati utilizzati
- N° 2 motori per lo spostamento - N° 1 motore per rotazione sensore ad ultrasuoni - N° 1 motore per sollevamento lattina - N° 2 motori per movimenti pinza
Il collegamento elettrico di collegamento tra la scheda Arduino ed il motore avviene attraverso l’integrato L293D
FIGURA 12 SCHEMA DI COLLEGAMENTO TRA ARDUINO E MOTORE
L’integrato genera i segnali adatti per pilotare il motore, mentre la scheda di controllo si limita a fornire i comandi su accensione spegnimento e velocità.
FIGURA 13 PIEDINATURA DEL L293D
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
21
CAP. 8 – AMBIENTE DI SVILUPPO L’ambiente di sviluppo è quello standard di Arduino che ci permette di scrivere in linguaggio C-like. Abbiamo utilizzato questo linguaggio in quanto avevamo già conoscenze del linguaggio C e quindi non avremmo trovato problemi durante la programmazione.
FIGURA 14 AMBIENTE DI SVILUPPO DI ARDUINO
CAP. 9 – IL PROGRAMMA SOFTWARE
Il software è stato realizzato utilizzando il linguaggio C-LIKE di Arduino. Modulo segui-linea: Nel programma abbiamo un ciclo infinito in cui ogni volta vengono rilevati determinati valori che corrispondono alle posizioni dei sensori sulla linea. Utilizzando quattro sensori possiamo avere 16 possibili combinazioni. Per ogni combinazione abbiamo scritto il relativo codice che permette al robot di muovere in modo opportuno i motori per seguire la linea. Nell’esempio di seguito riportato i 4 sensori assumo uno stato “0”= bianco o “1”=nero in base al colore rilevato lungo il percorso. Il codice 0010, indicato nell’esempio, è rappresentato nella figura seguente
FIGURA 15 SITUAZIONE LUNGO IL PERCORSO
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
23
In questo caso il robot deve effettuare una leggera rotazione a destra, fermando la ruota destra ed agendo su quella sinistra fino quando si ristabilisce la situazione 0000 (la linea esattamente al centro tra i 4 sensori)
Codice del modulo seguilinea:
case 0010: analogWrite(6,255); digitalWrite(5,HIGH); digitalWrite(4,LOW); digitalWrite(9,LOW); digitalWrite(10,LOW); analogWrite(11,255); break;
Spiegazione: AnalogWrite (6,255)
indica che viene data la potenza maggiore al motore sinistro; digitalWrite(5,HIGH) digitalWrite(4,LOW)
indica che il motore sinistro viene azionato in avanti; digitalWrite(9,LOW) digitalWrite(10,LOW)
indica che il motore destro non viene azionato. AnalogWrite (11,255)
indica che viene data la potenza maggiore al motore destro;
Questo è una delle possibili combinazioni delle 16 citate in precedenza.
Modulo presa-lattina: Il software provvederà, quando il sensore a ultrasuoni rileva la distanza corretta per la presa della lattina, ad attivare il movimento delle pinza per la chiusura e il movimento del motore per il sollevamento della lattina
Modulo rilevazione lattina:
Il motore fa ruotare il sensore di circa 90° nell’area davanti al robot con due scansioni ed acquisisce 10 valori di distanza rilevati. Di questi valori esegue la media e considera come direzione valida il valore più basso rispetto alla media. La scheda di controllo comanda i motori di movimento per allineare il robot nella direzione trovata ed avanzare di alcuni centimetri. Esegue una nuova scansione e migliora l’allineamento con la lattina. Se la direzione trovata è prossima all’asse del robot, l’avanzamento è maggiore altrimenti esegue solo una rotazione
ROBOCUP JR ITALIA 2012 – Riva Del Garda 19-21 aprile REPORT DI DOCUMENTAZIONE
25
CAP. 10 – SORGENTE DI ALIMENTAZIONE
Per alimentare il robot abbiamo utilizzato un pacco batterie composto da 5 batterie AA che alimenta a 6V l’Arduino e a 7,5V gli L293D.
FIGURA 16 SCHEMA ALIMENTAZIONE
L’alimentazione a 6V è ottenuta utilizzando 4 pile, mentre la tensione a 7,5V è ottenuta utilizzando anche la quinta batteria
FIGURA 17 LE BATTERIE
INDICE
P. 7 CAP 1- DATI GENERALI P. 8 CAP. 2 - DATI DI CONTESTO E
MOTIVAZIONE P. 9 CAP. 3 - NOME E STRUTTURA DEL
ROBOT P. 11 CAP 4 – MECCANICA P. 14 CAP 5 – UNITÀ DI CONTROLLO P. 16 CAP 6 - I SENSORI P. 19 CAP 7 – ATTUATORI P. 21 CAP 8 – AMBIENTE DI SVILUPPO P. 22 CAP 9 – PROGRAMMA SOFTWARE P. 24 CAP. 10 - SORGENTE DI
ALIMENTAZIONE