Bitte ändert euer Passwort!

Im März 2026 wurde das Forum gehackt. Dabei hatten die Angreifer Zugriff auf die Datenbank und somit Zugriff auf eure Passwörter. Auch wenn das Forum kein Passwort im Klartext speichert, können die Angreifer eure Passwörter knacken. Bitte ändert daher dringend euer Passwort für das Forum. Solltet ihr das gleiche Passwort auch an anderer Stelle verwenden, ändert es bitte unbedingt an allen Stellen!

Arduino Library für Jeti EX Eigenbau-Telemetrie

  • AlexM_1977
  • Offline
  • Junior Mitglied
  • Junior Mitglied
  • Beiträge: 22
  • Thanks: 8

Re: Arduino Library für Jeti EX Eigenbau-Telemetrie

14 Mai 2016 18:33
#
Hallo Bernd,

leider bin ich auch erst heute dazu gekommen :) .Habe Deinen Code folgendermaßen angepasst.

JETISENSOR_PTR pSensor = m_pSensors[ m_sensorIdx ];
if( pSensor->m_value != -1 ) // -1 is "invalid"
{
if (pSensor->m_id>15)
{
m_exBuffer[n++] = 0x0 | (pSensor->m_dataType & 0x0F);
m_exBuffer[n++] = pSensor->m_id;
n += pSensor->jetiEncodeValue( m_exBuffer, n );
}
else
{
m_exBuffer[n++] = (pSensor->m_id<<4) | (pSensor->m_dataType & 0x0F); // 4Bit id, 4 bit data type (i.e. int14_t)
n += pSensor->jetiEncodeValue( m_exBuffer, n );
}

}
if( ++m_sensorIdx >= m_nSensors )

Jetzt sind mehr wie 15 sensoren möglich.Habe es mit 20 getestet und des funzt super.

Danke auch an Wolfgang für die Infos.

Grüße Alex
Folgende Benutzer bedankten sich: wstech

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Sepp62
  • Autor
  • Offline
  • Elite Mitglied
  • Elite Mitglied
  • Beiträge: 307
  • Thanks: 154

Re: Arduino Library für Jeti EX Eigenbau-Telemetrie

27 Mai 2016 11:36
#
Hallo Alex,

vielen Dank für Deine Mühe den Code anzupassen und zu testen.

Ich werde die Funktion so in den "Code-Stamm" übernehmen und fortan wird die Library mehr als 15 Sensoren unterstützen. Kann aber noch ein paar Tage dauern.

Viele Grüße
Bernd

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • onki
  • Offline
  • Platinum Mitglied
  • Platinum Mitglied
  • Beiträge: 2286
  • Thanks: 791

Re: Arduino Library für Jeti EX Eigenbau-Telemetrie

28 Mai 2016 07:43
#
Hallo Bernd,

ich hab mir noch einen Hallsensor bestellt als Stromsensor für meinen Funglider.
Da möchte ich versuchen sowohl die Daten auf die Minibox als auch auf der DC-16 zu sehen. Bisher schaffe ich nur entweder oder.
Bin für jeden Tip dankbar weil ich den Flieger mit den verschiedenen Sendern einsetzen möchte.
Im RCN gibt es ein Projekt für Hott mit einer netten Library, welche das Sensorauslesen übernimmt. Daran würde ich mich orientieren.

Gruß
Onki
Gruß aus dem Nordschwarzwald
Rainer aka Onki
www.onki.de
gepostet unter Verwendung von 100% recycelter Elektronen.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Sepp62
  • Autor
  • Offline
  • Elite Mitglied
  • Elite Mitglied
  • Beiträge: 307
  • Thanks: 154

Re: Arduino Library für Jeti EX Eigenbau-Telemetrie

28 Mai 2016 17:49 - 28 Mai 2016 17:50
#
Hallo Onki,

hast Du mal versucht den Code, der die "EX-Telemetrie" macht und die Jetibox-Anzeige zu kombinieren ?

In der Loop würde das dann grob so aussehen:

{
...
jetiEx.SetSensorValue( ID_VOLTAGE, 74 ); // 7.4 V
jetiEx.SetSensorValue( ID_ALTITUDE, 120 ); // 120 m

...
sprintf( line1, "Volt: %d", (int)7 );
jetiEx.SetJetiboxText( JetiExProtocol::LINE1, line1 );

sprintf( line1, "Alt: %d", (int)120 );
jetiEx.SetJetiboxText( JetiExProtocol::LINE2, line2 );
...
}

In der DC-16 würdest Du die Telemetriewerte auf dem Telemetriebildschirm sehen und zusätzlich die Texte in der Jetibox-Emulation. Ob die Minibox die "EX-Telemetrie" ignorieren kann oder ob sie in den Fehlerzustand geht, musst Du selbst probieren (habe keine Minibox).

Ich hoffe, der Beispiel-Code ist so weit klar (er ist an die Samples angelehnt).

Falls Du Gleitkommazahlen als Text ausgeben willst, kannst Du sprintf nicht ohne Weiteres verwenden, sondern musst die Konvertierung ev. selbst machen: forum.arduino.cc/index.php?topic=44262.0

Viele Grüße
Bernd
Letzte Änderung: 28 Mai 2016 17:50 von Sepp62.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • onki
  • Offline
  • Platinum Mitglied
  • Platinum Mitglied
  • Beiträge: 2286
  • Thanks: 791

Re: Arduino Library für Jeti EX Eigenbau-Telemetrie

29 Mai 2016 14:48
#
Hallo Bernd,

ich hab das derzeit so gelöst:
Code:
/* Jeti EX Sensor Simple Demo benötigt die Jeti Library von Bernd Wokoeck TX2 (Pin) 10 des Teensy mit Signalpin Telemetrie verbinden Spannungswert vom Sensor an A0 (Pin 14) Stromwert vom Sensor an A1 (Pin 15) **************************************************************/ #include <JetiExProtocol.h> JetiExProtocol jetiEx; enum { ID_VOLTAGE = 1, ID_CURRENT, ID_CAPACITY, }; float vcode; float acode; float myVoltage = 0.0f; float myCurrent = 0.0f; float myCapacity = 0.0f; static char line1[ 16 ]; static char line2[ 16 ]; JETISENSOR_PTR sensors[] = { // id name unit data type precision = 0 --> 0, precision = 1 --> 0.0, precision = 2 --> 0.00 new JetiSensor( ID_VOLTAGE, "Spannung", "V", JetiSensor::TYPE_14b, 1 ), new JetiSensor( ID_CURRENT, "Strom", "A", JetiSensor::TYPE_14b, 1 ), new JetiSensor( ID_CAPACITY, "Kapazitaet", "Ah", JetiSensor::TYPE_14b, 2 ), // 0 // end of array }; void setup() { #ifdef CORE_TEENSY Serial.begin( 9600 ); #endif jetiEx.Start( "OnkiSensor", sensors ); jetiEx.SetJetiboxText( JetiExProtocol::LINE1, "Start 1" ); jetiEx.SetJetiboxText( JetiExProtocol::LINE2, "Start 2" ); } void loop() { GetSensorValues(); jetiEx.SetSensorValue( ID_VOLTAGE, (long)myVoltage ); jetiEx.SetSensorValue( ID_CURRENT, (long)myCurrent ); jetiEx.SetSensorValue( ID_CAPACITY, (long)myCapacity ); jetiEx.DoJetiSend(); } void GetSensorValues() { analogReadRes(12); vcode = analogRead(A0); acode = analogRead(A1); myVoltage = (vcode / 121.00f); myCurrent = ((acode / 72.4f)-0.1f); myCapacity = myCapacity + (myCurrent / 1440.0f); delay(250); Serial.print("Spg: "); Serial.print(vcode); Serial.print(" digits entspricht "); Serial.print(myVoltage); Serial.println(" V"); Serial.print("Strom: "); Serial.print(acode); Serial.print(" digits entspricht "); Serial.print(myCurrent); Serial.println(" A"); sprintf( line1, "Strom: %f", myCurrent ); jetiEx.SetJetiboxText( JetiExProtocol::LINE1, line1 ); sprintf( line2, "Kap: %f", myCapacity ); jetiEx.SetJetiboxText( JetiExProtocol::LINE2, line2 ); }
Beides wird in der DC16 und auf der Minibox angezeigt. Werte auf der Minibox sind OK jedoch mit unnötig Nachkommastellen. In der DC-16 sind die Werte um Faktor 10 zu klein. Das wird die sprintf-Geschichte sein. Muss ich mir mal ansehen.
Die Serial-Befehle nutze ich für den Monitor als Hilfe.

Gruß
Onki
Gruß aus dem Nordschwarzwald
Rainer aka Onki
www.onki.de
gepostet unter Verwendung von 100% recycelter Elektronen.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Sepp62
  • Autor
  • Offline
  • Elite Mitglied
  • Elite Mitglied
  • Beiträge: 307
  • Thanks: 154

Re: Arduino Library für Jeti EX Eigenbau-Telemetrie

29 Mai 2016 16:16
#
Hallo Onki,

das schaut doch schon ganz gut aus.

Die um den Faktor 10 zu kleinen Werte solltest Du einfach so wegbekommen:

jetiEx.SetSensorValue( ID_VOLTAGE, (long)(myVoltage*10.0f) );

Bei der sprintf-Geschichte kann ich beim Arduino leider nicht mit persönlicher Erfahrung dienen. Mich wundert, dass Du überhaupt eine Floating-Point-Konvertierung mit sprintf hinbekommst, da diese im Default deaktiviert ist ( dereenigne.org/arduino/arduino-float-to-string ). Ansonsten lässt sich bei sprintf die "precision" einfach über den Format-String setzen. Also bei zwei Nachkommastellen so:

sprintf( line1, "Strom: %0.2f", myCurrent );


Alternativ ist hier ein (blind hingeschriebenes) Beispiel für die dtostrf-Funktion:

char tempCurrent[6];
dtostrf( myCurrent, 6, 2, tempCurrent); // Min. 6 chars wide incl. decimal point, 2 digits right of decimal
sprintf( line1, "Strom: %s", temp );

Hoffe, Du kannst was damit anfangen.

Viele Grüße
Bernd


PS: Passt das Ganze nun grundsätzlich für die Verwendung in der DC16 ***und*** mit der Mini-Jetibox ?
Folgende Benutzer bedankten sich: onki

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.586 Sekunden
Powered by Kunena Forum