Innehållsförteckning:
- Steg 1: Robotens bas
- Steg 2: Överst på basen
- Steg 3: Infraröda och ultraljudssensorer
- Steg 4: Kablar
- Steg 5: Sista steget i att bygga roboten: dekoration
- Steg 6: Pseudokod för programmet
- Steg 7: Programmera
- Steg 8: Programblock
- Steg 9: BYGG ETT LABURET
Video: LEGO Robot kör genom en labyrint: 9 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Detta är en enkel, autonom robot utformad för att köra genom en labyrint till en utgång. Den är byggd med LEGO Mindstorms EV3. EV3 -programvaran körs på en dator och genererar ett program som sedan laddas ner till en mikrokontroller kallad EV3 Brick. Programmeringsmetoden är ikonbaserad och på hög nivå. Det är väldigt enkelt och mångsidigt.
DELAR
- LEGO Mindstorms EV3 -set
- LEGO Mindstorms EV3 ultraljudssensor. Det ingår inte i EV3 -setet.
- Wellpapp för labyrinten. Två kartonger bör räcka.
- En liten bit tunn kartong för att stabilisera vissa hörn och väggar.
- Lim och tejp för att ansluta kartongbitar ihop.
- Ett rött gratulationskortkuvert för att identifiera utgången från labyrinten.
VERKTYG
- Verktygskniv för att skära kartongen.
- Linjal i stål för att underlätta skärprocessen.
MAZE-LÖSNINGSMETOD
Det finns flera metoder för att navigera i en labyrint. Om du är intresserad av att studera dem beskrivs de mycket bra i följande Wikipedia -artikel:
Jag valde den vänstra väggföljaren. Tanken är att roboten ska hålla en vägg på vänster sida genom att fatta följande beslut när den går genom labyrinten:
- Om det är möjligt att svänga vänster, gör det.
- Annars, gå direkt om möjligt.
- Om det inte går åt vänster eller rakt, sväng höger, om möjligt.
- Om inget av ovanstående är möjligt måste detta vara en återvändsgränd. Vänd dig om.
En försiktighet är att metoden kan misslyckas om labyrinten har en slinga i den. Beroende på slingans placering kan roboten fortsätta att gå runt och runt öglan. En möjlig lösning för detta problem skulle vara att roboten byter till den högra väggföljaren om den inser att den går i en loop. Jag inkluderade inte denna förfining i mitt projekt.
STEG FÖR ATT BYGGA ROBOTEN
Även om LEGO Mindstorms EV3 är mycket mångsidig tillåter den inte mer än en av varje typ av sensorer som är anslutna till en tegelsten. Två eller flera tegelstenar kan vara kedjiga, men jag ville inte köpa en annan tegelsten, så jag använde följande sensorer (istället för tre ultraljudssensorer): infraröd sensor, färgsensor och ultraljudssensor. Detta fungerade bra. Bilderna nedan visar hur man bygger roboten. Det första fotot av varje par visar de delar som behövs, och det andra fotot visar samma delar som är sammankopplade.
Steg 1: Robotens bas
Det första steget är att bygga robotens bas med hjälp av de visade delarna. Robotbasen visas upp och ner. Den lilla L-formade delen på baksidan av roboten är ett stöd för ryggen. Den glider när roboten rör sig. Det här fungerar okej. EV3-kitet har ingen del av rullboll.
Steg 2: Överst på basen
De tre nästa stegen är för toppen av roboten, färgsensorn och kablarna, som alla är 10 tum (26 cm) kablar
Steg 3: Infraröda och ultraljudssensorer
Därefter är den infraröda sensorn (på robotens vänstra sida) och ultraljudssensorn (till höger). Dessutom de 4 stiften för att fästa brickan ovanpå.
De infraröda och ultraljudssensorerna är placerade vertikalt istället för den normala horisontalen. Detta ger bättre identifiering av hörnen eller ändarna på väggarna.
Steg 4: Kablar
Fäst brickan och anslut kablarna enligt följande:
- Port B: vänster stor motor.
- Port C: höger stor motor.
- Port 2: ultraljudssensor.
- Port 3: färggivare.
- Port 4: infraröd sensor.
Steg 5: Sista steget i att bygga roboten: dekoration
Vingarna och fenorna är endast för dekoration.
Steg 6: Pseudokod för programmet
- Vänta 3 sekunder och säg "Go".
- Starta roboten röra sig rakt fram.
- Om det är möjligt att svänga till vänster (dvs om den infraröda sensorn inte känner av ett föremål i närheten), säg “Vänster” och gå till vänster.
- Gå fram cirka 15 cm för att undvika en falsk vänster sväng. Anledningen är att efter att roboten har vänt, skulle sensorn se det långa utrymmet den just hade kommit ifrån, och roboten skulle tro att den skulle svänga åt vänster, vilket inte är rätt att göra. Gå tillbaka till steg 2.
- Om det inte är möjligt att svänga till vänster, kontrollera vad Färgsensorn ser framför roboten.
- Om det inte finns någon färg (dvs. inget objekt), gå sedan tillbaka till steg 2.
- Om färgen är röd är detta utgången. Stoppa roboten, spela en fanfare och stoppa programmet.
-
Om färgen är brun (dvs. brun kartong framåt), stoppa roboten.
- Om det är möjligt att svänga till höger (dvs om ultraljudssensorn inte känner av ett föremål i närheten), säg "Höger" och gå åt höger. Gå tillbaka till steg 2.
- Om det inte är möjligt att svänga till höger, säg "Uh-oh", backa cirka 5 tum (12,5 cm) och vänd dig om. Gå tillbaka till steg 2.
Steg 7: Programmera
LEGO Mindstorms EV3 har en mycket bekväm ikonbaserad programmeringsmetod. Block visas längst ner på skärmen på datorn och kan dras och släppas in i programmeringsfönstret för att bygga ett program. Skärmbilden visar programmet för detta projekt. Blocken beskrivs i nästa steg.
Jag kunde inte räkna ut hur jag installerar nedladdning av programmet till er, så blocken beskrivs i nästa steg. Varje block har alternativ och parametrar. Det är väldigt enkelt och mångsidigt. Det bör inte ta mycket tid för dig att utveckla programmet och/eller ändra det för att passa dina behov. Som alltid är det en bra idé att spara programmet regelbundet när du utvecklar det.
EV3 Brick kan anslutas till datorn antingen med en USB-kabel, Wi-Fi eller Bluetooth. När den är ansluten och påslagen indikeras detta i ett litet fönster i det nedre högra hörnet av EV3-fönstret på datorn. "EV3" på höger sida blir röd. När den här skärmen är inställd på Port View visar den i realtid vad varje sensor upptäcker. Detta är användbart för att experimentera.
När jag bygger detta program föreslår jag att arbeta från vänster till höger och uppifrån och ner, och att förstora loop- och switchblock innan du drar andra block inuti. Jag stötte på röriga problem när jag försökte sätta in ytterligare block innanför förstoringen.
Steg 8: Programblock
- Med start på vänster sida av programmet finns startblocket automatiskt när ett program utvecklas.
- Därefter är ett väntblock, för att ge oss 3 sekunder för att placera roboten vid ingången till labyrinten, efter att ha startat programmet.
- Ett ljudblock får roboten att säga”Go”.
- Ett loopblock innehåller det mesta av programmet. Displayen ska zooma ut 4 eller 5 gånger och detta loopblock bör förstoras nästan till höger kant av programmeringsduken innan du börjar sätta i block. Det kan göras mindre efteråt.
- Det första blocket inuti slingan är ett Move Steering Block med styrningen inställd på noll och Power inställd på 20. Detta startar motorerna som körs rakt fram med låg hastighet. En snabbare hastighet skulle få roboten att gå för långt när den fortsätter framåt medan den talar i efterföljande steg.
- Ett switchblock i det infraröda sensorns närhetsläge kontrollerar om det finns något föremål längre än värdet 30. Detta motsvarar cirka 9 tum (23 cm) för brun kartong. Om värdet är större än 30 körs block 7, 8 och 9, annars går programmet till block 10 nedan.
- Ett ljudblock får roboten att säga”vänster”.
- A Move Steering Block med styrningen inställd på -45, Power inställd på 20, Rotations satt till 1,26 och Brake at End inställd på True. Detta gör att roboten svänger vänster.
- A Move Steering Block med styrningen inställd på noll, Power inställd på 20, Rotations inställd på 1,2 och Broms vid slutet inställd på True. Detta gör att roboten går fram cirka 15 cm för att undvika en falsk vänster sväng.
- Ett switchblock i färgsensormätningen Color Mode kontrollerar vilken färg som ligger före roboten. Om det inte finns någon färg (dvs. inget objekt) går programmet till slutet av slingan. Om färgen är röd körs block 11, 12 och 13. Om färgen är brun går programmet till block 14 nedan.
- A Move Steering Block i Av -läge för att stoppa motorerna.
- Ett ljudblock spelar en fanfare.
- Ett Loop Interrupt -block lämnar loopet.
- A Move Steering Block i Av -läge för att stoppa motorerna.
- Ett switchblock i ultraljudssensorn Jämför Distance Inches -läge kontrollerar om det finns något föremål längre än 20 cm. Om det är mer än 8 tum körs block16 och 17, annars går programmet till block 18 nedan.
- Ett ljudblock får roboten att säga”rätt”.
- Ett Move Steering Block med styrningen inställd på -55, Power inställd på -20, Rotations inställd på 1.1 och Brake at End inställd på True. Detta får roboten att svänga åt höger.
- Ett ljudblock får roboten att säga "Uh-oh."
- A Move Tank Block med Power Left inställd på -20, Power Right inställd på -20, Rotations inställd på 1 och Broms vid slutet inställd på True. Detta gör att roboten backar cirka 12,5 cm för att få plats att vända.
- A Move Tank Block med Power Left inställd på -20, Power Right inställd på 20, Rotations inställd på 1.14 och Brake at End inställd på True. Detta får roboten att vända.
- Vid utgången av slingan finns ett stoppprogramblock.
Steg 9: BYGG ETT LABURET
Två wellpappkartonger bör räcka för labyrinten. Jag gjorde labyrintväggarna 12,5 cm höga, men 10 cm borde fungera lika bra om du saknar wellpapp.
Först skar jag runt kartongernas väggar, 25 cm från botten. Sedan skar jag runt väggarna 5 tum från botten. Detta ger flera 5-tums väggar. Jag skar också runt kartongernas bottnar och lämnade cirka 2,5 cm (2,5 cm) fäst på väggarna för stabilitet.
De olika bitarna kan klippas och limas eller tejpas där det behövs för att bilda labyrinten. Det bör finnas ett 30 cm mellanrum mellan väggarna i alla vägar med en återvändsgränd. Detta avstånd behövs för att roboten ska vända.
Några av labyrintens hörn kan behöva förstärkas. Vissa raka väggar måste också undvikas att böjas om de inkluderar ett rakt kartonghörn. Små bitar av tunn kartong ska limmas i botten på dessa platser, som visas.
Utgången har en röd barriär bestående av ett halvt rött gratulationskortkuvert och en sockel gjord av 2 bitar tunn kartong, som visas.
En försiktighet är att labyrinten inte ska vara stor. Om robotens svängar har en liten vinkel från den rätta, ökar avvikelserna efter några varv. Till exempel, om en vänstervridning är 3 grader avstängd, kommer roboten att stanna 15 grader efter fem vänstervarv. En stor labyrint skulle ha fler svängar och en längre väg än en liten, och roboten kunde springa in i väggarna. Jag var tvungen att tjata flera gånger med rotationsinställningarna för svängarna för att få en lyckad körning genom till och med den lilla labyrinten jag gjorde.
FRAMTIDA FÖRBÄTTRINGAR
Ett uppenbart uppföljningsprojekt är att göra roboten i stånd att bestämma en direkt väg genom labyrinten medan den navigerar och sedan köra denna direkta väg (undvika återvändsgränder) direkt efteråt.
Detta är mycket mer komplicerat än det pågående projektet. Roboten måste komma ihåg den väg den har färdats, ta bort återvändsgränder, lagra den nya vägen och följ sedan den nya vägen. Jag planerar att arbeta med detta projekt inom en snar framtid. Jag förväntar mig att det är möjligt att åstadkomma med LEGO Mindstorms EV3 med hjälp av Array Operations Block och några matematikrelaterade block.
SLUTSATSANMÄRKNING
Det här var ett roligt projekt. Jag hoppas att du också tycker att det är intressant.
Rekommenderad:
Boe Bot navigerar genom en labyrint: 4 steg
Boe Bot navigerar genom en labyrint: Den här instruktören hjälper dig att skapa stötfångare för boe -bot och den kommer att ge dig koden som navigerar boe -bot genom labyrinten
HackerBox 0043: Falkens labyrint: 9 steg
HackerBox 0043: Falken's Maze: Hälsningar till HackerBox Hackare runt om i världen! HackerBox 0043 ger oss inbäddad webbkameraströmning, kondensatorkretsar, mikroservo-pan-tilt-enheter och mycket mer. Denna instruktionsbok innehåller information för att komma igång med HackerBox 0043, w
Gädda - kör säkrare, kör smartare, kör en gädda !: 5 steg
Gädda - kör säkrare, kör smartare, kör gädda !: Välkommen till mitt projekt som heter gädda! Detta är ett projekt som en del av min utbildning. Jag är student NMCT på Howest i Belgien. Målet var att göra något smart med en Raspberry Pi. Vi hade fullständig frihet där vi ville göra smart. För mig var det
Kör alla batteridrivna föremål genom växelström: 4 steg
Kör ett batteridrivet föremål via nätström .: Har du aldrig haft tillräckligt med batterier för ett objekt? Eller har du någonsin tappat adaptern för ett objekt och ville använda den igen? Eller vill du bara göra några häftiga gnistor i ditt rum?
Servokontrollerad marmor labyrint: 5 steg (med bilder)
Servo Controlled Marble Maze: Detta är en version av den klassiska marmorlabyrinten (det finns val i vägen), där pannan och lutningen styrs av hobbyservos. Med servon kan du arbeta labyrinten med en R/C -kontroller eller en dator etc. Vi byggde den här för att användas med TeleToyl