Anleitung: Jeti Duplex EX Sensoren selber bauen

Das Jeti Duplex EX System glänzt nicht nur durch seine hohe Zuverlässigkeit, sondern ist auch für sein flexibles Telemetriesystem bekannt. Damit Daten zum Boden gelangen, braucht es Sensoren im Fluggerät. Diese kann man kaufen oder selber bauen. Wir zeigen, wie letzteres funktioniert.

Überblick

Jeti bietet bereits eine Vielzahl passender Sensoren an, die den Großteil der Anwendungszwecke der meisten Modellbauer abdecken sollten. Trotz allem gibt es immer wieder Situationen, in denen ein spezieller Sensor von Nöten ist oder ein Selbstbau gleich mehrere Messfunktionen übernehmen und somit Platz und Gewicht sparen kann.
Im Gegensatz zu vielen anderen Sender-Herstellern hat Jeti sich entschieden, dass Telemetrieprotokoll des Duplex EX Systems zumindest in Zügen öffentlich zu machen. Einige Re-Engineering Projekte werden damit zwangsweise hinfällig, auch wenn die Funktion oft auch hier gegeben war. Wer ein wenig im Internet nach selbstgebauten (DYI) Jeti Sensoren sucht, wird viele Projekte in Bezug auf das ältere Jeti Duplex System finden. Diese Codes funktionieren zwar nach wie vor auch mit den EX-Sendern, man verliert aber einiges an Komfort. Diese Anleitung soll sich daher auf das aktuelle Jeti Duplex EX System beziehen.

Jeti Duplex EX DYI Voltage Sensor Einheit Jeti Duplex EX DYI Voltage Sensor Rückseite

Anmerkung:
Diese Anleitung ist in gewisser Weise „Work in Progress“ und wird, sobald neue Erkenntnisse vorliegen, entsprechenden mit datierten Einschüben ergänzt, die mit „Update“ gekennzeichnet sind.

Duplex EX Telemetrie Bibliothek

Bis vor Kurzem wurde an vielen Projekten gleichzeitig gewerkelt, die Sensoren auf Basis der Duplex EX Telemetrie umsetzen. Keines der Projekte brachte allerdings eine Bibliothek mit, mit der man einfacher auf die entsprechenden Funktionen des Protokolls zugreifen kann. Das hat sich nun geändert, denn mit JetiExSensorCppLib des Nutzers „sepp62“ steht nun eine entsprechende Library für die Arduino IDE zur Verfügung, die aktuell aktiv weiterentwickelt zu werden scheint. Eine entsprechende Diskussion dazu findet sich im Jeti-Forum.

Installation der Bibliothek

Nachdem der Download erfolgt ist (aktuell V 0.94), muss die Bibliothek in das Library-Verzeichnis unter C:\Users\<Nutzer>\Documents\Arduino\libraries in seinem Ordner abgelegt werden. Beim nächsten Start der Arduino IDE kann dann direkt auf das enthaltene Sensorbeispiel zugegriffen werden, welches einen soliden Startpunkt, für die eigenen Sensorentwicklung bildet.
Ihr findet das Beispiel unter: Datei -> Sketchbook -> libraries -> JetiExSensor -> Examples -> JetiSensor.
Das Projekt besteht aus drei Dateien:

  • JetiExSensor.ino
  • DemoSensor.cpp
  • DemoSensor.h

Ein kurzer Blick in die letzteren beiden Dateien zeigt, dass es sich hierbei nur um zwei Code-Schnippsel zur Generierung von zufälligen Werten handelt. Zum Testen der Kommunikation zwischen Sender und Empfänger + Sensor (Arduino) ist das Beispiel jedoch bestens geeignet.

Aufbau der Hardware

Zunächst ist einmal nicht mehr nötig, als ein Arduino Pro Mini / Uno / Micro sowie ein Duplex EX Empfänger, der bereits mit einem Jeti Sender gebunden ist.
Der Arduino wird dabei zu nächst über USB / das FTDI mit Spannung versorgt. Die Spannungsversorgung des Empfängers erfolgt separat über 5 V. Der EX-Bus-Eingang des Empfängers (in unserem Fall ein RSAT2) wird mit dem TX-Pin des Arduinos verbunden. Zusätzlich ist noch eine Verbindung gegen Masse (GND) zwischen RSAT2 und Arduino nötig.
Überträgt man nun den Beispiel Sketch auf den Arduino und begibt sich ins Telemetriemenü des Senders, so taucht nach kurzer Zeit der neue Demo-Sensor mit allen seinen Messwerten auf. Diese können zu Testzwecken nun auch auf die Startseite gelegt oder ausgewertet werden.

DYI Jeti EX Bus Spannungssensor in Betrieb DYI Jeti EX Bus Spannungssensor offline

Messen mit dem Arduino

Messungen können über den Arduino entweder direkt, wenn es sich um Spannungen handelt, oder indirekt über zusätzlich angebundenen Sensoren, ausgeführt werden. Wir wollen uns an einem einfachen Beispiel der Spannungsmessung eines LiPo-Akkus orientieren. Dazu soll ein Sensorwert an die den Sender übertragen werden, der die Gesamtspannung des LiPo-Akkus wiedergibt.
Als Grundlage dient das Auslesen einer Spannung an einem der analogen Eingänge des verwendeten Arduino Pro Mini (A0-A4). Weitere Informationen dazu im Allgemeinen finden sich in den Arduino Tutorials.
Da eine Spannunge über 5 Volt gemessen werden soll, in unserem Fall ein 3S-Pack – also maximal 12,6 Volt -, ist ein Spannungsteiler von Nöten, da der Eingang bei zu hoher Spannung zerstört wird und somit im schlimmsten Fall den gesamten Arduino Controller unbrauchbar macht
Widerstände für einen passenden Spannungsteiler lassen sich einfach mit dem Online-tool von Raltron berechnen. Wer lieber selbst Hand anlegt, kann die folgende Formel verwenden, um die sich ergebende Teilspannung bei Verwendung vorhandener Widerstände zu berechnen:

Anzeige

\(U_{2}=\frac{R_{2}*U}{R_{ges}}\)

Anmerkung: Die verwendeten Widerstände können leicht durch andere ersetzt werden. Wir haben benutzt, was auf Halde war.
In unserem Fall sollen der Einfachheit halber drei 100 KΩ Widerstände zum Einsatz kommen. Zwei davon parallel geschaltet ergeben einen Widerstand von 50 KΩ, allgemein zu berechnen, nach folgender Formel:

\(R_{ges}=\frac{R_{1}*R_{2}}{R_{1}+R_{2}}\)

Zusammen mit der seriellen Schaltung des dritten Widerstands ist der Spannungsteiler vollständig. Die maximale Eingangsspannung von 12,6 V wird so in den zulässigen Messbereich mit 4,2 V „übersetzt“. Der Spannungsteiler hat damit ein Eingang-zu-Ausgangs-Verhältnis von \(\frac{12,6 V}{4,2 V} = 3\). Dieser Faktor wird später zur Umrechnung der Messung im Softwarecode benötigt.
Das folgende Schaltbild zeigt die anschließende Verbindung mit dem Arduino sowie dem Lipo-Akku. Der Akku sollte dabei erst verbunden werden, wenn der Programmcode fertig gestellt ist, um Kurzschlüsse beim Hantieren und Testen der Schaltung zu vermeiden.

Schaltbild Jeti EX Spannungssensor

Quelle: Erstellt mit Fritzing

Jeti EX Sensor Programmierung

Damit unser Sensor überhaupt etwas macht, ist selbstverständlich eigener Software-Code nötig. Dieser ist im Falle einer Spannungsmessung sehr einfach und leicht verständlich.
Anpassungen können direkt in einer Kopie der „JetiEXSensor.ino“ erfolgen. Zuerst passen wir die Aufzählung am Anfang an. Diese legt fest, wie viele Messwerte der Sensor übertragen soll und wie diese heißen. Uns genügt daher:
enum
{
ID_VOLTAGET = 1,
};

Im darauffolgenden Array wird der Sensor genauer spezifiziert und der oben erstellten ID ein Name und eine Einheit zugewiesen.
JETISENSOR_PTR sensors[] =
{
// id name unit data type precision
new JetiSensor( ID_VOLTAGET, "Total", "V", JetiSensor::TYPE_14b, 2 ),
0 // end of array
};

In der void setup()-Funktion muss lediglich der Name des Sensors angepasst werden. Wir setzten hier beispielsweise:
jetiEx.Start( "LiPo", sensors );
Nun spezifizieren wir uns zwei neue Variablen, die wir zu Spannungsmessung brauchen:
float voltage;
int sensorValue;
const int ratio = 3;
const float correction = 1.05;
float count;

Eine kleine neue Funktion void value() übernimmt die Messung. Zu erst wird die Spannung an A3 ausgelesen. Der Arduino zerteilt die 5 Volt dabei in 1024 (0-1023) Teile. Die Transformation in Volt erfolgt dabei mit 5.0 / 1023. Zusätzlich muss das Ergebnis für die korrekte Darstellung mit 100 multipliziert werden. Die Abschließende Multiplikation mit der Konstante ratio berücksichtig das Verhältnis unseres Spannungsteilers. Die For-Schleife dient zur Dämpfung von Schwankungen der Messungen. Es wird ein einfacher Durschnitt über zwanzig Messungen gebildet, die jeweils 10 ms auseinander liegen.
void value()
{
for(int x = 0; x < 20; x++){
sensorValue = analogRead(A3);
voltage = sensorValue * (5.0 / 1023.0)*100*ratio*correction;
count = count + voltage;
delay(10);
}
voltage = count / 20;
}

In der Hauptfunktion void loop() wird nun unsere neue Funktion aufgerufen. Zusätzlich wird der Zähler zur Bildung des Mittels nach jedem Durchlauf auf Null gesetzt. Der übrige Teil des Codes bleibt unangetastet:
void loop()
{
value();
jetiEx.SetSensorValue( ID_VOLTAGET, voltage);
count = 0;

HandleMenu();
jetiEx.DoJetiSend();
}

Nachdem der Sketch in den Arduino übertragen wurde und die Messwerte korrekt an den Sender übertragen werden, macht es Sinn, die neuen Sensordaten auf der Hauptseite anzeigen zu lassen. Jetzt kann das erste Mal ein LiPo verbunden werden. Der Sensor sollte nun eine Spannung an den Sender übertragen.

Spannungsteiler kalibrieren

Da die verwendeten Widerstände gewissen Fertigungstoleranzen unterliegen, ist es wahrscheinlich, dass das berechnete Spannungsteiler-Verhältnis nicht exakt eingehalten wird. Zur Kalibrierung ist ein möglichst genaues Multimeter notwendig, welches ebenfalls die Akkuspannung misst. Teilt man nun den Messwert des Multimeters durch den Messwert des Sensors, ergibt sich ein Korrekturfaktor, der mit in den Sketch aufgenommen werden muss. Ist diese Arbeit erledigt, sollten Multimeter und Sensor die gleiche Spannung anzeigen.

Arduino Jeti-Sensor verwenden

Ist die Schaltung fertig aufgebaut, am besten auf einer kompakten Lochrasterplatine, so muss der Sensor noch entsprechend mit dem Empfänger verbunden werden, sodass der RX ab sofort die Spannungsversorgung übernimmt. Dazu wird lediglich noch der Pluspol des EX-Bus-Eingangs mit dem VCC-Port des Arduino verbunden. Es ist zudem zu empfehlen die analogen Eingänge des Arduino-Boards mit Dioden vor einer Verpolung zu schützen.

Jeti Duplex EX Spannungsensor Anschluss

Quelle: Erstellt mit Fritzing

Aufwändigere Jeti Sensoren realisieren

Nach dem gleichen Schema lassen sich auch Sensoren bauen, die weitaus mehr Messwerte übertragen. Denkbar ist beispielsweise eine Einzelzellenüberwachung für größere Packs oder Stromsensoren, die verschiedene Ströme im Modell messen. Begrenzt wird das Ganze im Endeffekt durch die Eingänge des Arduino-Boards, das zum Einsatz kommen soll.

DYI Arduino Jeti Sensor am Bonsai Wing

Bildquellen

  • Schaltbild Jeti EX Spannungssensor: Erstellt mit Fritzing
  • Jeti Duplex EX Spannungsensor Anschluss: Erstellt mit Fritzing

Das könnte Dich auch interessieren...

17 Antworten

  1. O.Kudalski sagt:

    Hallo
    Könntest du bitte mal das koplette Programm aufschreiben bitte.
    Am besten das ich zwei verschieden Spannungen messen kann.
    Danke im vorraus.

  2. oliver sagt:

    Zwei verschiedene Spannungen mit ein Adruino minni Bord messen unde das ganze als .ino file und allles waäre gut.
    Brauche auch kein EX sein.
    3 Spannungen währen noch besser wens nicht zu viele umstände macht.
    Danke im vorraus leider ist mir die gabe des Programieren nicht gegeben

  3. Oliver sagt:

    Ich möchte die Spannung von 2 Lipos messen sind 2S Lipos.

  4. Oliver sagt:

    Doch sollte Jeti sein nur brauch es kein EX Protokoll sein.

  5. Nils sagt:

    Hallo,
    ich habe so ungefähr null Ahnung von Spannungsteilern und Elektronik was müsste ich für Widerstände benutzen für 4s und 6S Akkus und muss ich im Sketsch dann nur die 3 jeweils in 4und 6 tauschen?

    tolle Arbeit was du hier beschrieben hast

    schon mal danke für die Antwort in voraus

    Gruß Nils

  6. Nils sagt:

    Hallo,

    wäre es möglich einen funktionierenden Sketch zu bekommen irgendwie klappt es schon beim Kompilieren nicht?

    Gruß Nils

  7. Andreas S. sagt:

    Hallo Nils,
    tolle Seite…aber ich kriege es nicht hin… Ich habe den Beispiel-Sketch auf den Arduino gespielt, TX mit dem D-Ext des RSAT-2 verbunden, aber es werden keine Sensoren auf dem Sender angezeigt unter Stoppuhren/Sensoren->Sensoren/Aufzeichnung. Irgendwas scheint mir zu fehlen…
    Der Arduino sendet Daten, das habe ich mir mit einem FTDI-Kabel angesehen. In der Jeti-Anleitung steht, dass die Sensoren beim Binden des Empfängers eingebunden werden, aber da steckt ja der Bind-Plug?
    Hast Du eine Idee?
    Viele Grüße
    Andreas

  8. Nils sagt:

    Hallo Nils,

    mit der Jeti library 0.94 klappt es perfekt die Gesamtspannung anzuzeigen! Nochmal danke für die Mühe und den Sketch! Ist in dem Sketch sehr viel zu ändern um 4S Spannungen anzuzeigen habe fast nur 4s Akkus?

    Gruß und nochmal Danke Nils

  9. Fabian Sander sagt:

    Hallo Nils,
    ich versuche mich gerade in den Sensoreigenbau eizuarbeiten und habe deine Anleitung gefunden. Leider ist es für mich neuling sehr schwer zu verstehen. Hast du für mich die .ino als fertige Datei damit ich mit dieser deine Anleitung nachvolziehen kann.
    Grüße
    Fabian

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.