-
Einführung
Ein Logger dient dazu, Flugparameter während des Fluges zu messen und diese für eine Auswertung nach dem Fluge oder für eine Echtzeitauswertung zur Verfügung zu stellen. Auf diese Weise erhält man präzise Informationen über Flughöhe, Steigleistungen, Stromverbrauch des Motors, Fluggeschwindigkeit, Aussetzer in den Fernsteuersignalen, GPS-Koordinaten des Flugmodells und vieles andere mehr.
D. Meissner, ein bekannter Modellflugzeugbauer und Elektronik-Entwickler, hat einen Datenlogger entworfen und der Öffentlichkeit zugänglich gemacht, der bei kleinsten Abmessungen und minimalem Gewicht als Flugdatenschreiber in einem Modellflugzeug eingebaut werden kann. Das vorliegende Programm dient dazu, eben diesen Logger zu konfigurieren, seine Daten auszulesen, zu speichern, eine Auswertung und eine geeignete Darstellung vorzunehmen, also eine Flugdatenanalyse zu ermöglichen.
-
Voraussetzung
Um das Programm betreiben zu können, müssen Sie für einige Mindestvoraussetzungen sorgen:- Sie sollten über einen Meissner-Datenlogger verfügen oder sich wenigstens mit diesem geloggte Datensätze beschaffen.
- Sie sollten einen mindestens mittelmäßig ausgerüsteten PC vor sich haben, auf dem Sie Administrationsrechte besitzen, zumindest sich wenigsten zeitweise welche verschaffen können. Das Programm wurde auf einem PC mit WindowsXP entwickelt, sollte unter anderen Betriebssystemen aber auch funktionieren. Da es sich um ein Java-Programm handelt, läuft es auch unter Linux (ich habe es nie ausprobiert!).
- Sie müssen auf Ihrem PC eine Java-Laufzeitumgebung installiert haben. Sollte dies nicht der Fall sein, holen Sie es nach. Wie man so etwas macht, erfahren Sie im Punkt Installation.
- Ansonsten entpacken Sie das heruntergeladene File JLogger.zip in ein Verzeichnis Ihrer Wahl, starten JLoggerW.exe (W kommt von Windows-Version) und die Welt sollte dann für Sie schön werden. Alles Weitere erfahren Sie, wenn Sie weiter lesen.
-
Datenmanagement
Zusätzliche Loggerinformationen können während des Speicherdialogs optional eingegeben werden.
Gegenwärtig betrifft diesFlightinfo = {flightdate, flightname, temperature, pressure, modelname, accuCapacity, accuVoltage, shunt, droppingResistor}
Im Feld Kommentare kann ein beliebiger Text stehen. Es ist darauf zu achten, dass vor dem Verlassen des Editors in irgendein Feld geklickt werden muss, ansonsten kann der Editor nicht das Ende der Eingabe erkennen!Datenein- und Ausgabe-Möglichkeiten in der Übersicht:
Messdaten:
Input aus- Logger
- Datei:
- *.logd
- *.csv
Speichern
im Format- *.logd
- *.csv
- *.xml
- *.dat
Logger-profile - *.prof
- *.properties
Loggerdaten-Datei (.logd) Hier handelt es sich um die ausgelesenen Loggerdaten, die als Byte-Datei und dadurch in einer äußerst kompakten Form vorliegen.
Z.B. lauten die ersten 32 Bytes:
Datenaustauschformat (.csv) Dieses Dateiformat kann z.B. in alle gängigen Tabellenkalkulationsprogramme eingelesen werden.
1.Zeile (Metadaten):
i=0 1 2 3 4 5 6 7 8 Nr. Config1 Config2 Abtastrate Anzahl geloggter Bytes Telemetriekonfig1 Telemetriekonfig2 Logger-Nr. Flugnr.
i=0 1 2 3 Nr. N-S O-W Alt
i=0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Nr. ADC16 AD0 AD1 AD2 AD3 AD4 frequ rpm RC1 RC2 RC3 Tempint Temptext latitu longitu hGPS
Z.B. lauten die ersten drei Zeilen eines Daten-Files:
171;209;24;883;175;88;139;1282;
48;11;0;
9661;565;0;113;0;128;0;65535;153;0;0;108;0;4839179;1129382;3703;
Abspeicherung berechneter Daten (.dat) Mit diesem Datenformat können die berechneten Daten der Karte calculated data, die dem in der Graphik dargestellten Bereich entsprechen, in eine Datei geschrieben und später z.B. mit MATLAB weiter verarbeitet werden.
Beispiel:
Nr. t[sec] (Daten der Karte calculated Data) 1 1.00 1.00 0.04 7.50 5.11 24.90 -11.1 -9.2
Logger spezifische Dateien:
Bei jedem Programmstart werden drei Logger spezifische Dateien gelesen:
loggerprofile.prof enthält die Eigenschaften des verwendeten Loggers airfield.properties enthält die Koordinaten des verwendeten Flugfeldes logger.properties enhält Nutzungs- und Anschlusseigenschaften des Loggers Die ersten beiden Dateien können über File-Dialoge ersetzt werden.
Daten zur Einstellung des Loggerprofils (.prof) Der angeschlossene Logger ist in seinen Kanälen völlig frei konfigurierbar. Mit Hilfe des property editors (zu erreichen über Menüpunkt View) lässt sich eine willkürliche Zuordnung der vorhandenen Loggerkanäle treffen.
Ein Loggerkanal ist durch folgende Zuordnung definiert:
Channel Name, Sensor Name, Initial Value, Offset, Resolution, Filter Coefficient, Parameter Color, Parameter Unit
und kann über nebenstehendes Menü eingestellt bzw. bearbeitet werden. Die Größen Channel Name, Parameter Color und Parameter Unit beziehen sich auf die grafische Darstellung der jeweiligen unter Channel stehenden Messgröße.
Dieses auf diese Weise erzeugte Loggerprofil können Sie unter Logger Profile speichern bzw. erneut laden. Das erzeugte File besitzt die Endung ".prof" und führt die oben genannten Größen als ASCII-Text. Sie können selbstverständlich mit Hilfe Ihres Lieblingseditors dieses File direkt editieren und somit an die Erfordernisse Ihres eigenen Loggers anpassen. Bei der Editierung vergreifen Sie sich bitte nicht an den ersten 5 Zeilen. Sie müssen stehen bleiben!!
Nachfolgend sehen Sie den Inhalt des Standard-Files. Pausieren Sie mit der Maus über den Feldern, um eine Inhaltsangabe angezeigt zu bekommen.
Structure of the Configuration File (Please don't touch these header rows):
numberOf32kBlocks, Typ of Your Pressure Sensor (MPX4100 or MS5534A)
Channel||Channel Name, Sensor Name, Initial Value, Offset, Resolution, Filter Coefficient, Parameter Color, Parameter Unit1 MPX4100 Weissig 13.89073000 51.049530 296.000000 13.884000 13.897000 51.047000 51.054000 -8.0 -9.0 ADC16 Height 0.00 0.00 0.071 1.00 -16776961 h[m] ADC0 Height 0.00 1.00 0.094 1.00 -65536 h[m] ADC1 Vario 67.72 90.00 -0.162 0.70 -16777216 var[m/s] ADC2 Speed 0.00 0.00 0.115 1.00 -8372224 m/s ADC3 Current 0.00 -32.27 0.058 1.00 -16744448 I[A] ADC4 Ub 0.02 0.00 0.013 1.00 -16776961 Ub[V] Frequency Anemometer 0.00 0.00 1.000 1.00 -8388353 speed[m/s] rpm rpm 0.00 0.00 2.000 1.00 -14336 rpm[r/min] RC1 bx -20.00 0.00 1.000 1.00 -65281 bx/g RC2 by -10.00 0.00 0.100 1.00 -65408 by/g RC3 RC3 0.00 0.00 1.000 1.00 -20561 RC3 Temp_int tint 0.00 0.00 0.500 1.00 -256 tin[°C] Temp_ext text 0.00 0.00 0.500 1.00 -32768 tex[°C] GPS GPS 298.00 0.00 0.000 0.00 -16711936 hGPS[m] Mit Temperature können Sie im Property-Editor die Temperatur zur Messzeit einstellen, mit Air Pressure den herrschenden lokalen Luftdruck in hPA (oder wer es nicht lassen kann: in mb).
Flugfeldinformationen
Diese Informationen werden standardmäßig in der Datei data\airfield\airfield.properties in dem Format: Schlüsselwort = Wert abgelegt.
Die Menge der möglichen Schlüsselwörter lautet: {AirfieldName, AirfieldLongitude, AirfieldLatitude, AirfieldAltitude, LonW, LonE, LatS, LatN, CorrectionDisplacementXlat, CorrectionDisplacementYlon}.
airfield.properties) Nutzungs- und Anschlusseigenschaften des Loggers
Typische Betriebsweisen des Loggers können in der Datei data\logger\logger.properties abgelegt werden. Diese Einträge sind optional und haben keine Reihenfolge, d.h. diese Informationen werden nur ausgewertet, sofern sie vorhanden sind. JLogger weiss dann, dass der Logger z.B. erfolgreich an COM1 angeschlossen war oder das zur Spannungsmessung ein Vorwiderstand von 13.17KOhm verwendet wird. Es sind Informationen, die die typische Betriebsweise des Loggers betreffen. Diese Informationen können Sie mit Ihrem Lieblingeditor bearbeiten bzw. in JLogger direkt abspeichern - wie Sie wollen.
Diese Informationen werden im Format: Schlüsselwort = Wert abgelegt.
Die Menge der möglichen Schlüsselwörter lautet: {Logger, JetiBox, DroppingResistor, Shunt, AccuCapacity, AccuVoltage}
Loggerspezifische Datei logger.properties) -
Grafische Darstellung von Daten
a) physikalische Parameter
- Ein- und Ausblenden von Kurven
- Mehrere Skalen
- Mit einem Slider können Kurven gegeneinander verschoben werden.
- Mit gedrückter rechter Maustaste können interessante Datenbereiche durch Ziehen nach rechts vergrößert und (wenn gewünscht) über save abgespeichert werden.
- Mit gedrückter linker Maustaste können durch Ziehen nach links alle Kurven auf einen gemeinsamen sichtbaren Bereich skaliert werden.
- Rechte Maustaste: Drop-down-Menü zur Grafik:
- Eigenschaften
- Speichern
- Vergrößern, verkleinern
- Tooltip-Funktion: Der Cursor auf einen Kurvenpunkt liefert Informationen über den Datenpunkt.
- Trendlinien:
- Durch Aktivieren von Trend Lines können beliebige Geraden in das Diagramm gelegt werden und die zugehörigen Parameter als Änderung dy in dem Zeitintervall dt[in sec] abgelesen werden, die zur Rate rate führen. Ein Klick auf das Diagramm löscht alle Trendlinien.
b) GPS-Daten: 2D-Bahn der Flugbahn
Wenn Sie die Maus über die Flugkurve bewegen, erscheinen Tooltips der Art
eingeblendet mit der Bedeutung:
Zeit in Sekunden ab Aufzeichnungsbeginn: (E-W Entfernung (x-Achse), N-S Entfernung (y-Achse), Höhe über Startpunkt) jeweils in Metern.Die Grundlagen der GPS-Koordinatenberechnung findet man hier.
c) Simulation des Fluges
-
Serielles Interface RS232
-
Loggerhandling
Die rote Umrandungslinie des Schaltbereichs Logger Action zeigt an, dass die serielle Schnittstelle geschlossen ist. Eine grüne Linie weist auf eine Schnittstelle im geöffneten Zustand hin.
Auslesen des Loggers:
Sie können jederzeit stoppen und werden informiert, was zu tun ist bzw. wieviele Bytes gelesen wurden:
Löschen des Loggers:
Alle Funktionen des Loggers in der Zusammenfassung:
-
Telemetrie
Sie können Ihren Logger im Telemetrie-Modus betreiben, auch wenn Sie nicht über ein Funkmodul verfügen. In dieser Betriebsweise können Sie Ihre Sensoren (mit Ausnahme von GPS) am Boden ohne Funkmodul überprüfen bzw. verbessern.
Dazu müssen Sie im Konfigurationsmenü des Loggers seine Konfiguration vornehmen. Es dürfen nur die Sensoren aktiviert werden, die physisch auch wirklich mit dem Logger verbunden sind. Vergessen Sie nicht, das Telemetrie-Häkchen zu setzen sowie das Häkchen bei JetiProtocol zu entfernen (der Logger soll ja im RS232-Protokoll arbeiten). Die neue Konfiguration speichern Sie über Write Config ab. Zur Kontrolle lesen Sie den neuen Zustand mit Read Config ein und trennen den Logger vom seriellen Port.
Den Logger setzen Sie durch nachfolgende Vorgehensweise in Gang:
- Klick im Programm JLogger auf Telemetry On
- Logger einschalten und warten bis die rote LED blinkt
- Logger am seriellen Port anschließen
Dies mag seltsam klingen, hat aber damit zu tun, dass bei angeschlossener serieller Schnittstelle der Logger nicht anläuft.
Telemetrie im Jeti-Protokoll
Im Logger-Assembler-Programm wurde das Jeti-Protokoll implementiert. Weitergehende Informationen finden Sie hier. Das verwendete Bluetooth-Modul, das das Jeti-Protokoll in RS232 umsetzt und über Bluetooth sendet, stammt von Henning Ritter.Zu beachten ist, das der Logger angeschaltet ist und loggt (blinken der Logger-LED), bevor das Programm JLogger in den Telemetrie-Modus geschaltet wird!!!
Sie können als weiteres Gerät eine JetiBox anschließen und auslesen.
-
Implementation physikalischer Parameter
Messwertverarbeitung (Prinzip der Messung):
Der Sensor liefert zum Zeitpunkt t einen Sensorwert, der der zugeordneten physikalischen Messgröße Z entspricht. Über eine Digitalisierung wird das Ergebnis durch einen Mikroprozessor (MP) in der Samplerate 1/Dt abgefragt und liefert im Zeitintervall Dt den Zählerwert d (auch Rohdatenwert genannt). Verwendet man zur Abspeicherung n Bits, lassen sich 2n Werte im Wertebereich [0, 2n-1] erzeugen. Besitzt der Sensor eine lineare Kennlinie, erhält man die zugehörige Messgröße z(d) über den Strahlensatz:
Beispiel:
Beim Impeller ist die Messgröße Z die Winkelgeschwindigkeit, die proportional zum Zählerstand d sein sollte.zmin Anfangswert der Messgröße Z d0 Offset, das heißt wenn der Anfangssensorwert zmin einem Wert von d0 entspricht.
Beispiel: Der am Startplatz herrschende Druck p0 würde für einen Höhensensor-Anfangswert von d0 sorgen.Eine direkte Weitergabe des Zählerwertes d als Messwert z(d) erreicht man durch den Spezialfall
scale=1, also z(d) = d ("Identität").Abgeleitete physikalischen Größe p: p = p[z(d)]
Beispiel: Staurohr mit Drucksensor zur Geschwindigkeitsbestimmung
Der Offset d0 entspricht der Sensorausgabe bei Null-Geschwindigkeit. Drehzahl: Drehzahlmesser zur Drehzahlbestimmung der Luftschraube.
Fortlaufende Mittelung:
Liegt auf den Messwerten starkes Rauschen, empfiehlt sich ein fortlaufendes Mittelungsverfahren. Der aktuelle Messwert wird im einfachsten Fall unter Berücksichtigung des vorhergehenden ermittelt.
Messwert z(d) --> m(d) nach folgendem Algorithmus
α: Gewichtsfaktor
α = 1: keine Glättung, d.h. mi = z(di)
α = 1/2: arithmetisches Mittel, d.h. mi = [mi-1 + z(di)]/2
α = √5-1=0.618: Goldener Schnitt (stetige Teilung) -
JLogger-Programmierung
JLogger gibt Ihnen die Möglichkeit, bestehende Sensortypen in eigene umzufunktionieren, indem Sie die charakteristischen Parameter verändern oder, wenn Ihnen der vordefinierte Sensor überhaupt nicht gefällt, durch einen Sensor mit eigener Funktionsweise (Funktionalität) zu ersetzen. Dazu müssen Sie sich aber an ein paar Spielregeln halten. Da JLogger in Java geschrieben ist, können hier nur eigene Programmierkünste in Java in Frage kommen.
Das Programm JLogger ist so aufgebaut, dass es zuerst in einem Plugin-Verzeichnis nachschaut, ob es etwas Besseres in Form eines jar-Files zu finden gibt.&xnbsp;Wenn nicht, passiert nichts, ansonsten werden die in diesem File liegenden Programmteile, die ja von Ihnen stammen, im JLogger eingebaut und benutzt. Sie müssen nur dafür sorgen, dass Ihre Änderungen bzw. Neuformulierung von Sensoren in einem jar-File stehen und dieses in das Verzeichnis plugin kopiert worden ist.
Ausführliche Erläuterungen finden Sie hier.
-
Hilfe
Im Verzeichnis help bzw. myhelp können Sie eigene Dateien im Format htm, html oder txt anzeigen lassen. Bilder müssen Sie über HTML einbinden:
<html> <body> <img src="meiss2_2_6_scematic.gif" alt="Help" title="Help" /> </body> </html>
-
Installation
Check in the DOS console using the statement
java -version
. The answer should be:java version "1.7.0_03" Java(TM) SE Runtime Environment (build 1.7.0_03-b05) Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)
Otherwise proceed as follows:
Downloaded the file jre-7u3-windows-i586.exe or higher (Download page (choose Java SE Runtime Environment 7 Downloads)). This file contains everything needed to install the J2SE Runtime Environment, including the installer and character conversion classes and support for locales other than the US English locale. In order to install the J2SE Runtime Environment on Microsoft Windows 2000 and XP you must have administrative permissions.! Attention: don't use Java 1.6.0 Update 10,11,12,13
JLogger 0.9.3 works fine with current java versionInstalling the Java Communications API (javacomm20-win32.zip from Sun) (if the link does not work you will find the three files in the subdirectory lib) in a Windows Environment:
There are some tricks involved in getting the Java Communications API to correctly interact with the Windows system. Among the items that you download from Sun are three very important files. For the JVM to recognize the serial ports, proper placement of these files is important. I've read lot's of messages on the boards, tried various ways of placing these files in a Windows system, and have found the following installation methods to be effective:
comm.jar
javax.comm.properties%JAVA_HOME%/jre/lib win32com.dll %JAVA_HOME%/jre/bin win32com.dll %WINDIR%/system32 -
Quellen
D. Meissner Eigenbau-Datenlogger V2.5