Innehållsförteckning:

LEGO Robot kör genom en labyrint: 9 steg
LEGO Robot kör genom en labyrint: 9 steg

Video: LEGO Robot kör genom en labyrint: 9 steg

Video: LEGO Robot kör genom en labyrint: 9 steg
Video: Octopus Intelligence Experiment Takes an Unexpected Turn 2024, November
Anonim
Image
Image
Robotens bas
Robotens bas

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

  1. LEGO Mindstorms EV3 -set
  2. LEGO Mindstorms EV3 ultraljudssensor. Det ingår inte i EV3 -setet.
  3. Wellpapp för labyrinten. Två kartonger bör räcka.
  4. En liten bit tunn kartong för att stabilisera vissa hörn och väggar.
  5. Lim och tejp för att ansluta kartongbitar ihop.
  6. Ett rött gratulationskortkuvert för att identifiera utgången från labyrinten.

VERKTYG

  1. Verktygskniv för att skära kartongen.
  2. 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:

  1. Om det är möjligt att svänga vänster, gör det.
  2. Annars, gå direkt om möjligt.
  3. Om det inte går åt vänster eller rakt, sväng höger, om möjligt.
  4. 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

Robotens bas
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

Överst på basen
Överst på basen
Överst på basen
Överst på basen
Överst på basen
Ö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

Infraröda och ultraljudssensorer
Infraröda och ultraljudssensorer
Infraröda och ultraljudssensorer
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

Kablar
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

Sista steget i att bygga roboten: dekoration
Sista steget i att bygga roboten: dekoration
Sista steget i att bygga roboten: dekoration
Sista steget i att bygga roboten: dekoration
Sista steget i att bygga roboten: dekoration
Sista steget i att bygga roboten: dekoration

Vingarna och fenorna är endast för dekoration.

Steg 6: Pseudokod för programmet

  1. Vänta 3 sekunder och säg "Go".
  2. Starta roboten röra sig rakt fram.
  3. 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.
  4. 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.
  5. Om det inte är möjligt att svänga till vänster, kontrollera vad Färgsensorn ser framför roboten.
  6. Om det inte finns någon färg (dvs. inget objekt), gå sedan tillbaka till steg 2.
  7. Om färgen är röd är detta utgången. Stoppa roboten, spela en fanfare och stoppa programmet.
  8. Om färgen är brun (dvs. brun kartong framåt), stoppa roboten.

    1. 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.
    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

Program
Program

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

  1. Med start på vänster sida av programmet finns startblocket automatiskt när ett program utvecklas.
  2. 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.
  3. Ett ljudblock får roboten att säga”Go”.
  4. 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.
  5. 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.
  6. 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.
  7. Ett ljudblock får roboten att säga”vänster”.
  8. 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.
  9. 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.
  10. 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.
  11. A Move Steering Block i Av -läge för att stoppa motorerna.
  12. Ett ljudblock spelar en fanfare.
  13. Ett Loop Interrupt -block lämnar loopet.
  14. A Move Steering Block i Av -läge för att stoppa motorerna.
  15. 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.
  16. Ett ljudblock får roboten att säga”rätt”.
  17. 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.
  18. Ett ljudblock får roboten att säga "Uh-oh."
  19. 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.
  20. 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.
  21. Vid utgången av slingan finns ett stoppprogramblock.

Steg 9: BYGG ETT LABURET

BYGG ETT LABURET
BYGG ETT LABURET
BYGG ETT LABURET
BYGG ETT LABURET
BYGG ETT LABURET
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: