Daniele Mazzei
Obbiettivi del progetto
 Realizzazione di un minirobot utilizzando
componenti elettronici di base.
 Apprendere i sistemi di programmazione e
controllo dei microcontrollori
 Scrittura di un software di gestione del
comportamento reattivo che possa funzionare su
un PIC.
 Realizzazione di sensori per robot
Il comportamento
 L’idea è di realizzare un robot con comportamento
bio-ispirato
 Alcuni insetti volano in modo apparentemente
casuale fino a che non sentono il bisogno di
nutrirsi o di riprodursi
 Iniziano quindi a seguire le tracce di odoranti per
trovare una fonte di nutrimento o un partner
(feromoni)
 Durante il loro moto devono evitare ostacoli
Il Robot
 Struttura in materiale
plastico.
 Gruppo meccanico di
riduzione preassemblato
 Elettronica costruita su
una board “millefori”
sagomata
 Ruote in gomma modello
“Lego Mindstorm”
L’Hardware
Elettronica di controllo e
alimentazione PIC
Sensori
Motori
Gruppo batterie
Elettronica carica
batterie
Il microcontrollore
I Sensori
Controllo Batteria
• Partitore di tensione che invia al PIC un voltaggio
pari alla metà della tensione sul pacco batterie
2 Sensori IR
• Fotodiodo montato in configurazione a partitore
di tensione
• Led IR ad alta luminosità
2 Sensori di contatto
• Switch realizzati con sistema “ago-molla”
2 Sensori di luminosità
• Fotoresistenze montate in configurazione
partitore di tensione
I sensori sono
collegati ai
convertitori
analogico digitale
del PIC che leggono
con una risoluzione
di 10 Bit e accettano
ingresso tensioni
variabili tra 0 e Vdd
I Motori
 I 2 motori vengono controllati
mediante un ponte H
 I due segnali PWM vengono inviati
come “Enable” del ponte
 Vengono utilizzati 4 pin digitali del
pic per controllare il verso di
rotazione dei motori.
La porta seriale
 Grazie alla presenza della porta seriale
risulta notevolmente più semplice la
fase di debug del software
 E’ possibile il download del software sul
PIC direttamente dalla seriale senza
dover togliere il micocontrollore dallo
zoccolo
 Il segnale della porta seriale è stato
adattato alla standard RS232 mediante
l’utilizzo dell’integrato MAX232
Il software
Stato 1
(Contatt
o a Sx
evita
ostacolo
)
 Il software è scritto in
Basic mediante l’ambiente
di sviluppo MicroBasic
della Mikroelettronica.
 Con l’ausilio della libreria
fornita dal software sono
state scritte le varie
funzioni di controllo dei
PWM e di lettura degli
ADC
 Il software è concepito
come una macchina a stati
finiti
 Le interazioni con
l’ambiente comportano i
passaggi da uno stato
all’altro
Stato 4
(fine
batterie
cerca la
luce)
Stato 0
(Movimento
random)
Stato 3
(Ostacolo
frontale o
fine
paviment
o
indietregg
ia e gira)
Stato 2
(Contatto
a Dx evita
ostacolo)
Il software
 Per simulare correttamente il comportamento di un
insetto è necessario inserire un altro stato (Stato “5”)
 Quando la batteria scende sotto una soglia prefissata il
robot passa dalla modalità random a quella
inseguimento luce (Stato “4”)
 Smette di cercare la luce quando la batteria scende
sotto una seconda soglia e si ferma per ricaricarsi
mediante la cella fotovoltaica (Stato “5”)
 Quando la batteria torna sopra un valore prefissato
ricomincia l’andamento random (sato “o”)
Il software
 Nel Main vengono chiamate le varie




funzioni di inizializzazione del
controllore e di configurazione delle porte
Mediante uno “switch” viene analizzata la
variabile “State” che indica lo stato di
lavoro
All’avvio il robot parte nello stato “0”,
muovendosi random e controllando gli
ostacoli
Le funzioni di rilevamento ostacoli hanno
diritto di cambiare il valore della variabile
globale “State”
Al giro successivo del main se la variabile
“State” è diversa da “0” si attua la strategia
di evitamento prescelta
Leggi stato
Setta led in base
allo stato
Controlla
contatti
Controlla
ostacoli o
pavimento
Delay 100 ms
Evitamento ostacoli
 Le funzioni “Collision_Detection”
e “Obstacle_Avoidance” vengono
chiamate dal Main nello stato “0”
 Se viene rilevato un contatto lo
stato viene cambiato da “0” a:
Stato 1 -> Contatto a Sx
Stato 2 -> Contatto a Dx
Stato 3 -> Contatto frontale o
mancanza suolo
Al successivo giro del Main si entra
nella strategia di evitamento
dipendente dallo stato
Imposta
velocità ad x
Inverti motori
Motore del
contato aventi,
altro fermo
Delay 1
Delay 2
Stato = 0
Torna al Main
Randoom
 E’ stata realizzata una funzione in grado di
generare numeri random:
X=mod{(a*Timer),P} Dove:
X = numero random generato
a = costante
Timer = Valore del clock
P = Numero primo a scelta
Mod{a,b} restituisce il resto della divisone intera fra
aeb
Inseguimento luce
 I sensori di luminosità restituiscono valori fra 50 e 200
(200 -> buio, 50 -> max luce)
 I motori accettano in ingresso valori di velocità (Duty
cicle PWM) fra 50 e 150
 Il livello di luminosità viene quindi inviato al motore
corrispondente limitandolo ad un max di 150
 Essendo inverso l’andamento dei sensori di luminosità
si ottiene un fenomeno di inseguimento senza dover
incrociare le connessioni
I Test
 Evitamento ostacoli.
 Il robot è stato
programmato per evitare
ostacoli rilevati dai
sensori di contatto a
switch o dal senore IR
frontale
 E’ stata disattivata la
funzione di andamento
random per facilitare la
ripresa
Avvicinamento alla luce
 Il test è stato
condotto in
ambiente
buio,
ponendo una
torcia in un
angolo
Fuga dalla luce
 Il software è stato modificato per invertire il
comportamento del robot
 Ogni sensore di luminosità influenza il motore
opposto
Risultati
 Il robot si è rivelato essere un ottimo strumento di
apprendimento per le problematiche relative
all’assemblaggio di componenti elettronici di base
 E’ stato possibile implementare con un solo PIC numerose
funzioni tipiche dei comportamenti reattivi della robotica
 I test hanno dimostrato come il robot sia in grado di
seguire la luce ed evitare ostacoli
 La realizzazione delle varie funzioni ha permesso al robot
di avere un comportamento simile ad un insetto
Pro
 Il robot si è rilevato essere uno strumento funzionale a
bassissimo costo per lo studio dell’elettronica, dei
microcontrollori e della programmazione di minirobot
 La realizzazione di robot non in Kit permette una
continua evoluzione dell’architettura ed infinite
possibilità di utilizzo
 La presenza della porta seriale funzionante non solo
per il download del software è una caratteristica che
spesso non è presente sui robot in Kit
 Grazie alla presenza del caricabatterie integrato il
robot si ricarica con qualsiasi tensione in ingresso
compresa fra 7 e 14 Volt
Contro
 La programmazione dei PIC si è rilevata essere di
livello non abbastanza alto per essere utilizzata
come controllore principale di un robot
 L’utilizzo delle fotoresistenze come rilevatori di
luce in configurazione a partitore di tensione si è
rilevata essere una soluzione troppo semplificata
 La realizzazione della scheda elettronica su board
millefori ha comportato numerosi problemi di
falso-contatto durante la fase di test
Sviluppi futuri
 Realizzazione di un PCB dell’architettura elettronica





definitiva
Sostituzione delle fotoresistenze con fototransistor e
mosfet di condizionamento segnale
Scrittura del codice in C
Implementazione di uno Heap al fine di gestire in
modo parallelo i vari task previsti dal comportamento
reattivo del robot
Inserimento di una connessione wireless per debug
senza fili
Collegamento della cella fotovoltaica per la ricarica
solare
Scarica

Nipi(Office2007)