Winkelauswertung mit Accelerometer - Wo Werte zum Nullen einrechnen?
Hallo,
ich möchte mit einem Beschleunigungssensor Winkel auswerten, um so Neigungswinkel und Drehung an einem Brett zu erfahren.
Dazu habe ich einen Beschleunigungssensor in einem Plastikgehäuse.
Allerdings kann ich den Sensor nicht 100% parallel zum Brett oder seinem Gehäuse ausrichten, weshalb ich auf einem absolut graden Tisch/Brett x Werte auslese, darauß den Mittelwert bilde und diese quasi zum 'Nullen' des Sensors verwenden möchte.
Wenn ich die Daten des Sensors nun mit µ (steht für X/Y/Z):
(asin(µ/sqrt( (x*x) + (y*y) + (z*z)))* 180 / 3.14159265)
auswerte, bekomme ich den Winkel der aktuellen Lage des Sensors ausgegeben.
Solange der Sensor nur in der Ebene liegt, kann ich meine auf der graden Ebene ausgelesenen Werte einfach bei den entsprechenden Winkeln addieren und somit den Sensor nutzen, um die Lage des Bretts bei 0° zu bestimmen.
Wenn ich nun allerdings den Winkel der Y-Achse ändere, verändere ich gleichzeitig den Winkel der X-Achse, da der Sensor nicht parallel zum Brett aufliegt.
Nun ist meine Überlegung, dass ich nicht erst die Sensordaten in WInkel umrechne und dann korrigiere, sondern dass ich zuerst den Korrekturfaktor einreechne und dann in die entsprechenden Winkel umrechne.
Die Sensordaten bestehen aus Werten um die +/-4100 pro Achse.
Wäre es logisch, dass der Winkel dann richtig angezeigt wird, wenn ich die Eichungs-Werte vor der Winkelberechnung einlese?
Oder muss ich einen Weg wählen, wie ich die Sensorkoordinaten auf den Weltkoordinaten projeziere?
Ich hoffe, mir kann hier jemand meine mathematischen Lücken füllen und mir zum Erfolg verhelfen :)
Liste der Anhänge anzeigen (Anzahl: 1)
So, hier mal eine grobe Übersicht. Ich hfofe, es ist verständlich. Der rosane Kasten soll der Sensor sein.
Der Sensor ist in der Box fixiert, die ich auf das Brett lege.
Das Brett ist zum Testen da, wo die X-Achse eingezeichnet ist, fixiert, so dass ich es zum Testen um den Winkel ß drehen kann.
Anhang 24169
Da ich immer noch nicht so ganz durchblicke, ist mein Ansatz derzeit, dass ich das Brett langsam um ß drehe und dabei Nullwerte für α einlese. Um α auszuwerten werden diese Werte dann hinterher addiert.
Also wenn α bei ß 15° z.B. um 0,3° abweicht, kann ich anhand des Arrays ablesen, dass bei ß 15° a -0,3° sein muss, um eigentlich 0° anzuzeigen.