Sommario:

Crea un robot labirinto: 3 passaggi (con immagini)
Crea un robot labirinto: 3 passaggi (con immagini)

Video: Crea un robot labirinto: 3 passaggi (con immagini)

Video: Crea un robot labirinto: 3 passaggi (con immagini)
Video: PERCHÉ LA POKEBALL NON SI APRE?! 2024, Luglio
Anonim
Crea un robot labirinto
Crea un robot labirinto
Crea un robot labirinto
Crea un robot labirinto
Crea un robot labirinto
Crea un robot labirinto
Crea un robot labirinto
Crea un robot labirinto

I robot che risolvono labirinti hanno origine negli anni '70. Da allora, l'IEEE ha organizzato gare di risoluzione dei labirinti chiamate Micro Mouse Contest. Lo scopo del concorso è progettare un robot che trovi il punto medio di un labirinto il più rapidamente possibile. Gli algoritmi utilizzati per risolvere rapidamente il labirinto rientrano in genere in tre categorie; ricerca casuale, mappatura del labirinto e seguenti metodi di parete destra o sinistra.

Il più funzionale di questi metodi è il metodo wall following. In questo metodo, il robot segue la parete laterale destra o sinistra nel labirinto. Se il punto di uscita è collegato alle pareti esterne del labirinto, il robot troverà l'uscita. Questa nota dell'app utilizza il metodo seguente sulla parete destra.

Hardware

Questa applicazione utilizza:

  • 2 sensori di distanza analogici affilati
  • Sensore di localizzazione
  • Codificatore
  • Motori e driver del motore
  • Silego GreenPAK SLG46531V
  • Regolatore di tensione, chassis del robot.

Utilizzeremo il sensore di distanza analogico per determinare le distanze dalle pareti destra e anteriore. I sensori di distanza Sharp sono una scelta popolare per molti progetti che richiedono misurazioni accurate della distanza. Questo sensore IR è più economico dei telemetri sonar, ma offre prestazioni molto migliori rispetto ad altre alternative IR. Esiste una relazione non lineare e inversa tra la tensione di uscita del sensore e la distanza misurata. Il grafico che mostra la relazione tra l'uscita del sensore e la distanza misurata è mostrato in Figura 1.

Come obiettivo viene impostata una linea bianca su uno sfondo di colore nero. Useremo il sensore tracker per rilevare la linea bianca. Il sensore tracker ha cinque uscite analogiche e i dati in uscita sono influenzati dalla distanza e dal colore dell'oggetto rilevato. I punti rilevati con maggiore riflettanza infrarossa (bianco) provocheranno un valore di uscita più alto, e la riflettanza infrarossa più bassa (nero) causerà un valore di uscita più basso.

Utilizzeremo l'encoder della ruota pololu per calcolare la distanza percorsa dal robot. Questa scheda encoder in quadratura è progettata per funzionare con motoriduttori pololu micro metal. Funziona tenendo due sensori di riflettanza a infrarossi all'interno del mozzo di una ruota Pololu 42×19 mm e misurando il movimento dei dodici denti lungo il cerchione della ruota.

Una scheda del driver del motore (L298N) viene utilizzata per controllare i motori. I pin INx vengono utilizzati per dirigere i motori e i pin ENx vengono utilizzati per impostare la velocità dei motori.

Inoltre, viene utilizzato un regolatore di tensione per ridurre la tensione dalla batteria fino a 5V.

Passaggio 1: descrizione dell'algoritmo

Descrizione dell'algoritmo
Descrizione dell'algoritmo
Descrizione dell'algoritmo
Descrizione dell'algoritmo
Descrizione dell'algoritmo
Descrizione dell'algoritmo
Descrizione dell'algoritmo
Descrizione dell'algoritmo

Questo Instructable incorpora il metodo seguendo la parete destra. Questo si basa sull'organizzazione della priorità della direzione preferendo la direzione più a destra possibile. Se il robot non riesce a rilevare il muro a destra, gira a destra. Se il robot rileva la parete destra e non c'è una parete davanti, va avanti. Se c'è un muro a destra del robot e davanti, gira a sinistra.

Una nota importante è che non c'è un muro di riferimento dopo che il robot ha appena girato a destra. Pertanto "svoltare a destra" si realizza in tre fasi. Vai avanti, gira a destra, vai avanti.

Inoltre, il robot deve mantenere la distanza dalla parete quando si sposta in avanti. Questo può essere fatto regolando un motore per essere più veloce o più lento dell'altro. Lo stato finale del diagramma di flusso è mostrato in figura 10.

Un robot Maze Runner può essere implementato molto facilmente con un singolo IC a segnale misto (CMIC) configurabile GreenPAK. Puoi seguire tutti i passaggi per capire come il chip GreenPAK è stato programmato per controllare Maze Runner Robot. Tuttavia, se desideri semplicemente creare facilmente il robot Maze Runner senza comprendere tutti i circuiti interni, scarica il software GreenPAK per visualizzare il file di progettazione GreenPAK di Maze Runner Robot già completato. Collega il tuo computer al kit di sviluppo GreenPAK e premi il programma per creare l'IC personalizzato per controllare il tuo robot Maze Runner. Il prossimo passo discuterà la logica che si trova all'interno del file di progettazione Maze Runner Robot GreenPAK per coloro che sono interessati a capire come funziona il circuito.

Passaggio 2: progettazione GreenPAK

Design GreenPAK
Design GreenPAK
Design GreenPAK
Design GreenPAK
Design GreenPAK
Design GreenPAK

Il design GreenPAK è composto da due parti. Questi sono:

  • Interpretazione/elaborazione dati da sensori di distanza
  • Stati ASM e uscite motore

Interpretazione/elaborazione dati da sensori di distanza

È importante interpretare i dati dei sensori di distanza. I movimenti del robot sono deliberati in base alle uscite dei sensori di distanza. Poiché i sensori di distanza sono analogici, utilizzeremo gli ACMP. La posizione del robot rispetto alla parete è determinata confrontando le tensioni dei sensori con le tensioni di soglia predeterminate.

Useremo 3 ACMP;

  • Per rilevare la parete anteriore (ACMP2)
  • Per rilevare la parete destra (ACMP0)
  • Per proteggere la distanza della parete destra (ACMP1)

Poiché ACMP0 e ACMP1 dipendono dallo stesso sensore di distanza, abbiamo utilizzato la stessa sorgente IN+ per entrambi i comparatori. La variazione costante del segnale può essere impedita assegnando ad ACMP1 25 mv di isteresi.

Possiamo determinare i segnali di direzione in base alle uscite degli ACMP. Il circuito mostrato in figura 12 rappresenta il diagramma di flusso delineato in figura 7.

Allo stesso modo, il circuito che indica la posizione del robot rispetto alla parete destra è mostrato in figura 13.

Stati ASM e uscite motore

Questa applicazione utilizza la macchina a stati asincrona, o ASM, per controllare il robot. Ci sono 8 stati nell'ASM e 8 uscite in ogni stato. La RAM di uscita può essere utilizzata per regolare queste uscite. Gli stati sono elencati di seguito:

  • Cominciare
  • Controllo
  • Allontanati dal muro di destra
  • Vicino al muro di destra
  • Girare a sinistra
  • Sposta in avanti-1
  • Girare a destra
  • Vai avanti-2

Questi stati determinano l'uscita al driver del motore e dirigono il robot. Ci sono 3 uscite dal GreenPAK per ogni motore. Due determinano la direzione del motore e l'altra uscita determina la velocità del motore. Il movimento del motore secondo queste uscite è mostrato nelle tabelle seguenti:

La RAM di uscita ASM è derivata da queste tabelle. È mostrato in figura 14. Oltre ai driver del motore ci sono altre due uscite. Queste uscite vanno ai corrispondenti blocchi di ritardo per consentire al robot di percorrere una certa distanza. Le uscite di questi blocchi di ritardo sono anche collegate agli ingressi ASM.

I PWM sono stati utilizzati per regolare la velocità dei motori. L'ASM è stato utilizzato per determinare su quale PWM dovrebbe funzionare il motore. I segnali PWMA-S e PWMB-S sono impostati sui bit di selezione mux.

Passaggio 3:

Immagine
Immagine

In questo progetto, abbiamo creato un robot per risolvere labirinti. Abbiamo interpretato i dati di più sensori, controllato lo stato del robot con l'ASM di GreenPAK e guidato i motori con un driver del motore. Generalmente, i microprocessori vengono utilizzati in tali progetti, ma un GreenPAK presenta alcuni vantaggi rispetto a un MCU: è più piccolo, più economico e può elaborare l'uscita del sensore più velocemente di un MCU.

Consigliato: