Innholdsfortegnelse:

LEGO Robot driver gjennom en labyrint: 9 trinn
LEGO Robot driver gjennom en labyrint: 9 trinn

Video: LEGO Robot driver gjennom en labyrint: 9 trinn

Video: LEGO Robot driver gjennom en labyrint: 9 trinn
Video: СЕКРЕТНЫЙ КОД + СЕКРЕТ КОНЦОВКА 😈 РАДУЖНЫЕ ДРУЗЬЯ 2 ГЛАВА - НОВЫЙ ФИНАЛ ☠️ Rainbow Friends chapter 2 2024, November
Anonim
Image
Image
Robotens base
Robotens base

Dette er en enkel, autonom robot designet for å kjøre gjennom en labyrint til en avkjørsel. Den er bygget med LEGO Mindstorms EV3. EV3 -programvaren kjører på en datamaskin og genererer et program, som deretter lastes ned til en mikrokontroller kalt en EV3 -murstein. Programmeringsmetoden er ikonbasert og på høyt nivå. Det er veldig enkelt og allsidig.

DELER

  1. LEGO Mindstorms EV3 sett
  2. LEGO Mindstorms EV3 ultralydssensor. Det er ikke inkludert i EV3 -settet.
  3. Bølgepapp til labyrinten. To kartonger bør være tilstrekkelig.
  4. Et lite stykke tynn papp for å stabilisere noen hjørner og vegger.
  5. Lim og tape for å koble pappstykker sammen.
  6. En rød gratulasjonskortkonvolutt for å identifisere utgangen av labyrinten.

VERKTØY

  1. Verktøyskniv for å kutte papp.
  2. Linjal i stål for å hjelpe til med skjæreprosessen.

MAZE-LØSNINGSMETODE

Det er flere metoder for å navigere i en labyrint. Hvis du er interessert i å studere dem, er de veldig godt beskrevet i følgende Wikipedia -artikkel:

Jeg valgte den venstre veggfølgerregelen. Tanken er at roboten skal holde en vegg på venstre side ved å ta følgende beslutninger når den går gjennom labyrinten:

  1. Hvis det er mulig å svinge til venstre, gjør det.
  2. Ellers går du rett om mulig.
  3. Hvis det ikke kan gå til venstre eller rett, sving til høyre, hvis det er mulig.
  4. Hvis ingen av de ovennevnte er mulige, må dette være en blindvei. Snu.

En forsiktighet er at metoden kan mislykkes hvis labyrinten har en sløyfe i den. Avhengig av sløyfens plassering, kan roboten fortsette å gå rundt og rundt løkken. En mulig løsning på dette problemet ville være at roboten bytter til den høyre veggfølgerregelen hvis den innser at den går i en sløyfe. Jeg inkluderte ikke denne forbedringen i prosjektet mitt.

TRINN FOR Å BYGGE ROBOTEN

Selv om LEGO Mindstorms EV3 er veldig allsidig, tillater den ikke mer enn en av hver type sensor som er koblet til en murstein. To eller flere murstein kan være daisy-lenket, men jeg ønsket ikke å kjøpe en annen murstein, og derfor brukte jeg følgende sensorer (i stedet for tre ultralydsensorer): infrarød sensor, fargesensor og ultralydsensor. Dette fungerte bra. Fotoparene nedenfor viser hvordan du bygger roboten. Det første bildet av hvert par viser delene som trengs, og det andre bildet viser de samme delene som er koblet sammen.

Trinn 1: Robotens base

Robotens base
Robotens base

Det første trinnet er å bygge basen til roboten ved hjelp av delene som vises. Robotbasen vises opp ned. Den lille L-formede delen på baksiden av roboten er en støtte for ryggen. Den glir mens roboten beveger seg. Dette fungerer greit. EV3-settet har ikke en rullende balltype.

Trinn 2: Toppen av basen

Toppen av basen
Toppen av basen
Toppen av basen
Toppen av basen
Toppen av basen
Toppen av basen

De neste tre trinnene er for toppen av bunnen av roboten, fargesensoren og kablene, som alle er 10 tommer (26 cm) kabler

Trinn 3: Infrarøde og ultralydsensorer

Infrarøde og ultralydsensorer
Infrarøde og ultralydsensorer
Infrarøde og ultralydsensorer
Infrarøde og ultralydsensorer

Deretter er den infrarøde sensoren (på venstre side av roboten) og den ultralydssensoren (til høyre). Også de 4 pinnene for å feste mursteinen på toppen.

De infrarøde og ultralydsensorene er plassert vertikalt i stedet for normal horisontal. Dette gir bedre identifisering av hjørnene eller endene på veggene.

Trinn 4: Kabler

Kabler
Kabler

Fest mursteinen og koble til kablene som følger:

  • Port B: venstre stor motor.
  • Port C: høyre stor motor.
  • Port 2: ultralydssensor.
  • Port 3: fargesensor.
  • Port 4: infrarød sensor.

Trinn 5: Siste trinn i å bygge roboten: dekorasjon

Siste trinn i byggingen av roboten: dekorasjon
Siste trinn i byggingen av roboten: dekorasjon
Siste trinn i byggingen av roboten: dekorasjon
Siste trinn i byggingen av roboten: dekorasjon
Siste trinn i byggingen av roboten: dekorasjon
Siste trinn i byggingen av roboten: dekorasjon

Vingene og finnene er bare til pynt.

Trinn 6: Pseudokode for programmet

  1. Vent 3 sekunder og si "Gå".
  2. Start roboten bevege seg rett frem.
  3. Hvis det er mulig å svinge til venstre (dvs. hvis den infrarøde sensoren ikke føler et objekt i nærheten), si "Venstre" og gå til venstre.
  4. Gå frem omtrent 15 cm for å unngå en falsk venstresving. Årsaken er at etter at roboten har snudd, ville sensoren se den lange plassen den nettopp hadde kommet fra, og roboten ville tro at den skulle svinge til venstre, noe som ikke er riktig å gjøre. Gå tilbake til trinn 2.
  5. Hvis det ikke er mulig å svinge til venstre, sjekk hva fargesensoren ser foran roboten.
  6. Hvis det ikke er noen farge (dvs. ingen gjenstand), går du tilbake til trinn 2.
  7. Hvis fargen er rød, er dette utgangen. Stopp roboten, spill en fanfare, og stopp programmet.
  8. Hvis fargen er brun (dvs. brun papp foran), stopp roboten.

    1. Hvis det er mulig å svinge til høyre (dvs. hvis ultralydsensoren ikke føler et objekt i nærheten), si "Høyre" og gå til høyre. Gå tilbake til trinn 2.
    2. Hvis det ikke er mulig å svinge til høyre, si "Uh-oh", sikkerhetskopier ca. 12,5 cm og snu. Gå tilbake til trinn 2.

Trinn 7: Program

Program
Program

LEGO Mindstorms EV3 har en veldig praktisk ikonbasert programmeringsmetode. Blokker vises nederst på skjermen på datamaskinen og kan dra og slippes inn i programmeringsvinduet for å bygge et program. Skjermbildet viser programmet for dette prosjektet. Blokkene er beskrevet i neste trinn.

Jeg kunne ikke finne ut hvordan jeg skulle konfigurere nedlasting av programmet til dere, og derfor blir blokkene beskrevet i neste trinn. Hver blokk har alternativer og parametere. Det er veldig enkelt og allsidig. Det bør ikke ta mye tid før du utvikler programmet og/eller endrer det for å passe dine behov. Som alltid er det en god idé å lagre programmet med jevne mellomrom når du utvikler det.

EV3 Brick kan kobles til datamaskinen enten med en USB-kabel, Wi-Fi eller Bluetooth. Når den er tilkoblet og slått på, indikeres dette i et lite vindu i nedre høyre hjørne av EV3-vinduet på datamaskinen. "EV3" på høyre side blir rød. Når denne skjermen er satt til Port View, viser den i sanntid hva hver sensor oppdager. Dette er nyttig for å eksperimentere.

Når jeg bygger dette programmet, vil jeg foreslå å jobbe fra venstre til høyre og topp til bunn, og å forstørre sløyfe og bytteblokker før du drar andre blokker inn. Jeg løp inn i rotete problemer med å prøve å sette inn flere blokker inne før jeg forstørret.

Trinn 8: Programblokker

  1. Start på venstre side av programmet, og startblokken er automatisk tilstede når et program utvikles.
  2. Neste er en venteblokk, for å gi oss 3 sekunder til å plassere roboten ved inngangen til labyrinten, etter å ha startet programmet.
  3. En lydblokk får roboten til å si "Gå".
  4. A Loop Block inneholder det meste av programmet. Skjermen skal zoome ut 4 eller 5 ganger, og denne sløyfeblokken skal forstørres nesten til høyre kant av programmeringsduken før du begynner å sette inn blokker. Den kan gjøres mindre etterpå.
  5. Den første blokken inne i sløyfen er en flyttestyringsblokk med styringen satt til null og kraften satt til 20. Dette starter motorene som går rett frem ved lav hastighet. En raskere hastighet ville få roboten til å bevege seg for langt når den fortsetter fremover mens den snakker i påfølgende trinn.
  6. En bryterblokk i den infrarøde sensorens nærhetsmodus kontrollerer om det er noen gjenstander lenger enn verdien 30. Dette tilsvarer omtrent 9 tommer (23 cm) for brun papp. Hvis verdien er større enn 30, blir blokkene 7, 8 og 9 utført, ellers går programmet til blokk 10 nedenfor.
  7. En lydblokk får roboten til å si "Venstre."
  8. A Move Steering Block med styringen satt til -45, Power satt til 20, Rotations satt til 1.26, og Brake at End er satt til True. Dette får roboten til å svinge til venstre.
  9. A Move Steering Block med styringen satt til null, Power satt til 20, Rotations satt til 1.2, og Brake at End satt til True. Dette får roboten til å gå frem omtrent 15 cm for å unngå falsk venstresving.
  10. En bryterblokk i fargesensormål Fargemodus sjekker hvilken farge som er foran roboten. Hvis det ikke er noen farge (dvs. ingen objekt), går programmet til slutten av løkken. Hvis fargen er rød, blir blokkene 11, 12 og 13 utført. Hvis fargen er brun, går programmet til blokk 14 nedenfor.
  11. A Move Steering Block i Av -modus for å stoppe motorene.
  12. En lydblokk spiller en fanfare.
  13. En Loop Interrupt Block forlater loopet.
  14. A Move Steering Block i Av -modus for å stoppe motorene.
  15. En bryterblokk i ultralydsensoren Sammenlign distansetommemodus kontrollerer om det er et objekt lenger enn 20 cm. Hvis det er mer enn 8 tommer, blir blokkene 16 og 17 utført, ellers går programmet til blokk 18 nedenfor.
  16. En lydblokk får roboten til å si "Høyre".
  17. En Move Steering Block med styringen satt til -55, Power satt til -20, Rotations satt til 1.1, og Brake at End satt til True. Dette får roboten til å svinge til høyre.
  18. En lydblokk får roboten til å si "Uh-oh."
  19. A Move Tank Block med Power Left satt til -20, Power Right satt til -20, Rotations satt til 1, og Brake at End er satt til True. Dette får roboten til å sikkerhetskopiere omtrent 12,5 cm for å gi plass til å snu.
  20. A Move Tank Block med Power Left satt til -20, Power Right satt til 20, Rotations satt til 1.14, og Brake at End satt til True. Dette får roboten til å snu.
  21. Ved utgangen av løkken er en stoppprogramblokk.

Trinn 9: BYGG EN MAZE

BYGG EN MAZE
BYGG EN MAZE
BYGG EN MAZE
BYGG EN MAZE
BYGG EN MAZE
BYGG EN MAZE

To bølgepappkartonger skulle være tilstrekkelig for labyrinten. Jeg laget labyrintveggene 12,5 cm høye, men 10 cm burde fungere like bra hvis du mangler bølgepapp.

Først kuttet jeg rundt veggene i kartongene, 25 cm fra bunnen. Så kuttet jeg rundt veggene 5 tommer fra bunnen. Dette gir flere 5-tommers vegger. Jeg kuttet også rundt bunnene på kartongene og etterlot omtrent 2,5 cm festet til veggene for stabilitet.

De forskjellige bitene kan klippes og limes eller teipes der det trengs for å danne labyrinten. Det bør være et mellomrom på 12 tommer (30 cm) mellom veggene i alle stier med en blindvei. Denne avstanden er nødvendig for roboten å snu.

Noen av hjørnene på labyrinten må kanskje forsterkes. Noen rette vegger må også hindres i å bøye seg hvis de inkluderer et rett kartonghjørne. Små biter av tynn papp skal limes til bunnen på disse stedene, som vist.

Utgangen har en rød barriere bestående av en halv rød gratulasjonskortkonvolutt og en base laget av 2 stykker tynn papp, som vist.

En forsiktighet er at labyrinten ikke skal være stor. Hvis robotens svinger er i en liten vinkel fra den riktige, vil avvikene øke etter noen få svinger. For eksempel, hvis en venstresving er 3 grader av, går roboten 15 grader av etter 5 venstre svinger. En stor labyrint ville ha flere svinger og en lengre sti enn en liten, og roboten kunne løpe inn i veggene. Jeg måtte fikle flere ganger med rotasjonsinnstillingene på svingene for å få en vellykket kjøretur gjennom selv den lille labyrinten jeg laget.

FREMTIDIGE FORBEDRINGER

Et åpenbart oppfølgingsprosjekt er å gjøre roboten i stand til å bestemme en direkte bane gjennom labyrinten mens du navigerer i den, og deretter kjøre denne direkte banen (unngå blindveier) rett etterpå.

Dette er mye mer komplisert enn det nåværende prosjektet. Roboten må huske stien den har reist, fjerne blindveier, lagre den nye banen og deretter følge den nye banen. Jeg planlegger å jobbe med dette prosjektet i nær fremtid. Jeg forventer at det er mulig å oppnå med LEGO Mindstorms EV3 ved hjelp av Array Operations Blocks og noen matematikkrelaterte blokker.

AVSLUTTENDE MERKNAD

Dette var et morsomt prosjekt. Jeg håper du også synes det er interessant.

Anbefalt: