Sommario:
- Fase 1: Base del Robot
- Passaggio 2: parte superiore della base
- Passaggio 3: sensori a infrarossi e ad ultrasuoni
- Passaggio 4: cavi
- Passaggio 5: passaggio finale nella costruzione del robot: decorazione
- Passaggio 6: pseudocodice per il programma
- Passaggio 7: programma
- Passaggio 8: blocchi di programma
- Passaggio 9: COSTRUISCI un LABIRINTO
Video: LEGO Robot guida attraverso un labirinto: 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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
- Set LEGO Mindstorms EV3
- Sensore a ultrasuoni LEGO Mindstorms EV3. Non è incluso nel set EV3.
- Cartone ondulato per il labirinto. Due cartoni dovrebbero essere sufficienti.
- Un piccolo pezzo di cartone sottile per aiutare a stabilizzare alcuni angoli e pareti.
- Colla e nastro adesivo per unire i pezzi di cartone.
- Una busta rossa per biglietti d'auguri per identificare l'uscita dal labirinto.
UTENSILI
- Coltello multiuso per tagliare il cartone.
- 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:
- Se è possibile svoltare a sinistra, fallo.
- Altrimenti, vai dritto se possibile.
- Se non può andare a sinistra o dritto, gira a destra, se possibile.
- 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
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
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
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
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
Le ali e le pinne sono solo per la decorazione.
Passaggio 6: pseudocodice per il programma
- Attendi 3 secondi e dì "Vai".
- Avvia il robot che si muove dritto.
- Se è possibile girare a sinistra (cioè, se il sensore a infrarossi non rileva un oggetto nelle vicinanze), dire "Sinistra" e andare a sinistra.
- 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.
- Se non è possibile girare a sinistra, controlla cosa vede il sensore di colore davanti al robot.
- Se non è presente alcun colore (ovvero nessun oggetto), tornare al passaggio 2.
- Se il colore è Rosso, questa è l'uscita. Ferma il robot, suona una fanfara e ferma il programma.
-
Se il colore è marrone (ovvero, cartone marrone davanti), arresta il robot.
- 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.
- 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
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
- Partendo dal lato sinistro del programma, lo Start Block è presente automaticamente durante lo sviluppo di un programma.
- Il prossimo è un Wait Block, per darci 3 secondi per posizionare il robot all'ingresso del labirinto, dopo aver avviato il programma.
- Un Sound Block fa dire al robot "Vai".
- 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.
- 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.
- 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.
- Un Sound Block fa dire al robot "Sinistra".
- 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.
- 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.
- 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.
- A Spostare il blocco dello sterzo in modalità Off per arrestare i motori.
- Un Sound Block suona una fanfara.
- Un blocco di interruzione del ciclo esce dal ciclo.
- A Spostare il blocco dello sterzo in modalità Off per arrestare i motori.
- 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.
- Un Sound Block fa dire al robot "Giusto".
- 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.
- Un Sound Block fa dire al robot "Uh-oh".
- 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.
- 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.
- All'uscita del Loop c'è un Blocco Programma Stop.
Passaggio 9: 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:
L'intelligenza artificiale nel robot labirinto LEGO EV3: 13 passaggi
AI in LEGO EV3 Robot Maze-Driving: questo è un robot semplice e autonomo con una certa intelligenza artificiale. È progettato per esplorare un labirinto e quando viene riposto all'ingresso, per guidare fino all'uscita ed evitare i vicoli ciechi. È molto più complicato del mio progetto precedente, ma
TRASMISSIONE DATI ATTRAVERSO LA LUCE !!!: 4 passaggi (con immagini)
TRASMETTERE DATI ATTRAVERSO LA LUCE !!!: Ciao ragazzi, dopo tanto tempo sono tornato di nuovo per condividere un nuovo e semplice progetto. In questo progetto ti mostrerò come puoi trasmettere segnali di dati da un luogo a un altro attraverso la Luce. L'invio di dati sulla luce non è un concetto nuovo, ma recentemente è g
Li-Fi [Trasmissione audio attraverso la luce]: 7 passaggi
Li-Fi [Trasmissione audio attraverso la luce]: Ciao amici! Oggi faremo un esperimento su Li-Fi. Per prima cosa ti parlerò brevemente di LiFi. La forma completa di LiFi è Light Fidelity. LiFi è fondamentalmente una tecnologia di comunicazione wireless che utilizza la luce visibile per i dati t
Fai scorrere un LED RGB attraverso lo spettro dei colori usando un Raspberry Pi 2 e Scratch: 11 passaggi
Scorri un LED RGB attraverso lo spettro dei colori utilizzando un Raspberry Pi 2 e Scratch: note di aggiornamento giovedì 25 febbraio 2016: ho migliorato il programma Scratch e ridisegnato il mio istruibile. Ciao ragazzi, con questo progetto ho voluto usare Scratch per far scorrere un LED RGB attraverso lo spettro dei colori. Ci sono un sacco di progetti che fanno questo con t
Pike - Guida in modo più sicuro, guida in modo più intelligente, guida una picca!: 5 passaggi
Pike - Guida in modo più sicuro, guida in modo più intelligente, guida un luccio!: Benvenuto nel mio progetto chiamato Pike! Questo è un progetto che fa parte della mia formazione. Sono uno studente NMCT a Howest in Belgio. L'obiettivo era creare qualcosa di intelligente utilizzando un Raspberry Pi. Avevamo una completa libertà in cui volevamo rendere intelligenti. Per me è stato