2016-04-03 5 views
0

Ich kodiere einen MPU-6050 Beschleunigungsmesser/Gyro, um mir die Beschleunigungen und Drehgeschwindigkeiten zu liefern. Jetzt arbeitet der Code so weit, dass er mir alle Beschleunigungen und Winkelgeschwindigkeiten liefert.MPU-6050 unmögliche Lesungen Raspberry

Aber die Ergebnisse geben mir marginal seltsame Ergebnisse. Wenn ich auf den Beschleunigungsmesser zeige, dass die positive z-Achse nach oben zeigt, bekomme ich marginal niedrigere Werte als erwartet für meine Höhe (sollte um 9,7 sein, aber ich komme um 8,9 herum). Nun, wenn ich den Beschleunigungsmesser so drehen, dass die positive z-Achse größer wird als erwartet (ich komme über 10.1 hinaus). Das gleiche gilt für alle anderen Achsen, wenn ich sie entlang der Schwerkraft zeige.

Die niedrigen Anzeigen haben mich zuerst nicht alarmiert, weil ich dachte, dass der Beschleunigungsmesser nicht perfekt gerade ist. Aber die höher als erwarteten Werte sind definitiv alarmierend.

Dies bedeutet, dass der Beschleunigungsmesser-Nullpunkt irgendwie falsch scheint (es liest auf der einen Seite und über liest auf der anderen Seite). Muss ich den Beschleunigungssensor kalibrieren? Dies scheint fast unmöglich zu sein, da man den Beschleunigungsmesser niemals perfekt gerade machen wird.

Bitte beraten. Willst du meinen Code sehen?

Antwort

0

Nach vielen Stunden der Forschung und des Fiedelns fand ich heraus, dass fast alle elektronischen Sensoren eine Tendenz haben. (Bias ist ein Offset)

Jetzt haben anscheinend auch die Beschleunigungssensoren gravierende Offsets. Also habe ich einen kleinen Prüfstand gebaut, der durch vier Schrauben ausgeglichen wurde. Durch das Ausführen einer aktiven While-Schleife und das Ausgeben von Live-Daten aus dem Beschleunigungsmesser konnte ich die "anderen zwei" Achsen, die während der gesamten Datenerfassung nicht entlang der Schwerkraft zeigten, fast auf Null stellen. Sobald das Level erreicht war, habe ich das Programm mehrere Minuten lang ausgeführt, die Ergebnisse gemittelt und somit die Verzerrung gefunden. Ich tat dies 4/5 mal pro Achse und stellte fest, dass der verbleibende Fehler auf Rauschen zurückzuführen war und nicht wiederherstellbar war. Das musste ich natürlich für alle 3 Achsen tun.

Zusätzlich habe ich festgestellt, dass nach dem Nullstellen der Vorspannung die Messwerte zu hoch waren. Ich bin mir nicht sicher, ob das, was ich hier gemacht habe, richtig war, aber es schien der logische Weg zu sein, um Fortschritte zu machen. Sobald alle Achsen der 3 Achsen kalibriert waren, gaben sie mir jeweils unterschiedliche Gravitätswerte. Alles was ich dann tat, war einen Korrekturfaktor hinzuzufügen, um die Gravitationswerte zu erhalten, die ich auf meiner Höhe erwarten würde. Diese Korrekturfaktoren waren sehr klein (zB 0.966 .....), aber meiner Meinung nach immer noch signifikant.

Hoffe das hilft jedem, der verloren war, wie ich war