S_a_S
User
hallo Robert,
mit dem Kippen bin ich auch noch nicht sicher, ob der Weisheit letzter Schluss implementiert ist.
Es gibt ja in der Application note von Analog Devices einige Formeln, wie Raumwinkel gemessen werden können (solange nix wackelt). Auch das Kalibrierprinzip ist darin beschrieben. Aber auch eine kurze Abhandlung über Fehlerquellen.
In der Umsetzung hat Max die atan2-Funktion benutzt, hierbei kommt es auch auf die Reihenfolge der Argumente an. Weil jetzt die Orientierung der GY521 anders ist, muss ggf. die Formel für einen anderen Raumwinkel genommen werden.
Was bei mir dazu führt, dass dann enige gains negativ werden. Und alle größer als 1 sind (letzteres liegt an der höheren Auflösung, aber ein Sensor liegt bei 2, der andere bei 4 - das kann ich mir bisher auch nicht erklären). Die Orthogonalität und Kreuzkopplung im Sensor dürfte aber auch eine Fehlerquelle sein.
Aktuell ist es so, dass wenn nach Kalibrierung und Reset beide Sensoren auf einer Schiene sitzen, die Winkeldifferenz recht konstant bleibt, solange die Sensoren nicht zu sehr verkippt werden.
Hier nochmals angehängt der aktuelle Stand (LCD-Ausgabe bereinigt).
Anhang anzeigen ewd6050.zip.doc
Wegen der I2C-Bibliothek bin ich mir nicht sicher, ob die Seriell-Ausgabe für das LCD ohne weiteres mitspielt. Aber der Unterschied selbst ist nur in der Definition der Ausgabe.
Seriell:
Parallel:
Backlight ist auskommentiert.
Die Taste musste ich auch nochmals umbelegen (weil 5 schon von LCD belegt war)
Noch ein Hinweis: Der MPU6050 kann nur 3,3V. Am USB-Kabel liegen aber 5V an (braucht der Spannungsregler). Deshalb muss ein passender Vorwiderstand gewählt werden, damit AD0 bei einem Sensor auf High gezogen wird. Auf dem Board ist ein 4,7kOhm nach Masse, der Pullup sollte also mindestens 2,4kOhm haben - ich hab 3,3kOhm verbaut.
Grüße Stefan
Grüße Stefan
mit dem Kippen bin ich auch noch nicht sicher, ob der Weisheit letzter Schluss implementiert ist.
Es gibt ja in der Application note von Analog Devices einige Formeln, wie Raumwinkel gemessen werden können (solange nix wackelt). Auch das Kalibrierprinzip ist darin beschrieben. Aber auch eine kurze Abhandlung über Fehlerquellen.
In der Umsetzung hat Max die atan2-Funktion benutzt, hierbei kommt es auch auf die Reihenfolge der Argumente an. Weil jetzt die Orientierung der GY521 anders ist, muss ggf. die Formel für einen anderen Raumwinkel genommen werden.
Was bei mir dazu führt, dass dann enige gains negativ werden. Und alle größer als 1 sind (letzteres liegt an der höheren Auflösung, aber ein Sensor liegt bei 2, der andere bei 4 - das kann ich mir bisher auch nicht erklären). Die Orthogonalität und Kreuzkopplung im Sensor dürfte aber auch eine Fehlerquelle sein.
Aktuell ist es so, dass wenn nach Kalibrierung und Reset beide Sensoren auf einer Schiene sitzen, die Winkeldifferenz recht konstant bleibt, solange die Sensoren nicht zu sehr verkippt werden.
Hier nochmals angehängt der aktuelle Stand (LCD-Ausgabe bereinigt).
Anhang anzeigen ewd6050.zip.doc
Wegen der I2C-Bibliothek bin ich mir nicht sicher, ob die Seriell-Ausgabe für das LCD ohne weiteres mitspielt. Aber der Unterschied selbst ist nur in der Definition der Ausgabe.
Seriell:
Code:
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7); //create a object of LiquidCrystal
Parallel:
Code:
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2; // Pinzuordnung ist hier eingestellt
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Die Taste musste ich auch nochmals umbelegen (weil 5 schon von LCD belegt war)
Code:
OneButton button(8,true); //Instance of OneButton which is used to test if button is pressed
Noch ein Hinweis: Der MPU6050 kann nur 3,3V. Am USB-Kabel liegen aber 5V an (braucht der Spannungsregler). Deshalb muss ein passender Vorwiderstand gewählt werden, damit AD0 bei einem Sensor auf High gezogen wird. Auf dem Board ist ein 4,7kOhm nach Masse, der Pullup sollte also mindestens 2,4kOhm haben - ich hab 3,3kOhm verbaut.
Grüße Stefan
Grüße Stefan