Arduino Library für Jeti EX Eigenbau-Telemetrie

11 Dez 2015 13:37 #1 von Sepp62
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
Anhang:
Folgende Benutzer bedankten sich: AlexBonfire, 0n3 70uch, realloser, Henning, wiff, Gripen, smartrobert, AlexM_1977, F10F4F9

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

11 Dez 2015 13:39 #2 von Sepp62
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();
}
Folgende Benutzer bedankten sich: Gripen, Rikas

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

11 Dez 2015 21:26 - 11 Dez 2015 21:31 #3 von wiff
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.
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
Folgende Benutzer bedankten sich: 0n3 70uch

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

11 Dez 2015 22:17 #4 von Sepp62
Hallo Wolfgang,

danke für die Blumen.

Ich werde Deine Codezeilen (mit Deiner Genehmigung) in den "Stamm" übernehmen.

Viele Grüße
Bernd

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

11 Dez 2015 22:29 #5 von wiff
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

Wolfgang

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

14 Dez 2015 09:08 - 14 Dez 2015 09:08 #6 von 0n3 70uch
Traumhaft :-).

Habe für solche Sachen bisher immer den Mav2Duplex Code umgebaut. So ist es natürlich wesentlich schöner.

Danke.
Gruß
Fabi

JETI4ever

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.138 Sekunden

Impressum