Projekt 33: Lego Mindstorms Rocket Launcher: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 32: | Zeile 32: | ||
---- | ---- | ||
→ zurück zum Hauptartikel: [[Fachpraktikum_Elektrotechnik_(WS_14/15)|Fachpraktikum Elektrotechnik (WS 14/15)]] | → zurück zum Hauptartikel: [[Fachpraktikum_Elektrotechnik_(WS_14/15)|Fachpraktikum Elektrotechnik (WS 14/15)]] | ||
Zeile 83: | Zeile 48: | ||
=== Mechanischer Aufbau === | === Mechanischer Aufbau === | ||
[[Datei:WikiBildVorne.JPG| | [[Datei:WikiBildVorne.JPG|350px|thumb|left|Abb.1: EV3 Rocket Launcher Projektergebnis von Vorne]] | ||
[[Datei:WikiBildHinten.JPG| | [[Datei:WikiBildHinten.JPG|350px|thumb|right|Abb.2: EV3 Rocket Launcher Projektergebnis von Hinten]] | ||
Zeile 170: | Zeile 135: | ||
====Schaltplan==== | ====Schaltplan und Platine==== | ||
Tabelle 2 zeigt Signale und Spannungen, welche man an einem EV3 Motor Port abgreifen kann. | Tabelle 2 zeigt Signale und Spannungen, welche man an einem EV3 Motor Port abgreifen kann. | ||
Zeile 204: | Zeile 169: | ||
|- | |- | ||
|} | |} | ||
[[Datei:SchaltplanFrei.PNG|400px|thumb|left|Abb.3: Schaltplan der Platine]] | |||
Abbildung 4 zeigt das Platinenlayout in Ultiboard. Die Gerber - Dateien können unter folgendem Link direkt heruntergeladen werden: | |||
[[Medium:GerberDateien.zip]] | |||
[[Datei:UltiboardPlatinenLayout.JPG|200px|thumb|right|Abb.4: Ultiboard Platinen Layout mit Bauteilen]] | |||
=== Auswahl einer Entwicklungsumgebung=== | === Auswahl einer Entwicklungsumgebung=== | ||
Zeile 222: | Zeile 204: | ||
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 === | ||
=== Programmbeispiele === | === Programmbeispiele === | ||
Programmbeispiele, welche sowohl in der EV3 Software als auch in Matlab/Simulink programmiert wurden, können durch klicken auf den nachfolgenden Link direkt heruntergeladen werden [[Medium:EV3_Programm.zip]]. | |||
Sie sind auf den oben genannten Aufbau des Rocket Launchers ausgelegt. | |||
==Fazit/Reflexion== | ==Fazit/Reflexion== | ||
Zeile 233: | Zeile 219: | ||
Die Auslösezeit eines Schusses bei 100% Motorleistung etwa 2,75 Sekunden dauert. | Die Auslösezeit eines Schusses bei 100% Motorleistung etwa 2,75 Sekunden dauert. | ||
Potentielle Verbesserungen und Erweiterungen werden im Ausblick formuliert. | Potentielle Verbesserungen und Erweiterungen werden im Ausblick formuliert. | ||
==Ausblick== | ==Ausblick== | ||
Für die zukünftige Verwendung des EV3 Rocket Launchers sind folgenden Optimierungen bzw. Erweiterungen denkbar: | Für die zukünftige Verwendung des EV3 Rocket Launchers sind folgenden Optimierungen bzw. Erweiterungen denkbar: | ||
1. Einbindung des im Schusskopf vorhandenen Schalters zur exakten Erkennung des beendeten Schusses. | 1. Einbindung des im Schusskopf vorhandenen Schalters zur exakten Erkennung des beendeten Schusses. |
Version vom 19. Januar 2015, 21:24 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 Launscher an einen NXT oder EV3 an.
- Ansteuerung der Motoren in 2 Achsen.
- Auslesen von internen Lagesensoren zur Bestimmung der Ausrichtung des Racketenwerfers.
- 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
→ zurück zum Hauptartikel: Fachpraktikum Elektrotechnik (WS 14/15)
Dokumentation
Einführung
Unser Projekt des Lego EV3 Rocket Launchers 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 folgende, weiterführende Lego EV3/NXT Projekte implementiert werden kann. Außerdem wurde auf eine einfache und benutzerfreundliche Wartung und Instandhaltung geachtet.
Mechanischer Aufbau
In Abbildung 1 und 2 ist der fertige Aufbau des Rocket Launchers zu sehen. Die Lego Bauanleitung ist diesem Artikel unter „Bauteile des Rocket Launchers“ angehängt. Zu erkennen sind der unveränderte Abschusskopf des USB Rocket Launchers [1] sowie die über einen Lego Käfig 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 XXXXXX angehängt. Des Weiteren ist die Steckverbindung zwischen der Abschussvorrichtung und der Adapterplatine zu sehen [3], sodass man für eine eventuelle Reperatur 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 EV3 Steuerung [6] dient als direktes Bedienpanel über die Pfeiltasten und kann sowohl über die EV3 Software, als auch über Matlab/Simulink und über die EV3-App von einem Mobilen Endgerät programmiert bzw. angesteuert werden.
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 |
Zusätzlich kann [hier] der Klemmbelegungsplan als Exceldatei heruntergeladen werden.
Bauteile des Projektes
Neben der Platine, die mit den im Kapitel „Elektrischer Aufbau“ genannten Bauteile bestückt wurde, ist in unserem Projekt die Abschussvorrichtung eines USB Rocket Launchers verbaut. Diese wurde vom Rocket Launcher abgebaut und die im Original in den Fuß des Launchers führenden Kabel nach außen geführt und an den 5-poligen Stecker gelötet.
Die im Lego EV3 erstellte Bauanleitung des Projektes ist unter folgendem Link hinterlegt:
Projektziel
Das Ziel des Projekt 33 EV3 Rocket Launcher ist es, einen zweiachsigen Rocket Launcher zu entwerfen und zu erbauen, welcher über den EV3 und auch über Matlab/Simulin ansteuerbar und programmierbar ist.
Projektdurchführung
Schaltplan und Platine
Tabelle 2 zeigt Signale und Spannungen, welche man an einem EV3 Motor Port abgreifen kann. Abbildung 3 zeigt den entworfenen Schaltplan
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 |
Abbildung 4 zeigt das Platinenlayout in Ultiboard. Die Gerber - Dateien können unter folgendem Link direkt heruntergeladen werden:
Medium:GerberDateien.zip
Auswahl einer Entwicklungsumgebung
Die folgende Anleitung zum programmieren des EV3 mit Matlab/Simulink wurde dem Wiki – Artikel des Projektes Nummer 10 aus dem WS 13/14 entnommen. [1]
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
Programmbeispiele
Programmbeispiele, welche sowohl in der EV3 Software als auch in Matlab/Simulink programmiert wurden, können durch klicken auf den nachfolgenden Link direkt heruntergeladen werden Medium:EV3_Programm.zip.
Sie sind auf den oben genannten Aufbau des Rocket Launchers ausgelegt.
Fazit/Reflexion
Die in der Einführung definierten Ziele wurden erreicht, es wurde ein sehr leicht zu implementierender Lego EV3 Rocket Launcher gebaut, welcher aufgrund seiner über Steckverbindung zum Aufbau kontaktierte Platine leicht zu reparieren ist. 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. Ob wie in unserem Projekt nun zwei Ports für eine X- und Y-Achse verwendet, oder ein Fahrbarer Untersatz erbaut wird, wobei z.B. zwei Ketten als Antrieb und eine Y-Achsen Verstellung denkbar wären, bleibt dem Nutzer des EV3 Rocket Launcher überlassen. Die Auslösezeit eines Schusses bei 100% Motorleistung etwa 2,75 Sekunden dauert. 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 im Schusskopf 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 Nullkalibierung eine Zeit von 2.75Sekunden nicht mehr für einen kompletten Schussvorgang ausreicht. 2. Eine weitere Optimierung wäre 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. 3. Die dritte Erweiterung wäre 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.