Serie inDetail - komplexe Themen verständlich dargestellt

Winkelberechnung von Beschleunigungssensor und Gyro kombinieren

Die positiven Eigenschaften der beiden vorher beschriebenen Winkelbestimmungen werden nun kombiniert. Da die mit dem Gyro berechneten Winkel nicht rauschen und hochfrequent sehr schnell sind werden diese hauptsächlich verwendet (höher gewichtet). Um den Drift der Gyro-Winkel wieder auf 0 zu führen werden die Winkel des Beschleunigungssensors verwendet.
Winkel = (alterWinkel + Winkeländerung) × 90% + Beschleunigungswinkel × 10%

float dt = (millis() - millisAlt) / 1000.00;
millisAlt = millis();

rollWinkel = (rollWinkel + wX * dt) * 0.9 + accRollWinkel * 0.1;
nickWinkel = (nickWinkel - wY * dt) * 0.9 + accNickWinkel * 0.1;

Messwerte Gyroscope und Beschleunigungsmesser kombiniert

Im Bild oben sehen wir, wie die Winkelberechnung der Lageänderung sehr schnell folgt (durch die hohe Gewichtung der Gyrowerte). Weiter rechts im Bild bringen wir wieder unsere Vibrationen auf das Bauteil und sehen nur kleine Ausschläge bzw. ein akzeptables Rauschniveau. Der dadurch verlorene 0-Punkt wird im Bild ganz rechts (die ansteigende blaue Linie) wieder zurückgeführt (durch die kleinere aber stetige Gewichtung der mit dem Beschleunigungssensor errechneten Winkel)

Soweit zur Lageermittlung im Raum und der Berechnung der eulerschen Nick- und Rollwinkel. Im nächsten Abschnitt widmen wir uns den letzten 3-Achsen des 9-Achsen Sensors - also dem Magnetsensor - und berechnen damit den letzten Eulerwinkel. Den Gierwinkel bzw. die Ausrichtung zur Nordachse.