OpenXSensor für Jeti mit Empfänger REX10
- onki
- Offline Autor
- Platinum Mitglied
- Beiträge: 2286
- Dank erhalten: 791
mir soll es recht sein.
Ich kann den Code so oder so nicht wirklich lesen und bin schon froh, wenn ich die Configdatei richtig handhabe und alles kompiliert bekomme.
Aber das OpenXSensor Projekt ist doch in C++ oder was sollen die ganzen .cpp FIles dort?
Ich sehe den Vorteil von OpenXSensor derzeit darin, dass eine Vielzahl von unterschiedlicher Peripherie unterstützt wird.
Das fängt beim Drucksensor an (MS5611, BMP 085/180/280) und hört beim externen I²C 16 Bit A/D Wandler ADS 1115 auf.
Gruß
Onki
Rainer aka Onki
www.onki.de
gepostet unter Verwendung von 100% recycelter Elektronen.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Sepp62
- Offline
- Elite Mitglied
- Beiträge: 294
- Dank erhalten: 153
ein solches "Multi-Sensor-Projekt" wird das OpenXSensor-Projekt sicher nicht überflüssig machen. OpenXSensor kann viele verschiedene Telemetrien und hat Implementierungen für eine ganze Reihe von Sensoren.
Es geht "nur" darum, dass man einfache Sensoren leicht kombinieren kann. Es würde ausschließlich mit Jeti-Telemetrie funktionieren.
Das Ziel dabei ist, dass man den Code gut kapselt, so dass man relativ (!) leicht eigene Sensor-Module programmieren bzw. zu adaptieren kann und diese dann kombinierbar sind. Die Sensor-Module wären in sich abgeschlossen und haben möglichst wenig Abhängigkeiten zu anderem Code.
Als Beispiel ein paar Code-Auszüge aus meinem "MegaSensor"-Projekt, das vier Sensoren bedient und 18 Sensorwerte liefert.
So kann man sich den Code vorstellen. Wenn das so verständlich ist, lohnt sich das Projekt. Wenn man mit OpenXSensor dasselbe erreicht, weil es ein Kochrezept gibt, das am Ende auch handhabbar ist, ist das Projekt überflüssig. Ich denke, dass man ein wenig Lust zum Programmieren haben muss, um es zu nutzen.
VG Bernd
Code Beispiel:
DualVoltageSensor voltage;
Bmp180Sensor pressure;
GpsSensor gps;
OrbitECUSensor ecu;
JetiExProtocol jetiEx;
void setup()
{
voltage.Init( A0, A1, 0.295389564f, 0.294547398f, 2000 );
pressure.Init( 1000 ); // I2C
ecu.Init( SERIAL1, false );
gps.Init( SERIAL3 );
jetiEx.Start( "Lama", sensors, SERIAL2 );
}
void loop()
{
ecu.DoOrbitECUSensor();
voltage.DoDualVoltageSensor();
pressure.DoBmp180Sensor();
gps.DoGpsSensor();
int32_t status = ecu.GetStatus();
int32_t rpm = ecu.GetRPM();
jetiEx.SetSensorValue( ID_VOLTAGE, ecu.GetVoltage() );
jetiEx.SetSensorValue( ID_EGT, ecu.GetEGT() );
jetiEx.SetSensorValue( ID_RPM, rpm );
jetiEx.SetSensorValue( ID_FUEL, ecu.GetFuel() );
jetiEx.SetSensorValue( ID_STATUS, status );
float lat = gps.GetLat();
float lon = gps.GetLon();
jetiEx.SetSensorValueGPS( ID_GPSLAT, false, lat );
jetiEx.SetSensorValueGPS( ID_GPSLON, true, lon );
jetiEx.SetSensorValue( ID_GPSSPEED, gps.GetSpeed() ); // km/h
jetiEx.SetSensorValue( ID_GPSHDOP, gps.GetHDOP() ); // in 100th
// jetiEx.SetSensorValue( ID_ALT, gps.GetAlt() ); // m
jetiEx.SetSensorValue( ID_ALT, pressure.GetAlt() ); // m
jetiEx.SetSensorValue( ID_BATT, voltage.GetDualVoltage() );
jetiEx.SetSensorValue( ID_PUMP, ecu.GetPumpVolt() );
jetiEx.SetSensorValue( ID_EGTMAX, ecu.GetEGTmax() );
jetiEx.SetSensorValue( ID_TEMPAMB, (long)(pressure.GetTemp()*10.0f) );
/* you can do other stuff here */
jetiEx.DoJetiSend();
}
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- onki
- Offline Autor
- Platinum Mitglied
- Beiträge: 2286
- Dank erhalten: 791
ich bin jetzt erst einmal ein paar Tage weg und kann nicht weiter machen.
Wäre toll noch Rückmeldungen zu bekommen. Speziell ob es jemandem gelungen ist auch Positionsdaten dem Sensor zu entlocken.
Laut Doku sollten die ja mit übertragen werden.
Auszug Doku:
9.4 - Jeti data ************************************************************************************************************************
* Measurements being automatically transmitted are :
* - Relative altitude(cm), main vertical Speed(cm/sec) (when at least first baro sensor is present) and maximum altitude
* - Cell voltages including min and total (when NUMBER_OF_CELLS > 0)
* - Current and consumption (when Current sensor is present)
* - GPS (long, lat, speed, altitude , course, distance and direction from home) (when GPS sensor is present)
* On top of this, you can also specify to send one of the 6 voltage (if voltage is measured)
Gruß
Onki
Rainer aka Onki
www.onki.de
gepostet unter Verwendung von 100% recycelter Elektronen.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- McFly2000
- Offline
- Senior Mitglied
- Beiträge: 61
- Dank erhalten: 22
auskommentiert.
Die Koordinaten wurden aber immer noch nicht übertragen. Erst als ich den fehlenden dataType JETI_GPS in der .cpp hinzugefügt habe hat es funktioniert.
Nur wird jetzt anstatt ein "E" für Ost ein "N" im Sender angezeigt. Dies liegt wahrscheinlich daran, weil mein dataType JETI_GPS noch falsch ist. Hier habe ich den gleichen Text
wie bei JETI_30.
Dirk
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- bohla
- Offline
- Neues Mitglied
- Beiträge: 9
- Dank erhalten: 1
will mir heute Abend noch zwei Sensoren bestellen. Was brauch ist für Sensor damit ich die Spannung und Strom messen kann. Am besten bis 6 Cellen Lipo und 100A. Welches GPS Sensor brauche ich auch noch?
Danke
A. J
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- onki
- Offline Autor
- Platinum Mitglied
- Beiträge: 2286
- Dank erhalten: 791
Als Stromsensor biete sich ein ACS758 100 U (100 für 100A und U für unidirektional) an. Gibt es in der Bucht. Für die Spannung reicht ein Spannungsteiler aus 2 Widerständen am Pluseingang des Stromsensors.
Berechnungen hierzu gibt es im Netz (6:1 sollte bei 6s reichen).
Oder alternativ ein Stromsensor mit Shunt (leider nur 90A).
www.ebay.de/itm/Stromsensor-Power-Modul-...&hash=item3ae13fe73d
Als GPS kann ich das hier empfehlen:
www.ebay.de/itm/NEO-6M-GPS-Module-Board-...b:g:beEAAOSwY3BZNqtw
Gruß
Onki
Rainer aka Onki
www.onki.de
gepostet unter Verwendung von 100% recycelter Elektronen.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.