Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Si tratta di un robot cingolato capace di restare entro il perimetro di un tavolo con fondo bianco in assenza di bordi. La presenza del piano di appoggio viene rilevata mediante 4 sensori infrarossi posti agli angoli del robot. Quando il piano di appoggio non viene più rilevato il robot attua una manovra per evitare di cadere. È possibile vedere un video del robot in azione qui: http://youtube.com/watch?v=4Yxc5t4cXaw. In questo caso il tavolo bianco è simulato da dei fogli.
Materie trattate: Sistemi, elettronica, informatica
Istituto Tecnico Industriale “Leonardo Da Vinci”
– Tesina per l’esame di stato
Anno scolastico 2006/2007
Matteo Agostinelli
Assemblaggio di
componenti e sviluppo
software per un robot
cingolato dotato di sensori
infrarossi.
Indice:
Introduzione ....................................................................................................................... 3
Capitolo 1 - Elettronica e programmazione ..................................................................... 4
1.1 Scheda madre: caratteristiche e potenzialità ........................................................ 7
1.1.1 Sezione di alimentazione ..................................................................................... 7
1.1.2 Il microcontrollore ATMEGA 8535 (elaborazione dati ed esecuzione software) .. 7
1.1.3 Comunicazione con il pc ...................................................................................... 9
1.1.4 Slot di collegamento .......................................................................................... 10
1.2 Sensori IR ............................................................................................................... 10
Capitolo 2 - Locomozione ............................................................................................... 13
2.1 - Il motore a spazzole in corrente continua .......................................................... 13
2.2 - Il motoriduttore ..................................................................................................... 15
2.3 - Regolazione della velocità agendo sul PWM. .................................................... 15
2.4 - Inversione del senso di rotazione del motore attraverso il ponte ad H ........... 16
2.5 - La sterzata ............................................................................................................ 16
Capitolo 3 - Assemblaggio e taratura ............................................................................. 17
3.1 Realizzazione della scheda ................................................................................... 17
3.1.1 Creazione del master ......................................................................................... 17
3.1.2 Verniciatura della basetta con vernice fotosensibile .......................................... 18
3.1.3 Impressionamento con bromografo ................................................................... 18
3.1.4 Sviluppo con soda caustica e incisione con cloruro ferrico ................................ 19
3.1.5 Foratura della scheda con trapano a colonna .................................................... 20
3.1.6 Saldatura dei componenti sulla scheda ............................................................. 21
3.2 Realizzazione del telaio del robot ......................................................................... 21
3.3 Taratura dei motori ................................................................................................. 21
Capitolo 4 - Controllo del piano di appoggio ................................................................ 22
4.1 Modellazione del trasduttore ................................................................................. 22
4.2 Comando dei motori .............................................................................................. 22
–
Capitolo 5 Software di controllo .................................................................................. 23
5.1 Struttura del software ............................................................................................ 23
5.2 Progettazione della legge di controllo .................................................................. 23
5.3 Software di controllo .............................................................................................. 23
5.3.1 Funzioni per il controllo dell’ADC ....................................................................... 29
5.3.2 Funzioni per il movimento dei motori ................................................................. 29
5.3.3 La funzione DOWN_CHECK ............................................................................. 31
5.3.4 La funzione principale (main) ............................................................................. 33
Conclusioni ...................................................................................................................... 34
Bibliografia e riferimenti internet ................................................................................... 34
2
Introduzione
La tesi proposta consiste nello sviluppo di un robot il quale sarà capace di muoversi
autonomamente all’interno di un piano senza cadere oltre i bordi utilizzando dei sensori ad
infrarosso.
Partendo da un’analisi del robot assemblato e delle problematiche connesse al controllo
del piano di appoggio, si giunge alle scelte nello sviluppo del software di controllo.
L’algoritmo è stato studiato a partire da un modello matematico semplificato del robot e
successivamente affinato grazie a prove sperimentali.
Si cercherà quindi una taratura che punti a massimizzare la velocità dei movimenti ed al
tempo stesso riduca al minimo il rischio di caduta accidentale del robot.
Il microprocessore riceve in input i dati analogici dei sensori IR ed attua, attraverso i
sistemi di controllo dei motori, dei movimenti di risposta. 3
Capitolo 1 - Elettronica e programmazione
In questo capitolo analizzeremo parte dell’elettronica presente sul robot (quella utilizzata
per realizzare il riconoscimento del piano) a cui sono connesse delle informazioni sulle
possibilità di programmazione. Il robot dispone di una scheda interamente progettata da
noi su cui è presente la sezione di alimentazione (1), il microcontrollore vero e proprio
servirà per l’esecuzione del software utente (2) e una parte per la
(ATMEGA 8535) che
comunicazione con il PC tramite porta seriale(3) e ISP (4). Infine sono presenti delle
sezioni per:
• Accesso alla porta C (per adesso non utilizzata) (5)
• Sensori e gli emettitori linea (6)
• Motori (7)
• Baffo palla (per adesso non utilizzato) (8)
• Sensori per la palla (per adesso non utilizzato) (9)
• Baffi posteriori (per adesso non utilizzato) (10) 4
5
6
1.1 Scheda madre: caratteristiche e potenzialità
La struttura della scheda costruita può essere riassunta in 4 punti principali:
1. La sezione di alimentazione
Il microcontrollore ATMEGA 8535 (per l’elaborazione dei dati e l’esecuzione del
2. software)
3. Comunicazione con il pc
4. Slot di collegamento
1.1.1 Sezione di alimentazione
La scheda è stata progettata per essere alimentata esclusivamente in tensione continua a
6 volt. L’alimentazione proviene da un pacco di 5 batterie (1,2 V ciascuna) con capacità di
1100 mAh.
Dalla batteria sono ricavate le due linee di alimentazione: 5VA e 5VD.
Come è possibile vedere nello schema, la tensione proveniente dal jack di connessione
viene ridotta tramite il diodo D1, che protegge anche dal collegamento errato della
batteria. Un ulteriore riduzione è ottenuta tramite il diodo D2. Come si può notare, la
tensione 5VA è prelevata subito dopo il diodo D1. Questa tensione è utilizzata per
l’alimentazione dei motori. La tensione 5VD invece viene utilizzata per alimentare tutti gli
altri componenti del circuito.
1.1.2 Il microcontrollore ATMEGA 8535 (elaborazione dati ed esecuzione software)
L’elaborazione del software utente è affidata ad un microcontrollore della famiglia
ATMEGA, in particolare al modello 8535. Molto diffusi per i costi ridotti e le buone capacità
di calcolo ed interfacciamento, i microcontrollori presentano in un singolo circuito integrato
un microprocessore, dei registri RAM ed EEPROM.
Inoltre sono presenti alcuni registri connessi con dei pin di I/O che permettono
l’interfacciamento verso l’esterno.
Per ottenere dei pin di tipo bidirezionale, che possono funzionare sia come Input che come
Output (non contemporaneamente), è necessario utilizzare uno schema con registri
separati di input ed output e porte TRI-STATE.
Infatti una porta di input non può funzionare contemporaneamente come output, e
viceversa. Inoltre, forzando un segnale su una porta di output, si rischia di danneggiarla. 7
Lo schema generale di un microcontrollore è il seguente:
Il cuore del microcontrollore è una CPU, che preleva le istruzioni presenti nella memoria
flash e eeprom. La memoria RAM di lavoro contiene soltanto i dati che risultano separati
dal programma. Le periferiche più comuni sono:
• PIO (Parallel I/O): fornisce un insieme di piedini bidirezionali per il collegamento di
dispositivi digitali esterni.
• UART (Universal Asinchrous Receiver Transmitter): consiste in una porta seriale
standard RS232 compatibile.
• SPI (Seria Peripheral Integral): si tratta di una seriale sincrona (un segnale di clock
viene utilizzato per sincronizzare lo scambio di dati tra i due dispositivi).
• C: è una seriale sincrona che funziona con 2 fili, uno per il clock e l’altro
2
I
bidirezionali. A questo bus è possibile collegare fino a 127 periferiche diverse.
• Timer: viene utilizzato per creare interrupt periodici oppure per generare un’onda
quadra su un piedino del microcontrollore. Il timer è basato su di un contatore che
viene incrementato ad ogni colpo di clock della CPU e quando raggiunge un valore
prefissato, solitamente, genera l’interrupt oppure inverte lo stato logico di un
piedino.
• PWM (Pulse Width Modulation): periferica basata sul timer che consente di
generare un’onda quadra a frequenza fissa e duty cycle variabile. Il duty cicle è la
percentuale di tempo che un segnale logico sta in posizione “ON” rispetto al periodo
quadra.
totale dell’onda
• USB (Universal Serial Bus): consente il collegamento del microprocessore al PC
(nell’ATMEGA 8535 non è presente).
• EEPROM (Erasable Electrically Programmable Rom): è una memoria non volatile
leggibile e scrivibile dal microcontrollore. Può essere utilizzata per salvataggi
permanenti di parametri e variabili.
• COMP (Comparatore): confronta la tensione analogica su due piedini del
microcontrollore fornendo 1 logico in uscita se la tensione sul piedino COM+ è
maggiore di quella sul piedino COM- e viceversa 0 logico. Può anche generare
interrupt in caso di commutazione dello stato.
• ADC (Analog to Digital Converter): converte una tensione analogica al suo ingresso
in un numero intero proporzionale alla tensione analogica. 8
l’ATMEGA:
Vediamo come lavora in particolare
L’ATMEGA 8535 presenta 40 piedini, ognuno con una funzione diversa. Qui sotto sono
descritti i più importanti: VCC: alimentazione
GND: massa
PA0…PA7, PB0…PB7, PC0…PC7,
PD0…PD7: sono rispettivamente gli 8
piedini delle porte A, B, C, D. Ogni piedino
rappresenta una linea di I/O del
microcontrollore.
RESET: attivo a livello basso, provoca il
reset del microcontrollore.
Il linguaggio e le regole sintattiche utilizzate per la programmazione sono quelle delle
classiche versioni del C per PC. Il linguaggio è compilato, il microcontrollore interroga la
memoria flash, da cui preleva il software, ed esegue i comandi richiesti.
1.1.3 Comunicazione con il pc
La comunicazione con il PC ha la funzione di memorizzare nella memoria FLASH i
programmi utente. Può essere usata anche per effettuare il debug dei programmi in fase di
sviluppo.
La porta parallela del PC è La porta seriale del microcontrollore, realizzata con il
MAX 232, consente di interfacciare l’ATMEGA8535 con
utilizzata per interfacciarsi con il
microcontrollore al fine di poter il mondo esterno. Questa porta in particolare consente
trasferire i programmi nella sua anche di effettuare il debug dei programmi utente
memoria. durante la fase di programmazione. 9
1.1.4 Slot di collegamento
Per facilitare le connessioni sulla scheda sono presenti una moltitudine di slot di
espansione (o collegamento) di cui viene mostrata una panoramica in questo paragrafo.
serve all’identificazione
Ogni slot è identificato dalla sigla J oppure MG dove la i dello slot.
i i
J1 Attacco per la porta C (non utilizzato)
J2 Attacco per la porta A (non utilizzato)