Projekt 10: Lego Mindstorms Sumo Competition: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(7 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Im Rahmen des Elektrotechnik Fachpraktikum war es unsere Aufgabe eine SuGO-Bot Arena nach vorgegebenen Maßen([http://www.sugobot.com/ SuGO Homepage]) zu bauen, die Roboter mit dem [http://www.lego.com/de-de/mindstorms/products/ev3/31313/ EV3] Set zu konstruieren und anschließend mit [http://www.mathworks.de/ Matlab] zu programmieren. | [[Kategorie:Projekte]] | ||
Im Rahmen des Elektrotechnik Fachpraktikum war es unsere Aufgabe eine SuGO-Bot Arena nach vorgegebenen Maßen ([http://www.sugobot.com/ SuGO Homepage]) zu bauen, die Roboter mit dem [http://www.lego.com/de-de/mindstorms/products/ev3/31313/ EV3] Set zu konstruieren und anschließend mit [http://www.mathworks.de/ Matlab] zu programmieren. | |||
Am Projekt mitgearbeitet haben: [http://193.175.248.56/wiki/index.php/Benutzer:Manuel_Gross Manuel Groß] und [http://193.175.248.56/wiki/index.php/Benutzer:Hendrik_Papst Hendrik Pabst] | Am Projekt mitgearbeitet haben: [http://193.175.248.56/wiki/index.php/Benutzer:Manuel_Gross Manuel Groß] und [http://193.175.248.56/wiki/index.php/Benutzer:Hendrik_Papst Hendrik Pabst] | ||
Zeile 7: | Zeile 8: | ||
== Einleitung == | == Einleitung == | ||
Der Ablauf des Projektes beinhaltete folgende Punkte: | Der Ablauf des Projektes beinhaltete folgende Punkte: | ||
#Beschaffung der Komponenten(EV3 und SuGO Arena) | #Beschaffung der Komponenten (EV3 und SuGO Arena) | ||
#Aufbau der Arena | #Aufbau der Arena | ||
#Konstruktion der Roboter | #Konstruktion der Roboter | ||
Zeile 30: | Zeile 31: | ||
#70cm² rotes 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). | 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). | 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 === | ||
Zeile 44: | Zeile 45: | ||
Wir haben den SimpleSuGObot und den SuGObot_03 benutzt und die SuGO Eyes jeweils durch einen Ultraschallsensor ersetzt. | Wir haben den SimpleSuGObot und den SuGObot_03 benutzt und die SuGO Eyes jeweils durch einen Ultraschallsensor ersetzt. | ||
Der [http://education.lego.com/de-de/lego-education-product-database/mindstorms-ev3/45504-ultrasonic-sensor Ultraschallsensor] wird benötigt um den Gegner zu orten. Außerdem wird mindestens 1(besser 2) [http://education.lego.com/de-de/lego-education-product-database/mindstorms-ev3/45506-color-sensor Farbsensor] benötigt um den Arenarand zu erkennen. | Der [http://education.lego.com/de-de/lego-education-product-database/mindstorms-ev3/45504-ultrasonic-sensor Ultraschallsensor] wird benötigt um den Gegner zu orten. Außerdem wird mindestens 1 (besser 2) [http://education.lego.com/de-de/lego-education-product-database/mindstorms-ev3/45506-color-sensor Farbsensor] benötigt um den Arenarand zu erkennen. | ||
== Software== | == Software== | ||
Zeile 55: | Zeile 56: | ||
Hierzu werden verschiedene Prärequisiten benötigt: | Hierzu werden verschiedene Prärequisiten benötigt: | ||
# | #Konfiguration des Matlab Mexx Compilers (hierzu wird das [http://www.mathworks.de/support/compilers/R2013a/index.html?sec=win64 Microsoft Windows SDK 7.1] benötigt | ||
#Download der Matlab Code Dateien von der Seite des Matlab EV3 Toolkits | #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 | #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 === | === Verbindung zum EV3 erstellen === | ||
Sofern die oben genannten Punkte erfüllt sind ist es möglich eine USB Verbindung zwischen Matlab und EV3 herzustellen. | 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. | Dazu nutzen wir den Befehl "b = Brick('ioType','usb')". Auf der Toolkit Website findet man weitere Befehle und Programmbeispiele. | ||
=== Erstellen des Programmes === | === Erstellen des Programmes === | ||
Zeile 82: | Zeile 80: | ||
Zwischen den Befehlen die den EV3 ansprechen wird jeweils eine Pause von ca 100µs benötigt, da die Verbindung sonst abbrechen kann. | 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 | 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 | 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. | Wenn keines der Ereignisse eintritt fährt der Roboter geradeaus. | ||
== Feedback und Verbesserungsvorschläge zum Artikel == | == Feedback und Verbesserungsvorschläge zum Artikel == | ||
* | |||
* Quellcode | [[Benuzter:Mirekgoebel|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. | |||
Aktuelle Version vom 22. Dezember 2014, 12:02 Uhr
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:
- Konfiguration 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ü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.