Indholdsfortegnelse:

LEGO Robot kører igennem en labyrint: 9 trin
LEGO Robot kører igennem en labyrint: 9 trin

Video: LEGO Robot kører igennem en labyrint: 9 trin

Video: LEGO Robot kører igennem en labyrint: 9 trin
Video: HURTIGSTE Spisere I Verden! 🤯 2024, Juli
Anonim
Image
Image
Robotens bund
Robotens bund

Dette er en simpel, autonom robot designet til at køre gennem en labyrint til en udgang. Det er bygget ved hjælp af LEGO Mindstorms EV3. EV3 -softwaren kører på en computer og genererer et program, som derefter downloades til en mikrokontroller kaldet en EV3 Brick. Programmeringsmetoden er ikonbaseret og på højt niveau. Det er meget let og alsidigt.

DELE

  1. LEGO Mindstorms EV3 sæt
  2. LEGO Mindstorms EV3 ultralydssensor. Det er ikke inkluderet i EV3 -sættet.
  3. Bølgepap til labyrinten. To kartoner bør være tilstrækkelige.
  4. Et lille stykke tyndt pap, der hjælper med at stabilisere nogle hjørner og vægge.
  5. Lim og tape til at forbinde papstykker sammen.
  6. En rød lykønskningskonvolut til identifikation af labyrintens udgang.

VÆRKTØJ

  1. Brugskniv til at skære pap.
  2. Stållineal til hjælp ved skæringsprocessen.

MAZE-LØSNINGSMETODE

Der er flere metoder til at navigere i en labyrint. Hvis du er interesseret i at studere dem, beskrives de meget godt i følgende Wikipedia -artikel:

Jeg valgte den venstre væg-tilhænger-regel. Ideen er, at robotten vil holde en væg på sin venstre side ved at træffe følgende beslutninger, når den går gennem labyrinten:

  1. Hvis det er muligt at dreje til venstre, gør det.
  2. Ellers skal du gå direkte, hvis det er muligt.
  3. Hvis det ikke kan gå til venstre eller lige, skal du dreje til højre, hvis det er muligt.
  4. Hvis ingen af ovenstående er mulige, må dette være en blindgyde. Vend om.

En forsigtighed er, at metoden kan mislykkes, hvis labyrinten har en loop i den. Afhængigt af placeringen af sløjfen kunne robotten blive ved med at gå rundt og rundt om løkken. En mulig løsning på dette problem ville være, at robotten skiftede til den højre væg-tilhænger-regel, hvis den indså, at den gik i en loop. Jeg inkluderede ikke denne forfining i mit projekt.

TRIN TIL BYGNING AF ROBOTEN

Selvom LEGO Mindstorms EV3 er meget alsidig, tillader den ikke mere end en af hver type sensor, der er forbundet til en mursten. To eller flere mursten kunne være daisy-lænket, men jeg ville ikke købe en anden mursten, og derfor brugte jeg følgende sensorer (i stedet for tre ultralydssensorer): infrarød sensor, farvesensor og ultralydssensor. Dette fungerede godt. Billederne herunder viser, hvordan man bygger robotten. Det første foto af hvert par viser de nødvendige dele, og det andet foto viser de samme dele forbundet.

Trin 1: Robotens bund

Bunden af robotten
Bunden af robotten

Det første trin er at bygge robotens base ved hjælp af de viste dele. Robotbasen vises på hovedet. Den lille L-formede del bag på robotten er en støtte til ryggen. Den glider, når robotten bevæger sig. Dette fungerer okay. EV3-sættet har ikke en kugleformet del.

Trin 2: Øverst på basen

Toppen af basen
Toppen af basen
Toppen af basen
Toppen af basen
Toppen af basen
Toppen af basen

De næste 3 trin er til toppen af bunden af robotten, farvesensoren og kablerne, som alle er 10 tommer (26 cm) kabler

Trin 3: Infrarøde og ultralydssensorer

Infrarøde og ultralydssensorer
Infrarøde og ultralydssensorer
Infrarøde og ultralydssensorer
Infrarøde og ultralydssensorer

Dernæst er den infrarøde sensor (på robotens venstre side) og ultralydssensoren (til højre). Også de 4 ben til fastgørelse af mursten ovenpå.

De infrarøde og ultralydssensorer er placeret lodret i stedet for den normale vandrette. Dette giver en bedre identifikation af væggenes hjørner eller ender.

Trin 4: Kabler

Kabler
Kabler

Fastgør murstenen og tilslut kablerne som følger:

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

Trin 5: Sidste trin i opbygningen af robotten: dekoration

Sidste trin i opbygningen af robotten: dekoration
Sidste trin i opbygningen af robotten: dekoration
Sidste trin i opbygningen af robotten: dekoration
Sidste trin i opbygningen af robotten: dekoration
Sidste trin i opbygningen af robotten: dekoration
Sidste trin i opbygningen af robotten: dekoration

Vingerne og finnerne er kun til pynt.

Trin 6: Pseudokode for programmet

  1. Vent 3 sekunder og sig "Gå".
  2. Start robotten med at bevæge sig lige frem.
  3. Hvis det er muligt at dreje til venstre (dvs. hvis den infrarøde sensor ikke fornemmer et objekt i nærheden), skal du sige "Venstre" og gå til venstre.
  4. Gå frem cirka 15 cm for at undgå en falsk venstresving. Årsagen er, at efter at robotten har drejet, ville sensoren se det lange rum, den lige var kommet fra, og robotten ville synes, at den skulle dreje til venstre, hvilket ikke er det rigtige at gøre. Gå tilbage til trin 2.
  5. Hvis det ikke er muligt at dreje til venstre, skal du kontrollere, hvad farvesensoren ser foran robotten.
  6. Hvis der ikke er nogen farve (dvs. ingen genstand), skal du gå tilbage til trin 2.
  7. Hvis farven er rød, er dette exit. Stop robotten, spil en fanfare, og stop programmet.
  8. Hvis farven er brun (dvs. brun pap foran), skal du stoppe robotten.

    1. Hvis det er muligt at dreje til højre (dvs. hvis ultralydssensoren ikke fornemmer et objekt i nærheden), skal du sige "Højre" og gå til højre. Gå tilbage til trin 2.
    2. Hvis det ikke er muligt at dreje til højre, skal du sige "Uh-oh", sikkerhedskopiere ca. 12,5 cm og vende om. Gå tilbage til trin 2.

Trin 7: Programmer

Program
Program

LEGO Mindstorms EV3 har en meget praktisk ikonbaseret programmeringsmetode. Blokke vises nederst på skærmen på computeren og kan trækkes og slippes ind i programmeringsvinduet for at opbygge et program. Skærmbilledet viser programmet for dette projekt. Blokkene beskrives i det næste trin.

Jeg kunne ikke finde ud af, hvordan jeg konfigurerede download af programmet til jer, og derfor beskrives blokerne i det næste trin. Hver blok har muligheder og parametre. Det er meget let og alsidigt. Det bør ikke tage meget tid for dig at udvikle programmet og/eller ændre det, så det passer til dine behov. Som altid er det en god idé at gemme programmet med jævne mellemrum, når det udvikles.

EV3-klodsen kan tilsluttes computeren enten med et USB-kabel, Wi-Fi eller Bluetooth. Når den er tilsluttet og tændt, angives dette i et lille vindue i nederste højre hjørne af EV3-vinduet på computeren. "EV3" i højre side bliver rød. Når denne skærm er indstillet til Port View, viser den i realtid, hvad hver sensor registrerer. Dette er nyttigt til at eksperimentere.

Når jeg bygger dette program, vil jeg foreslå at arbejde fra venstre mod højre og top til bund og at forstørre sløjfe- og switchblokke, før du trækker andre blokke indeni. Jeg stødte på rodede problemer med at forsøge at indsætte yderligere blokke inden, før jeg forstørrede.

Trin 8: Programblokke

  1. Startende i venstre side af programmet er startblokken automatisk til stede, når et program udvikles.
  2. Næste er en venteblok, der giver os 3 sekunder til at placere robotten ved indgangen til labyrinten, efter at programmet er startet.
  3. En lydblok får robotten til at sige “Gå”.
  4. En Loop Block indeholder det meste af programmet. Displayet skal zoomes ud 4 eller 5 gange, og denne loop -blok skal forstørres næsten til højre kant af programmeringslærredet, før du begynder at indsætte blokke. Det kan gøres mindre bagefter.
  5. Den første blok inde i sløjfen er en bevægelsesstyringsblok med styringen indstillet til nul og effekt indstillet til 20. Dette starter motorerne ligeud ved lav hastighed. En hurtigere hastighed ville få robotten til at bevæge sig for langt, når den fortsætter fremad, mens den taler i efterfølgende trin.
  6. En switchblok i den infrarøde sensor nærhedstilstand kontrollerer, om der er et objekt længere end værdien 30. Dette svarer til cirka 9 tommer (23 cm) for brunt pap. Hvis værdien er større end 30, udføres blok 7, 8 og 9, ellers går programmet til blok 10 nedenfor.
  7. En lydblok får robotten til at sige “Venstre”.
  8. En Move -styreblok med styringen indstillet til -45, Power indstillet til 20, Rotations indstillet til 1,26 og Brake ved slutningen indstillet til True. Dette får robotten til at dreje til venstre.
  9. En Move Steering Block med styringen indstillet til nul, Power indstillet til 20, Rotations indstillet til 1.2 og Brake ved slutningen indstillet til True. Dette får robotten til at gå frem omkring 15 cm for at undgå en falsk venstresving.
  10. En switchblok i farvesensoren Mål Color Mode kontrollerer, hvilken farve der er foran robotten. Hvis der ikke er nogen farve (dvs. ingen genstand), går programmet til slutningen af sløjfen. Hvis farven er rød, udføres blok 11, 12 og 13. Hvis farven er brun, går programmet til blok 14 nedenfor.
  11. A Move Steering Block i Off Mode for at stoppe motorerne.
  12. En lydblok spiller en fanfare.
  13. En Loop Interrupt Block forlader Loop.
  14. A Move Steering Block i Off Mode for at stoppe motorerne.
  15. En switchblok i ultralydssensoren Sammenlign Distance Inches -tilstand kontrollerer, om der er et objekt længere end 20 cm. Hvis det er mere end 8 tommer, udføres Blocks16 og 17, ellers går programmet til blok 18 nedenfor.
  16. En lydblok får robotten til at sige “Rigtigt”.
  17. En Move -styreblok med styringen indstillet til -55, Power indstillet til -20, Rotations indstillet til 1.1 og Brake for enden indstillet til True. Dette får robotten til at dreje til højre.
  18. En lydblok får robotten til at sige "Uh-oh."
  19. A Move Tank Block med Power Left indstillet til -20, Power Right indstillet til -20, Rotations indstillet til 1, og Brake ved slutningen indstillet til True. Dette får robotten til at bakke op omkring 12,5 cm for at give plads til at vende om.
  20. En Move Tank Block med Power Left indstillet til -20, Power Right indstillet til 20, Rotations indstillet til 1.14 og Brake ved slutningen indstillet til True. Dette får robotten til at vende.
  21. Ved afslutningen af sløjfen er der en stopprogramblok.

Trin 9: BYG EN MAZE

BYG EN MAZE
BYG EN MAZE
BYG EN MAZE
BYG EN MAZE
BYG EN MAZE
BYG EN MAZE

To bølgepapkartoner skulle være tilstrækkelige til labyrinten. Jeg lavede labyrintvæggene 12,5 cm høje, men 10 cm skulle fungere lige så godt, hvis du mangler bølgepap.

Først skar jeg rundt om kartonernes vægge, 25 cm fra bunden. Derefter skar jeg rundt om væggene 5 tommer fra bunden. Dette giver flere 5-tommer vægge. Jeg skar også rundt om kartonernes bund og efterlod omkring 2,5 cm fastgjort til væggene for at sikre stabilitet.

De forskellige stykker kan skæres og limes eller tapes, hvor det er nødvendigt for at danne labyrinten. Der bør være et mellemrum på 12 tommer (30 cm) mellem væggene i enhver sti med en blindgyde. Denne afstand er nødvendig for robotten at vende om.

Nogle af hjørnerne på labyrinten skal muligvis forstærkes. Nogle lige vægge skal også undgå at bøje, hvis de indeholder et rettet kartonhjørne. Små stykker tynd pap skal limes til bunden på disse steder, som vist.

Udgangen har en rød barriere bestående af en halv rød lykønskningskonvolut og en base lavet af 2 stykker tynd pap, som vist.

En forsigtighed er, at labyrinten ikke skal være stor. Hvis robotens sving er i en lille vinkel fra den rigtige, tilføjer uoverensstemmelserne sig efter et par omgange. For eksempel, hvis et venstresving er 3 grader slukket, går robotten efter fem venstresving 15 grader fra. En stor labyrint ville have flere sving og en længere sti end en lille, og robotten kunne løbe ind i væggene. Jeg var nødt til flere gange at rode med rotationsindstillingerne på svingene for at få en vellykket køretur gennem selv den lille labyrint, jeg lavede.

FREMTIDIGE FORBEDRINGER

Et oplagt opfølgningsprojekt er at gøre robotten i stand til at bestemme en direkte vej gennem labyrinten, mens den navigerer, og derefter køre denne direkte vej (undgå blindgange) lige bagefter.

Dette er meget mere kompliceret end det nuværende projekt. Robotten skal huske den vej, den har kørt, fjerne blindgange, gemme den nye sti og derefter følge den nye sti. Jeg planlægger at arbejde på dette projekt i den nærmeste fremtid. Jeg forventer, at det er muligt at opnå med LEGO Mindstorms EV3 ved hjælp af Array Operations Blocks og nogle matematikrelaterede blokke.

AFSLUTTENDE BEMÆRKNING

Dette var et sjovt projekt. Jeg håber, at du også finder det interessant.

Anbefalede: