Projekt 33: Lego Mindstorms Rocket Launcher: Unterschied zwischen den Versionen
Zeile 222: | Zeile 222: | ||
|5 Sekunden | |5 Sekunden | ||
|2,7 Sekunden | |2,7 Sekunden | ||
|- | |||
|Abschussvorgang: Abbruch möglich? | |||
|Nein | |||
|Ja | |||
|- | |- | ||
|Mobilität | |Mobilität |
Version vom 20. Januar 2015, 20:00 Uhr
Autoren: Fabian Lehnert, Tim Dienwiebel, Reinhold Fischer
Betreuer: Prof. Schneider
Aufgabe
Konstruieren und bauen Sie einen zweiachsigen Rocket-Launcher und nehmen Sie diesen mit LM NXT/EV3 in Betrieb.
Erwartungen an Ihre Projektlösung
- Analysieren Sie die Funktionsweise eines USB-Rocket-Launchers.
- Entwickeln Sie einen Rocket-Launcher für NXT und EV3.
- Konstruieren Sie das Gerät und lassen Sie es ggf. fertigen.
- Beschaffen Sie die notwendigen Bauteile.
- Binden Sie den Rocket Launcher an einen NXT oder EV3 an.
- Ansteuerung der Motoren in 2 Achsen.
- Auslesen von internen Lagesensoren zur Bestimmung der Ausrichtung des Raketenwerfers.
- Sequentielles Auslösen von 4 Schüssen.
- Ansteuerung via Matlab und Simulink.
- Wiss. Dokumentation der Lösung und Funktionsnachweis
- Live Vorführung während der Abschlusspräsentation
Schwierigkeitsgrad
Anspruchsvoll (***)
Weiterführende Links
- NXT Hardware Development Kit (toter Link)
→ zurück zum Hauptartikel: Fachpraktikum Elektrotechnik (WS 14/15)
Dokumentation
Einführung
Dieses Projekt bildet den Grundstein für zukünftige Projekte und wurde innerhalb des GET Fachpraktikums im 5. Semester des Mechatronik Studiengangs bearbeitet. Aufgabe war es, einen für gewöhnlich nur über PC-Software ansteuerbaren USB Rocket Launcher in ein EV3 System einzubinden. Der volle Funktionsumfang von einer zweiachsigen Beweglichkeit und der Abschussfunktion von 4 Pfeilen musste unbedingt erhalten bleiben. Des Weiteren wurde Teamintern sehr viel Wert darauf gelegt, dass die Lösung sehr leicht und unkompliziert in zukünftige Lego EV3/NXT Projekte implementiert werden kann. Außerdem wurde auf eine einfache und benutzerfreundliche Wartung und Instandhaltung geachtet.
Projektziel
Das Ziel des Projekt 33 EV3 Rocket Launcher ist es, einen zweiachsigen Rocket Launcher zu entwerfen und zu erbauen, welcher über den EV3 ansteuerbar und über Matlab/Simulin programmierbar ist.
Projektdurchführung
Verwendete Komponente
Für dieses Projekt wurden in erster Linie das Lego MINDSTORMS education EV3 Basis-Set (45544) und das Ergänzungs-Set (45560) sowie der USB-Raketenwerfer 'Thunder' verwendet. Außerdem wurden Elemente zum Bau einer Platine verwendet. Diese sind im Kapitel 'Elektrischer Aufbau und Komponenten' aufgeführt.
Mechanischer Aufbau
In Abbildung 1 und 2 ist der fertige Aufbau des USB-Rocket-Launchers zu sehen. Die Bauanleitung ist dem Wiki-Bericht unter „Konstruktion des EV3-Rocket-Launchers“ angehängt. Zu erkennen sind die unveränderte Abschussvorrichtung des USB-Rocket-Launchers [1] sowie die über einen Lego-Konstrukt geschützte, selbst entworfene, gefertigte und bestückte Platine [2]. Die Ultiboard sowie die Gerber Dateien zur Fertigung der Platine sind dem Artikel ebenfalls unter "Schaltplan und Platine" angehängt. Des Weiteren ist die Steckverbindung zwischen der Abschussvorrichtung und der Adapterplatine zu sehen [3], sodass man für eine eventuelle Reparatur bequem die komplette Platine abnehmen kann, ohne löten zu müssen. Um Beschädigungen an den Lötstellen vorzubeugen, wurde eine Zugentlastung der Kabel aus Lego-Komponenten realisiert [4]. Die NXT-Buchse [5] wurde Zentral platziert, sodass sie die Beweglichkeit nicht einschränkt. Die Bedienung erfolgt übe die Pfeiltasten der EV3 Steuerung [6]. Die Programmierung kann sowohl über die EV3 Software, als auch über Matlab/Simulink erfolgen. Eine Ansteuerung über die EV3-App von einem Mobilen Endgerät ist ebenfalls möglich. Diese erfordert keine Programmvorgabe. Die Beispielprogramme in EV3 und Matlab/Simulink sind dem Wiki-Bericht unter „Programmbeispiele“ angehängt.
Elektrischer Aufbau und Komponenten
Die verbauten elektrischen Bauteile sind der nachfolgenden Tabelle zu entnehmen
Bauteil | Genaue Bezeichnung | Anzahl | Beschaffung/Lagerort |
---|---|---|---|
Platine | 1 | H. Ramesohl Fertigung über Gerber Datei | |
Diode | IN5818 CDILII43 | 1 | Bestellen |
Widerstand | 220 Ohm 5% (rt/rt/bn/gd) | 2 | Bestellen |
Transistor | BD435 | 1 | Bestellen |
NXT Buchse | Lego NXT Anschlussbuchse | 1 | Mechatronik Lager Gebäude L3 Fach 9A2 |
Steckverbindung | 5 Polig, Nr. 110803 | 1 | Mechatronik Lager Gebäude L3 Fach 8C6 |
LED | Integriert im Rocket Launcher | 1 |
Ideenfindung
Aufgrund einer Strombegrenzung eines USB 2.0 Ports auf maximal 500mA bei 5V Versorgungsspannung, bewegt sich die Stromaufnahme eines Motors auch bei maximal 500mA.
Dieser Quelle ist zu entnehmen, dass ein EV3 Motorport bis zu 995mA liefert, wenn ein EV3 Motor auf 100% Leistung läuft aber komplett mechanisch blockiert wird. Somit liefert ein EV3 Motor Port genügend Leistung um den Motor des aus dem USB-Rocket-Launcher entnommenen Abschussvorrichtung anzusteuern.
Nach Recherchen zu der Pin-Belegung eines EV3 Motor Ports (siehe Tabelle 2) wurde eine Transistorschaltung als kompakte und einfache Lösung entworfen. Die Verwendung einer Transistorschaltung, um über ein PWM Signal einen Motor anzusteuern, wurde im dritten Versuch des GET Fachpraktikums (5. Semester Mechatronik) behandelt.
Tabelle 2 zeigt Signale und Spannungen, welche man an einem EV3 Motor Port abgreifen kann.
Pin Nummer | Farbe / Farbkürzel | Signal / Belegung |
---|---|---|
1 | weiß / ws | PWM Signal, 5V, 0-100%, Frequenz: ~13kHz |
2 | schwarz / sw | Masse / GND |
3 | rot / rt | Masse / GND |
4 | grün / gn | Versorgungsspannung Vcc = 4,9V |
5 | gelb / ge | I²C Leitung |
6 | blau / bl | I²C Leitung |
Konstruktion des EV3-Rocket-Launchers
Um die Schussvorrichtung des originalen USB Rocket Launchers in eine Lego Konstruktion perfekt einbinden zu können, musste die Schussvorrichtung zuerst vom Rest des USB Rocket Launchers getrennt werden. Das Verwendete Teil ist in Abbildung 3 zu sehen.
Zur optimalen Einbindung in die Bauteile des EV3 Grundbaukastens wurde der originale Rocket Launcher auseinander geschraubt und der obere Teil [1] mitsamt des Neigungszahnrades [2] in einen Lego Käfig [3] verbaut. Die Kabel des in der Schussvorrichtung verbauten Motors (Farben + = Rot, - = Orange) sowie der LED (Farben + = Violett, - = Schwarz) wurden hinten durch einen eingesägten Schlitz aus der Schussvorrichtung geführt und mit einem 5-poligen Stecker verlötet [4]. Die Platine befindet sich zum Schutz in einem seperaten Käfig [5] welcher auf dem Lego Schussvorrichtungskäfig sitzt und leicht entfernt werden kann.
Die Bauanleitungen für das Lego Mindstorms EV3 Modell können unter folgenden Links heruntergeladen werden:
Schaltplan und Platine
Im Anschluss an den Schaltplanentwurf (siehe Abbildung 4) und den ersten Versuchen und Tests der chaltung auf einem Steckboard, wurde eine Platine mit Hilfe von Multisim und Ultiboard entworfen. Das Entwerfen, Exportieren und Fertigen einer Platine wurde im ersten Versuch des GET Fachpraktikums im 5. Semester behandelt und somit innerhalb des Projektes vertieft.
Das Platinenlayout als Screenshot der Ultiboard Dateien kann unter diesem Link eingesehen werden. Zusätzlich können die Gerber - Dateien können hier heruntergeladen werden.
Auswahl einer Entwicklungsumgebung
Für die Entwicklung der Software des EV3-Rocket-Launchers wurde zum einen die Entwicklungsumgebung des Lego Mindstorms EV3 und zum anderen Matlab/Simulink genutzt. Für den jetzigen Aufbau sind beide Entwicklungsumgebungen völlig ausreichend. Zur Weiterentwicklung empfiehlt sich jedoch Matlab/Simulink zur einfachen Integration neuer Komponenten.
Programmbeispiele, welche sowohl in der EV3 Software als auch in Matlab/Simulink programmiert wurden, können hier direkt heruntergeladen werden. Diese sind auf den oben genannten Aufbau des Rocket Launchers ausgelegt.
Vergleich
Die folgende Tabelle zeigt den Vergleich von technischen Eigenschaften zwischen dem USB-Rocket-Launcher und dem EV3-Rocket-Launcher:
Eigenschaft | USB-Rocket-Launcher | EV3-Rocket-Launcher |
---|---|---|
Horizontale Bewegung (Winkel) | 315° | Keine Einschränkung |
Horizontale Bewegung (Geschwindigkeit) | 2.75 Sekunden pro Umrundung | 5.5 Sekunden für 315° |
Vertikale Bewegung (Winkel) | 45° | ~135° |
Vertikale Bewegung (Geschwindigkeit) | 1 Sekunde für 45° | 2 Sekunden für 135° |
Zeit bis zum Abschuss | 2 Sekunden | Variabel (Vorlaufzeit möglich) |
Zeit zwischen Schüssen | 5 Sekunden | 2,7 Sekunden |
Abschussvorgang: Abbruch möglich? | Nein | Ja |
Mobilität | Statisch - Anschluss an Laptop (o.Ä.) nötig | Statisch - Keine weiteren Geräte erforderlich |
Anschauungsmaterial
Das kurze Präsentationsvideo kann hier (Toter Link) in unserem YouTube-Kanal angeschaut werden.
Fazit/Reflexion
Die in der Einführung definierten Ziele wurden erreicht, es wurde ein sehr leicht zu implementierender Lego EV3-Rocket-Launcher gebaut. Zusätzlich kann die Platine Dank der Steckverbindung leicht vom restlichen Aufbau getrennt und ggf. repariert oder für andere Versuche verwendet werden.
Die Ansteuerung erfolgt über einen der vier Motor Ports des EV3 und wird über +0-100% Motorleistung angesteuert, womit die restlichen drei Motor Ports zur freien Verfügung stehen. In diesem Fall wurden zwei freie Motor Ports für die horizontale und vertikale Bewegung verwendet.
Die Auslösezeit zwischen zwei Schüssen liegt bei etwa 2,75 Sekunden (100% Motorleistung).
Potentielle Verbesserungen und Erweiterungen werden im Ausblick formuliert.
Ausblick
Für die zukünftige Verwendung des EV3 Rocket Launchers sind folgenden Optimierungen bzw. Erweiterungen denkbar:
1. Einbindung des in der Abschussvorrichtung vorhandenen Schalters zur exakten Erkennung des beendeten Schusses. Hierbei handelt es sich um einen Schließerkontakt, der zu Beginn des Schussvorganges betätigt ist. Während sich die Feder der Schussvorrichtung durch die Rotation des Motors spannt, wird der Kontakt am Schalter unterbrochen. Sobald der Schuss beendet ist, wird der Kontakt wieder geschlossen und es liegt wieder Spannung an der „Signalleitung“ an. Diese Idee wurde aus Zeitgründen noch nicht umgesetzt. Es ist möglich, einen seperaten Sensorport für diese Optimierung zu verwenden, und über eine Zeitverzögerung nur den Spannungsfluss bei Beendigung des Schusses auszuwerten. Eine komplexere Lösung könnte das Bearbeiten des Signals über den I²C Bus des Motorports sein. Ziel dieser Optimierung wäre ein immer konstanter und komplett beendeter Schussvorgang. Bei der Verwendung der Zeitangabe für einen Schussvorgang von ~2.75 Sekunden bei 100% Motorleistung besteht die Gefahr, dass sich die Zeitunterschiede aufaddieren und somit nach einer gewissen Anzahl an Schüssen ohne manueller Nullkalibrierung eine Zeit von 2.75 Sekunden nicht mehr für einen kompletten Schussvorgang ausreicht.
2. Die horizontale Bewegung kann ebenfalls durch ein bewegliches Modell realisiert werden. Denkbar wäre die Nutzung von zwei unabhängig ansteuerbaren Rädern und einem frei beweglichen Stützpunkt. Vorteile einer solchen Umsetzung sind die hohe Mobilität und das Verhindern einer axialen Überdehnung der Kabel. Nachteil dieser Umsetzung ist, dass die Konstruktion praktisch nur noch ferngesteuert werden kann. Grund dafür ist die starre Anbindung des Steuerelements.
3. Eine Nullkalibrierung der X- und Y-Achse bei Neustart des Modells. Nur somit könnte man eine Weiterverwendung für z.B. visuelle Zielverfolgung realisieren. Die Drehwinkelsensoren der EV3 Motoren beginnen nach Neustart immer bei 0° und Eine Kalibrierung nur über Software durch anfahren von Anschlägen ist Aufgrund der über 720° Bewegungsfreiheit der X-Achse nicht möglich, da diese Achse keinen „Hard-Stop“ besitzt.
4. Das Kombinieren des EV3-Rocket-Launchers mit einer Kamera, sodass z.B. ein roter Ballon verfolgt und in der Luft über Flugbahnberechnung abgeschossen werden kann. Die Flugbahn der Pfeile ist sehr stark abhängig von der Kraft und Art wie die Pfeile auf den Rocket Launcher gesteckt werden, weshalb auch hierfür eine möglichst Einheitliche Lösung gefunden werden muss.