Rossetto Flavio a.s. 2011/2012 classe 5E 2
2 e 4 pag vuota Finalità-Obiettivo pag. 5 Situazione di partenza pag. 6 Prime operazioni pag. 7 Schema elettrico pag. 9 Circuito stampato pag 10 Elenco componenti e costi pag. 12 Elenco strumenti-attrezzature pag. 13 Schema a blocchi pag. 14 Progetto (programmazione) pag. 14 Dettagli dei calcoli Dettaglio delle prove Dettaglio delle misure pag. 16 Foto (e filmati) pag. 18 Lavoro all interno del gruppo pag. 20 Conclusioni pag. 21 Eventuali foto/ringraziamenti: ultima pagina interna/esterna Allegati: data sheet di componenti elettronici bibliografia utilizzata (libri/riviste/siti web) Rossetto Flavio a.s. 2011/2012 classe 5E 3
Rossetto Flavio a.s. 2011/2012 classe 5E 4
Obiettivo: Ho partecipato ad un esperienza nel laboratorio della scuola Enzo Ferrari di Torino in cui abbiamo potuto utilizzare un braccio robotico della Comau e ho riscontrato l esigenza personale di approfondire e capire meglio il funzionamento ed il controllo di dispositivi automatici/robotizzati. Di conseguenza ho deciso di provare a realizzare un robot costruito con kit di montaggio acquistato su internet, in grado di evitare gli ostacoli tramite dei led a infrarossi e un ricevitore di onde. Ulteriore obiettivo: Provare attraverso la scheda Arduino a programmare il robot per fargli svolgere la stessa funzione. Sarà quindi necessario interrompere le piste del circuito stampato. Rossetto Flavio a.s. 2011/2012 classe 5E 5
Situazione di partenza: Dopo aver analizzato l esigenza descritta nella sezione relativa all obiettivo ho iniziato a cercare dispositivi in kit. Ho consultato, inizialmente, i siti di nuova elettronica e futura elettronica (abbinato alla rivista elettronica in). Ho consultato i libri di testo e alcuni siti su internet per cercare possibili soluzioni e relativi schemi elettrici. Ho utilizzato una tesina degli scorsi anni scolastici con la possibilità di essere migliorata/completata. Ho deciso di montare la scheda arduino sul robot ordinato da internet (Visto sulla rivista Futura elettronica). Il dispositivo robot Escape è stato costruito con un kit di montaggio, e quindi è stato facile assemblarlo (utilizzando un saldatore e dello stagno) seguendo le istruzioni riportate sul manuale di montaggio. Il dispositivo, mediante una preprogrammazione (tramite il microprocessore) del circuito è in grado di evitare gli ostacoli rilevandoli senza alcun contatto tramite la riflessione delle onde a infrarossi. Il robot invia le onde a infrarossi tramite dei led e se c è un ostacolo, queste ultime vengono riflesse e rilevate dal ricevitore. Attraverso il microprocessore vengono fatti muovere i motori. Il circuito ha inoltre un buffer che emette un suono all accensione ed ogni talvolta viene rilevato un ostacolo. Funzionamento standard Dare alimentazione attraverso interruttore (on) Partenza Rileva la presenza di ostacoli Evita gli ostacoli cambiando direzione Funzionamento con la scheda Arduino: Dare alimentazione (incluso Arduino) attraverso interruttore (on) Arduino mando in uscita ciò che gli arriva in ingresso Il robot fa lo stesso funzionamento precedente Rossetto Flavio a.s. 2011/2012 classe 5E 6
Prime operazioni: Ho iniziato il mio lavoro disegnando lo schema a blocchi della soluzione da realizzare. Ho proseguito con la definizione dello schema elettrico per ciascun blocco e con la definizione dei cavi di collegamento dei diversi blocchi. Ho iniziato a pensare a come far funzionare il robot con l aggiunta della scheda Arduino. Ho iniziato ad elaborare la parte di programmazione (software) e l ho provata simulando il funzionamento dei motori tramite dei led. Il robot si muove grazie a 2 motori elettrici di piccola potenza che controllano ognuno 3 ruote (o 3 zampe) sfruttando una trasmissione a ruote dentate. Questa trasmissione non è molto efficiente perché anche se le ruote erano montate in modo appropriato giravano a fatica. Questo problema è stato risolto lasciando leggermente allentate alcune viti. L alimentazione del kit comprendeva 4 batterie che fornivano l alimentazione da 6V con eventuali 4,5V e 1,5V Con l aggiunta della scheda Arduino non è stato necessario aggiungere batterie per aumentare la tensione in ingresso in quanto i 6V erano sufficienti per la sua alimentazione. Per programmare il robot con la scheda Arduino è stato necessario, dopo aver saldato tutti i componenti sul circuito stampato, tagliare le 4 piste (attraverso un taglierino) che dal microprocessore andavano ai 2 motori (i pin 1,2,17,18). Sono stati saldati 8 fili sulle 4 piste tagliate: 4 fili andavano ai 4 ingressi digitali di Arduino (quindi 4 INPUT) e gli altri 4 dalla scheda Arduino andavano verso i motori (quindi 4 OUTPUT). Gli 8 fili sono stati saldati Rossetto Flavio a.s. 2011/2012 classe 5E 7
sulla scheda Arduino attraverso dei connettori nell ordine stabilito dalla programmazione. Inoltre è stato saldato un filo per mettere in comune la massa del circuito stampato con quella della scheda Arduino. Se la scheda Arduino leggeva dei valori in ingresso alti (1 logico), quest ultima restituiva in uscita dei valori alti. Altrimenti forniva in uscita valori bassi (0 logico). Sulla scheda sono stati utilizzati i pin di Input e di Output digitali per fare una lettura digitale. La scheda Arduino è stata montata sopra una piastra zincata montata al di sopra del circuito stampato attraverso delle viti di sostegno. Inoltre è stato necessario costruire il cavo di alimentazione per Arduino. Provando il robot in laboratorio ho notato che a causa di qualche imperfezione di tipo meccanica (e anche a causa delle pile se non completamente cariche) esso non si muoveva in moto rettilineo ma compiva una traiettoria curva. Rossetto Flavio a.s. 2011/2012 classe 5E 8
Schema elettrico (originale): Il circuito è composti con molti transistor. In particolare per controllare i motori sono stati utilizzati come interruttori tramite la configurazione chiamata ponte H. Essa serve per effettuare un controllo di un motore in corrente continua che prevede la possibilità di fare girare il motore in un senso o nell'altro. Questo circuito che controlla i motori è il classico ponte ad H, chiamato così perché la disposizione dei 4 transistor di potenza ha la forma di una H. La regola fondamentale da rispettare prevede che i due transistor dello stesso ramo non possono essere mai posti in conduzione contemporaneamente. Inoltre sono presenti per ogni motore altri 2 transistor di protezione (Q13-Q14-Q15-Q16) Rossetto Flavio a.s. 2011/2012 classe 5E 9
Schema elettrico finale: Circuito stampato: Rossetto Flavio a.s. 2011/2012 classe 5E 10
Rossetto Flavio a.s. 2011/2012 classe 5E 11
Elenco componenti e costi: Resistenze: 4x 10 Ω 1x 100 Ω 2x 1,2 kω 1x 2,2 kω 5x 1 kω 1x 10kΩ 4x 22kΩ Condensatori ceramici: 2x 30 1x 103 10µF 3x 104 100µF 1x224 224 µf Condensatore elettrolitico: 1x 100µF Diodi: 1x Zener 3,9V 1x Led rosso 5mm 3x IR Led 5mm Transistor: 7x 8050 4x 8550 1x 9013 4x C945 Integrato IC socket Buzzer Oscillatore (da il clock al microprocessore) Interruttore (slide switch) Rossetto Flavio a.s. 2011/2012 classe 5E 12
Costi: Robot Escape in kit 38 Scheda Arduino 24 Totale 62 Ore di laboratorio/casa: 30 Elenco strumenti ed attrezzature per il montaggio: Saldatore Multimetro Cacciaviti Stagno Spelafili Pinze Rossetto Flavio a.s. 2011/2012 classe 5E 13
Schema a blocchi: Programmazione:(realizzata con il programma per la scheda Arduino uno) //PIN INGRESSO byte ingressozero=3; byte ingressouno=4; byte ingressodue=5; byte ingressotre=6; //PIN USCITA byte uscita0=10; byte uscita1=11; byte uscita2=12; byte uscita3=13; Rossetto Flavio a.s. 2011/2012 classe 5E 14
int ingresso0=0; int ingresso1=0; int ingresso2=0; int ingresso3=0; void setup() { //SETTAGGIO PIN pinmode(ingressozero,input); pinmode(ingressouno,input); pinmode(ingressodue,input); pinmode(ingressotre,input); pinmode(uscita0,output); pinmode(uscita1,output); pinmode(uscita2,output); pinmode(uscita3,output); } void loop() { //Lettura ingresso0=digitalread(ingressozero); ingresso1=digitalread(ingressouno); ingresso2=digitalread(ingressodue); ingresso3=digitalread(ingressotre); //USCITA COME INGRESSO if(ingresso0==low) digitalwrite(uscita0,low); else digitalwrite(uscita0,high); if(ingresso1==low) digitalwrite(uscita1,low); else digitalwrite(uscita1,high); if(ingresso2==low) digitalwrite(uscita2,low); Rossetto Flavio a.s. 2011/2012 classe 5E 15
else digitalwrite(uscita2,high); if(ingresso3==low) digitalwrite(uscita3,low); else digitalwrite(uscita3,high); } Misure: PIN NESSUN OSTACOLO OSTACOLO SX OSTACOLO DX OSTACOLO CENTRO PIN3 3,8V 0V 3,68V 3,73V 0V OSTACOLO SX-DX-CC PIN4 3,8V 3.78V 0V 0V 3,8V MAX VARIABILE PIN5 0V 3.77V 0V 0V 0V PIN6 0V 0V 3,62V 3,73V 3,76V MAX VARIABILE PIN10 3,2V 0V 3,08V 3,12V 3,03V PIN11 3,12V 3.04V 0V 0V 0V PIN12 0V 3V 0V 0V 2,93V PIN13 0V 0V 2,96V 3,14V 0V Quando si rileva un ostacolo a sinistra: motoresx=-3,08v motoredx=2,94v Quando c è un ostacolo in tutte le direzioni inizialmente: motoresx=- 3,01V motoredx=0v Vingresso Arduino=5,2V Vled(rosso)=1,87V Rossetto Flavio a.s. 2011/2012 classe 5E 16
Conclusioni: Sono riuscito tramite la scheda Arduino a far svolgere al robot Escape lo stesso funzionamento che esso faceva in precedenza. Rossetto Flavio a.s. 2011/2012 classe 5E 17