Projekt 10: Lego Mindstorms Sumo Competition
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:
- Beschaffung der Komponenten(EV3 und SuGO Arena)
- Aufbau der Arena
- Konstruktion der Roboter
- Programmierung der Roboter
Hardware
Der Aufbau der Hardware wurde wie folgt realisiert:
SuGO Arena
Für den Aufbau der Arena wurden folgende Materialien benötigt:
- 1m² Holzplatte (dick genug das Gewicht von 2 SuGO Robotern halten zu können)
- 1m² weiße Klebefolie
- 900cm² schwarzes Klebeband
- 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
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:
- Configuration des Matlab Mexx Compilers (hierzu wird das Microsoft Windows SDK 7.1 benötigt
- Download der Matlab Code Dateien von der Seite des Matlab EV3 Toolkits
- 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:
- Der Roboter muss bei erkanntem Rand die Fahrrichtung ändern
- Wenn über Ultraschall ein Gegner erkannt wird soll ein Angriff eingeleitet werden
Anschließend sind wir zu folgendem Code gekommen:
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ück fä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
--Ulrich Schneider (Diskussion) 11:38, 25. Jan. 2014 (CET)
- Korrigieren Sie alle orthographischen Fehler.
- Quellcode fehlerhaft eingebunden und nicht nach entsprechend der Coding Guidelines kodiert.
- ZIP Datei und somit ein Großteil der geforderten Dokumente fehlen.
- Lessons Learned fehlt
- PAP fehlt
- BOM fehlt
- Berechnung der Güte der Sensoren nach den bekannten Methoden der Messtechnik fehlt
- Regelwerk fehlt
- Zusammenfassung fehlt