openXsensor Vario mit MS5611 und MPU6050

hobby1946

Erfahrener Benutzer
#1
Hallo,
nachdem mein Vario mit einem BMP280 gut funktioniert,
habe mich mal an ein Vario mitMS5611 und MPU6050 gewagt.

#define FIRST_BARO_SENSOR_USE GY86 ....

Erfreulicherweise funktioniert das auch.

Nun habe ich aber eine Frage dazu.
Muß der Gyro in einer bestimmten Lage eingebaut werden ?
Der Bewegungssensor wird ja in die VSpeed mit einbezogen.

Wer hat da Erfahrung damit ?

mfg
berny
 

Bussard

Erfahrener Benutzer
#2
Im Kopter muß die MPU eine vorgegebene Lage haben, da die Signale direkt in die Lagesteuerung einfließen.
Da ist beim Vario nicht so schlimm. Damit aber auch hier hoch und runter richtig in die Variotonerzeugung einbezogen werden, muß auch eine Kalibrierung erfolgen.
Dazu das Vario in der Einbaulage fixieren (trotzdem möglichst Platinen flach montieren ) und in der advanced config.h die aktuellen Meßwerte der 3 Achsen notieren und eintragen.
Genau vorgeführt hat das carbonator in einem seiner Videos.
youtube.com/watch?v=44Z3-T_d_f8 (mach noch ein www. davor)

Gruß
 

hobby1946

Erfahrener Benutzer
#3
So, das hab ich nun versucht.

Nun geht VSpeed nicht mehr.
Es wird nach einigen Sekunden übertragen. Aber bei Sensorbewegung ändert sich nur Alt.
VSpd reagiert kaum, ab und zu kommen wirre Werte.

Was nun ?

Gruß berny
 

Anhänge

Carbonator

Allerhopp ;)
#4
Du hast die Änderung gemacht, um den GY-63 zu kalibrieren. Danach werden die Werte über die serielle Schnittstelle ausgegeben, wie im Video gezeigt. Diese Werte musst du jetzt in den Sketch eintragen und dann die Änderung (Kommentierung) wieder rückgängig machen.

So sollte es am Schluss aussehen (mit deinen Werten natürlich):

Code:
//#define DISPLAY_ACC_OFFSET // used ONLY in order to display the acceleration offset on pc terminal; KEEP AS COMMENT once offsets have been setup

#define ACC_OFFSET_X -80 // fill here the first value reported when DISPLAY_ACC_OFFSET is activated (eg. -160)
#define ACC_OFFSET_Y -140 // fill here the second value reported when DISPLAY_ACC_OFFSET is activated (eg. -150)
#define ACC_OFFSET_Z -870 // fill here the third value reported when DISPLAY_ACC_OFFSET is activated (eg. -1100)
Die Kalibrierung dient dazu, eine "Schieflage" des Sensors im Chip auszugleichen, man kann sich das aber ohne gewaltige Nachteile sparen.

Einfach die Nullen in den ACC_OFFSET drin lassen, das funktioniert auch. Der GY63 muss waagrecht eingebaut werden, Pfeil sollte in Flugrichtung zeigen, damit alle ACC Achsenwerte stimmen. Für die Funktion des beschleunigten Vario ist aber nur der waagrechte Einbau wichtig, es wird dafür nur die lineare Beschleunigung der Z-Achse ausgewertet.
 

hobby1946

Erfahrener Benutzer
#5
Also ich bin am verzweifeln .....


Sensor GY86
Neues OXS

1. Änderung:
4.1
#define FIRST_BARO_SENSOR_USE GY86

Damit funktioniert das Vario tadellos.

2. Änderung:
4.2
#define VSPEED_SOURCE BARO_AND_IMU
10.1

#define A_MPU6050_IS_CONNECTED YES

Damit geht VSpd nicht mehr.
Der Wert wird übertragen = 0,0m

Ein Bewegen des Sensors (vor-zurück, links-rechts, hoch tief) bewirkt nichts.
Erst wenn ich ihn verdrehe in den Achsen, kommt mal ein Wert, der dann erhalten bleibt.

Der MPU6050 reagiert bei einem Testprogramm, also kann er nicht defekt sein.

Die Adressen sind 0x68 und 0x77 laut I2C-Scanner. Passen die vielleicht nicht ?

Jetzt weiß ich erst mal nicht mehr weiter.

Anmerkung:

Wenn ich vorherige Einstellungen tätige ( #define DISPLAY_ACC_OFFSET )
kommt erst mal Unleserliches.
Erst wenn ich die Bauds auf 9600 ändere kommt ein Text :.


calib.JPG

Mehr nicht !



Gruß Berny
 
Zuletzt bearbeitet:
#6
Verdrahtung ist korrekt? INT an (D)2?

Code:
*  5 pins from the mpu6050 have to be connected to Arduino:
*       - MP6050 ground  <--->  Arduino ground
*       - MP6050 Vcc     <--->  Arduino Vcc
*       - MP6050 SDA     <--->  Arduino SDA = Arduino A4
*       - MP6050 SCL     <--->  Arduino SCL = Arduino A5
*       - MP6050 INT     <--->  Arduino INT0 = Arduino 2 OR Arduino INT1 = Arduino 3(do not use the same pin for another purpose like PPM!)
* In order to activate the IMU, set YES in the line #define A_MPU6050_IS_CONNECTED
Erst wenn ich die Bauds auf 9600 ändere kommt ein Text :.
Das ist nicht korrekt, entweder 115200bps oder 38400bps (GPS angeschlossen) sollten passen.

Der Sketch überträgt Pitch, Roll und Yaw zusätzlich und sollte funktionieren, bei intakter Hardware.
 

Anhänge

hobby1946

Erfahrener Benutzer
#7
Danke für die Hilfe, werde ich heute mal testen.

zu 9600 Baud:
Ich habe ein Arduino pro mini mit einem FDTI-USB Adapter.
Die Ausgabe auf den Monitor habe ich getestet.
Das funktioniert NUR mit 9600 Baud. Weniger nicht und mehr nicht.
Kann man das irgendwie beeinflussen ?
 
#8
Im Sketch setzt Mstrens die Baudrate für die debug Optionen auf 115200, nur bei konfiguriertem GPS wird sie auf die GPS Baudrate reduziert. Was passiert sein muss, damit nur 9600 funktioniert, keine Ahnung .....

Mein Sketch ist "sauber", du kannst ja nochmal damit testen.
 

hobby1946

Erfahrener Benutzer
#9
Das liegt nicht am Sketch !
Ich kann generell nur mit 9600 Baud bei Serial.print ausgeben.
Ansonsten kommt nix oder irgendwelche Zeichen ...
 

hobby1946

Erfahrener Benutzer
#12
Hallo Carbonator,
du wirst nicht arbeitslos ...

oder wer sonst kann mir da helfen?

Ich komme mal wieder nicht weiter.

Ich möchte die Varioempfindlichkeit über einen RX Kanal regeln.

Ich habe deshalb folgende Änderung gemacht:

v1.JPG

Über den Sender habe ich einen Kanal definiert (-100/+100) und gebe dieses Signal vom RX auf Pin 3
vom Arduino.
Pin2 ist INTA vom GY86 und Pin4 ist S-Port Ausgang.

Das Vario funktioniert aber wie gewohnt, ohne eine Empfindlichkeitsregelung.

Ist da noch woanders was einzustellen ?

Gruß berny
 

Anhänge

RCLogger

FPV1

Banggood

Oben