Hallo,
ich versuche mich gerade in einer kleinen Lageerkennung meines Boards.
Ihc möchte den absoluten Winkel der Schiefstellung ermitteln (liegt in
der Anfangslage auf dem Tische -> 0°. Am Anfang wird der Offset des
Gyros kalibriert. Dann frage ich alle 12ms Senkunden meine Gyrosensoren
ab und rechne das in Grad um.
meine Formel
1 | lageX = (lageX + (double)(gyroX*0.012*0.0695));
|
gyroX (int16_t) ist meine aktuelle Drehrate (Offset abgezogen)
0.012 ist meine 12ms Abfragzeit für den Weg (Integration)
0.0695 ist mein LSB pro Grad Wert aus dem Datenblatt (2000°/sek ->14.375
LSB/Grad (Sensor: ITG 3205)
Die Addition habe ich eingefügt, damit ich meinen komplette
Winkeländerung zur Anfangslage bekomme
Meine Idee war nun das Board mit der Hand in Schieflage zu bringen und
wieder zurück zu bewegen, damit ich als lageX wieder 0° erhalte.
Allerdings läuft mir der lageX Wert ohne Bewegung langsam nach oben weg
(nach 5sek ungefähr 100).
Ich bekomme zwar eine Änderung des Wertes bei Bewegungen, aber ich
bekomme den Wert nicht wieder gegen 0 und es ist ja so auch nicht
gewollt
Achja, ich frage die Messwerte über USB ab...