ROBOCUP JR ITALIA 2012

Documenti analoghi
ROBOCUP JR ITALIA 2011

ROBOCUP JR ITALIA 2012 Riva del Garda (TN) aprile

ROBOCUP JR ITALIA 2011

ROBOCUP JR ITALIA 2012

ROBOCUP JR ITALIA 2011

Macchinina evita ostacoli Arduino

ROBOCUP JR ITALIA 2011

ROBOCUP JR ITALIA 2012 Riva del Garda (TN) aprile

ROBOCUP JUNIOR. CATANIA, Aprile SenigalliaRobot. A cura di: Mazzanti Matteo Stefanini Alessandro Simone Giovanni

ROBOCUP JR ITALIA 2012

ROBOCUP JR ITALIA 2012

ROBOCUP JR ITALIA 2011

ROBOCUP JR ITALIA Riva del Garda aprile

ROBOCUP JR ITALIA RIVA DEL GARDA

Corso di programmazione Arduino DI MALVEZZI DAVIDE

ROBOCUP JR ITALIA 2012

ROBOTICA Syllabus Versione 1.0

LE ALTRE BOARD ARDUINO

Fisica, tecnologia, scienze applicate: ulab2, un laboratorio portatile basato su arduino e due piccoli robot, LEMU e MOMOLAB, vanno a scuola

Workshop Teachers For Teachers settembre 2013

ROBOCUP JR ITALIA 2012

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) PROGRAMMAZIONE COORDINATA TEMPORALMENTE DISCIPLINA: ROBOTICA

Internetworking V a nno

Per vedere tutti i tutorial:

CHI SIAMO.

Stazione Metereologica. Capone Alessandro

SERVOMOTORI A ROTAZIONE CONTINUA ( 3 )

ROBOCUP JR ITALIA 2012

Cos'è Arduino? rilasciata con licenza di tipo open source.

ROBOCUP JR ITALIA 2015



SERVOMOTORI A ROTAZIONE CONTINUA ( 3 )

ROBOCUP JR ITALIA 2012

Detta così sembra una faccenda semplice ma, nella pratica, occorre una notevole precisione e tanta tanta pazienza.

Programmazione Modulare

La piattaforma per la robotica educativa VEX IQ è pensata per gli studenti a partire dalla scuola primaria. Si adatta sia a studenti alle prime armi

Far lampeggiare un led o forse un semaforo?

LEGO Mindstorms e Arduino nella scuola secondaria di secondo grado: alcune esperienze didattiche. Pietro Bonora Liceo Scientifico A.B.

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

ROBOCUP JR ITALIA III EDIZIONE CATANIA 2011

ROBOCUP JR ITALIA 2012

ROBOCUP JR ITALIA 2012

FIRST LEGO LEAGUE ITALIA BOLZANO 14 febbraio Squadra FLL 4: LICEO ROSMINI RELAZIONE TECNICA. TITOLO DEL PROGETTO: ipec

Prefazione...IX. Capitolo 1 - La famiglia di Arduino...1

Il sensore seguilinea

RELAZIONE. Descrizione dell apparato sperimentale, materiale utilizzato, altre caratteristiche specifiche

Ultrasonic Sensor Block

Prof. Capuzzimati Mario - ITIS Magistri Cumacini - Como MICROCONTROLLORE

ROBOT CALCIATORE VIPER III IIS Cobianchi ed Elettra Robotics Lab

MOTORE PASSO-PASSO CON VELOCITÀ REGOLABILE

Cos è? Definizione ufficiale scritta dall inventore di Arduino, Massimo Banzi.

SCHEDA SPERIMENTALE ARDUINO UNO

Centralina controllo pompa

KS 405. Terminale operatore con PLC integrato. inferiore a 200mA senza carichi. Memoria Programma Memoria Pagine

SENSORE DI TENSIONE SP

CATANIA 2011 DATI GENERALI DATI DI CONTESTO E MOTIVAZIONE

ISTITUTO DI ISTRUZIONE SUPERIORE J.C. MAXWELL Data: 24 /9 /2016 Pag. 1di 5. PROGRAMMAZIONE ANNUALE A.S. 2016/ 2017 MECCANICA e MECCATRONICA

Macchina con Arduino Uno comandata tramite dispositivo Android e sensore ultrasuoni per fermarsi istantaneamente di fronte ad un ostacolo

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

Ministero dell Istruzione, dell Università e della Ricerca

COME UTILIZZARE IL SENSORE DI TEMPERATURA TMP36

KS 407. Terminale operatore con PLC integrato. inferiore a 300 ma senza carichi. Memoria Programma

MST_K12_INV2 Regolatore di velocita per motori in CC con inversione automatica della rotazione

ROBOCUP JR ITALIA 2012

INSEGUITORE SOLARE CON ARDUINO. Dispositivo che insegue il movimento solare realizzato con: 1. Arduino 2. 2 foto resistenze 3.

Progetto di Informatica Industriale GIRASOLE Andrea Controzzi

Tecnologie dei Sistemi di Automazione

ROBOCUP JR ITALIA 2011 Catania aprile

1) Si descriva brevemente il processo di conversione analogico-digitale di un segnale.

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Nuovi strumenti per il coding App Inventor e Scratch for Arduino

PRIMI PASSI CON ARDUINO

Mod. F04/EV SET DI MODULI APPLICATIVI PER MICROPROCESSORI E MICROCONTROLLORI INTRODUZIONE. 1- MODULO BASE mod. F04-0/EV SPECIFICHE TECNICHE:

Termometro digitale. Ivancich Stefano

Arduino in connessione Bluetooth

DMX 30. PLC visualizzato per montaggio a quadro. CARATTERISTICHE ELETTRICHE Min 20Vcc ; Max 26 Vcc Min 15 Vac ; Max 21 Vac

ROBOCUP JR ITALIA 2012 Riva del Garda (Tn) aprile REPORT DI DOCUMENTAZIONE DELLA SQUADRA marconivr

Titolare del corso Prof. Andrea Cusano. Assistenti: Ing. Giuseppe Quero Ing. Antonio Iele Ing. Marco Leone Ing. Benito Carotenuto

Robot Beginner Kit 4WD

2. Connessioni. TAROT ZYX-S2 giroscopio tre assi Manuale utente

Report di docmentazione della squadra spritis Dell istituto tecnico industriale di valdagno

SENSORI OTTICI - FOTORESISTENZE

INFORMATICA MODULO DI CALCOLATORI ELETTRONICI LAUREA IN INGEGNERIA INFORMATICA

Quando un Punto Materiale diventa SMART

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI)

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer

Sistema di Elaborazione. Sistema di Controllo. Figura 1

Robotica e didattica

Università degli Studi di Cagliari

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) PROGRAMMAZIONE COORDINATA TEMPORALMENTE

con il sostegno di Con il Patrocinio

Introduzione alla robotica

ROBOCUP JR ITALIA 2011

ATTIVITÀ 1. Controllo con telecomando

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Lezione 3 PWM e motori. Stefano Panichi e Giulio Fieramosca

Robot Beginner Kit con Arduino l elettronica

Descrizione puntuale delle modalità di collocazione delle attrezzature

Comprendere il funzionamento dei convertitori Saper effettuare misure di collaudo

Transcript:

Rete di scuole per la ROBOCUP JR ITALIA ROBOCUP JR ITALIA 2012 Riva del Garda (TN) 19-21 aprile REPORT DI DOCUMENTAZIONE Della squadra E TEAM Istituto G. Chilesotti

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 2

Rete. Questo volumetto appartiene alla collana di documentazione. 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. 3

autori E TEAM PARTECIPA ALLA GARA DI RESCUE B Istituto G. Chilesotti Classe 5^AE 4

CAP. 1 - DATI GENERALI L'istituto Tecnico Industriale Statale G.Chilesotti è da più di trent'anni un punto di riferimento dell'istruzione tecnica del territorio. Attualmente sono attive due specializzazioni, Elettronica e Telecomunicazioni e Informatica Industriale. Dal prossimo anno partirà la anche la specializzazione: Logistica e Trasporti. Nella sede del nostro istituto trovano spazio numerosi laboratori con dispositivi efficienti e più o meno aggiornati alle nuove tecnologie elettroniche ed informatiche. L'istituto crede nelle capacità dei propri studenti e ogni anno da la possibilità ad essi di partecipare a manifestazioni o concorsi di rilevanza nazionale ottenendo ottimi risultati. La squadra E Team è formata da tre componenti: Dal Ponte Marco Laghetto Michele Ubertoli Thomas Mentre i docenti responsabili sono: Prof. Gecchelin Carlo; Prof. Rasile Amerigo 5

CAP. 2 - DATI DI CONTESTO E MOTIVAZIONE Per noi della squadra E-Team è la prima partecipazione alla fase nazionale della RobocupJr Italia. Uno di noi tre, affascinato dall'idea di costruire un robot dal nulla e con mezzi propri, ha accettato la proposta del nostro professore di costruirne uno con il fine di partecipare alla gara di robotica nella categoria Rescue B. Con il tempo siamo diventati in tre, tutti affascinati dalla sfida e spinti dalla voglia di progettare e costruire un dispositivo capace di muoversi autonomamente e capace di compiere delle azioni elementari. Il nostro istituto ha già partecipato a gare del genere, ma è la prima volta che si presenta in questo tipo di gara (Rescue B), perciò il nostro obiettivo è quello di acquisire esperienza, partecipare e di confrontarci con altri istituti. Fin qui, la nostra esperienza è stata caratterizzata da molte difficoltà che in ogni caso ci hanno però stimolato e motivato per trovare la miglior soluzione ad ogni problema. Per lavorare in maniera più efficiente ci siamo divisi i compiti nella costruzione del nostro robottino: due componenti del team si sono concentrati sul software, il terzo ha, invece, curato la parte hardware e l'interfacciamento con i sensori. Bisogna sottolineare, comunque, che nel gruppo vi è sempre stato un clima di aiuto reciproco e quando uno di noi aveva bisogno di una mano, tutti cercavano di aiutarlo. Ovviamente è stato un cammino lungo e difficile per aarivare a partecipare alla manifestazione RobocupJR 2012 di Riva del 6

Garda (TN). Speriamo in un buon esito nella gara a cui parteciperemo. Comunque abbiamo imparato molto dalla costruzione del nostro EGIDIO (è questo il nome del nostro piccolo robot), e le nostre conoscenze tecniche dopo questa esperienza sono sicuramente maggiori. Un grande ringraziamento va ai nostri insegnanti che, sostenendoci fin dall'inizio, ci hanno permesso di prepararci al meglio. 7

CAP. 3 NOME E STRUTTURA DEL ROBOT Abbiamo deciso di chiamare il nostro robot in modo scherzoso EGIDIO in onore del nostro assistente di laboratorio di elettronica. STRUTTURA A BLOCCHI DI EGIDIO: N 1 Microprocessore Arduino Mega 2560 N 3 Servomotori N 3 Sensori ultrasuoni N 1 Sensori di luce N 1 Sensore a infrarossi di temperatura 8

Egidio utilizza 2 servomotori, un sensore di luce, 3 sensori ad ultrasuoni, un sensore di calore ad infrarossi e un microprocessore Arduino Mega 2560. Servomotori: Vengono usati due servomotori per far muovere il robot, mentre un terzo è stato utilizzato per ruotare la torretta dove è posizionato il sensore di calore (la torre posizionata in cima al nostro robot ruota per dar modo al sensore di calore di puntare verso le pareti del labirinto in modo da localizzare le vittime ). Sensore di luce: Il sensore di luce, posizionato anteriormente serve a localizzare le caselle nere che indicano un vicolo cieco. Con questa informazione, il nostro robot si ferma e ruota di 180 per tornare indietro. Sensori ad ultrasuoni: I sensori ad ultrasuoni sono stati posizionati sul davanti del robot e lateralmente. Essi misurano la distanza dalle pareti e fanno capire al robot in che tipo di incrocio si trova in modo da dare in ingresso del programma il giusto caso per poi prendere la strada corretta. Microprocessore Arduino Mega 2560: Il microprocessore Arduino Mega 2560 è il vero e proprio cervello che gestisce tutte le informazioni in arrivo dai sensori, decide cosa fare e agisce sul mondo esterno tramite gli attuatori. 9

CAP. 4 MECCANICA La nostra base di partenza è stato una base blu in plexiglas, appositamente scelto per la sua leggerezza, sulla quale partono altri due piani in lamiera dove il tutto viene posizionato. Sistema di trazione: Come sistema di trazione abbiamo scelto fin da subito la soluzione dei cingoli. Questa scelta ha come vantaggio un maggiore grip rispetto alle ruote tradizionali. Questo permette al robot di avere una maggiore aderenza sulla salita. Inoltre, ci permette di superare con facilità i piccoli ostacoli. La scelta di utilizzare all interno del cingolo le ruote anteriori più grandi di quelle posteriori è stata presa per conferire più stabilità in salita e nel passaggio sugli ostacoli. In questo modo, infatti, il bilanciamento del peso del robot è spostato in avanti. 10

Pistoni posteriori: Un altra nostra decisione è stata quella di montare due pistoni sul lato posteriore del robot. Questo accorgimento è utile a Egidio per allinearsi perfettamente con la parete quando viene fatto procede a retromarcia. 11

CAP. 5 UNITÀ DI CONTROLLO La nostra unità di controllo è la scheda Arduino Mega 2560. Essa è una scheda a microcontrollore basata sul ATmega2560. Dispone di 54 ingressi/uscite digitali pin (di cui 14 possono essere utilizzate come uscite PWM), 16 ingressi analogici, 4 UART (porte seriali hardware), un cristallo oscillatore a 16 MHz, una connessione USB, un jack di alimentazione, un header ICSP e un pulsante di reset. Per la comunicazione con il PC basta collegarla ad esso tramite il cavo USB, ed è per questo che è molto versatile. Le specifiche tecniche più importanti di questa scheda per noi sono: Memoria flash 256 KB di cui 8 KB utilizzati dal bootloader; Tensione di funzionamento: 6-20V; I/O digitali: 54 (di cui 14 funzionano anche come uscite PWM); Corrente DC per ogni pin I/O40 ma; Frequenza Clock 16 MHz. 12

La scheda Arduino Mega 2560 utilizza un linguaggio di programmazione un po diverso dal linguaggio C normale, ma è un C specializzato alla programmazione del micro controller ATMega2560. Per la programmazione su PC perciò si utilizza il software Arduino che verifica la sintassi del programma, trasforma questi sketch in eseguibili adatti al processore AVR e li trasferisce nella scheda dove vengono eseguiti. Scheda Arduino Mega 2560 13

CAP. 6 SENSORI Sensori ad ultrasuoni: Il sensore ad ultrasuoni permette al nostro microprocessore di stimare le distanze dei muri attorno al robot. Il sensore PING misura la distanza trasmettendo un impulso a ultrasuoni dall'unità. La distanza viene determinata misurando il tempo richiesto per l'eco di ritorno. Caratteristiche e specifiche: Fornisce misure precise, senza contatto delle distanze all'interno dell'intervallo di un cm 2 a 3 m; consumo di 20mA; angolo di accettazione stretto. 14

Il codice del programma per la lettura dei dati è il seguente : int ping_destra() { long duration; pinmode(pingpin_dx, OUTPUT); digitalwrite(pingpin_dx, LOW); delaymicroseconds(2); digitalwrite(pingpin_dx, HIGH); delaymicroseconds(5); digitalwrite(pingpin_dx, LOW);///manda l'impulso a 44kHz pinmode(pingpin_dx, INPUT); //ridichiaro in ingresso il PING duration = pulsein(pingpin_dx, HIGH);//con un fronte di salita iniziale determino la durata del segnale che da 5V passa a 0 V // cm_dx = duration / 6; if(cm_dx<33) //errore del sensore cm_dx-=7; return cm_dx; } 15

Sensore di luce: Il sensore di luce QTR-RC1 ci serve per rilevare all'interno del labirinto i vicoli ciechi contrassegnati da caselle nere. Esso è costituito da un LED ed un fototransistor ad infrarossi. Principio di Funzionamento: La chiusura del fototransistor determina la carica del condensatore da 10nF. Il condensatore si scarica più o meno velocemente in base al colore rilevato: nel caso venga rilevato un colore scuro, ad esempio nero, il condensatore scarica molto lentamente, accade il contrario se il colore rilevato è chiaro. Funzionamento del programma: La lettura del valore viene effettuata dopo 2 sec dalla carica del C. Questo valore viene convertito tramite un ADC a 10 bit presente nella scheda Arduino. In questo modo riusciamo a discriminare il colore della cella. 16

Sensore QTR-RC1 Il codice del programma per la lettura dei dati è il seguente : for(int i=0;i<6;i++) { pinmode(qtrpin, OUTPUT); digitalwrite(qtrpin,high); delaymicroseconds(100); //aspetto la carica del condensatore da 10 nf pinmode(qtrpin, INPUT); digitalwrite(qtrpin,low); delaymicroseconds(2000); //aspetto x andare a leggere E_qtr=analogRead(qtrPin); //lettura ADC v_qtr=e_qtr+v_qtr; //media di 5 letture } v_qtr=v_qtr/5; if(v_qtr>830) 17

{ //determina se la cella è nera oppure no Stop_servo; delay(100); } Sensore di calore TPA81: Il sensore di temperatura TPA81 ci serve per individuare le vittime all'interno del labirinto. E montato su una torretta che viene fatta ruotare da un servomotore. In questo modo Egidio controlla le pareti di ogni cella alla ricerca di vittime. Il codice del programma per la lettura dei dati è il seguente : void tpa() { byte b; int i; for (i=1; i<=9; i++) { Wire.beginTransmission(TPA81ADDR); Wire.send(i); Wire.endTransmission(); Wire.requestFrom(TPA81ADDR, (int) 1); 18

while(wire.available() < 1) { ; } b = Wire.receive(); // riceve il byte come stringa if((i>1)&&(i<=9)) { if(b>c) c=b; } //Serial.print(b, DEC); //Serial.print(" "); } if(digitalread(pinstop)==1) Serial.print("valore tpa "); Serial.print(c, DEC); Serial.println(""); delay(100); if(c>=30) // temperatura rilevata dal tpa { Stop_servo; digitalwrite(pinbuzzer, HIGH); delay(300); digitalwrite(pinbuzzer, LOW); if(digitalread(pinstop)==1) b=0; c=0; } } 19

CAP. 7 ATTUATORI SERVOMOTORI: Viene utilizzato il Mini Servo Power HD-1800A per gestire la rotazione della torretta. Il servo analogico HD-1800A della Power HD è caratterizzato da dimensioni molto ridotte, pur conservando ottime performance di potenza, caratteristica che lo rende l'attuatore perfetto per piccoli robot e modelli dinamici. Noi lo utilizziamo per muovere la torretta su cui è posto il sensore di calore. Per comunicare al microprocessore vi è un collegamento dato in dotazione al motore MINI SERVO CON SOPRA LA TORRETTA DEL SENSORE CARATTERISTICHE TECNICHE: dimensioni: 22.0 x 24.3 x 11.7 mm peso: 8.0 g alimentazione: 4,8-6,0V velocità: 0.10 sec/60 20

Per far muovere il robot abbiamo due CONTINUOUS ROTATION SERVO, uno per ogni cingolo. All interno del cassetto di alluminio vi sono i due servomotori che eseguono le istruzioni date dal microprocessore. CARATTERISTICHE TECNICHE: Rotazione Continua Bidirezionale; Risposta Lineare tra 0 e 50 RPM; Semplice e facile gestione delle risorse. 21

FUNZIONAMENTO DEI MOTORI: Il Servo a Rotazione Continua della Parallax è controllato da un impulso, di ampiezza variabile, la cui durata determina il senso e la velocità di rotazione dell albero. Per ottenere rotazioni regolari, il Servo, richiede una pausa di 20 ms tra gli impulsi. Appena la durata dell impulso decresce da 1,5 ms il Servo ruoterà, in senso Orario, con una velocità gradualmente proporzionale alla riduzione. Allo stesso modo, quando la durata dell impulso cresce da 1,5 ms, il Servo ruoterà in senso Anti-Orario, con una velocità gradualmente proporzionale. Rotazione oraria Rotazione antioraria 22

CARATTERISTICHE DI FUNZIONAMENTO: Tensione di funzionamento: 4-6 V DC; Corrente di funzionamento: 15-200 ma; Comunicazione: PWM; Temperatura di funzionamento : -10 C / + 50 Coppia 3.40 kg-cm/ 23

CAP. 8 AMBIENTE DI SVILUPPO Per i programmi di interfacciamento e di prova dei sensori, è stato usato fin da subito il software Arduino con il relativo linguaggio. Mentre per la risoluzione del labirinto si è scelto per prima cosa di utilizzare il linguaggio C++ e simulare una mappa virtuale per poi finalizzare e assemblare il tutto con il relativo porting finale. 24

CAP. 9 IL PROGRAMMA SOFTWARE FUNZIONAMENTO DEL PROGRAMMA: Premessa: Il labirinto è diviso in celle della stessa dimensione. Per il nostro algoritmo, l arena è rappresentata da un vettore (è la mappa virtuale del circuito che dobbiamo scoprire) che bisogna scorrere man mano che si percorre il labirinto. I vari sensori in ogni cella fanno i loro controlli: il sensore di temperatura controlla se c è una vittima nelle vicinanze. Nel caso ne rilevi una esso fa partire un buzzer che suona e fa capire di aver trovato e riconosciuto la vittima; i tre sensori ad ultrasuoni mi danno la distanza del muro nelle parti laterali e in quella anteriore, e grazie a questo controllo, il robot riesce a capire in che situazione o incrocio si trova in modo da poterlo riportare nel programma principale e poter quindi risolvere il caso con l algoritmo; il sensore di luce infine come quelli ad ultrasuoni serve per farmi capire se mi trovo in un vicolo cieco in modo da risolvere la stanza senza riscontrare problemi. Per essere sicuri di individuare tutte le vittime è necessario attraversare ogni casella del labirinto. Questo ha comportato dover pensare un algoritmo che percorresse tutto il percorso nel minor tempo possibile senza, però, saltare alcune caselle. Un altra cosa che abbiamo deciso è stata quella di non accedere al piano superiore dell arena finché tutte e 28 le caselle del piano terra non fossero state esaminate (per evitare di dover tornare indietro). 25

Per risolvere, invece, il labirinto abbiamo modificato un algoritmo chiamato Algoritmo di Tremaux, in modo da renderlo il più efficiente possibile e adatto al nostro caso. Algoritmo: Il robot affronta il labirinto seguendo una strada a caso. E stato programmato per cercare il percorso che porterà all uscita sempre prima a destra. Se questa opzione non è possibile, il robot proverà ad andare dritto. La strada percorsa viene contrassegnata dall algoritmo. Il robot continua ad andare a caso finché non si trova in uno di questi casi: o vicolo cieco. In questo caso il robot torna al nodo precedente e contrassegna la strada ripercorsa con un numero alto sulla sua mappa virtuale (numero alto significa: strada che porta ad un vicolo cieco e che non deve essere più percorsa); o nodo già attraversato. Questo può a sua volta comportare tre casi: se il robot è arrivato da un ramo fino ad allora inesplorato, si deve ripercorrere a ritroso quello stesso ramo fino al nodo precedente ; se il robot è arrivato da un ramo finora inesplorato e nel nodo già attraversato vi sono rami ancora inesplorati, bisogna prendere quella direzione; altrimenti si deve prendere la direzione del ramo percorso meno volte nel corso del programma. Si deve precisare che ogni qualvolta che una cella viene percorsa si implementa il vettore che simula la mappa del labirinto in modo da ricordare quante volte ogni cella è stata percorsa durante la gara. 26

CAP. 10 SORGENTE DI ALIMENTAZIONE Inizialmente abbiamo usato per i primi test una batteria al litio ricaricabile da 7.4 V e 1500mAh. Abbiamo però notato che la durata della batteria non era sufficiente, perciò abbiamo deciso di utilizzare due blocchi da quattro batterie ricaricabili ciascuno. Le batterie hanno una capacità di 2500mAh e una tensione di 1.2 V ciascuna. Nasceva però un problema, ad esempio con i servomotori e con la sensoristica che necessitavano tensioni di alimentazione minori e perciò si è scelto di utilizzare il regolatore di tensione LM317 in modo da poter dare i 5 V ai sensori e i 6 V ai servomotori. 27

APPENDICE Il nostro Egidio in ogni caso è in continua evoluzione e potrebbe subire variazioni hardware prima della gara. Per esempio stiamo sperimentando un nuovo metodo per la rilevazione delle vittime con dei sensori PIR, al fine di sostituire il sensore TPA81 perché a nostro dire non è molto sicuro nel rilevamento delle vittime. Avvisiamo quindi che il robot potrebbe subire ulteriori sostanziali modifiche prima della gara. 28

INDICE P.05 - CAP. 1 - DATI GENERALI P.06 - CAP. 2 - DATI DI CONTESTO E MOTIVAZIONE P.08 - CAP. 3 NOME E STRUTTURA DEL ROBOT P.10 - CAP. 4 MECCANICA P.12 CAP.5 UNITA DI CONTROLLO P.14 - CAP. 6 SENSORI P.20 - CAP. 7 ATTUATORI P.24 - CAP. 8 AMBIENTE DI SVILUPPO P.25 - CAP. 9 IL PROGRAMMA SOFTWARE P.27 - CAP. 10 SORGENTE DI ALIMENTAZIONE P.28 - APPENDICE 29