Projekt 10: Lego Mindstorms Sumo Competition

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Im Rahmen des Elektrotechnik Fachpraktikum war es unsere Aufgabe eine SuGO-Bot Arena nach vorgegebenen Maßen (SuGO Homepage) zu bauen, die Roboter mit dem EV3 Set zu konstruieren und anschließend mit Matlab zu programmieren.

Am Projekt mitgearbeitet haben: Manuel Groß und Hendrik Pabst


Einleitung

Der Ablauf des Projektes beinhaltete folgende Punkte:

  1. Beschaffung der Komponenten (EV3 und SuGO Arena)
  2. Aufbau der Arena
  3. Konstruktion der Roboter
  4. Programmierung der Roboter


Hardware

Der Aufbau der Hardware wurde wie folgt realisiert:


SuGO Arena

SuGO Arena












Für den Aufbau der Arena wurden folgende Materialien benötigt:

  1. 1m² Holzplatte (dick genug das Gewicht von 2 SuGO Robotern halten zu können)
  2. 1m² weiße Klebefolie
  3. 900cm² schwarzes Klebeband
  4. 70cm² rotes Klebeband

Als erstes sägt man die Platte auf einen Kreis mit 45,72cm Radius zu. Danach werden Stützbeine mit ca 8cm Höhe angebracht. Optional kann die Arena auch anders angehoben werden (z.B. durch einen Pappkarton). Dann wird die weiße Folie auf die Oberseite der Arena geklebt. Der schwarze Rand der Arena wird mit dem Klebeband realisiert (Breite 3.2cm). Als letztes werden die Startmarkierungen mit rotem Klebeband erstellt (10.2cm lang, 1.28cm breit).

EV3 Roboter

EV3 Roboter












Für das Projekt werden 2 Roboter benötigt. Auf der folgenden Seite gibt es Vorlagen für verschiedene Roboter. Wir haben den SimpleSuGObot und den SuGObot_03 benutzt und die SuGO Eyes jeweils durch einen Ultraschallsensor ersetzt.

Der Ultraschallsensor wird benötigt um den Gegner zu orten. Außerdem wird mindestens 1 (besser 2) Farbsensor benötigt um den Arenarand zu erkennen.

Software

Zur Programmierung gehörten folgende Punkte:

Auswahl einer Entwicklungsumgebung

Bei der Programmierung mit Matlab haben wir das Matlab Toolkit der QUT genutzt.

Hierzu werden verschiedene Prärequisiten benötigt:

  1. Konfiguration des Matlab Mexx Compilers (hierzu wird das Microsoft Windows SDK 7.1 benötigt
  2. Download der Matlab Code Dateien von der Seite des Matlab EV3 Toolkits
  3. Die hidapi.dll muss vor der Verwendung unter Umständen neu kompiliert werden (bei Windows 32 Bit Benutzern oder wenn Matlab die DLL nicht öffnen kann

Verbindung zum EV3 erstellen

Sofern die oben genannten Punkte erfüllt sind, ist es möglich eine USB Verbindung zwischen Matlab und EV3 herzustellen.

Dazu nutzen wir den Befehl "b = Brick('ioType','usb')". Auf der Toolkit Website findet man weitere Befehle und Programmbeispiele.

Erstellen des Programmes

Bei der Erstellung des Programmes haben wir folgende Voraussetzungen gestellt:

  1. Der Roboter muss bei erkanntem Rand die Fahrrichtung ändern
  2. Wenn über Ultraschall ein Gegner erkannt wird soll ein Angriff eingeleitet werden

Anschließend sind wir zu folgendem Code gekommen:

SuGO Bot Matlab Code


Zwischen den Befehlen die den EV3 ansprechen wird jeweils eine Pause von ca 100µs benötigt, da die Verbindung sonst abbrechen kann. Wenn der Farbsensor den Rand erkennt, wird ein Algorithmus ausgeführt, durch welchen der Roboter ein Stück zurückfährt und sich anschließend dreht. Wenn der Ultraschallsensor den Gegner sensiert, werden die Motoren beschleunigt, um den Gegner zu attackieren. Wenn keines der Ereignisse eintritt fährt der Roboter geradeaus.

Feedback und Verbesserungsvorschläge zum Artikel

Prof. Dr. Mirek Göbel am 31.01.2014:

  • Bitte eine Seite zu "Lego Mindstorms EV3" erstellen und darin Ihre Infos dazu darlegen
  • Erläutern Sie Ihren Quellcode (z. B. per ausführlicher Kommentare)
  • Nutzen Sie Aufzählungen mit Bullet-Points o. ä., wenn Sie Dinge im Text aufzählen.