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