23
NIPI Mini Robot Percezione robotica 05-06 Daniele Mazzei

Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione

Embed Size (px)

Citation preview

Page 1: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione

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

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

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

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

L’Hardware

Page 6: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione

Il microcontrollore

Page 7: Daniele Mazzei. Obbiettivi del progetto Realizzazione di un minirobot utilizzando componenti elettronici di base. Apprendere i sistemi di programmazione

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Grazie