DanielSan
29.07.2013, 21:26
Hi,
ich habe ein neues Projekt angefangen. Ich möchte mit Hilfe eines Servos einen Hebel immer in einem bestimmten Winkel halten. Das ganze wird mit der Arduino Platform umgesetzt, ich versuche aber auf die meisten Libs zu verzichten weil diese nicht immer so perfomant sind wie ich es gerne hätte. Mittlerweile weiss ich auch das ich noch einen Beschleunigungssensor benötige. Der wird noch bestellt dann kann ich die Daten Fusionieren. Wie das geht habe ich mir auch schon angelesen, theoretisch "kann" ich das also schon. ;-)
Ich habe den Sensor per I2C angeschlossen und alles funktioniert einwandfrei. Es handelt sich um einen L3G4200.
Was gibt der Sensor aus? Winkelgeschwindigkeit oder Winkelbeschleunigung?
Wie rechnet man den Offset weg? Die X-Achse steht z.B. in Ruhelage auf ca. 3 die Y-Achse auf ca -15 und die Z-Achse auf ca. 5. Zieh ich den Offset einfach immer vom Messwert ab?
Was ist mit der Drift? Wie kompensiert man die? (Ich muss noch verifizieren wieviel/ob der Sensor driftet.)
Nachdem ich die Werte mit einem Median aus 3 Werten geglättet habe sieht das schonmal ganz gut aus. Da geht aber sicher noch mehr.
Jetzt wollte ich für den Anfang den Sensor an ein Servo montieren und mal gucken was passiert. Wie Regel ich das Servo? Ich meine ich bekomme Werte vom Sensor was mache ich damit? Wie komme ich dann auf die Positionen des Servos? Mit einem PID Regler? Hat jemand zufällig einen in C geschrieben und wäre bereit den zu teilen??
Danke
Gruß Daniel
ich habe ein neues Projekt angefangen. Ich möchte mit Hilfe eines Servos einen Hebel immer in einem bestimmten Winkel halten. Das ganze wird mit der Arduino Platform umgesetzt, ich versuche aber auf die meisten Libs zu verzichten weil diese nicht immer so perfomant sind wie ich es gerne hätte. Mittlerweile weiss ich auch das ich noch einen Beschleunigungssensor benötige. Der wird noch bestellt dann kann ich die Daten Fusionieren. Wie das geht habe ich mir auch schon angelesen, theoretisch "kann" ich das also schon. ;-)
Ich habe den Sensor per I2C angeschlossen und alles funktioniert einwandfrei. Es handelt sich um einen L3G4200.
Was gibt der Sensor aus? Winkelgeschwindigkeit oder Winkelbeschleunigung?
Wie rechnet man den Offset weg? Die X-Achse steht z.B. in Ruhelage auf ca. 3 die Y-Achse auf ca -15 und die Z-Achse auf ca. 5. Zieh ich den Offset einfach immer vom Messwert ab?
Was ist mit der Drift? Wie kompensiert man die? (Ich muss noch verifizieren wieviel/ob der Sensor driftet.)
Nachdem ich die Werte mit einem Median aus 3 Werten geglättet habe sieht das schonmal ganz gut aus. Da geht aber sicher noch mehr.
Jetzt wollte ich für den Anfang den Sensor an ein Servo montieren und mal gucken was passiert. Wie Regel ich das Servo? Ich meine ich bekomme Werte vom Sensor was mache ich damit? Wie komme ich dann auf die Positionen des Servos? Mit einem PID Regler? Hat jemand zufällig einen in C geschrieben und wäre bereit den zu teilen??
Danke
Gruß Daniel