Hallo liebe Modellbaugemeinde,
nachdem ich nun schon eine lange Zeit im Forum mitlese und viele interessante Dinge gelesen und gelernt habe, möchte ich heute nun auch einmal eine kleine Bastelei vorstellen, mit der ich meine "alten" Modelle mit Jeti-Empfänger fit für die Taranis-Telemetrie mache.....
Mein Wunsch war, bestehende Flugmodelle mit Jeti Duplex-Empfänger und Unilog 1 und Unilog 2 (von SM-Modellbau.de) in die Taranis Telemetrie zu integrieren. Dazu dient ein Arduino pro mini, der über eine one-wire-Datenschnittstelle eine herkömmliche Jeti-Box emuliert und dabei sowohl die Bildschirmanzeige auswertet und ins Taranis-Protokoll übersetzt, als auch die normalerweise händischen Tasteneingaben zur Menü-Auswahl durchführt. Die Stromversorgung des Arduino mit 5V erfolgt dabei über das Jeti TGS-Modul.
Über einen Jumper am Arduino werden zwei Betriebsarten ausgewählt:
-Jumper geschlossen: die aktuelle Receiver-Versorgungsspannung wird ausgewertet
(bei Modellen ohne Unilog)
- Jumper offen: folgende Daten vom Unilog 1&2 werden ausgewertet:
Batteriespannung, Antriebs-Strom, Höhe, verbrauchte Kapazität
Zusätzlich werden beim Unilog 2 jede Minute einmal die Temperaturen am Anschluss A1 & A2
ausgelesen; dazu wird kurz das Menü „E“ des Unilog ausgewählt und dann gleich wieder zurück zum
Menü „A“ geschaltet. Während dieser Zeit (ca. 7 sek aufgrund der relativ langen Reaktionszeit des
Unilog) werden die anderen Sensorwerte nicht aktualisiert.
Diese Festlegung ist in meinem Arduino-Sketch so vorgegeben, weil meine Modelle derart mit Sensoren und Loggern ausgestattet sind, könnte aber natürlich auch nach eigenen Wünschen angepasst werden. Einige Kommentare sind dazu im Code beinhaltet. Der RSSI-Wert des Jeti-Systems wird ebenfalls nicht ausgelesen, da der Menüwechsel zu lange dauern würde. Um Fehlermeldungen der Taranis zu vermeiden, wird bei bestehender Funkverbindung ein Ersatzwert von „50“ ausgegeben; bei fehlender Funkverbindung eine „0“. Der Code greift auf die Vorarbeiten von diversen Programmierern zurück (DANKE SCHÖN an dieser Stelle !!) und erhebt ganz sicher keinen Anspruch auf Schönheit und professionelle Bedürfnisse, aber er funktioniert für meine Anforderungen ganz gut ….
a.) Hardware:
1 x Arduino Pro Mini (5V 16MHz)
1 x Schottky-Diode BAT85 (Vielleicht geht auch eine normale Diode, ich hab’s aber nicht getestet)
1 x 470 Ohm, 1 x 1kOhm Widerstände
(Die Anordnung der Bauteile ist im anhängenden Sketch nochmal beschrieben)
1 x JST-4pin-Stecker
1 x Servokabel
1 x kleine Lochrasterplatine
b.) Software:
1 x Arduino IDE 1.6.x
1 x modifizierte Hardwareserial libraries (https://github.com/Bouni/Arduino/tree/ide-1.5.x-hardware-serial-9-bit)
(die Dateien „HardwareSerialx.x“ im Ordner „..\hardware\arduino\avr\cores\arduino“ sind
durch die modifizierten Dateien zu ersetzen. Dadurch wird das ungewöhnliche 9O1-Protokoll
der Jeti-Datenschnittstelle auch beim Arduino ermöglicht - und ich benötige z.B. keinen
teureren TEENSY, der das auch schon von Haus aus kann…).
1 x Sketch “Jeti2Frsky_xxx.ino”
Der Sketch wird dann ganz normal compiliert und auf den Arduino hochgeladen.
c.) Taranis-Programmierung:
Die serielle Schnittstelle der Taranis ist als Telemetrie-Eingang zu konfigurieren:
Im Telemetrie-Menü ist daraufhin der Typ „Frsky D (cable)“ auszuwählen.
Mit der automatischen Sensorsuche sollten dann (bei laufendem Arduino) schon die meisten Einstellungen im Telemetrie-Menü erscheinen; nach ein paar weiteren manuellen Anpassungen sollte dies am Ende dann so aussehen:
d.) Taranis LUA-Scripte
Damit das Ganze auch schön aussieht und gut handhabbar ist, habe ich zwei LUA-Scripte erstellt, die auf die SD-Karte der Taranis zu kopieren sind:
“batt_kap.lua” in ..\SD_Card\SCRIPTS\MIXES
“sw_KAP_t.lua” in ..\ SD_Card\SCRIPTS\TELEMETRY
Mit dem ersten diesen beiden Scripte kann man über ein Poti (Zuweisung über das Scripte-Menü) eine Variable „BattCapacity“ einstellen, welche als Berechnung für den „Akku-Füllstand“ dient.
(Da ich bei ein und demselben Modell häufiger Akkus unterschiedlicher Kapazität einsetze, finde ich es ziemlich praktisch, per Poti meine jeweilig verwendetet Akku-Kapazität einzustellen und dies dann gleich in einer Fuel-Berechnung zu verarbeiten…….)
Der Akku-Füllstand wird dann über das Script in Intervallen als Ansage ausgegeben.
Mit dem zweiten Script wird nach Auswahl im Telemetrie-Menü folgender Bildschirm erzeugt:
Und nun: viel Spaß beim Nachbauen und telemetrischem fliegen
Jan68
PS: die Anhänge habe ich zum Hochladen ins Forum als txt-Datei umbenennen müssen....
nachdem ich nun schon eine lange Zeit im Forum mitlese und viele interessante Dinge gelesen und gelernt habe, möchte ich heute nun auch einmal eine kleine Bastelei vorstellen, mit der ich meine "alten" Modelle mit Jeti-Empfänger fit für die Taranis-Telemetrie mache.....
Mein Wunsch war, bestehende Flugmodelle mit Jeti Duplex-Empfänger und Unilog 1 und Unilog 2 (von SM-Modellbau.de) in die Taranis Telemetrie zu integrieren. Dazu dient ein Arduino pro mini, der über eine one-wire-Datenschnittstelle eine herkömmliche Jeti-Box emuliert und dabei sowohl die Bildschirmanzeige auswertet und ins Taranis-Protokoll übersetzt, als auch die normalerweise händischen Tasteneingaben zur Menü-Auswahl durchführt. Die Stromversorgung des Arduino mit 5V erfolgt dabei über das Jeti TGS-Modul.
Über einen Jumper am Arduino werden zwei Betriebsarten ausgewählt:
-Jumper geschlossen: die aktuelle Receiver-Versorgungsspannung wird ausgewertet
(bei Modellen ohne Unilog)
- Jumper offen: folgende Daten vom Unilog 1&2 werden ausgewertet:
Batteriespannung, Antriebs-Strom, Höhe, verbrauchte Kapazität
Zusätzlich werden beim Unilog 2 jede Minute einmal die Temperaturen am Anschluss A1 & A2
ausgelesen; dazu wird kurz das Menü „E“ des Unilog ausgewählt und dann gleich wieder zurück zum
Menü „A“ geschaltet. Während dieser Zeit (ca. 7 sek aufgrund der relativ langen Reaktionszeit des
Unilog) werden die anderen Sensorwerte nicht aktualisiert.
Diese Festlegung ist in meinem Arduino-Sketch so vorgegeben, weil meine Modelle derart mit Sensoren und Loggern ausgestattet sind, könnte aber natürlich auch nach eigenen Wünschen angepasst werden. Einige Kommentare sind dazu im Code beinhaltet. Der RSSI-Wert des Jeti-Systems wird ebenfalls nicht ausgelesen, da der Menüwechsel zu lange dauern würde. Um Fehlermeldungen der Taranis zu vermeiden, wird bei bestehender Funkverbindung ein Ersatzwert von „50“ ausgegeben; bei fehlender Funkverbindung eine „0“. Der Code greift auf die Vorarbeiten von diversen Programmierern zurück (DANKE SCHÖN an dieser Stelle !!) und erhebt ganz sicher keinen Anspruch auf Schönheit und professionelle Bedürfnisse, aber er funktioniert für meine Anforderungen ganz gut ….
a.) Hardware:
1 x Arduino Pro Mini (5V 16MHz)
1 x Schottky-Diode BAT85 (Vielleicht geht auch eine normale Diode, ich hab’s aber nicht getestet)
1 x 470 Ohm, 1 x 1kOhm Widerstände
(Die Anordnung der Bauteile ist im anhängenden Sketch nochmal beschrieben)
1 x JST-4pin-Stecker
1 x Servokabel
1 x kleine Lochrasterplatine
b.) Software:
1 x Arduino IDE 1.6.x
1 x modifizierte Hardwareserial libraries (https://github.com/Bouni/Arduino/tree/ide-1.5.x-hardware-serial-9-bit)
(die Dateien „HardwareSerialx.x“ im Ordner „..\hardware\arduino\avr\cores\arduino“ sind
durch die modifizierten Dateien zu ersetzen. Dadurch wird das ungewöhnliche 9O1-Protokoll
der Jeti-Datenschnittstelle auch beim Arduino ermöglicht - und ich benötige z.B. keinen
teureren TEENSY, der das auch schon von Haus aus kann…).
1 x Sketch “Jeti2Frsky_xxx.ino”
Der Sketch wird dann ganz normal compiliert und auf den Arduino hochgeladen.
c.) Taranis-Programmierung:
Die serielle Schnittstelle der Taranis ist als Telemetrie-Eingang zu konfigurieren:
Im Telemetrie-Menü ist daraufhin der Typ „Frsky D (cable)“ auszuwählen.
Mit der automatischen Sensorsuche sollten dann (bei laufendem Arduino) schon die meisten Einstellungen im Telemetrie-Menü erscheinen; nach ein paar weiteren manuellen Anpassungen sollte dies am Ende dann so aussehen:
d.) Taranis LUA-Scripte
Damit das Ganze auch schön aussieht und gut handhabbar ist, habe ich zwei LUA-Scripte erstellt, die auf die SD-Karte der Taranis zu kopieren sind:
“batt_kap.lua” in ..\SD_Card\SCRIPTS\MIXES
“sw_KAP_t.lua” in ..\ SD_Card\SCRIPTS\TELEMETRY
Mit dem ersten diesen beiden Scripte kann man über ein Poti (Zuweisung über das Scripte-Menü) eine Variable „BattCapacity“ einstellen, welche als Berechnung für den „Akku-Füllstand“ dient.
(Da ich bei ein und demselben Modell häufiger Akkus unterschiedlicher Kapazität einsetze, finde ich es ziemlich praktisch, per Poti meine jeweilig verwendetet Akku-Kapazität einzustellen und dies dann gleich in einer Fuel-Berechnung zu verarbeiten…….)
Der Akku-Füllstand wird dann über das Script in Intervallen als Ansage ausgegeben.
Mit dem zweiten Script wird nach Auswahl im Telemetrie-Menü folgender Bildschirm erzeugt:
Und nun: viel Spaß beim Nachbauen und telemetrischem fliegen
Jan68
PS: die Anhänge habe ich zum Hochladen ins Forum als txt-Datei umbenennen müssen....