MPU 6050 senkrechte Montage?

Status
Nicht offen für weitere Antworten.

Mayday

Expert somehow
#1
Moin zusammen!
Mal 'ne Frage eines Programmierdummies:
Ich dachte immer, der MPU 6050 wäre ein Dreichachssensor. Kann man im Code was umschreiben, damit man den Sensor statt liegend auch stehend montiren kann? Mir würde es reichen, wenn eine Achse ausgelesen werden kann. Da ich mit den Codes nicht allzu viel anfangen kann (nur sehr grundlegend), kann mir vielleicht ein Programmierer weiterhelfen.
Vielleicht aufzeigen, um welche Zeilen es ginge, falls das klappt.
Habe soweit nix dazu gefunden!?!?
 

Rangarid

Erfahrener Benutzer
#4
Wichtig ist welchen Controller du verwendest. Bei Multiwii ist das recht einfach:
http://code.google.com/p/multiwii/source/browse/trunk/MultiWii_shared/def.h
Zeile 846 folgend kannst du die Ausrichtung für IMU Boards ändern, oder hier für einzelne Sensoren:
http://code.google.com/p/multiwii/source/browse/trunk/MultiWii_shared/Sensors.cpp
Ab Zeile 28.

//EDIT achso den Brushlessgimbal übersehen...Mom ich schau kurz rein.

variables.h Zeile 285 folgend:
//********************
// sensor orientation
//********************
typedef struct sensorAxisDef {
char idx;
int dir;
} t_sensorAxisDef;

typedef struct sensorOrientationDef {
t_sensorAxisDef Gyro[3];
t_sensorAxisDef Acc[3];
} t_sensorOrientationDef;

t_sensorOrientationDef sensorDef = {
{{0, 1}, {1, 1}, {2, 1}}, // Gyro
{{0, 1}, {1, 1}, {2, 1}} // Acc
};

Bei dem unteren Konstrukt musst du vermutlich die Werte für Acc und Gyro ändern. Probier mal durch was passiert wenn du 0,1,2 [nur den vorderen Wert] vertauschst.

0 wird x sein, 1 y und 2 z. Auf deinem Board müsste so ein Koordinatensystem mit xyz sein, tausche einfach mal wenn du das Board so hast wie du es willst die entsprechenden aus.

Also wenn dann z.B. Y nach unten zeigt ist das dein neues Z. Ich nehme an die 1 [hinterer Wert] kann positiv oder negativ sein, falls die Achse dann falschrum ist. Das hab ich aber nicht weiter nachverfolgt und ist nur eine Vermutung.
 
Zuletzt bearbeitet:

Mayday

Expert somehow
#5
Das ist doch mal was! Danke!
Mir ist nun immer noch nicht ganz klar, wieso man für die Z-Achse nicht einfach ein "normales" Board nimmt (Martinez und Co, habe hier mein eigenes Layout) und dann die Achse als Drehachse definiert. Wobei es darum gerade nicht explizit geht...
Prinzipiell soll hier nur der 6050 senkrecht hinter oder neben die Cam.
 
#6
Ich sehe das auch so wie rangarid


Hier werden 6 Sensoren definiert
3x Gyro und 3x ACC

typedef struct sensorOrientationDef {
t_sensorAxisDef Gyro[3];
t_sensorAxisDef Acc[3];
} t_sensorOrientationDef;

Hier wird wahrscheinlich angegeben welcher Sensor welche Achse macht und die Richtung in die er arbeitet

t_sensorOrientationDef sensorDef = {
{{0, 1}, {1, 1}, {2, 1}}, // Gyro
{{0, 1}, {1, 1}, {2, 1}} // Acc
};

0=x
1=y
2=z

Je nach Anbau Art musst du dann entweder x und z oder y und z tauschen
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten