20
Alessandro Turco 5°F ISTITUTO TECNICO TECNOLOGICO «SAN ZENO» ARGOMENTO DI APPROFONDIMENTO - ROBOTICA CON ARDUINO - Candidato: TURCO ALESSANDRO Classe: QUINTA sez. F Indirizzo: "ELETTROTECNICA ED ELETTRONICA" 1

Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

  • Upload
    a-t

  • View
    132

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

ISTITUTO TECNICO TECNOLOGICO «SAN ZENO»

ARGOMENTO DI APPROFONDIMENTO

- ROBOTICA CON ARDUINO -

Candidato: TURCO ALESSANDRO

Classe: QUINTA sez. F

Indirizzo: "ELETTROTECNICA ED ELETTRONICA"

ESAME DI STATO a.s. 2015/2016

1

Page 2: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

ISTITUTO TECNICO TECNOLOGICO «SAN ZENO»

ESAME DI STATO a.s. 2015/2016

MAPPA CONCETTUALE – TABELLA DEI CONTENUTI

- ROBOTICA CON ARDUINO -

DISCIPLINE COINVOLTE ESTRATTO

SISTEMI AUTOMATICIScheda Arduino con specifiche del

microcontrollore ATMEGA e gestione di alcuni sensori impiegati nel settore della

robotica.

Candidato: TURCO ALESSANDRO

Classe: QUINTA sez. F

Indirizzo: "ELETTROTECNICA ED ELETTRONICA"

2

Page 3: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

Premessa

In occasione dell’ esame di stato vorrei comunicare in pochi minuti la passione che ho per la robotica e per la tecnologia in generale.

Fin da piccolo ero molto interessato all’ argomento e, quando ho cominciato a frequentare la scuola in cui mi trovo adesso, ho potuto capire il significato di tutte quelle “grandi città” all’ interno dei computer, dell’ elettronica e dell’ elettrotecnica e cosa realmente trasportassero tutti quei fili colorati.

Spero di poter continuare a maturare questa passione, e perciò vorrei ringraziare i miei professori per avermela fatta conoscere e amare, nonostante qualche insuccesso iniziale.

La tesina tratta di un vasto argomento, appunto quello dalla robotica, e in poche pagine/slide ho cercato di riassumere al meglio l’ essenziale per poter immergersi in questo meraviglioso mondo.

Parlerò della robotica e della scheda elettronica con microcontrollore Arduino in generale. In questo lavoro ho anche inserito alcune immagini, perché ritengo che in certe circostanze queste possano spiegare un concetto in maniera più chiara rispetto alle parole.

Ho voluto, poi, completarla con un progetto pratico, la costruzione di un robot, per poter dare applicazione a quanto studiato.

Il prototipo che ho realizzato ha diverse funzioni e speriamo che in un prossimo futuro gli impieghi di questo “robottino” possano moltiplicarsi, nonostante la sua struttura artigianale.

Il robot è stato costruito con componenti meccanici ( plastici o metallici ) comprati su internet o talvolta auto-costruiti.

Ogni qualvolta si era presentato qualcosa di sbagliato o di non funzionante, ho provato e riprovato fino a quando sono riuscito ad ottenere il risultato voluto, provando dapprima tutti i componenti usati separatamente e poi andando per gradi fino al completamento del progetto.

3

Page 4: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

ARDUINO( COSE E’ ? E COSA SI

PUO’ FARE )

Alessandro Turco 5°F

4

- ROBOTICA CON ARDUINO -

PROGETTO DI ROBOTICA CON

ARDUINO

ROBOTICA ( GENERALE )

SCHEDA DI POTENZA

( GESTIONE MOTORI )

SENSORI & COMANDI di

movimento

Page 5: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

Bibliografia

P. Calderan , Robot Fai Da Te , Invenzioni DIY per hobbisti ,artisti e maker , APOGEO, 2014.

M. Tettamanzi; Piccolo Manuale di Arduino , il cuore della robotica fai da te , APOGEO, 2014.

Sitografia

Arduino https://www.arduino.cc/

5

Page 6: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

Il ROBOT è un dispositivo elettro-meccanico programmato che svolge una funzione utile all’ uomo. I primi robot sono stati utilizzati in ambienti pericolosi, per esempio nella verniciatura delle auto, e in lavori altamente ripetitivi, come l’ esecuzione di saldature in catene di montaggio. Oggigiorno i robot stanno entrando gradualmente nella nostra vita quotidiana, per esempio nell’ aspirapolvere o falcia erba robot, e in futuro probabilmente ci farà interagire direttamente con robot dalle sembianze e comportamenti umani.

ALIMENTAZIONE

Per far funzionare un robot ci servono una o più, sorgenti di energia. A seconda della funzione che deve svolgere il robot si decide quale tipo di fonte di energia verrà utilizzata.

La funzione svolta dal robot detta le scelte per la fonte di energia, che saranno due: La batteria ricaricabile per alimentare i motori e gli eventuali sensori del robot per muoversi e il carica-batterie per ricaricare le batterie contenute nel robot, che verrà effettuata con la rete elettrica.

Per decidere quali batterie utilizzare si deve fare un conto approssimativo di tutti i consumi elettrici del robot.

La tensione di test e’ 6V-5V

Funzione Consumo Situazione2 motori 0,22 (220) A (mA) Funzionamento a vuoto1 scheda arduino 0,048 (48) A (mA) Led L e ON Accesi1 scheda motor_shield 0,02 (20) A (mA) Motori Spenti1 sonar ad ultrasuoni 0,003 (3) A (mA) Ultrasuoni spento1 ricevitore infrarossi 0,001 (1) A (mA) Nessun comandoTOTALE CONSUMO 0,292 (292) A (mA) CORRENTE ELETTRICA (AMPERE)

Il consumo di corrente totale è un dato importante perché determina il tipo di batterie da utilizzare.

Per Semplicità nei calcoli arrotondiamo il consumo totale a 300 mA.

La durata della batteria si puo calcolare con la seguente formula: (mAh batteria diviso mA consumati dal robot = ore)

mAh / mA = h

se per alimentare il nostro robot si può usare :

una batteria alcalina da 9V - 500mAh la durata massima di questa batteria usa e getta sarà di 1h e 40 m (1,66)

4 batterie alcaline tipo stilo da 1,5V (4 * 1,5V = 6V) - 2600mAh la durata massima di queste batterie usa e getta sarà di 8h e 40m (8,66)

Se non si vuole sostituire le batterie, ogni volta che sono scariche, si devono usare batterie ricaricabili, corredate di un carica batterie adeguato : ad esempio si possono utilizzare 4 batterie ricaricabili Ni-MH da 1,2V ( 4 * 1,2V = 4,8V) – 2300 mAh AA .

Esistono anche batterie con prestazioni superiori e sono spesso utilizzate nel modellismo per il loro peso ridotto e per la grande capacita di scarica, queste batterie sono chiamate LiPo , perché’ vengono costruite con polimeri di litio. Io non utilizzo questo tipo di batterie perché hanno l’

6

Page 7: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

inconveniente, se utilizzate in modo scorretto, di incendiarsi ed esplodere. Date le loro ottime caratteristiche elettriche di solito costano di più, e a parità di capacita mAh durano di più di quelle alcaline o ricaricabili Ni-MH.

Questo robot può essere alimentato da qualunque delle tre schede ( , noi per motivi di comodità usiamo la ROBOT_SHIELD infatti su questa scheda è presente un interruttore on/off per accendere e spegnere il robot.)

SCHEDE ELETTRONICHE DI CONTROLLO DEL ROBOT

Scheda ARDUINO: è la scheda che contiene il software per gestire e far funzionare il robot. Deve essere alimentata con una tensione continua, alimentatore o batteria, compresa tra i 6V e i 12V. E’ dotata di un connettore USB che permette la programmazione della scheda e la comunicazione con il computer. Questa scheda presenta ingressi e uscite digitali alcuni con funzione PWM e ingressi analogici che gli permettono di configurarsi e comunicare con il mondo reale esterno tramite sensori e attuatori.

Scheda MOTOR_SHIELD: è la scheda che gestisce i motori elettrici. E’ dotata di pin che si infilano direttamente sulla scheda Arduino in modo tale che si colleghi direttamente agli ingressi e alle uscite. Ha due led bicolori che segnalano la presenza di tensione sui motori e la direzione di marcia. Viene comandata della scheda Arduino. Ha la possibilità di essere alimentata direttamente a batterie. In centro a questa scheda è montato un componente SMD L298P con funzione di ponte ad

7

Page 8: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

H per il controllo dei motori. La scheda motor shiled è fornita da jumper per la scelta della alimentazione che può essere esterna (EXT) o interna (INT), nel nostro caso l’ alimentazione è interna infatti la scheda viene alimentata direttamente da arduino. Gli altri jumper sono impostati nel seguente modo DIRB = 8 , PWMB = 9 , DIRA = 2 , PWMA = 3. Questa scheda non presenta librerie da includere nel programma di gestione.

Scheda ROBOT_SHIELD : è la scheda che collega il ricevitore IR ad infrarossi , il sonar ad ultrasuoni, e 8 servo motori alla scheda Arduino. E’ dotata di un interruttore che spegne il robot. La presenza dei 5V viene segnalata tramite il led rosso. Ha la possibilità di essere alimentata direttamente a batterie. (la scheda è stata comprata in kit e saldata personalmente). Questa scheda non presenta librerie da includere nel programma di gestione.

8

Page 9: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

9

Page 10: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

I MOTORI

In questo robot vengono usati dei motoriduttori. I quali sono motori in corrente continua a cui viene collegato un riduttore di velocità meccanico , detto gear box. Il meccanismo riduce la velocità a seconda di un rapporto tra gli ingranaggi, detto rapporto di riduzione. Più si “riduce” la velocità, più aumenta la “coppia” del motore, cioè la forza con cui girano le ruote. La velocita dei motori in continua dipende dalla tensione di alimentazione. (Per aumentare la velocità non si fa altro che aumentare la tensione con cui si alimenta il motore.) La tensione di alimentazione dei motori non deve superare la tensione massima consentita, altrimenti il motore potrebbe surriscaldarsi fino a bruciarsi.

Il modo migliore per ridurre la velocita di un motore in corrente continua è ridurre la tensione media applicata alle armature. Per far ciò si utilizza una tecnica denominata PWM. Con questa tecnica si riduce la velocita mantenendo alta la coppia cioè la forza co cui girano le ruote.

SPECIFICHE TECNICHE :

Alimentazione max.: 6Vdc Rapporto di riduzione.: 120:1 Coppia Torsione:

o a 3V: 1,2 kg cmo a 6V: 1,92 kg cm

Velocita senza carico:o a 3V: 90 rpmo a 6V: 180 rpm

Corrente senza carico:o a 3V: 60mAo a 6V: 71mA

Corrente di stallo:o a 3V: 260mAo a 6V: 470mA

Dimensione motoriduttore:o 55 x 48,3 x 23 (mm)

Peso:o Circa 45 g

Con il mio alimentatore ho misurato un assorbimento di :10

Page 11: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

o a 3V: 0,1Ao a 6V: 0,11Ao Possiamo notare che la corrente a vuoto è più elevata di quella fornita dal costruttore. o Questo perché il motore cerca di ridurre i consumi in base all’ alimentazione per aumentare

la durata delle batterie e la durata del motore stesso evitando il surriscaldamento. Come si muovono i robot Con Le ruote

Quando le ruote di sinistra e di destra girano avanti, il robot va avanti. Quando girano solo le ruote di sinistra, il robot gira a destra. Quando le ruote di sinistra e di destra girano al contrario, il robot procede in

retromarcia. Quando le ruote di sinistra girano avanti e quelle di destra nella direzione opposta,

il robot procede girando in senso orario. Quante Ruote può avere è perché

Robot a due ruote è leggero e molto maneggevole , è la scelta ideale se si vogliono sperimentare operazioni come ad esempio seguire una linea, che richiede un movimento agile. In ogni caso la rotella che mantiene il robot in equilibrio richiede una superfice relativamente regolare.

Robot a quattro ruote rappresenta la scelta giusta quando si vuole farlo avanzare su superfici più irregolari. In questo caso è possibile utilizzarlo per trasportare piccoli oggetti. Questo robot è più pesante e richiede più corrente rispetto al robot a due ruote: quindi la sua batteria dura meno.

RICEVITORE INFRAROSSO

Il ricevitore infrarosso è un circuito integrato che riceve i segnali dei telecomandi TV. Ce ne sono di vari modelli, ma fondamentalmente si differenziano in base alla frequenza di trasmissione / ricezione dei dati (38kHz-56kHz). Se il telecomando non si accoppia al ricevitore potrebbero essere trasmessi dati errati. I ricevitori infrarossi hanno tre pin di cui 2 usati per l’ alimentazione e il terzo per i dati ricevuti. Il ricevitore a infrarossi si alimenta a una tensione di 5V. il pin OUT o S quello che riceve i dati va collegato a un pin analogico di Arduino ( ad esempio il pin A0 ). Per utilizzare questo componente su arduino servono le librerie scaricabili da internet e vanno incluse nel programma che dovrà essere caricato sulla scheda arduino.

SONAR ULTRASUONI

Il sonar ad ultrasuoni è uno speciale sensore che misura le distanze utilizzando onde sonore non udibili dall’ uomo.

se riusciamo a misurare il tempo intercorso tra l’ emissione di un suono ed il suo ritorno verso il punto di emissione, possiamo calcolare la distanza moltiplicando per la costante di velocità del suono per il tempo intercorso. Questo rimbalzo del suono di chiama echo. Dato che il suono percorre un’andata e un ritorno, per conoscere la distanza tra due oggetti bisognerà dividere il risultato sopra ottenuto per due.

Infatti il tempo che impiega un impulso sonoro a rimbalzare su un oggetto e tornare ai sensori è proporzionale alla distanza.

Ricordiamo che un suono si muove in aria con una velocità di circa 340 m/s (la velocità varia con la temperatura dell’ aria), che significa che per percorrere un centimetro un suono impiega 29 microsecondi.

11

Page 12: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

Perciò per ricavare la distanza in centimetri, la durata vien divisa per 29, la durata è il tempo necessario all’ impulso per essere emesso e riflesso e quindi la distanza dall’ oggetto è “ microseconds / 29 / 2 “ .

Per concludere si può scrivere che la velocita del suono e’ 340m/s o 29 microsecondi al centimetro.

I sonar ultrasuoni sono di solito costituiti da 4 pin:

1. Alimentazione 5V2. Trig ( vanno collegati a dei pin digitali di arduino – OUTPUT )3. Echo ( vanno collegati a dei pin digitali di arduino - INPUT )4. Alimentazione GND

I modelli di sonar ultrasuoni più usati sono i HC-SR04 (2846-MISDISTO4) e i (7300-SRF04).

In questo progetto verrà montato un sonar ultrasuoni SRF05;

il sonar ultrasuoni srf05 è un evoluzione del srf04 ed è stato progettato per aumentare la flessibilità, questo sensore è perfettamente compatibile con il srf04. La portata di questo sensore è aumentata da 3 metri a 4 metri. Il sonar srf05 può usare anche solo 3 pin in quanto i pin trig e echo vengono unificati per risparmiare pin sul controller. Ha una sensibilità che va da 3 cm a 4 m. la tensione di funzionamento è di 5V.

DESCRIZIONE DELLE FASI DI MONTAGGIO e PROGRAMMAZIONE DEL ROBOT

Come prima cosa creo il chassis (la struttura del robot), dopo di che avvito i motori allo chassis e li collego alla scheda di controllo motori, collego la scheda di controllo motori alla scheda arduino, dopo inizio a collegare i sensori a saldare i vari componenti sulle schede di espansione per sensori, infine collego le batterie per alimentare il sistema.

Dopo aver completato l’ assemblaggio della parte hardware inizio la stesura della parte software che comprende la ricerca di librerie per far riconoscere ad arduino i componenti utilizzati e facilitare la programmazione, fatto ciò inizio la scrittura di un programma di collaudo delle varie parti del robot quando tutto funziona come desiderato, creo il programma finale il quale gestirà in un unico programma tutti i componenti , gli ingressi e le uscite. Creato il programma tramite arduino ide il quale permette di scrivere e compilare e caricare sulla scheda arduino il programma in un linguaggio con la sintassi di C ma con comandi proprietari e facilitati.

12

Page 13: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

VARI COLLAUDI:

In data 21/11/2015 ho eseguito i primi collaudi del robot:

1) Tramite scheda arduino e sensore infrarosso e telecomando lg ho trovato i codici di trasmissione dei tasti.

2) Tramite scheda arduino e sensore ultrasuoni ho testato il suo funzionamento fino ai 30 cm tramite un righello e degli oggetti.}

3) Ho assemblato il robot con i due sensori ma ho riscontrato dei problemi che non permettevano il movimento del robot ciò era dovuto alla non presenza di un collegamento per il sensore ad ultrasuoni infatti dal programma pre-definitivo ho tolto la parte di gestione degli ultrasuoni e ho collaudato il robot solo con sensore infrarosso e telecomando lg è ho riscontrato che funzionava abbastanza bene

COLLAUDO SENZA ULTRASONIC (funzionava alla perfezione) COLLAUDO CON ULTRASONIC ( restava fermo perché vedeva perennemente un ostacolo è

stava fermo)

In data 26/11/2015 ho eseguito altri collaudi del robot:

avendo problemi con le letture del sensore ha ultrasuoni ho provato a saldare un filo sulla scheda robot shield tra il pin 12 di arduino e il quarto pin (echo) del ultrasuoni ma non funziona ancora.

Allora ho testato con un altro arduino e un altro programma solo ultrasuoni e esso da delle misure corrette.

Poi per avere la certezza che il problema era dovuto al ultrasuoni ho testato singolarmente: la motor shield, la scheda robot shield solo con infrarosso per il controllo da telecomando tv,.

13

Page 14: Argomentodiapprofondimento sandit 5 _ FINALE _ ORALE MATURITÀ

Alessandro Turco 5°F

In data 27/11/2015 ho eseguito altri collaudi del robot:

Ho provato a collegare un altro arduino con la robot shield senza il filo saldato per testare ultrasuoni con la shield e come si voleva dimostrare il monitor seriale di arduino risponde con un loop su 0 (non mostrando i valori delle misure effettuate). Poi ho effettuato la stessa prova con il filo saldato ma senza avere risultati positivi sempre come si voleva dimostrare il monitor seriale di arduino risponde con un loop su 0 (non mostrando i valori delle misure effettuate).

Dopo vari tentativi sono riuscito a far andare ultrasuoni usando solo il pin trig mentre per quanto riguarda il pin echo lo eliminato dal programma

PROGRAMMA TEST SENSORE ULTRASUONI

Sulla base di cio’ ho ricostruito il programma del robot che gestisce l’ ultrasuoni. Ed ora funziona ultrasuoni, ma gira solo intorno a dx e sx (problema motori e ir telecomando).

PROBLEMA MOTORE FUNZIONA SOLO UN MOTORE SU DUE PERCIO GIRA SOLO INTORNO CAMBIANDO DIREZIONE

In data 08/12/2015 e precedenti ho eseguito altri collaudi del robot di vario genere modifiche software test componenti singolarmente. Da ciò ho capito che singolarmente i componenti andavano tutti ma quando veniva assemblato il robot la motor shield faceva andare un solo motore e infatti si accendeva un solo led, dopo aver controllato e testato il programma posso concludere dicendo che il problema ad ora e da attribuire ai motori :

1. motor shield danneggiata2. incompatibilità programma col hardware3. programmazione ping sensore ultrasuoni con letture tramite un solo pin al posto di due

In data 03/05/2023 ho fatto dei test basandomi sul file del test dei motori con motor shiled funzionante riscrivendo il codice del robot che gestiva i motori e dopo aver riscritto dei pin e sistemato il collegamento dei motori ho collaudato il robot ed funzionava alla perfezione (CON UN PICOLO PROBLEMA: SE IL ROBOT VEDE UN OSTACOLO TRAMITE ULTRASUONI SI FERMA E NON VA PIU, NON RICEVE PIU NULLA ). Dopo aver aggiunto una riga sul programma quando incontra un ostacolo si ferma e se premi sul telecomando uno dei tasti impostati anche se a scatti va nella direzione desiderata fino a quando vede l’ ostacolo quando non lo vede più aumenta la velocita normalmente.

14