Elwood - Software

Beitragsseiten
Elwood - Software
Elwood lebt
Alle Seiten

Software

Beschreibung
Bezugsquelle
Ubuntu Karmic Koala Elwoods Betriebssystem, erweitert um SSH Server und MJPEG Streamer www.ubuntu.com
Windows XP Inspirons Betriebssystem vorinstalliert
IntelliJ IDEA Community Edition 9.0 Java IDE http://www.jetbrains.com/idea/index.html
VisualVM 1.2.1 Profilingwerkzeug. Analysiert Java Anwendungen auf Speicherverbrauch, Prozessorauslastung etc. https://visualvm.dev.java.net/
JDK 1.6.0_xx Das Java Developement Kit http://java.sun.com/javase/downloads/index.jsp
Phidget 21 Treiber Zur Ansteuerung des 1060 - PhidgetMotorControl LV
http://www.phidgets.com/drivers.php
phidget21.jar Java API, Aufsatz auf die C Bibliothek des Treibers http://www.phidgets.com/programming_resources.php
jscience.jar Java API für Mathematisch / wissenschaftliche Zwecke.
Wird bei uns zur einheitlichen Behandlung von Werten und Maßeinheiten benutzt.
http://jscience.org/
TableLayout-bin-jdk1.5-2007-04-21.jar Layoutmanager, der Swing Komponenten tabellarisch anordnet. https://tablelayout.dev.java.net/
xstream-1.2.1.jar Erzeugt tiefe Kopien von Java Objekten. http://xstream.codehaus.org/
EventBus-1.3beta.jar Kommunikation zwischen Java Objekten. Ersetzt das Listener Konzept in Swing. Ermöglicht Kommunikation zwischen Nicht-Swing Komponenten. https://eventbus.dev.java.net/
http://www.eventbus.org/
ProGuard4.2 Erzeugt jar Dateien, optimiert und obfuskiert *.class Dateien http://proguard.sourceforge.net/
VirtualBox Virtualisierungssoftware. Virtualisiert Ubuntu auf Windows XP. Vormals Sun Microsystems jetzt Oracle. http://www.virtualbox.org/
Cambozola
Java API zur Anzeige des MJPEG Streams http://www.charliemouse.com/code/cambozola/
ublox u-center 6.0.1 Software zum Testen und aktualisieren des NAVILOCK GPS Empfängers http://www.u-blox.com/de/


Wie eingangs erwähnt besteht die von uns programmierte Software aus einem Client und einem Server. Wobei der Client den Sender repräsentiert und der
Server den Empfänger. Nachfolgend soll nur noch von Sender und Empfänger gesprochen werden. Der Sender besitzt - im Gegensatz zum Empfänger
eine grafische Benutzerschnittstelle (GUI). Über diese GUI werden Fahrbefehle erzeugt und an den Empfänger gesendet.

Als erstes möchten wir euch eine kleinen Überblick über die wesentlichen Bestandteile des Senders geben:

Das Anwendungsfenster des Senders

XYControl

Das Herzstück unseres Senders ist das XYControl. Es symbolisiert die Draufsicht eines Joysticks.

Der blaue Knopf stellt den Hebel dar der mit gedrückter Maus nach Links / Rechts für Kurvenfahrt und nach Oben / Unten für Vorwärtsfahrt und Rückwärtsfahrt bewegt werden kann. Der maximale "Knüppelausschlag" wird durch das schwarze Quadrat begrenzt. Um exakt geradeaus fahren zukönnen kann die Taste "G" gedrückt werden. Dadurch wird der Knopf genau mittig zum vertikalen Strich ausgerichtet, bleibt aber in der vertikalen Position unverändert. Das "S" steht für "Speed" und positioniert den Knopf mittig zum horizontalen Strich. Die Positionierung für Kurvenfahrt bleibt unverändert.
Der Buchstabe "N" bedeutet "Neutral" und positioniert den Knopf mittig auf dem Kreuz - Elwood steht still.

Der Wertebereich:

In der Treiberdokumentation ist zu lesen dass ein Wertebereich für die Drehzahl vpn -100% bis +100% verfügbar ist. Für die Beschleunigung wurde +0,1% bis 100%
angegeben. XYControl liefert Prozentwerte die exakt dem gesamten Drehzahlspektrum des Treibers entsprechen. Der Beschleunigungsfaktor wird an anderer Stelle in der Anwendung gesetzt.
Wird beispielsweise der Knopf genau mittig bis an den oberen Rand geschoben dann fahren die beiden Motoren bis auf Maximaldrehzahl hoch - Elwood fährt vorwärts.
Elwood fährt rückwärts wenn der Knopf unterhalb der horizontalen Linie platziert wird.

Und jetzt wirds interessant: Was passiert wenn wir den Knopf exakt entlang der horizontalen Linie beispielsweise nach links schieben? XYControl liefert jetzt für Vorwärts / Rückwärts 0% dennoch bewegt sich Elwood. Er dreht sich wie ein Panzer auf der Stelle um seine Hochachse - oder etwas romantischer - er macht eine Pirouette. Der Lenkausschlag überlagert den Wert für Vorwärts / Rückwärts. Der linke Motor dreht mit -100%, der rechte mit +100%.

Noch interessanter wird es wenn der Knopf auf eine beliebige Position gebracht. die Werte für Vor / Zurück und Links / Rechts überlagern sich und können den zulässigen Wertebereich überschreiten! Wie wird die Platine drauf reagieren? durchbrennen - vielleicht in einer Art Kernschmelze zu eine formlosen Masse verklumpen?
Ganz so schlimm ist es dann doch nicht gekommen :-) Elwood verhält sich jedenfalls zwiespältig: Einmal so wie es Michi programmiert hat und einmal nach Toms Vorstellungen.

Verschiedene Details der Programmierung wollen wir euch nicht vorenthalten und später hier präsentieren.

Zwei weitere Komponenten die für die Steuerung sehr hilfreich sind sollen hier noch vorgestellt werden:
Das Zweibalkendiagramm bei 0% Drehzahl

Wir benutzen dieses Diagramm für den Soll / Ist Vergleich der Drehzahl für jeden Motor. Das Diagramm kann einen Wertebereich von -100% bis +100% darstellen.
Die Neutralstellung (0%) wird oben dargestellt. Der Linke Balken Zeigt den Wert der nach der Berechnung am Empfänger zum Treiber geschickt wird. Der Rechte Balken repräsenteirt den Wert den der Treiber zurückliefert. Ein Vergleich der beiden Balken gibt Aufschluss über Drehzahl, Beschleunigung und Drehrichtung relativ
zum berechneten Wert. Jeder Motor hat sein eigenes Zweibalkendiagramm.

Und Last but not least ein Balkendiagramm das die Verbindungsqualität zwischen Sender und Empfänger anzeigt.
Diagramm Signalqualität

Dieses Diagramm zeigt uns die Qualität des WLAN Signals an. Dies ist wichtig für uns, denn wir müssen wissen ab wann Elwood auf sich selbst gestellt ist. Wenn die Verbindung länger unterbrochen ist (der Wert ist einstellbar wie wir noch sehen werden) muß Elwood allein zurechtkommen - quasi Elwood allein zu Haus.