Inhoudsopgave:

LEGO Robot rijdt door een doolhof - Ajarnpa
LEGO Robot rijdt door een doolhof - Ajarnpa

Video: LEGO Robot rijdt door een doolhof - Ajarnpa

Video: LEGO Robot rijdt door een doolhof - Ajarnpa
Video: Mindstorms robot rijdt door gebouw 2024, Juli-
Anonim
Image
Image
Basis van de robot
Basis van de robot

Dit is een eenvoudige, autonome robot die is ontworpen om door een doolhof naar een uitgang te rijden. Het is gebouwd met behulp van LEGO Mindstorms EV3. De EV3-software draait op een computer en genereert een programma, dat vervolgens wordt gedownload naar een microcontroller die een EV3-steen wordt genoemd. De programmeermethode is op pictogrammen gebaseerd en van hoog niveau. Het is heel gemakkelijk en veelzijdig.

ONDERDELEN

  1. LEGO Mindstorms EV3-set
  2. LEGO Mindstorms EV3 ultrasone sensor. Het is niet inbegrepen in de EV3-set.
  3. Golfkarton voor het doolhof. Twee dozen zouden voldoende moeten zijn.
  4. Een klein stukje dun karton om sommige hoeken en muren te stabiliseren.
  5. Lijm en tape om kartonnen stukken aan elkaar te verbinden.
  6. Een rode wenskaartenvelop om de uitgang van het doolhof te identificeren.

GEREEDSCHAP

  1. Utility mes om het karton te snijden.
  2. Stalen liniaal om het snijproces te vergemakkelijken.

MAZE-OPLOSSING METHODE

Er zijn verschillende manieren om door een doolhof te navigeren. Als je ze wilt bestuderen, worden ze heel goed beschreven in het volgende Wikipedia-artikel:

Ik koos voor de linker muurvolger regel. Het idee is dat de robot een muur aan zijn linkerkant houdt door de volgende beslissingen te nemen terwijl hij door het doolhof gaat:

  1. Als het mogelijk is om linksaf te slaan, doe dat dan.
  2. Ga anders indien mogelijk rechtdoor.
  3. Als het niet naar links of rechtdoor kan, sla dan indien mogelijk rechtsaf.
  4. Als geen van bovenstaande mogelijk is, moet dit een doodlopende weg zijn. Omdraaien.

Een waarschuwing is dat de methode kan mislukken als het doolhof een lus bevat. Afhankelijk van de plaatsing van de lus, kan de robot rond en rond de lus blijven draaien. Een mogelijke oplossing voor dit probleem zou zijn dat de robot zou overschakelen naar de rechter muurvolgerregel als hij zich realiseerde dat hij in een lus ging. Ik heb deze verfijning niet in mijn project opgenomen.

STAPPEN VOOR HET BOUWEN VAN DE ROBOT

Hoewel LEGO Mindstorms EV3 zeer veelzijdig is, kan er niet meer dan één van elk type sensor op één steen worden aangesloten. Twee of meer Bricks kunnen in serie worden geschakeld, maar ik wilde geen andere Brick kopen, en dus gebruikte ik de volgende sensoren (in plaats van drie ultrasone sensoren): infraroodsensor, kleurensensor en ultrasone sensor. Dit is goed gelukt. De foto's hieronder laten zien hoe je de robot bouwt. De eerste foto van elk paar toont de benodigde onderdelen, en de tweede foto toont dezelfde onderdelen met elkaar verbonden.

Stap 1: Basis van de robot

Basis van de robot
Basis van de robot

De eerste stap is om de basis van de robot te bouwen met behulp van de getoonde onderdelen. De robotbasis wordt ondersteboven weergegeven. Het kleine L-vormige deel aan de achterkant van de robot is een ondersteuning voor de rug. Het schuift terwijl de robot beweegt. Dit werkt oké. De EV3-kit heeft geen onderdeel van het rollende bal-type.

Stap 2: Bovenkant van de basis

Top van de basis
Top van de basis
Top van de basis
Top van de basis
Top van de basis
Top van de basis

De volgende 3 stappen zijn voor de bovenkant van de basis van de robot, de kleurensensor en de kabels, allemaal 10 inch (26 cm) kabels

Stap 3: Infrarood- en ultrasone sensoren

Infrarood- en ultrasone sensoren
Infrarood- en ultrasone sensoren
Infrarood- en ultrasone sensoren
Infrarood- en ultrasone sensoren

Vervolgens zijn de infraroodsensor (aan de linkerkant van de robot) en de ultrasone sensor (aan de rechterkant). Ook de 4 pinnen voor het bevestigen van de Brick bovenop.

De infrarood- en ultrasone sensoren zijn verticaal geplaatst in plaats van de normale horizontale. Dit zorgt voor een betere identificatie van de hoeken of uiteinden van de muren.

Stap 4: Kabels

Kabels
Kabels

Bevestig de Brick en sluit de kabels als volgt aan:

  • Poort B: linker grote motor.
  • Poort C: rechts grote motor.
  • Poort 2: ultrasone sensor.
  • Poort 3: kleurensensor.
  • Poort 4: infraroodsensor.

Stap 5: Laatste stap bij het bouwen van de robot: decoratie

Laatste stap bij het bouwen van de robot: decoratie
Laatste stap bij het bouwen van de robot: decoratie
Laatste stap bij het bouwen van de robot: decoratie
Laatste stap bij het bouwen van de robot: decoratie
Laatste stap bij het bouwen van de robot: decoratie
Laatste stap bij het bouwen van de robot: decoratie

De vleugels en vinnen zijn alleen ter decoratie.

Stap 6: Pseudocode voor het programma

  1. Wacht 3 seconden en zeg "Go".
  2. Zet de robot recht vooruit.
  3. Als het mogelijk is om linksaf te slaan (d.w.z. als de infraroodsensor geen object in de buurt waarneemt), zeg dan "Links" en ga naar links.
  4. Ga ongeveer 15 cm vooruit om een valse bocht naar links te vermijden. De reden is dat nadat de robot is gedraaid, de sensor de lange ruimte zou zien waar hij net vandaan was gekomen, en de robot zou denken dat hij naar links zou moeten draaien, wat niet het juiste is om te doen. Ga terug naar stap 2.
  5. Als het niet mogelijk is om linksaf te slaan, controleer dan wat de kleursensor voor de robot ziet.
  6. Als er geen kleur is (d.w.z. geen object), ga dan terug naar stap 2.
  7. Als de kleur Rood is, is dit de uitgang. Stop de robot, speel een fanfare en stop het programma.
  8. Als de kleur bruin is (d.w.z. bruin karton vooruit), stop dan de robot.

    1. Als het mogelijk is om rechtsaf te slaan (d.w.z. als de ultrasone sensor geen object in de buurt waarneemt), zeg dan "Rechts" en ga naar rechts. Ga terug naar stap 2.
    2. Als het niet mogelijk is om rechtsaf te slaan, zeg dan "Uh-oh", ga ongeveer 12,5 cm achteruit en draai je om. Ga terug naar stap 2.

Stap 7: Programmeren

Programma
Programma

LEGO Mindstorms EV3 heeft een zeer handige op pictogrammen gebaseerde programmeermethode. Blokken worden onder aan het scherm van de computer weergegeven en kunnen worden gesleept en neergezet in het programmeervenster om een programma te bouwen. De schermafbeelding toont het programma voor dit project. De blokken worden beschreven in de volgende stap.

Ik kon er niet achter komen hoe ik het downloaden van het programma voor jullie moest instellen, en daarom worden de blokken in de volgende stap beschreven. Elk blok heeft opties en parameters. Het is heel gemakkelijk en veelzijdig. Het zou niet veel tijd moeten kosten om het programma te ontwikkelen en/of aan te passen aan uw behoeften. Zoals altijd is het een goed idee om het programma tijdens de ontwikkeling regelmatig op te slaan.

De EV3-steen kan via een USB-kabel, wifi of Bluetooth op de computer worden aangesloten. Wanneer het is aangesloten en ingeschakeld, wordt dit aangegeven in een klein venster in de rechterbenedenhoek van het EV3-venster op de computer. De "EV3" aan de rechterkant wordt rood. Wanneer dit display is ingesteld op Port View, toont het in realtime wat elke sensor detecteert. Dit is handig om te experimenteren.

Bij het bouwen van dit programma zou ik willen voorstellen om van links naar rechts en van boven naar beneden te werken en de Loop- en Switch-blokken te vergroten voordat je andere blokken naar binnen sleept. Ik kwam rommelige problemen tegen toen ik probeerde extra blokken in te voegen voordat ik ze vergroot.

Stap 8: Programmablokken

  1. Beginnend aan de linkerkant van het programma is het Startblok automatisch aanwezig wanneer een programma wordt ontwikkeld.
  2. Het volgende is een wachtblok, om ons 3 seconden te geven om de robot bij de ingang van het doolhof te plaatsen, nadat het programma is gestart.
  3. Een geluidsblok laat de robot "Go" zeggen.
  4. Een Loop Block bevat het grootste deel van het programma. Het scherm moet 4 of 5 keer worden uitgezoomd en dit Loop Block moet bijna tot aan de rechterrand van het programmeercanvas worden vergroot voordat u blokken gaat invoegen. Het kan daarna kleiner gemaakt worden.
  5. Het eerste blok binnen de Loop is een Move Steering Block met de Steering op nul en de Power op 20. Hierdoor gaan de motoren met lage snelheid recht vooruit lopen. Een hogere snelheid zou ervoor zorgen dat de robot te ver beweegt wanneer hij vooruitgaat terwijl hij in volgende stappen spreekt.
  6. Een schakelblok in de nabijheidsmodus van de infraroodsensor controleert of er een object is dat verder is dan een waarde van 30. Dit komt overeen met ongeveer 23 cm voor bruin karton. Als de waarde groter is dan 30, dan worden blokken 7, 8 en 9 uitgevoerd, anders gaat het programma naar blok 10 hieronder.
  7. Een geluidsblok laat de robot "Links" zeggen.
  8. Een stuurblok verplaatsen waarbij de besturing is ingesteld op -45, het vermogen is ingesteld op 20, de rotaties is ingesteld op 1,26 en de rem aan het einde is ingesteld op True. Hierdoor draait de robot naar links.
  9. Een stuurblok verplaatsen met de besturing ingesteld op nul, vermogen ingesteld op 20, rotaties ingesteld op 1,2 en remmen aan het einde ingesteld op waar. Hierdoor gaat de robot ongeveer 15 cm naar voren om een valse bocht naar links te voorkomen.
  10. Een schakelblok in de kleursensor Meet kleurmodus controleert welke kleur de robot voor is. Als er geen kleur is (d.w.z. geen object), gaat het programma naar het einde van de lus. Als de kleur rood is, worden blokken 11, 12 en 13 uitgevoerd. Als de kleur Bruin is, gaat het programma naar Blok 14 hieronder.
  11. A Zet het stuurblok in de uit-modus om de motoren te stoppen.
  12. A Sound Block speelt een fanfare.
  13. Een Loop Interrupt Block verlaat de Loop.
  14. A Zet het stuurblok in de uit-modus om de motoren te stoppen.
  15. Een schakelblok in de ultrasone sensor Vergelijk afstand Inches-modus controleert of er een object is dat zich verder dan 20 cm bevindt. Als het meer dan 8 inch is, worden blokken 16 en 17 uitgevoerd, anders gaat het programma naar blok 18 hieronder.
  16. Een geluidsblok laat de robot "Juist" zeggen.
  17. Een stuurblok verplaatsen waarbij de besturing is ingesteld op -55, het vermogen is ingesteld op -20, de rotaties is ingesteld op 1,1 en de rem aan het einde is ingesteld op True. Hierdoor draait de robot naar rechts.
  18. Een geluidsblok laat de robot "Uh-oh" zeggen.
  19. Een Move Tank Block met Power Left ingesteld op -20, Power Right ingesteld op -20, Rotaties ingesteld op 1 en Brake at End ingesteld op True. Hierdoor gaat de robot ongeveer 12,5 cm achteruit om ruimte te maken om te draaien.
  20. Een Move Tank Block met Power Left ingesteld op -20, Power Right ingesteld op 20, Rotaties ingesteld op 1,14 en Brake at End ingesteld op True. Hierdoor draait de robot zich om.
  21. Bij de uitgang van de Loop is een Stop Programma Blok.

Stap 9: BOUW een MAZE

BOUW EEN DOOLHOOFD
BOUW EEN DOOLHOOFD
BOUW EEN DOOLHOOFD
BOUW EEN DOOLHOOFD
BOUW EEN DOOLHOOFD
BOUW EEN DOOLHOOFD

Twee golfkartonnen dozen zouden voldoende moeten zijn voor het doolhof. Ik heb de doolhofmuren 12,5 cm hoog gemaakt, maar 10 cm zou net zo goed moeten werken als je een tekort aan golfkarton hebt.

Eerst sneed ik rond de wanden van de dozen, 10 inch (25 cm) vanaf de onderkant. Daarna sneed ik rond de muren 5 inch vanaf de onderkant. Dit zorgt voor meerdere 5-inch muren. Ook sneed ik rond de bodems van de dozen, waarbij ik ongeveer 2,5 cm (1 inch) aan de muren liet voor stabiliteit.

De verschillende stukken kunnen worden gesneden en gelijmd of geplakt waar nodig om het doolhof te vormen. Er moet een ruimte van 30 cm tussen de muren zijn in elk pad met een doodlopende weg. Deze afstand is nodig om de robot te laten omdraaien.

Sommige hoeken van het doolhof moeten mogelijk worden versterkt. Ook moeten sommige rechte wanden niet buigen als ze een rechtgebogen kartonnen hoek hebben. Op die plaatsen moeten kleine stukjes dun karton op de bodem worden gelijmd, zoals afgebeeld.

De uitgang heeft een rode slagboom bestaande uit een halve rode wenskaartenvelop en een bodem van 2 stukken dun karton, zoals afgebeeld.

Een waarschuwing is dat het doolhof niet groot mag zijn. Als de bochten van de robot een kleine hoek maken met de juiste, tellen de verschillen na een paar bochten op. Als een bocht naar links bijvoorbeeld 3 graden afwijkt, gaat de robot na 5 bochten naar links 15 graden af. Een groot doolhof zou meer bochten en een langer pad hebben dan een klein, en de robot zou tegen de muren kunnen rennen. Ik moest verschillende keren spelen met de rotatie-instellingen van de bochten om zelfs door het kleine doolhof dat ik maakte een succesvolle rit te krijgen.

TOEKOMSTIGE VERBETERINGEN

Een voor de hand liggend vervolgproject is om de robot in staat te stellen een direct pad door het doolhof te bepalen terwijl hij het navigeert, en vervolgens dit directe pad (doodlopende wegen vermijdend) direct daarna te rijden.

Dit is veel ingewikkelder dan het huidige project. De robot moet het pad onthouden dat hij heeft afgelegd, doodlopende wegen verwijderen, het nieuwe pad opslaan en vervolgens het nieuwe pad volgen. Ik ben van plan om in de nabije toekomst aan dit project te werken. Ik verwacht dat het mogelijk is om dit te bereiken met LEGO Mindstorms EV3 met behulp van Array Operations Blocks en enkele wiskundegerelateerde Blocks.

SLOTOPMERKING

Dit was een leuk project. Ik hoop dat u het ook interessant vindt.

Aanbevolen: