Inhaltsverzeichnis:

LEGO Roboter fährt durch ein Labyrinth - Gunook
LEGO Roboter fährt durch ein Labyrinth - Gunook

Video: LEGO Roboter fährt durch ein Labyrinth - Gunook

Video: LEGO Roboter fährt durch ein Labyrinth - Gunook
Video: NXT - Roboter fährt durch Labyrinth 2024, November
Anonim
Image
Image
Basis des Roboters
Basis des Roboters

Dies ist ein einfacher, autonomer Roboter, der entwickelt wurde, um durch ein Labyrinth zu einem Ausgang zu fahren. Es wurde mit LEGO Mindstorms EV3 gebaut. Die EV3-Software läuft auf einem Computer und generiert ein Programm, das dann auf einen Mikrocontroller namens EV3-Stein heruntergeladen wird. Die Programmiermethode ist symbolbasiert und auf hohem Niveau. Es ist sehr einfach und vielseitig.

TEILE

  1. LEGO Mindstorms EV3-Set
  2. LEGO Mindstorms EV3-Ultraschallsensor. Es ist nicht im EV3-Set enthalten.
  3. Wellpappe für das Labyrinth. Zwei Kartons sollten ausreichen.
  4. Ein kleines Stück dünner Karton, um einige Ecken und Wände zu stabilisieren.
  5. Kleber und Klebeband, um Kartonteile miteinander zu verbinden.
  6. Ein roter Grußkarten-Umschlag, um den Ausgang des Labyrinths zu identifizieren.

WERKZEUGE

  1. Universalmesser zum Schneiden des Kartons.
  2. Stahllineal zur Unterstützung des Schneidvorgangs.

LABYRINTH-LÖSUNGSVERFAHREN

Es gibt verschiedene Methoden, um durch ein Labyrinth zu navigieren. Wenn Sie daran interessiert sind, sie zu studieren, werden sie im folgenden Wikipedia-Artikel sehr gut beschrieben:

Ich habe mich für die linke Wandfolgeregel entschieden. Die Idee ist, dass der Roboter eine Wand auf seiner linken Seite hält, indem er die folgenden Entscheidungen trifft, während er durch das Labyrinth geht:

  1. Wenn es möglich ist, nach links abzubiegen, tun Sie dies.
  2. Andernfalls fahren Sie wenn möglich geradeaus.
  3. Wenn es nicht nach links oder geradeaus gehen kann, biegen Sie nach Möglichkeit rechts ab.
  4. Wenn keines der oben genannten möglich ist, muss dies eine Sackgasse sein. Dreh dich um.

Eine Vorsichtsmaßnahme ist, dass die Methode fehlschlagen könnte, wenn das Labyrinth eine Schleife enthält. Abhängig von der Platzierung der Schleife könnte der Roboter um die Schleife herumlaufen. Eine mögliche Lösung für dieses Problem wäre, dass der Roboter auf die rechte Wandfolger-Regel umschaltet, wenn er erkennt, dass er sich in einer Schleife bewegt. Diese Verfeinerung habe ich nicht in mein Projekt aufgenommen.

SCHRITTE ZUM AUFBAU DES ROBOTERS

Obwohl LEGO Mindstorms EV3 sehr vielseitig ist, erlaubt es nicht mehr als einen Sensor von jedem Typ an einen Stein anzuschließen. Zwei oder mehr Bricks könnten in Reihe geschaltet werden, aber ich wollte keinen weiteren Brick kaufen und habe daher die folgenden Sensoren (statt drei Ultraschallsensoren) verwendet: Infrarotsensor, Farbsensor und Ultraschallsensor. Das hat gut geklappt. Die folgenden Fotopaare zeigen, wie der Roboter gebaut wird. Das erste Foto jedes Paares zeigt die benötigten Teile und das zweite Foto zeigt die gleichen miteinander verbundenen Teile.

Schritt 1: Basis des Roboters

Basis des Roboters
Basis des Roboters

Der erste Schritt besteht darin, die Basis des Roboters mit den gezeigten Teilen zu bauen. Die Roboterbasis wird verkehrt herum dargestellt. Das kleine L-förmige Teil an der Rückseite des Roboters ist eine Stütze für den Rücken. Es gleitet, während sich der Roboter bewegt. Das funktioniert in Ordnung. Das EV3-Kit hat kein Rolling-Ball-Typ-Teil.

Schritt 2: Oberseite der Basis

Oberseite der Basis
Oberseite der Basis
Oberseite der Basis
Oberseite der Basis
Oberseite der Basis
Oberseite der Basis

Die nächsten 3 Schritte beziehen sich auf die Oberseite der Basis des Roboters, den Farbsensor und die Kabel, die alle 10 Zoll (26 cm) Kabel sind

Schritt 3: Infrarot- und Ultraschallsensoren

Infrarot- und Ultraschallsensoren
Infrarot- und Ultraschallsensoren
Infrarot- und Ultraschallsensoren
Infrarot- und Ultraschallsensoren

Als nächstes kommen der Infrarotsensor (auf der linken Seite des Roboters) und der Ultraschallsensor (auf der rechten Seite). Auch die 4 Pins zum Befestigen des Bricks oben.

Die Infrarot- und Ultraschallsensoren befinden sich vertikal statt der normalen horizontalen. Dies ermöglicht eine bessere Erkennung der Ecken oder Enden der Wände.

Schritt 4: Kabel

Kabel
Kabel

Bringen Sie den Brick an und schließen Sie die Kabel wie folgt an:

  • Port B: linker großer Motor.
  • Port C: rechter großer Motor.
  • Anschluss 2: Ultraschallsensor.
  • Anschluss 3: Farbsensor.
  • Port 4: Infrarotsensor.

Schritt 5: Letzter Schritt beim Bau des Roboters: Dekoration

Letzter Schritt beim Bau des Roboters: Dekoration
Letzter Schritt beim Bau des Roboters: Dekoration
Letzter Schritt beim Bau des Roboters: Dekoration
Letzter Schritt beim Bau des Roboters: Dekoration
Letzter Schritt beim Bau des Roboters: Dekoration
Letzter Schritt beim Bau des Roboters: Dekoration

Die Flügel und Flossen dienen nur der Dekoration.

Schritt 6: Pseudocode für das Programm

  1. Warten Sie 3 Sekunden und sagen Sie „Los“.
  2. Starten Sie den Roboter, sich geradeaus zu bewegen.
  3. Wenn es möglich ist, nach links abzubiegen (d. h. wenn der Infrarotsensor kein Objekt in der Nähe erkennt), sagen Sie „Links“und gehen Sie nach links.
  4. Gehen Sie ungefähr 15 cm vorwärts, um eine falsche Linkskurve zu vermeiden. Der Grund dafür ist, dass der Sensor, nachdem sich der Roboter gedreht hat, die lange Strecke sehen würde, aus der er gerade gekommen ist, und der Roboter denkt, dass er nach links abbiegen sollte, was nicht richtig ist. Gehen Sie zurück zu Schritt 2.
  5. Wenn es nicht möglich ist, nach links abzubiegen, überprüfen Sie, was der Farbsensor vor dem Roboter sieht.
  6. Wenn keine Farbe (d. h. kein Objekt) vorhanden ist, gehen Sie zurück zu Schritt 2.
  7. Wenn die Farbe Rot ist, ist dies der Ausgang. Stoppen Sie den Roboter, spielen Sie eine Fanfare und stoppen Sie das Programm.
  8. Wenn die Farbe Braun ist (d. h. brauner Karton voraus), dann stoppen Sie den Roboter.

    1. Wenn es möglich ist, nach rechts abzubiegen (d. h. wenn der Ultraschallsensor kein Objekt in der Nähe erkennt), sagen Sie „Rechts“und gehen Sie nach rechts. Gehen Sie zurück zu Schritt 2.
    2. Wenn es nicht möglich ist, nach rechts abzubiegen, sagen Sie „Oh-oh“, gehen Sie ungefähr 12,5 cm zurück und drehen Sie sich um. Gehen Sie zurück zu Schritt 2.

Schritt 7: Programm

Programm
Programm

LEGO Mindstorms EV3 verfügt über eine sehr praktische, symbolbasierte Programmiermethode. Blöcke werden am unteren Bildschirmrand des Computers angezeigt und können per Drag-and-Drop in das Programmierfenster gezogen werden, um ein Programm zu erstellen. Der Screenshot zeigt das Programm für dieses Projekt. Die Blöcke werden im nächsten Schritt beschrieben.

Ich konnte nicht herausfinden, wie ich das Herunterladen des Programms für Sie einrichten kann, und daher werden die Blöcke im nächsten Schritt beschrieben. Jeder Block hat Optionen und Parameter. Es ist sehr einfach und vielseitig. Es sollte nicht viel Zeit in Anspruch nehmen, das Programm zu entwickeln und/oder an Ihre Bedürfnisse anzupassen. Wie immer ist es eine gute Idee, das Programm bei der Entwicklung regelmäßig zu speichern.

Der EV3-Stein kann entweder über ein USB-Kabel, Wi-Fi oder Bluetooth mit dem Computer verbunden werden. Wenn es angeschlossen und eingeschaltet ist, wird dies in einem kleinen Fenster in der unteren rechten Ecke des EV3-Fensters auf dem Computer angezeigt. Das „EV3“ganz rechts wird rot. Wenn dieses Display auf Port View eingestellt ist, zeigt es in Echtzeit an, was jeder Sensor erkennt. Dies ist nützlich zum Experimentieren.

Beim Erstellen dieses Programms würde ich vorschlagen, von links nach rechts und von oben nach unten zu arbeiten und die Loop- und Switch-Blöcke zu vergrößern, bevor andere Blöcke hineingezogen werden. Ich hatte unordentliche Probleme, als ich versuchte, zusätzliche Blöcke vor dem Vergrößern einzufügen.

Schritt 8: Programmblöcke

  1. Beginnend auf der linken Seite des Programms ist der Startblock automatisch vorhanden, wenn ein Programm entwickelt wird.
  2. Als nächstes folgt ein Warteblock, um uns nach dem Starten des Programms 3 Sekunden Zeit zu geben, um den Roboter am Eingang des Labyrinths zu platzieren.
  3. Ein Soundblock lässt den Roboter „Go“sagen.
  4. Ein Loop-Block enthält den größten Teil des Programms. Die Anzeige sollte 4 oder 5 Mal verkleinert werden und dieser Loop-Block sollte fast bis zum rechten Rand des Programmierbereichs vergrößert werden, bevor Sie mit dem Einfügen von Blöcken beginnen. Es kann später kleiner gemacht werden.
  5. Der erste Block innerhalb des Loops ist ein Move-Lenkblock, bei dem die Lenkung auf Null und die Leistung auf 20 eingestellt ist. Dadurch laufen die Motoren mit niedriger Geschwindigkeit geradeaus. Eine höhere Geschwindigkeit würde den Roboter zu weit bewegen lassen, wenn er in nachfolgenden Schritten vorwärts spricht.
  6. Ein Schalterblock im Infrarotsensor-Näherungsmodus prüft, ob sich ein Objekt weiter als den Wert 30 befindet. Dies entspricht ungefähr 23 cm bei braunem Karton. Wenn der Wert größer als 30 ist, werden die Blöcke 7, 8 und 9 ausgeführt, ansonsten geht das Programm zu Block 10 darunter.
  7. Ein Soundblock lässt den Roboter „Links“sagen.
  8. A Lenkblock bewegen, wobei die Lenkung auf -45, die Leistung auf 20, die Drehungen auf 1,26 und die Bremse am Ende auf Wahr eingestellt ist. Dadurch biegt der Roboter nach links ab.
  9. A Lenkblock bewegen, wobei die Lenkung auf Null, die Leistung auf 20, die Drehungen auf 1,2 und die Bremse am Ende auf Wahr eingestellt sind. Dadurch bewegt sich der Roboter etwa 15 cm vorwärts, um eine falsche Linkskurve zu vermeiden.
  10. Ein Schalterblock im Farbsensor-Farbmessungsmodus prüft, welche Farbe dem Roboter voraus ist. Wenn keine Farbe (d. h. kein Objekt) vorhanden ist, geht das Programm zum Ende der Schleife. Wenn die Farbe Rot ist, werden die Blöcke 11, 12 und 13 ausgeführt. Wenn die Farbe Braun ist, geht das Programm zu Block 14 unten.
  11. A Bewegen Sie den Lenkblock in den Aus-Modus, um die Motoren zu stoppen.
  12. Ein Soundblock spielt eine Fanfare.
  13. Ein Schleifenunterbrechungsblock verlässt die Schleife.
  14. A Bewegen Sie den Lenkblock in den Aus-Modus, um die Motoren zu stoppen.
  15. Ein Schalterblock im Ultraschallsensor-Abstandsvergleichsmodus prüft, ob sich ein Objekt weiter als 20 cm (8 Zoll) befindet. Wenn es mehr als 8 Zoll beträgt, werden die Blöcke 16 und 17 ausgeführt, andernfalls geht das Programm zu Block 18 unten.
  16. Ein Soundblock lässt den Roboter „Rechts“sagen.
  17. A Lenkblock bewegen, wobei die Lenkung auf -55, die Leistung auf -20, die Drehungen auf 1,1 und die Bremse am Ende auf Wahr eingestellt ist. Dadurch biegt der Roboter nach rechts ab.
  18. Ein Soundblock lässt den Roboter „Uh-oh“sagen.
  19. A Move Tank Block mit Power Left auf -20, Power Right auf -20, Rotations auf 1 und Brake at End auf True gesetzt. Dadurch hebt sich der Roboter etwa 12,5 cm zurück, um Platz zum Wenden zu schaffen.
  20. A Move Tank Block mit Power Left auf -20, Power Right auf 20, Rotations auf 1,14 und Brake at End auf True gesetzt. Dadurch dreht sich der Roboter um.
  21. Am Ausgang der Schleife befindet sich ein Stoppprogrammblock.

Schritt 9: BAUE ein Labyrinth

BAUE ein Labyrinth
BAUE ein Labyrinth
BAUE ein Labyrinth
BAUE ein Labyrinth
BAUE ein Labyrinth
BAUE ein Labyrinth

Zwei Kartons aus Wellpappe sollten für das Labyrinth ausreichen. Ich habe die Labyrinthwände 5 Zoll (12,5 cm) hoch gemacht, aber 4 Zoll (10 cm) sollten genauso gut funktionieren, wenn Sie wenig Wellpappe haben.

Zuerst schneide ich um die Wände der Kartons herum, 25 cm vom Boden entfernt. Dann schneide ich um die Wände 5 Zoll von unten. Dies bietet mehrere 5-Zoll-Wände. Außerdem schneide ich um den Boden der Kartons herum und lasse etwa 2,5 cm an den Wänden für Stabilität.

Die verschiedenen Teile können geschnitten und geklebt oder geklebt werden, wo immer es erforderlich ist, um das Labyrinth zu bilden. In jedem Weg mit Sackgasse sollte ein Abstand von 30 cm zwischen den Wänden sein. Diese Distanz wird benötigt, damit sich der Roboter umdrehen kann.

Einige der Ecken des Labyrinths müssen möglicherweise verstärkt werden. Außerdem müssen einige gerade Wände vom Biegen abgehalten werden, wenn sie eine begradigte Kartonecke enthalten. An diesen Stellen sollten wie abgebildet kleine Stücke dünner Pappe auf den Boden geklebt werden.

Der Ausgang hat eine rote Absperrung, bestehend aus einem halben roten Grußkarten-Umschlag und einer Unterlage aus 2 Stück dünnem Karton, wie abgebildet.

Eine Vorsichtsmaßnahme ist, dass das Labyrinth nicht groß sein sollte. Wenn die Drehungen des Roboters in einem leichten Winkel von der richtigen sind, summieren sich die Abweichungen nach einigen Drehungen. Wenn zum Beispiel eine Linkskurve um 3 Grad abweicht, dann fährt der Roboter nach 5 Linkskurven um 15 Grad ab. Ein großes Labyrinth hätte mehr Kurven und einen längeren Weg als ein kleines, und der Roboter könnte gegen die Wände laufen. Ich musste mehrmals an den Rotationseinstellungen der Kurven herumfummeln, um auch durch das kleine Labyrinth, das ich gemacht habe, eine erfolgreiche Fahrt zu erzielen.

ZUKÜNFTIGE VERBESSERUNGEN

Ein naheliegendes Folgeprojekt ist es, den Roboter in die Lage zu versetzen, während der Navigation einen direkten Weg durch das Labyrinth zu bestimmen und diesen direkten Weg (ohne Sackgassen) direkt danach zu fahren.

Das ist viel komplizierter als das aktuelle Projekt. Der Roboter muss sich den zurückgelegten Weg merken, Sackgassen entfernen, den neuen Weg speichern und dann dem neuen Weg folgen. Ich plane, in naher Zukunft an diesem Projekt zu arbeiten. Ich gehe davon aus, dass es mit LEGO Mindstorms EV3 möglich ist, Array Operations Blocks und einige mathematische Blöcke zu verwenden.

SCHLUSSBEMERKUNG

Dies war ein lustiges Projekt. Ich hoffe, Sie finden es auch interessant.

Empfohlen: