daniele mazzei. obbiettivi del progetto realizzazione di un minirobot utilizzando componenti...
TRANSCRIPT
![Page 1: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/1.jpg)
NIPI
Mini Robot
Percezione robotica 05-06
Daniele Mazzei
![Page 2: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/2.jpg)
Obbiettivi del progettoRealizzazione di un minirobot utilizzando
componenti elettronici di base.Apprendere i sistemi di programmazione e
controllo dei microcontrolloriScrittura di un software di gestione del
comportamento reattivo che possa funzionare su un PIC.
Realizzazione di sensori per robot
![Page 3: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/3.jpg)
Il comportamentoL’idea è di realizzare un robot con
comportamento bio-ispiratoAlcuni 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
![Page 4: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/4.jpg)
Il RobotStruttura in materiale
plastico.Gruppo meccanico di
riduzione preassemblato
Elettronica costruita su una board “millefori” sagomata
Ruote in gomma modello “Lego Mindstorm”
![Page 5: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/5.jpg)
L’Hardware
![Page 6: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/6.jpg)
Il microcontrollore
![Page 7: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/7.jpg)
I Sensori
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
![Page 8: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/8.jpg)
I MotoriI 2 motori vengono controllati
mediante un ponte HI due segnali PWM vengono
inviati come “Enable” del ponte
Vengono utilizzati 4 pin digitali del pic per controllare il verso di rotazione dei motori.
![Page 9: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/9.jpg)
La porta serialeGrazie 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
![Page 10: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/10.jpg)
Il software 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
![Page 11: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/11.jpg)
Il softwarePer 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”)
![Page 12: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/12.jpg)
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
![Page 13: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/13.jpg)
Evitamento ostacoliLe 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 SxStato 2 -> Contatto a DxStato 3 -> Contatto frontale o mancanza suolo
Al successivo giro del Main si entra nella strategia di evitamento dipendente dallo stato
![Page 14: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/14.jpg)
RandoomE’ stata realizzata una funzione in grado di
generare numeri random:X=mod{(a*Timer),P} Dove:
X= numero random generatoa = costanteTimer = Valore del clockP = Numero primo a sceltaMod{a,b} restituisce il resto della divisone
intera fra a e b
![Page 15: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/15.jpg)
Inseguimento luceI 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 150Il 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
![Page 16: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/16.jpg)
I TestEvitamento 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
![Page 17: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/17.jpg)
Avvicinamento alla luce
Il test è stato condotto in ambiente buio, ponendo una torcia in un angolo
![Page 18: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/18.jpg)
Fuga dalla luceIl software è stato modificato per invertire
il comportamento del robotOgni sensore di luminosità influenza il
motore opposto
![Page 19: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/19.jpg)
RisultatiIl 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
![Page 20: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/20.jpg)
ProIl 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
![Page 21: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/21.jpg)
ControLa 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
![Page 22: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/22.jpg)
Sviluppi futuriRealizzazione di un PCB dell’architettura
elettronica definitivaSostituzione delle fotoresistenze con fototransistor
e mosfet di condizionamento segnaleScrittura del codice in CImplementazione 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
![Page 23: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione](https://reader036.vdocuments.site/reader036/viewer/2022062512/5542eb5b497959361e8c8e70/html5/thumbnails/23.jpg)
Grazie