Also, nachdem ich nun wieder mal Zeit gefunden habe, mit der IMU zu "spielen"
komme ich nun "scheinbar" zu einem "ersten" brauchbaren Ergebnis.
Zielsetzung war: Erkennen von Roll, Pitch und Yaw (in einem Flugzeug) - getestet habe ich bisher nur am Schreibtisch mit Drehen, usw.... Der
Kurs, errechnet aus dem Magnetfeld, ist noch nicht "Tilt-Compensated", was
aber zwingend notwendig ist:
Init der IMU
imu.set_convergence_speed 250
sleep 5
imu.set_convergence_speed 5
q = []
q = imu.get_quaternion
base_x = q[0]
base_y = q[1]
base_z = q[2]
base_w = q[3]
Konjugation
x = -x
y = -y
z = -z
Und die Winkel:
x_angle = Math.atan2(2*y*z - 2*x*w, w*w + z*z - x*x - y*y)*180/Math::PI + 180
y_angle = Math.atan2(2*w*y + 2*x*z, w*w + z*z -x*x - y*y)*180/Math::PI + 180
z_angle = Math.atan2(-w*y + x*y + y*x - w*w, w*w + y*y - z*y -
x*x)*180/Math::PI + 180
Diese Formeln stammen aus dem Forum, nicht von mir.... Ich werde am WE oder
Anfang der Woche mal einen Flug machen und es testen.
Das Brick liegt mit LED's nach oben auf einem MasterBrick gesteckt. Das IMU
Brick hängt sich des öfteren auf, wenn ich dort ein lCD Prickelt einstöpsle...
Code ist Ruby - wenn das nun klappt, werde ich mal nach IOS wechseln...
Gruss, Dirk