Arduino Library für Jeti EX Eigenbau-Telemetrie
- Sepp62
- Offline Autor
- Elite Mitglied
- Beiträge: 294
- Dank erhalten: 153
Arduino Library für Jeti EX Eigenbau-Telemetrie wurde erstellt von Sepp62
Posted 11 Dez. 2015 13:37 #1
Ich habe, basierend auf einem Open-Source-Projekt von Henning Stöcklein, eine einfach zu verwendende Telemetrie-Library für den Arduino Mini Pro 328 in C++ geschrieben.
Den Code gibt es hier:
sourceforge.net/projects/jetiexsensorcpplib/
Die Schnittstelle sollte einfach und selbst erklärend sein.
Das ZIP-File muss als Library über die Entwicklungsumgebung (1.0.6) des Arduino installiert werden. Sie hat keine Abhängigkeiten zu anderen Libraries.
Basierend auf dieser Library, gibt es eine Telemetrie für eine ältere Orbit Turbinen-ECU. Dieser Code befindet sich hier und kann u.U. auf andere ECU-Modelle angepasst werden:
sourceforge.net/projects/orb...ry-sensor-lib/
Mit ein wenig Arduino-Know-How sollte ein Eigenbau kein Problem sein. Verwendet wird ein Arduino Mini.
Empfehlenswert ist jedoch eine galvanische Entkopplung der seriellen Schnittstelle der ECU vom Arduino.
Viel Spaß!
Grüße
Bernd
Den Code gibt es hier:
sourceforge.net/projects/jetiexsensorcpplib/
Die Schnittstelle sollte einfach und selbst erklärend sein.
Das ZIP-File muss als Library über die Entwicklungsumgebung (1.0.6) des Arduino installiert werden. Sie hat keine Abhängigkeiten zu anderen Libraries.
Basierend auf dieser Library, gibt es eine Telemetrie für eine ältere Orbit Turbinen-ECU. Dieser Code befindet sich hier und kann u.U. auf andere ECU-Modelle angepasst werden:
sourceforge.net/projects/orb...ry-sensor-lib/
Mit ein wenig Arduino-Know-How sollte ein Eigenbau kein Problem sein. Verwendet wird ein Arduino Mini.
Empfehlenswert ist jedoch eine galvanische Entkopplung der seriellen Schnittstelle der ECU vom Arduino.
Viel Spaß!
Grüße
Bernd
von Sepp62
Folgende Benutzer bedankten sich: AlexBonfire, 0n3 70uch, realloser, Henning, wiff, Gripen, AlexM_1977, F10F4F9
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sepp62
- Offline Autor
- Elite Mitglied
- Beiträge: 294
- Dank erhalten: 153
Hier ein Stück Beispiel-Code zur Verwendung:
// max. 6 Sensors, id from 1..15, name plus unit must be < 20 characters, precision = 0 --> 0, precision = 1 --> 0.0, precision = 2 --> 0.00
JETISENSOR_PTR sensors[] =
{
// id name unit data type precision
new JetiSensor( 1, "Voltage", "V", JetiSensor::TYPE_14b, 1 ),
new JetiSensor( 2, "Altitude", "m", JetiSensor::TYPE_14b, 0 ),
new JetiSensor( 3, "Temp", "\xB0\x43", JetiSensor::TYPE_14b, 0 ), // °C
new JetiSensor( 4 , "Climb", "m/s", JetiSensor::TYPE_14b, 2 ),
new JetiSensor( 5 "Fuel", "%", JetiSensor::TYPE_14b, 0 ),
new JetiSensor( 6, "RPM", "/min", JetiSensor::TYPE_14b, 0 ),
0 // end of array
};
void setup()
{
jetiEx.Start( "ECU", sensors );
jetiEx.SetJetiboxText( JetiExProtocol::LINE1, "Start 1" );
jetiEx.SetJetiboxText( JetiExProtocol::LINE2, "Start 2" );
/* add your setup code here */
}
void loop()
{
/* add your main program code here */
jetiEx.SetSensorValue( 1, demoSensor.GetVoltage() );
jetiEx.SetSensorValue( 2, demoSensor.GetAltitude() );
jetiEx.SetSensorValue( 3, demoSensor.GetTemp() );
jetiEx.SetSensorValue( 4, demoSensor.GetClimb() );
jetiEx.SetSensorValue( 5, demoSensor.GetFuel() );
jetiEx.SetSensorValue( 6, demoSensor.GetRpm() );
jetiEx.DoJetiSend();
}
// max. 6 Sensors, id from 1..15, name plus unit must be < 20 characters, precision = 0 --> 0, precision = 1 --> 0.0, precision = 2 --> 0.00
JETISENSOR_PTR sensors[] =
{
// id name unit data type precision
new JetiSensor( 1, "Voltage", "V", JetiSensor::TYPE_14b, 1 ),
new JetiSensor( 2, "Altitude", "m", JetiSensor::TYPE_14b, 0 ),
new JetiSensor( 3, "Temp", "\xB0\x43", JetiSensor::TYPE_14b, 0 ), // °C
new JetiSensor( 4 , "Climb", "m/s", JetiSensor::TYPE_14b, 2 ),
new JetiSensor( 5 "Fuel", "%", JetiSensor::TYPE_14b, 0 ),
new JetiSensor( 6, "RPM", "/min", JetiSensor::TYPE_14b, 0 ),
0 // end of array
};
void setup()
{
jetiEx.Start( "ECU", sensors );
jetiEx.SetJetiboxText( JetiExProtocol::LINE1, "Start 1" );
jetiEx.SetJetiboxText( JetiExProtocol::LINE2, "Start 2" );
/* add your setup code here */
}
void loop()
{
/* add your main program code here */
jetiEx.SetSensorValue( 1, demoSensor.GetVoltage() );
jetiEx.SetSensorValue( 2, demoSensor.GetAltitude() );
jetiEx.SetSensorValue( 3, demoSensor.GetTemp() );
jetiEx.SetSensorValue( 4, demoSensor.GetClimb() );
jetiEx.SetSensorValue( 5, demoSensor.GetFuel() );
jetiEx.SetSensorValue( 6, demoSensor.GetRpm() );
jetiEx.DoJetiSend();
}
von Sepp62
Folgende Benutzer bedankten sich: Gripen, Rikas
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- wiff
- Offline
- Premium Mitglied
- Wolfgang
- Beiträge: 83
- Dank erhalten: 25
Hallo Bernd,
SUPER - Deine Library ist der HAMMER :woohoo: :woohoo: :woohoo:
Habe zuerst auf dem Arduino Uno getestet mit der Jeti-Box (alt) und einem R8 Empfänger+ Telemetrie am Sender.
Weil ich für mein Projekt (NFC Identifikation der Akkupacks) lieber einen 3.3V Pro Mini verwenden möchte, habe ich in
JetiExSerial.cpp die Routine void JetiExHardwareSerial::Init() angepasst und auf der neuesten Arduinoversion 1.6.6 compiliert.
Der Pro Mini 3.3 Volt hat ebenfalls auf Anhieb funktioniert!
Man kann die Library damit für die 5V 16Mhz und die 3.3V 8Mhz Arduinos compilieren, ohne den Code zu ändern.
Nochmals herzliche Gratulation zu Deiner Arbeit.
Viele Grüsse,
Wolfgang
SUPER - Deine Library ist der HAMMER :woohoo: :woohoo: :woohoo:
Habe zuerst auf dem Arduino Uno getestet mit der Jeti-Box (alt) und einem R8 Empfänger+ Telemetrie am Sender.
Weil ich für mein Projekt (NFC Identifikation der Akkupacks) lieber einen 3.3V Pro Mini verwenden möchte, habe ich in
JetiExSerial.cpp die Routine void JetiExHardwareSerial::Init() angepasst und auf der neuesten Arduinoversion 1.6.6 compiliert.
Code:
Zeile 80 alt:
// baudrate 9600~9800 Baud
UBRR0H = 0x00;
UBRR0L = 0x66;
neu:
// baudrate 9600~9800 Baud
#if F_CPU == 16000000L // for the 16 MHz clock on most Arduino boards
UBRR0H = 0x00;
UBRR0L = 0x66;
#elif F_CPU == 8000000L // for the 8 MHz internal clock (Pro Mini 3.3 Volt)
unsigned int ubrr = F_CPU / 16 / 9600 - 1;
UBRR0H = (unsigned char)(ubrr>>8);
UBRR0L = (unsigned char)ubrr;
#else
#error Unsupported clock speed
#endif
Der Pro Mini 3.3 Volt hat ebenfalls auf Anhieb funktioniert!
Man kann die Library damit für die 5V 16Mhz und die 3.3V 8Mhz Arduinos compilieren, ohne den Code zu ändern.
Nochmals herzliche Gratulation zu Deiner Arbeit.
Viele Grüsse,
Wolfgang
Wolfgang
Last Edit:11 Dez. 2015 21:31
von wiff
Letzte Änderung: 11 Dez. 2015 21:31 von wiff.
Folgende Benutzer bedankten sich: 0n3 70uch
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sepp62
- Offline Autor
- Elite Mitglied
- Beiträge: 294
- Dank erhalten: 153
Hallo Wolfgang,
danke für die Blumen.
Ich werde Deine Codezeilen (mit Deiner Genehmigung) in den "Stamm" übernehmen.
Viele Grüße
Bernd
danke für die Blumen.
Ich werde Deine Codezeilen (mit Deiner Genehmigung) in den "Stamm" übernehmen.
Viele Grüße
Bernd
von Sepp62
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- wiff
- Offline
- Premium Mitglied
- Wolfgang
- Beiträge: 83
- Dank erhalten: 25
Hallo Bernd,
ja klar !!
Jetzt muss man Deinen Code "nur" noch in das OpenXSensor Projekt github.com/openXsensor/openXsensor/wiki einbauen :whistle:
Viele Grüsse,
Wolfgang
ja klar !!
Jetzt muss man Deinen Code "nur" noch in das OpenXSensor Projekt github.com/openXsensor/openXsensor/wiki einbauen :whistle:
Viele Grüsse,
Wolfgang
Wolfgang
von wiff
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- 0n3 70uch
- Offline
- Premium Mitglied
- Beiträge: 133
- Dank erhalten: 31
0n3 70uch antwortete auf Arduino Library für Jeti EX Eigenbau-Telemetrie
Posted 14 Dez. 2015 09:08 #6
Traumhaft .
Habe für solche Sachen bisher immer den Mav2Duplex Code umgebaut. So ist es natürlich wesentlich schöner.
Danke.
Gruß
Fabi
Habe für solche Sachen bisher immer den Mav2Duplex Code umgebaut. So ist es natürlich wesentlich schöner.
Danke.
Gruß
Fabi
JETI4ever
Last Edit:14 Dez. 2015 09:08
von 0n3 70uch
Letzte Änderung: 14 Dez. 2015 09:08 von 0n3 70uch.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 1.101 Sekunden