37
Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 Catania 14-16 aprile REPORT DI DOCUMENTAZIONE Della squadra Another Brick Istituto Marconi di Gorgonzola (MI)

Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

Rete di scuole per la ROBOCUP JR ITALIA

ROBOCUP JR

ITALIA 2011

Catania 14-16 aprile

REPORT DI DOCUMENTAZIONEDella squadra Another Brick

Istituto Marconi di Gorgonzola (MI)

Page 2: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 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) haproposto 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,

Page 3: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

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 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).

Page 4: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

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.

Page 5: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

S. Rossi A. Boccasile

Another Brick

PARTECIPA ALLA GARA DI Rescue

Istituto MarconiClasse triennio ITIS e Liceo Tecnologico

Page 6: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 1 - DATI GENERALI

Studenti

Francesco PasinaIIIAE - ITIS Elettrotecnica

Alesessandro Di Marco IIIBE - ITIS Elettrotecnica

Stefano Rossi IVDL – Liceo Tecnologico

Francesco Squillaci IVDL – Liceo Tecnologico

Docente

Boccasile AlfredoInsegnante di sistemi elettrici e automatici

Page 7: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 2 - DATI DI CONTESTO E MOTIVAZIONE

L’I.T.I.S. “MARCONI” è presente sul territorio di Gorgonzola dal 1974. Inizialmente erano presenti solo le specializzazioni di elettrotecnica e telecomunicazioni. Nell’A.S. 1996/97 è stato attivato il Liceo Scientifico Tecnologico, infine nell’A.S. 2003/04 è stato attivato il corso di specializzazione in Informatica Industriale.

Nel 2008/09 viene attivata la prima esperienza di robotica che si conclude con la partecipazione alla prima RoboCup a Torino nella categoria Rescue. Dopo la pausa dello scorso anno, quest'anno è stato nuovamente finanziato un corso pomeridiano rivolto agli studenti del triennio. L'obiettivo è quello di trovare, nel futuro, degli sponsor per poter sviluppare da zero dei robot progettati interamente dagli studenti.

Page 8: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 3 – NOME E STRUTTURA DEL ROBOTIl nome deriva da una famosa canzone dei Pink Floyd e dal fatto che l'unità centrale della lego viene indicata in inglese come brick.

Le nostre “unità centrali” sono due NXT della LEGO che lavorano in configurazione master-slave.Abbiamo utilizzato vari sensori e attuatori:

- Bussola- Contatto- Luce- Colore- Motori- Ultrasuoni

Ogni sensore è stato provato più volte e in diverse condizioni, al fine di valutarne il comportamento nelle diverse condizioni di funzionamento.

Abbiamo deciso di utilizzare una bussola elettronica per avere un controllo sulle rotazioni effettuate dal robottino. Inoltre, grazie alla bussola e ai sensori ad ultrasuoni siamo in grado, di localizzarlo all'interno del campo di gara.

Abbiamo iniziato a sviluppare autonomamente alcuni sensori, ma anche acquisito know-how su sistemi di acquisizione LEGO compatibili. Per queste attività sono stati formati dei gruppi che si sono occupati delle seguenti attività:

Page 9: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

1) analisi del sistema di visione V2 Mindsensor (allegato 3) sua programmazione, interfacciamento con LEGO Mindstorm ed uttilizzo in fase di planning;2) sviluppo di un sistema di localizzazione integrato, formato da quattro sensori ad ultrasuoni SRF02 e da un SRF10 prodotti da Robot-Italy e da un motore LEGO per l'orientamento dei sensori. Anche in questo caso il protocollo di trasmissione utilizzato è l'I2C.

Page 10: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 4 – MECCANICA

Le strutture sono state realizzate utilizzando i pezzi Technic della LEGO. Nel corso della gara di due anni fa anno abbiamo visto che, pur mancando in alcuni casi di robustezza, il modelli costruiti con pezzi LEGO hanno il grande vantaggio di essere facilmente modificabili in base alle difficoltà del percorso di gara.

Abbiamo deciso di utilizzare i cingoli per migliorare l'aderenza del robot in presenza di ostacoli e detriti.

Page 11: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

La struttura portante (rappresentata nelle due foto) ci ha permesso di installare il sensore di contatto, la bussola, i due sensori luminosi e il sensore di colore.

Page 12: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 5 – UNITÀ DI CONTROLLO

l kit utilizzato è il LEGO NXT, di cui si riporta uno schema a blocchi dell'unità centrale:

Processore principale:Atmel 32-bit ARM processor, AT91SAM7S256256 KB FLASH64 KB RAM48 MHz

Page 13: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

Co-processore:Atmel 8-bit AVR processor, ATmega484 KB FLASH512 Byte RAM8 Mhz

Caratteristice dei motori LEGOEncoder integrato nel motore con sensibilità 1°Posizioni relative e non assoluteVelocità massima pari a circa 200 RPMCoppia massima 24 NcmMotori estremamente robusti

Connessioni di Input/OutputI cavi LEGO NXT (come I connettori DEC RJ-12 ma al contrario)Schemi:

Page 14: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 6 – SENSORI

Oltre ai sensori della lego, abbiamo inizialmente previsto i seguenti sensori, per i quali, per motivi di tempo che ne hanno impedito un adeguato collaudo, non abbiamo ritenuto di utilizzarli nella gara.

Page 15: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

SRF02

Page 16: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

Sistema per la visione artificiale

Scheda tecnica da: http://www.mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=78

Page 17: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

NXT Color Sensor V2 (NCO1038)

Add a spectrum of color to your models with the new and updated HiTechnic Color Sensor (Version 2). Detect an extended range of more than 15 target colors and program your NXT robot to react to each color. Build a

color sorter to sort LEGO bricks or a line follower that will detect different color lines and surface colors. The HiTechnic Color Sensor is “tuned” to standard LEGO colors. When positioned over a surface, the Color Sen-sor will return a numeric value identifying the target color. The new Version 2 Color Sensor has enhanced performance including better color recognition and longer detection range. The NXT-G programming block can be downloaded from the Downloads page.

Page 18: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

Compass

The NXT Compass Sensor contains a digital magnetic compass that measures the earth’s

magnetic field and calculates a heading angle. The Compass Sensor connects to an NXT

sensor port using a standard NXT wire and uses the digital I2C communications protocol.

The current heading is calculated to the nearest 1° and refreshed 100 times per second.

The Compass Sensor is housed in a standard Mindstorms sensor housing to match the

other Mindstorms elements.

Action

Action has three options. These are;

Absolute Reading: Allows you to read the Absolute Heading, a value from 0 to 359, corre-

sponding to the current magnetic heading in degrees. (Plug 6 on the data hub)

Relative Reading: Allows you to set a Target and read the Relative Heading (Plug 3 and 7

on the data hub).

See Using Relative Reading below for more information.

Calibrate: Set the compass sensor into Calibrate mode allowing you to go through the cali-

brate sequence to minimize the influence of metal and other other sources of magnetic in-

terference such as motors or batteries.

See Calibrating the Compass Sensor below for more information.

Scheda tecnica da: http://www.hitechnic.com/cgi-bin/commerce.-

cgi?preadd=action&key=NMC1034

Page 19: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 7 – ATTUATORI

MOTORI LEGO

Encoder integrato nel motore con sensibilità 1°Posizioni relative e non assoluteVelocità massima pari a circa 200 RPMCoppia massima 24 NcmMotori estremamente robusti

Page 20: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 8 – AMBIENTE DI SVILUPPO(L'ambiente di sviluppo utilizzato è Bricxcc, progetto open sourse arrivato alle release 3.3.8.8 (da noi utilizzata). Il firmware caricato sui robot della LEGO è l'1.28. Il linguaggio utilizzato è l'NXC. La scelta è stata dettata dal fatto che il software è open source e di fatto è un C, linguaggio molto utilizzato anche dagli studenti delle nostra scuola che non si occupano di robotica. Infine, in internet è presente parecchio materiale in questo linguaggio e la compatibilità con i sensori Lego compatibili è molto buona.

Page 21: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 9 – IL PROGRAMMA SOFTWARE

I diversi componenti del gruppo hanno affrontato indipendentemente le diverse problematiche relative alla gestione del robot, dal settaggio iniziale, al movimento, alla rilevazione delle vittime. Ogni compito è stato implementato tramite una diversa funzione. Di seguito riportiamo qualche esempio di programmazione.

Settaggio sensoriQuello seguente, è un estratto del programma che ci permette di tarare i sensori di luminosità in modo che riconoscano i diversi colori previsti (fondo, vittime e traccia).

Viene rilevata per tre volte la luce riflessa dai diversi elementi presenti sul piano e infine viene calcolata la media ed assegnato il risultato alla variabili globali.

Codice sorgente

int settaLuce(int porta, string testo){ int luce; int val[3]; int i; for(i=0;i<3;i=i+1) { while(ButtonPressed(BTN4, true)!=1) { ClearScreen(); TextOut(0,LCD_LINE3,testo,true); NumOut(70,LCD_LINE3,Sensor(porta),false); Wait(100);

Page 22: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

} val[i]=Sensor(porta); Wait(500); } ClearScreen(); luce=(val[0]+val[1]+val[2])/3; TextOut(0,LCD_LINE2,"media",true); TextOut(0,LCD_LINE3,testo,true); NumOut(60,LCD_LINE3,luce); Wait(1000); return luce;}

void settaggio(){/*SetSensorColorFull(S1);SetSensorLight(S2);SetSensorLight(S3);int biancoS,biancoD, biancoC;int neroS,neroD, neroC;int verdeS,verdeD, verdeC;int argentoS,argentoD, argentoC;*/cbianco=settaLuce(colore,"biancoC");biancoD=settaLuce(luceDestra,"biancoD");biancoS=settaLuce(luceSinistra,"biancoS ");cnero=settaLuce(colore,"neroC");neroD=settaLuce(luceDestra,"neroD");neroS=settaLuce(luceSinistra,"neroS ");cverde=settaLuce(colore,"verdeC");verdeD=settaLuce(luceDestra,"verdeD");verdeS=settaLuce(luceSinistra,"verdeS ");cargento=settaLuce(colore,"argentoC");argentoD=settaLuce(luceDestra,"argentoD");argentoS=settaLuce(luceSinistra,"argentoS ");ClearScreen();TextOut(10,LCD_LINE1,"B");TextOut(35,LCD_LINE1,"N");TextOut(60,LCD_LINE1,"V");TextOut(85,LCD_LINE1,"A");

TextOut(0,LCD_LINE2,"S");NumOut(10,LCD_LINE2,biancoS);NumOut(35,LCD_LINE2,neroS);NumOut(60,LCD_LINE2,verdeS);NumOut(85,LCD_LINE2,argentoS);

Page 23: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

TextOut(0,LCD_LINE3,"D");NumOut(10,LCD_LINE3,biancoD);NumOut(35,LCD_LINE3,neroD);NumOut(60,LCD_LINE3,verdeD);NumOut(85,LCD_LINE3,argentoD);

TextOut(0,LCD_LINE4,"C");NumOut(10,LCD_LINE4,cbianco);NumOut(35,LCD_LINE4,cnero);NumOut(60,LCD_LINE4,cverde);NumOut(85,LCD_LINE4,cargento);

while(ButtonPressed(BTN4, true)!=1) TextOut(1,LCD_LINE7,"Premi per iniziare");

}

Page 24: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

Localizzazione nel campo di gara

Un gruppo si è occupato del sottosistema per la localizzazione del robot all'interno del campo di gara e della mappatura dello spazio circostante. Il software riceve le informazioni dai sensori ad ultrasuoni e le confronta tra loro al fine di ottenere una stima della posizione, gestendo le anomalie dei sensori o incongruenze tra gli stessi.

Si prevedeva inizialmente di valutare le performance e l'implementazione dei seguenti sensori:- 4 sensori ad ultrasuoni per determinare la posizione del robot nel campo di gara ed un sensore ad ultrasuoni per la localizzazione di ostacoli nella direzione di marcia (implementato);- sistema di visione (non implementato);sensori di contatto per la rilevazione di eventuali urti;- bussola (implementato)

Codice sorgente

/*

y1

____

| |

x1 | | x2

|____|

y2

Page 25: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

*/

#define campox 160

#define campoy 129

#define errore 3

#define testa 13

#define USx1 S1

#define USx2 S3

#define USy1 S2

#define USy2 S4

#define comp S4

#define fattore 5

int y1, y2, x1, x2, xy[3], angle0, position0; //nel vettore xy ci sono le coordinate assolute della posizione all'interno del campo; xy[1]=coordx, xy[2]=coordy, xy[0] non viene usata

bool res=TRUE, ostacolox=FALSE, ostacoloy=FALSE;

//---------------------------------------------------

void reset()

{

while( abs((x1+x2+testa)-campox) > errore )

{

OnFwdEx(OUT_C,40,RESET_NONE);

x1 = SensorUS(USx1);

x2 = SensorUS(USx2);

//TextOut(1,LCD_LINE1,"x1: x2: delta:");

Page 26: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

//NumOut(1,LCD_LINE2,x1);

//NumOut(30,LCD_LINE2,x2);

//NumOut(60,LCD_LINE2,((x1+x2+testa)-campox));

}

position0 = MotorRotationCount(OUT_C);

OffEx(OUT_C,RESET_ALL);

angle0 = SensorHTCompass(comp);

//TextOut(1,LCD_LINE4,"compass:");

//NumOut(40,LCD_LINE4,angle0);

xy[1]=x1;

xy[2]=SensorUS(USy1);

}

//---------------------------------------------------

void compass()

{

int alpha,verso,pot,motor;

alpha=SensorHTCompass(comp);

pot= -(alpha-angle0)*fattore;

if (pot>100) pot=100;

if (pot<-100) pot=-100;

motor=MotorRotationCount(OUT_C);

Page 27: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

if (abs(alpha-angle0)>errore)

{

OnFwdEx(OUT_C,pot,RESET_NONE);

}

else

OffEx(OUT_C,RESET_NONE);

}

//---------------------------------------------------

void posizione()

{

x1=SensorUS(USx1);

x2=SensorUS(USx2);

y1=SensorUS(USy1);

//y2=SensorUS(USy2);

if(ostacolox=TRUE)

{

if(abs(x1+x2+testa-campox)<errore)

{

ostacolox=FALSE;

}

x1=campox-testa-x2;

}

Page 28: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

if(ostacolox=FALSE)

{

if(abs(x1+x2+testa-campox)>errore)

{

if(x1+x2+testa > campox) //c'è una porta

{

if(abs(x1-xy[1]) > 10) //la porta è dalla parte di x1

{

x1=campox-testa-x2;

ostacolox=TRUE;

}

}

if(x1+x2+testa < campox) // c'è un ostacolo

{

if(abs(x1-xy[1]) > 10) //l'ostacolo è dalla parte di x1

{

x1=campox-testa-x2;

ostacolox=TRUE;

}

}

}

}

//--- NON UTILIZZABILE FINCHE' I SENSORI A ULTRASUONI NON SARANNO SU UN UNICA PORTA

Page 29: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

/*

if(ostacoloy=TRUE)

{

if(abs(y1+y2+testa-campoy)<errore)

{

ostacoloy=FALSE;

}

y1=campoy-testa-y2;

}

if(ostacoloy=FALSE)

{

if(abs(y1+y2+testa-campoy)>errore)

{

if(y1+y2+testa > campoy) //c'è una porta

{

if(abs(y1-xy[2]) > 10) //la porta è dalla parte di y1

{

y1=campoy-testa-y2;

ostacoloy=TRUE;

}

}

if(y1+y2+testa < campoy) // c'è un ostacolo

{

Page 30: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

if(abs(y1-xy[2]) > 10) //l'ostacolo è dalla parte di y1

{

y1=campoy-testa-y2;

ostacoloy=TRUE;

}

}

}

}

*/

//---

xy[1]=x1+(testa/2);

xy[2]=y1+(testa/2);

}

//---------------------------------------------------

void align()

{ int temp;

temp=-(position0+MotorRotationCount(OUT_C));

RotateMotor(OUT_C,70,temp);

res = TRUE;

}

//---------------------------------------------------

Page 31: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

task main()

{

SetSensorLowspeed(USx1);

SetSensorLowspeed(USx2);

SetSensorLowspeed(USy1);

//SetSensorLowspeed(USy2);

SetSensorLowspeed(comp);

while(TRUE)

{

if(res==TRUE)

{

reset(); // mette la testa in posizione corretta secondo l'asse x

angle0 = SensorHTCompass(comp);

res = FALSE;

}

compass(); // mantiene la testa in linea usando la bussola

posizione(); // crea le coordinate di posizione in base a x1 e y1 nel vettore xy[]

if(ButtonPressed(BTN4,true)!=0) // se il bottone centrale è premuto

{

align(); // allinea nella posizione iniziale

Page 32: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

}

TextOut(1,LCD_LINE1,"x:");NumOut(30,LCD_LINE1,xy[1]);

TextOut(1,LCD_LINE2,"y:");NumOut(30,LCD_LINE2,xy[2]);

}

}

Page 33: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

Comunicazione tramite I2C e Bluetooth

La prima fase ha previsto l'approfondimento dei protocolli di trasmissione seriale e in particolare dell'I2C e del Bluetooth. Il primo protocollo è di fondamentale importanza per i gruppi che si occupano dello sviluppo dei sensori, mentre la trasmissione Bluetooth è stata utilizzata per far comunicare le due unità NXT. Per la comunicazione Bluetooth sono state utilizzate le librerie di Benedettelli.

Codice sorgente

/* master 1000< x <1500 1500< y <2000 2000<comp <2500 2500<angle<3000*/

//int x, y, comp, angle;int comp, angle;

void ricevi(){string sslave; int slave; mastercheck(); slave=-1; do{ sslave=receivefromslave(); slave=StrToNum(sslave); }while(slave == -1);

if(slave>=1000 && slave<1500) { x=slave-1000; } if(slave>=1500 && slave<2000) { y=slave-1500; } if(slave>=2000 && slave<2500)

Page 34: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

{ comp=slave-2000; } if(slave>=2500 && slave<3000) { angle=slave-2500; } }

task ricevi_trasmetti(){

while(TRUE) { ricevi();// TextOut(1,LCD_LINE1,"x: y:",true);// NumOut(1,LCD_LINE3,x); NumOut(60,LCD_LINE3,y);// TextOut(1,LCD_LINE5,"compass: angle:");// NumOut(1,LCD_LINE7,comp); NumOut(60,LCD_LINE7,angle); }

}

SLAVE/* slave

1000< x <1500

1500< y <2000

2000<comp <2500

2500<angle<3000

*/

#include "protocol.h"

void invia(int X, int Y, int COMP, int ANGLE)

{

string sx, sy, scomp, sangle;

slavecheck();

X=X+1000;

Page 35: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

Y=Y+1500;

COMP=COMP+2000;

ANGLE=ANGLE+2500;

sx=NumToStr(X);

sy=NumToStr(Y);

scomp=NumToStr(COMP);

sangle=NumToStr(ANGLE);

sendtomaster(sy);

sendtomaster(sx);

sendtomaster(scomp);

sendtomaster(sangle);

}

task main()

{

int x=130, y=242, angle=337, comp=52;

while(TRUE)

{

invia(x,y,comp,angle);

TextOut(1,LCD_LINE1,"x: y:",true);

NumOut(1,LCD_LINE3,x); NumOut(60,LCD_LINE3,y);

TextOut(1,LCD_LINE5,"compass: angle:");

Page 36: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

NumOut(1,LCD_LINE7,comp); NumOut(60,LCD_LINE7,angle);

}

}

Page 37: Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2011 · 2011. 12. 5. · ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE La “Rete di scuole per

ROBOCUP JR ITALIA 2011 - Catania 14-16 aprile REPORT DI DOCUMENTAZIONE

CAP. 10 – SORGENTE DI ALIMENTAZIONE

Il mattoncino intelligente della LEGO utilizza come fonte di alimentazione a 9 V. Noi abbiamo utilizzato le batterie al litio della lego.