Projekt 33: Lego Mindstorms Rocket Launcher: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 190: Zeile 190:
=== 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 [http://193.175.248.171/wiki/index.php/Datei:EV3_Programm.zip hier].
Programmbeispiele, welche sowohl in der EV3 Software als auch in Matlab/Simulink programmiert wurden, können [http://193.175.248.171/wiki/index.php/Datei:EV3_Programm.zip hier] direkt heruntergeladen werden.


Sie sind auf den oben genannten Aufbau des Rocket Launchers ausgelegt.
Sie sind auf den oben genannten Aufbau des Rocket Launchers ausgelegt.

Version vom 20. Januar 2015, 09:08 Uhr


Autoren: Fabian Lehnert, Tim Dienwiebel, Reinhold Fischer
Betreuer: Prof. Schneider

USB Rocket Launcher
USB Rocket Launcher

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

Abb.1: EV3 Rocket Launcher Projektergebnis von Vorne
Abb.2: EV3 Rocket Launcher Projektergebnis von Hinten


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


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.

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.

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


Abb.3: Schaltplan der Platine


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:

  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

Programmbeispiele

Programmbeispiele, welche sowohl in der EV3 Software als auch in Matlab/Simulink programmiert wurden, können hier direkt heruntergeladen werden.

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.