OXSENS OpenXsensor - Erste Schritte und Problem

  • Themenstarter Deleted member 51580
  • Beginndatum
Wenn die Werte nur mal braucht, um das Zusammenspiel der Komponenten zu prüfen...
Ja, um das geht es mir, aber unter Belastung. Ich würde gern mal im Logfile ansehen, wie stark und wie versetzt sich die "gezogenen Ampere" auf Motor- und ESC Temperatur auswirken.
Da hab ich massive Probleme beim hinterher hecheln mit dem Infrarotthermometer
Ich bin nicht mehr der Jüngste :engel:
 
bei mir herrscht wieder Stillstand.
Ich möchte mit einem TMP36 als Fühler Temperatur messen.
Als Pin möchte ich den A0 verwenden.
Benutzt wird weiterhin Pin A6 zur Strommessung und D4 zur Drehzahlmessung

Ich habe jetzt 5 mal die oXs_config_description.h rauf und runter gelesen werde aber mit den Punkten 6.4 und 6.2 im Zusammenhang mit der Temperaturmessung - TMP36 nicht schlau was denn jetzt wo eingetragen werden muss.

Der TMP36 gibt 10mV pro Grad/C aus und hat bei 0 Grad/C 500mV Offset
 
Ich würde mal so anfangen:
in der basic 2.1:
#define T1_SOURCE VOLT_1
Code:
// ***** 6.2 - Voltage parameters *****
#define PIN_VOLTAGE         0  , 8     , 8    , 8    , 8   ,  8               //  Fill 6 values; set to 0 up to 7 for analog pins A0 up to A7 ; set the value to 8 for the voltage(s) not to be measured.
#define RESISTOR_TO_GROUND  1  , 10    , 10   , 10   , 0   , 18               // set value to 0 when no divider is used for a voltage; can contains decimals
#define RESISTOR_TO_VOLTAGE 1  , 73    , 110  , 27   , 0   , 47              // set value to 0 when no divider is used for a voltage; can contains decimals
#define OFFSET_VOLTAGE      500, 0     , 0    , 0    , 0   ,  0                // optionnal, can be negative, must be integer, in principe in mv
#define SCALE_VOLTAGE       1.0, 1.0   , 1.0  , 1.0  , 1.0 , 1.0              // optionnal, can be negative, can have decimals
Dann guck mal, was bei Raumtemperatur in T1 angezeigt wird. Kann sein, dass du an define SCALE_VOLTAGE 1.0 noch schrauben musst, da bin ich nicht sicher. Bei 20°C wären das 0,20V mit 2 Nachkommastellen, aber die Temperatur wird ohne Nachkommastellen angezeigtt, sollte also wieder 20 sein. Ohne Gewähr ;)
 
Erhaltene "Gefällt mir": ralfwo
Jetzt klappt es.

Die Formel zur Berechnung der Temperatur beim TMP36 ist

°C = (Volt-0,5)*100



Folgendes eingetragen:

oSx_config_basic_h:

#define FUEL_SOURCE VOLT_1

#define ARDUINO_MEASURES_VOLTAGES YES

#define NUMBEROFCELLS 1



Mit

#define T1_SOURCE VOLT_1

hat es mir den RPM Sensor nicht mehr übertragen.



oSx_config_advanced_h:

// ***** 6.2 - Voltage parameters *****

#define PIN_VOLTAGE 0 , 8 , 8 , 8 , 8 , 8

#define RESISTOR_TO_GROUND 0 , 10 , 10 , 10 , 0 , 18

#define RESISTOR_TO_VOLTAGE 0 , 73 , 110 , 27 , 0 , 47

#define OFFSET_VOLTAGE -500 , 0 , 0 , 0 , 0 , 0

#define SCALE_VOLTAGE 1.0, 1.0 , 1.0 , 1.0 , 1.0 , 1.0



Dann noch in der Taranis

Name auf Temp

Einheit auf °C

Präzision auf 0.0

Ratio auf 25.6
 
Noch was zu den Sensor IDs.

mit
#define FUEL_SOURCE VOLT_1
überträgt es mir jetzt meine Einzelzellenspannung mit dem FLVss nicht mehr.

In der oSx_description steht ja unter 1.2
* If needed (e.g. in order to connect 2 oXs devices sending similar data), you can change some SPORT_SENSOR_ID but you must select only values from this list
* 0x00,0xA1,0x22,0x83,0xE4,0x45,0xC6,0x67,0x48,0xE9,0x6A,0xCB,0xAC,0x0D,0x8E,0x2F,0xD0,0x71,0xF2,0x53,0x34,0x95,0x16,0xB7,0x98,0x39,0xBA,0x1B


bedeutet das, wenn ich der advanced unter 1.2
#define DATA_ID_VARIO 0x1B
eintrage, ich keine Kollision mehr habe, da diese ID von FRSKY eigentlich nicht verwendet wird
 
Code:
For SPORT protocol, oXs uses up to 6 SPORT_SENSOR_ID. The 6 SENSOR_ID used by oXs are by default :   
*               DATA_ID_VARIO  0x00  // = sensor 0 used for Alt and Vspeed
*               DATA_ID_FLVSS  0xA1  //          1 used for Cell values
*               DATA_ID_FAS    0x22  //          2 used for vfas , current and fuel
*               DATA_ID_GPS    0x83  //          3 used for GPS data
*               DATA_ID_RPM    0xE4  //          4 used for rpm, T1, T2, airspeed
*               DATA_ID_ACC    0x67  //          7 used for Acc X, Y, Z
Die 0x48 (also 8, aber 9 wird angezeigt) anstelle 0x22 für DATA_ID_FAS sollte funktionieren. Neue Sensorsuche nicht vergessen.
 
schnall ich jetzt nicht.:confused:
jetzt übertrage ich doch Volt_1 durch die Zeile
#define FUEL_SOURCE VOLT_1
wo sehe ich denn mit welcher ID ich sende?

ist das dieser Weg? (fuel)
DATA_ID_FAS 0x22 // 2 used for vfas , current and fuel
 
Die ID siehst du im Telemetriebildschirm, bei Fuel, also bei dir jetzt Temp, müsste 2+1 also 3 stehen. Das beißt sich scheinbar mit dem Einzelzellensensor bzw. VFAS vom Sensor. Die ID ist noch mit Prüfsumme versehen, deswegen die seltsame Hex-Zahl 0x22 für 2 oder 0x48 für 8 (angezeigt als 9).

Ändere doch mal die ID für Fuel, dann müsste es klappen. Falls die 0x48 auch nicht geht, nimm die nächste aus der Liste in der oXs.description.h. Nicht die IDs von hinten nehmen, die sind belegt.
 
Erhaltene "Gefällt mir": ralfwo

quax2011

Erfahrener Benutzer
Mal ne Frage: Gehen die OpenX-Sensoren auch mit der "Original" FrSky Software? Hintergrund: Ein Kollege hat sich die X10 gekauft und will eigentlich beim FrOs bleiben.
Gruß Jürgen
 

fa223

Erfahrener Benutzer
Das oXs liefert am Stecker S.Port-Daten. Die sind unabhängig von der Software am Sender. Die werden vom Empfänger genauso weitergeschickt, wie wenn sie von einem "Original-Sensor" kämen.
Grüße,
Klaus
 

stock

Erfahrener Benutzer
Abend die Herren,
ich möchte mir mal wieder einen openXsensor bauen, diesmal aber mit GPS.
Geplant ist eine Einzelzellenmessung 3s und ein BN 200 GPS für Position, Höhe und Geschwindigkeit.

Die offizielle description sagt zum GPS folgendes:
* - GPS Tx pin is connected to Arduino Rx pin

* - GPS Rx pin is connected to a resistor (e.g. 10k) and the other pin of the resistor is connected to Arduino pin 6 (digital pin 6).

* This resistor is added (at least for an Arduino 5 volt) in order to protect the GPS pin.

* This is requested because Arduino will generate a signal with a high level equal to arduino Vcc (so normally 5 volt) while the GPS module should normally not accept more than 3.3 Volt.

* To be safier, you could even add a second resistor between GPS Rx pin and Ground (value= 22k) but, in my case, it worked without this second resistor.

* Note: it would be possible to use another pin than Arduino pin 6 but then it requires to change some parameters in file oXs_gps.cpp (see "Setup the GPS sensor").

* !! IMPORTANT NOTE :

* Arduino Rx pin is used for 2 purposed: getting the data from the GPS and uploading the program into the Arduino (normally only to be done once) using a USB to serial adapter.

* You must avoid having both GPS and USB connected at the same time because while uploading a program in Arduino, there will be conflicts between the signals sent by the 2 devices and programming will fail.

* There is another risk: if your USB to serial adapter generates 5 volts signal, it could damage the GPS module.

* So, when you connect the usb to serial adapter to the Arduino, you should disconnect at least the GPS TX pin from the Arduino Rx pin.

* Personnaly I use a connector between Arduino and GPS module and so I can disconnect totally the GPS module.
Folgende Fragen gehen mir hier durch den Kopf.

1.) Braucht man den Spannungsteiler für den RX Pin auch bei den neueren M8N GPS wie dem BN 200?

2.) Warum nicht den / die Pins auf auf andere Ports legen? Das mit Pin 6 ist doch sch****.
Entweder vergisst man mal das GPS beim flashen abzustecken, man kann nicht debuggen mit angeschlossenem GPS etc.
In der "oXs_gps.cpp" habe ich folgendes gefunden:

// **************** Setup the GPS sensor *********************

#define SOFT_TX_BIT 6 // define which port is used to send the set up to the GPS (here pin arduino 6 = Port D6 is used

#define SOFT_TX_DDR DDRD // specify the port being used for this pin
#define SOFT_TX_PORT PORTD // specify the port being used for this pin
Heißt das ich kann mir hier einen beliebigen anderen Pin raussuchen und muss herausfinden was die neuen korrekten werden für DDR und PORT sind?

Vielen Dank meine treuen Fliegerkollegen!
 
1.) Braucht man den Spannungsteiler für den RX Pin auch bei den neueren M8N GPS wie dem BN 200?
Der Widerstand soll den maximalen Strom auf einen unkritischen Wert begrenzen. Wenn das GPS sicher 5V Logiclevel aushält, kann man ihn auch weglassen.
2.) Warum nicht den / die Pins auf auf andere Ports legen? Das mit Pin 6 ist doch sch****.
Entweder vergisst man mal das GPS beim flashen abzustecken, man kann nicht debuggen mit angeschlossenem GPS etc.
Hmm, einen Pin braucht man halt. Was ist schlecht an Pin6? Das GPS hat einen Stecker, wenn man ihn vergisst beim Flashen abzustecken, funtioniert halt das Flashen nicht - es geht aber nix kaputt. Debuggen muss man eh nix, die Standard-Anwendungen funktionieren einfach. Flashen, löten, funktioniert ;)
 

stock

Erfahrener Benutzer
Zuerst vielen Dank für die schnelle Antwort!

Der Widerstand soll den maximalen Strom auf einen unkritischen Wert begrenzen. Wenn das GPS sicher 5V Logiclevel aushält, kann man ihn auch weglassen.
Beim überfliegen des Threads habe ich gesehen das scheinbar einige schon den openxsensor mit dem BN220 und dem BN180 gebaut haben, Schaltungen oder näheres ob ein Teiler verwendet wurde habe ich aber nicht gefunden.
Daher Frage an alle die es so verbaut haben:
Nutzt ihr einen Spannungsteiler?
Ich habe ein Datenblatt vom BN 220 gefunden: https://surehobby.com/desc/HR/HR5512/BN_220_GPS_Antenna_datasheet.pdf

Hier steht unter Data Level:
TTL or RS-232, Default TTL Level.
Um ehrlich zu sein bin ich mir aber etwas unsicher da es ein anderes Modell ist und solche Datenblätter nicht immer stimmen müssen...

LL.PNG


Hmm, einen Pin braucht man halt. Was ist schlecht an Pin6? Das GPS hat einen Stecker, wenn man ihn vergisst beim Flashen abzustecken, funtioniert halt das Flashen nicht - es geht aber nix kaputt. Debuggen muss man eh nix, die Standard-Anwendungen funktionieren einfach. Flashen, löten, funktioniert ;)
Am Pin 6 ist schlecht das WENN das GPS keine 5V Logiclevel aushält, es wenn man vergisst es abzustecken beim Flashen o.ä. kaputt gehen kann.
 
Der Pin6 ist beim Flashen nicht beteiligt. Der Ardu-RX Pin ist das Problem, weil dort gleichzeitig das GPS und der Ardu beim Flashen den UART-TX-Pegel abbekommen. Das ist bei mir aber schon Dutzende Male gutgegangen. Das Flashen bricht zwar ab, aber das GPS bleibt heil.

Pin6 ist TX für das GPS und der Widerstand verhindert, dass der Strom über 0,5mA steigt, wenn das GPS keine 5V am RX verträgt. 1mA braucht es angeblich, um den Eingang zerstören - ich hab's aber nicht getestet.
 
Ich habe die Spannungsversorgung des GPS am RAW eines 3,3V Arduino, da kann ich flashen ohne irgendwas abstecken zu müssen. Mit dem SPort kommt dann die Spannungsversorgung für den Arduino über den RAW rein. Das GPS soll bis 5,5V aushalten, man kann aber bei höherer Spannung noch eine Siliziumdiode dem GPS vorschalten.
 
FPV1

Banggood

Oben Unten