Sommario:

LEGO Robot guida attraverso un labirinto: 9 passaggi
LEGO Robot guida attraverso un labirinto: 9 passaggi

Video: LEGO Robot guida attraverso un labirinto: 9 passaggi

Video: LEGO Robot guida attraverso un labirinto: 9 passaggi
Video: IL NOSTRO CRICETO PROVA il Nuovo TRENO LEGO CITY Passeggeri Espresso 2024, Luglio
Anonim
Image
Image
Base del Robot
Base del Robot

Questo è un robot semplice e autonomo progettato per guidare attraverso un labirinto fino a un'uscita. È costruito utilizzando LEGO Mindstorms EV3. Il software EV3 viene eseguito su un computer e genera un programma, che viene quindi scaricato su un microcontrollore chiamato EV3 Brick. Il metodo di programmazione è basato su icone e di alto livello. È molto facile e versatile.

PARTI

  1. Set LEGO Mindstorms EV3
  2. Sensore a ultrasuoni LEGO Mindstorms EV3. Non è incluso nel set EV3.
  3. Cartone ondulato per il labirinto. Due cartoni dovrebbero essere sufficienti.
  4. Un piccolo pezzo di cartone sottile per aiutare a stabilizzare alcuni angoli e pareti.
  5. Colla e nastro adesivo per unire i pezzi di cartone.
  6. Una busta rossa per biglietti d'auguri per identificare l'uscita dal labirinto.

UTENSILI

  1. Coltello multiuso per tagliare il cartone.
  2. Righello in acciaio per facilitare il processo di taglio.

METODO DI RISOLUZIONE DEL LABIRINTO

Esistono diversi metodi per navigare in un labirinto. Se sei interessato a studiarli, sono descritti molto bene nel seguente articolo di Wikipedia:

Ho scelto la regola del seguace del muro di sinistra. L'idea è che il robot manterrà un muro sul lato sinistro prendendo le seguenti decisioni mentre attraversa il labirinto:

  1. Se è possibile svoltare a sinistra, fallo.
  2. Altrimenti, vai dritto se possibile.
  3. Se non può andare a sinistra o dritto, gira a destra, se possibile.
  4. Se nessuno dei precedenti è possibile, questo deve essere un vicolo cieco. Girarsi.

Un avvertimento è che il metodo potrebbe fallire se il labirinto contiene un loop. A seconda della posizione dell'anello, il robot potrebbe continuare a girare intorno all'anello. Una possibile soluzione a questo problema sarebbe che il robot passasse alla regola del seguace del muro di destra se si rendesse conto che stava andando in loop. Non ho incluso questo perfezionamento nel mio progetto.

FASI PER LA COSTRUZIONE DEL ROBOT

Sebbene LEGO Mindstorms EV3 sia molto versatile, non consente più di un sensore di ogni tipo collegato a un mattoncino. Due o più mattoncini potevano essere collegati a margherita, ma non volevo acquistare un altro mattoncino, quindi ho utilizzato i seguenti sensori (invece di tre sensori a ultrasuoni): sensore a infrarossi, sensore di colore e sensore a ultrasuoni. Ha funzionato bene. Le coppie di foto sotto mostrano come costruire il robot. La prima foto di ogni coppia mostra le parti necessarie e la seconda foto mostra le stesse parti collegate tra loro.

Fase 1: Base del Robot

Base del Robot
Base del Robot

Il primo passo è costruire la base del robot, utilizzando le parti mostrate. La base del robot è mostrata capovolta. La piccola parte a forma di L nella parte posteriore del robot è un supporto per la schiena. Scivola mentre il robot si muove. Funziona bene. Il kit EV3 non ha una parte a sfera rotante.

Passaggio 2: parte superiore della base

Parte superiore della base
Parte superiore della base
Parte superiore della base
Parte superiore della base
Parte superiore della base
Parte superiore della base

I prossimi 3 passaggi riguardano la parte superiore della base del robot, il sensore di colore e i cavi, che sono tutti cavi da 10 pollici (26 cm)

Passaggio 3: sensori a infrarossi e ad ultrasuoni

Sensori a infrarossi e ad ultrasuoni
Sensori a infrarossi e ad ultrasuoni
Sensori a infrarossi e ad ultrasuoni
Sensori a infrarossi e ad ultrasuoni

Successivamente, ci sono il sensore a infrarossi (sul lato sinistro del robot) e il sensore a ultrasuoni (a destra). Inoltre, i 4 perni per attaccare il Brick sulla parte superiore.

I sensori a infrarossi e a ultrasuoni sono posizionati verticalmente anziché orizzontalmente. Ciò fornisce una migliore identificazione degli angoli o delle estremità delle pareti.

Passaggio 4: cavi

Cavi
Cavi

Attacca il Brick e collega i cavi come segue:

  • Porta B: motore grande sinistro.
  • Porta C: motore grande destro.
  • Porta 2: sensore a ultrasuoni.
  • Porta 3: sensore di colore.
  • Porta 4: sensore a infrarossi.

Passaggio 5: passaggio finale nella costruzione del robot: decorazione

Fase finale nella costruzione del robot: decorazione
Fase finale nella costruzione del robot: decorazione
Fase finale nella costruzione del robot: decorazione
Fase finale nella costruzione del robot: decorazione
Fase finale nella costruzione del robot: decorazione
Fase finale nella costruzione del robot: decorazione

Le ali e le pinne sono solo per la decorazione.

Passaggio 6: pseudocodice per il programma

  1. Attendi 3 secondi e dì "Vai".
  2. Avvia il robot che si muove dritto.
  3. Se è possibile girare a sinistra (cioè, se il sensore a infrarossi non rileva un oggetto nelle vicinanze), dire "Sinistra" e andare a sinistra.
  4. Vai avanti di circa 15 cm per evitare una falsa svolta a sinistra. Il motivo è che dopo che il robot ha girato, il sensore vedrebbe il lungo spazio da cui era appena arrivato e il robot penserebbe che dovrebbe girare a sinistra, il che non è la cosa giusta da fare. Torna al passaggio 2.
  5. Se non è possibile girare a sinistra, controlla cosa vede il sensore di colore davanti al robot.
  6. Se non è presente alcun colore (ovvero nessun oggetto), tornare al passaggio 2.
  7. Se il colore è Rosso, questa è l'uscita. Ferma il robot, suona una fanfara e ferma il programma.
  8. Se il colore è marrone (ovvero, cartone marrone davanti), arresta il robot.

    1. Se è possibile svoltare a destra (ovvero, se il sensore a ultrasuoni non rileva un oggetto nelle vicinanze), dire "Destra" e andare a destra. Torna al passaggio 2.
    2. Se non è possibile svoltare a destra, pronuncia "Uh-oh", torna indietro di circa 5 pollici (12,5 cm) e girati. Torna al passaggio 2.

Passaggio 7: programma

Programma
Programma

LEGO Mindstorms EV3 ha un metodo di programmazione basato su icone molto conveniente. I blocchi vengono visualizzati nella parte inferiore dello schermo del computer e possono essere trascinati nella finestra di programmazione per creare un programma. La schermata mostra il programma per questo progetto. I blocchi sono descritti nel passaggio successivo.

Non sono riuscito a capire come impostare il download del programma per voi, quindi i blocchi sono descritti nel passaggio successivo. Ogni Blocco ha opzioni e parametri. È molto facile e versatile. Non dovrebbe volerci molto tempo per sviluppare il programma e/o modificarlo in base alle tue esigenze. Come sempre, è una buona idea salvare periodicamente il programma durante lo sviluppo.

Il mattoncino EV3 può essere collegato al computer tramite cavo USB, Wi-Fi o Bluetooth. Quando è collegato e acceso, questo è indicato in una piccola finestra nell'angolo in basso a destra della finestra EV3 sul computer. L'"EV3" sul lato più a destra diventa rosso. Quando questo display è impostato su Port View, mostra in tempo reale ciò che ciascun sensore sta rilevando. Questo è utile per sperimentare.

Durante la creazione di questo programma, suggerirei di lavorare da sinistra a destra e dall'alto in basso e di ingrandire i blocchi Loop e Switch prima di trascinare altri blocchi all'interno. Mi sono imbattuto in problemi disordinati cercando di inserire blocchi aggiuntivi all'interno prima dell'ingrandimento.

Passaggio 8: blocchi di programma

  1. Partendo dal lato sinistro del programma, lo Start Block è presente automaticamente durante lo sviluppo di un programma.
  2. Il prossimo è un Wait Block, per darci 3 secondi per posizionare il robot all'ingresso del labirinto, dopo aver avviato il programma.
  3. Un Sound Block fa dire al robot "Vai".
  4. Un Blocco Loop contiene la maggior parte del programma. Il display dovrebbe essere rimpicciolito 4 o 5 volte e questo Loop Block dovrebbe essere ingrandito quasi fino al bordo destro della Programming Canvas prima di iniziare a inserire i Block. Può essere ridotto in seguito.
  5. Il primo blocco all'interno del loop è un blocco di spostamento dello sterzo con lo sterzo impostato su zero e la potenza impostata su 20. Questo avvia i motori che funzionano in avanti a bassa velocità. Una velocità maggiore farebbe andare troppo lontano il robot quando continua a parlare nei passaggi successivi.
  6. Un blocco interruttore nella modalità di prossimità del sensore a infrarossi controlla se c'è qualche oggetto più lontano di un valore di 30. Ciò equivale a circa 9 pollici (23 cm) per il cartone marrone. Se il valore è maggiore di 30, vengono eseguiti i Blocchi 7, 8 e 9, altrimenti il programma passa al Blocco 10 sottostante.
  7. Un Sound Block fa dire al robot "Sinistra".
  8. A Move Steering Block con lo sterzo impostato su -45, la potenza impostata su 20, le rotazioni impostate su 1.26 e il freno alla fine impostato su True. Questo fa girare il robot a sinistra.
  9. A Move Steering Block con lo sterzo impostato su zero, la potenza impostata su 20, le rotazioni impostate su 1.2 e il freno alla fine impostato su True. Questo fa avanzare il robot di circa 15 cm per evitare una falsa svolta a sinistra.
  10. Un blocco interruttore nella modalità Misura colore del sensore di colore controlla quale colore è davanti al robot. Se non c'è colore (cioè nessun oggetto), allora il programma va alla fine del ciclo. Se il colore è rosso, vengono eseguiti i blocchi 11, 12 e 13. Se il colore è Marrone, il programma va al Blocco 14 sottostante.
  11. A Spostare il blocco dello sterzo in modalità Off per arrestare i motori.
  12. Un Sound Block suona una fanfara.
  13. Un blocco di interruzione del ciclo esce dal ciclo.
  14. A Spostare il blocco dello sterzo in modalità Off per arrestare i motori.
  15. Un blocco interruttore nella modalità Confronta distanza pollici del sensore a ultrasuoni controlla se è presente un oggetto più lontano di 20 cm (8 pollici). Se è più di 8 pollici, vengono eseguiti i blocchi 16 e 17, altrimenti il programma va al blocco 18 di seguito.
  16. Un Sound Block fa dire al robot "Giusto".
  17. A Move Steering Block con lo sterzo impostato su -55, la potenza impostata su -20, le rotazioni impostate su 1.1 e Brake at End impostato su True. Questo fa girare il robot a destra.
  18. Un Sound Block fa dire al robot "Uh-oh".
  19. A Move Tank Block con Power Left impostato su -20, Power Right impostato su -20, Rotations impostato su 1 e Brake at End impostato su True. Questo fa tornare il robot di circa 5 pollici (12,5 cm) per fare spazio per girarsi.
  20. A Move Tank Block con Power Left impostato su -20, Power Right impostato su 20, Rotations impostato su 1.14 e Brake at End impostato su True. Questo fa girare il robot.
  21. All'uscita del Loop c'è un Blocco Programma Stop.

Passaggio 9: COSTRUISCI un LABIRINTO

COSTRUISCI UN LABIRINTO
COSTRUISCI UN LABIRINTO
COSTRUISCI UN LABIRINTO
COSTRUISCI UN LABIRINTO
COSTRUISCI UN LABIRINTO
COSTRUISCI UN LABIRINTO

Due cartoni di cartone ondulato dovrebbero essere sufficienti per il labirinto. Ho realizzato le pareti del labirinto alte 5 pollici (12,5 cm), ma 4 pollici (10 cm) dovrebbero funzionare altrettanto bene se sei a corto di cartone ondulato.

Per prima cosa, ho tagliato intorno alle pareti dei cartoni, a 10 pollici (25 cm) dal fondo. Poi ho tagliato intorno alle pareti 5 pollici dal fondo. Ciò fornisce diverse pareti da 5 pollici. Inoltre, ho tagliato il fondo dei cartoni, lasciando circa 2,5 cm attaccati alle pareti per stabilità.

I vari pezzi possono essere tagliati e incollati o incollati ovunque sia necessario per formare il labirinto. Dovrebbe esserci uno spazio di 30 cm (12 pollici) tra le pareti in qualsiasi percorso con un vicolo cieco. Questa distanza è necessaria per consentire al robot di girarsi.

Potrebbe essere necessario rinforzare alcuni angoli del labirinto. Inoltre, è necessario evitare che alcune pareti dritte si pieghino se includono un angolo di cartone raddrizzato. Piccoli pezzi di cartone sottile dovrebbero essere incollati sul fondo in quei punti, come mostrato.

L'uscita ha una barriera rossa composta da mezza busta rossa per biglietti di auguri e una base composta da 2 pezzi di cartoncino sottile, come mostrato.

Un avvertimento è che il labirinto non dovrebbe essere grande. Se le virate del robot sono leggermente inclinate rispetto a quella corretta, le discrepanze si sommano dopo alcune virate. Ad esempio, se una svolta a sinistra è di 3 gradi in meno, dopo 5 svolte a sinistra il robot si sposta di 15 gradi. Un labirinto grande avrebbe più curve e un percorso più lungo di uno piccolo, e il robot potrebbe andare a sbattere contro i muri. Ho dovuto giocherellare più volte con le impostazioni di rotazione delle curve per ottenere una guida di successo anche nel piccolo labirinto che ho fatto.

MIGLIORAMENTI FUTURI

Un ovvio progetto successivo è quello di rendere il robot in grado di determinare un percorso diretto attraverso il labirinto durante la navigazione, e quindi guidare questo percorso diretto (evitando vicoli ciechi) subito dopo.

Questo è molto più complicato del progetto attuale. Il robot deve ricordare il percorso che ha percorso, rimuovere i vicoli ciechi, memorizzare il nuovo percorso e quindi seguire il nuovo percorso. Ho intenzione di lavorare su questo progetto nel prossimo futuro. Mi aspetto che sia possibile realizzare con LEGO Mindstorms EV3 utilizzando Array Operations Blocks e alcuni blocchi relativi alla matematica.

OSSERVAZIONE CONCLUSIVA

Questo è stato un progetto divertente. Spero che anche tu lo trovi interessante.

Consigliato: