Hallo!
Ich arbeite grad an den ersten Teilen für unseren Tricopter und bin grad ein wenig verwirrt bezüglich dem Gyro.
Ich habe mir einen Gyro besorgt und an einen ATMega88 angeschlossen.
Mir ist das Thema Drift bekannt, aber ich glaube ich habe das extrem unterschätzt.
Leider ist die Qualität des Diagramms nicht so gut, aber ich kann leider eine größere Version hier nicht hochladen.
Bild hier
Grüne Linie: Referenz (erstmal unwichtig)
Rote Linie: der berechnete Winkel
Blaue Linie: die Gyro Rohdaten
Ich habe die Platine immer ein wenig gedreht und dir Gyrowerte werden dabei immer aufintegriert.
Hier der Code dazu:
Code:
if((gyro_x > 1) && (gyro_x > gyro_x_old)) {
gyro_x_increment += gyro_x - gyro_x_old;
}
if((gyro_x < -1) && (gyro_x < gyro_x_old)) {
gyro_x_increment -= gyro_x_old - gyro_x;
}
gyro_x_old = gyro_x;
Die roten Pfeile markieren die Stellen wo die Platine wieder waagrecht stand.
Nun sieht man rechts, dass der Wert des Winkels doch extrem abweicht.
Ist dies normal, oder muss ich den Code noch verfeinern?
Den ACC hab ich schon daheim, aber ich dachte nicht, dass ich den unbedingt brauche - sieht derzeit aber so aus? (Der Unterschied vom realen zum berechneten liegt bei ca. 40°)
Lesezeichen