Hallo, ich versuche gerade einen 3-Achsen Beschleunigungssensor zum Messen eines Winkels benutzen. Zum Testen habe ich erst mal mein Smartphone hergenommen, und mir die Sensorwerte anzeigen lassen. Wenn es flach auf dem Tisch liegt, messe ich 9,81m/s^2. Wenn ich es senkrecht stelle 0m/s^2. Soweit so gut :-) Nun ist die Frage, wie die genaue Übersetzungsfunktion von Beschleunigung -> Winkel lautet. Linear scheint der Zusammenhang jedenfalls nicht zu sein (bei 45° klappt die Umrechnung nicht wirklich. Kann mir jemand auf die Sprünge helfen?
Borislav B. schrieb: > ich versuche gerade einen 3-Achsen Beschleunigungssensor zum Messen > eines Winkels benutzen. > > Wenn ich es senkrecht stelle 0 m/s^2. irgendetwas stimmt da nicht ... Die Zusammenhänge: x²+y²+z² = 1g Und als Tip: Mit Cosinus/Arccos ist es einfacher zu verstehen, der Arc-Tangens bietet aber konstantere Auflösung/Genauigkeit.
Das ist einfache Trigonometrie. Schulmathematik der 9.Klasse. Achim S. schrieb: >> Wenn ich es senkrecht stelle 0 m/s^2. > > irgendetwas stimmt da nicht ... > > Die Zusammenhänge: x²+y²+z² = 1g Stimmt nicht ganz. Es wäre ein 1g² Ich vermute, dass er nur eine der drei Achsen gemessen hat.
Borislav B. schrieb: > Zum Testen habe ich erst mal mein Smartphone hergenommen, und mir die > Sensorwerte anzeigen lassen Welche? Der Sensor liefert 3 Werte, die Anzeige eines einzigen Werts ist entweder völlig sinnfrei oder nur unter ganz bestimmten Voraussetzungen sinnvoll, etwa Lage waagrecht. Auch aus allen 3 Werten kann man nur bestimmen, wo unten ist, und auch das nur OHNE Beschleunigung. Man kann so also nur den Winkel gegen die Horizontalebene messen. Georg
Georg schrieb: > Welche? Der Sensor liefert 3 Werte, die Anzeige eines einzigen Werts ist > entweder völlig sinnfrei oder nur unter ganz bestimmten Voraussetzungen > sinnvoll, etwa Lage waagrecht. Ich benutze den Wert, der gegen die Längsachse des Smartphones gemessen wird. Damit sollte sich der Winkel zwischen Smartphone und "Boden" bestimmen lassen. Sinnfrei ist das nicht :-) Es funktioniert ja auch schon, nur ist meine Übertragungsfunktion nicht richtig. Für 0° und 90° bekomme ich schon die korrekten Werte. Nur dazwischen eben nicht... Rolf M. schrieb: > Ich vermute, dass er nur eine der drei Achsen gemessen hat. Natürlich. John D. schrieb: > Zeigerdiagramm. Cosinus. Mhh, noch kann ich nicht so ganz folgen. Eigentlich hätte ich erwartet, dass bei 45° 50% der Erdbeschleunigung gemessen werden müssten.
Borislav B. schrieb: > > Mhh, noch kann ich nicht so ganz folgen. > Eigentlich hätte ich erwartet, dass bei 45° 50% der Erdbeschleunigung > gemessen werden müssten. Natürlich nicht. Es sind etwa 71%.
Borislav B. schrieb: > Eigentlich hätte ich erwartet, dass bei 45° 50% der Erdbeschleunigung > gemessen werden müssten. Dem ist aber nicht so. Bei 45° sind es 1/sqrt(2)-fache Erdbeschleunigung. Man muss ein Kräftedreick nehmen, dann von den Seitenlängen auf den Winkel schließen. Arcuscosinus klingt da ganz vernünftig.
John D. schrieb: > Natürlich nicht. Es sind etwa 71%. OK, Aufzeichnen hilft ;-) Jetzt hab ich's. Danke!
Borislav B. schrieb: > OK, Aufzeichnen hilft ;-) Was hilft, ist die Mathematik dahinter zu verstehen. https://de.wikipedia.org/wiki/Trigonometrie#Trigonometrie_im_rechtwinkligen_Dreieck
Rolf M. schrieb: > Was hilft, ist die Mathematik dahinter zu verstehen. Und das geht am besten wie? Genau, aufzeichnen :-) Hier noch meine Lösung:
1 | private static double AccelToAngle (double accel) |
2 | {
|
3 | return Math.Asin (accel / 9.807) * (180.0 / Math.PI); |
4 | }
|
Du bekommst so aber nicht jeden winkel raus. Die Beschleunigung ist invariant gegenüber der Rotation um die Achse, die in Richtung Erdmittelpunkt zeigt.
Borislav B. schrieb: > Ich benutze den Wert, der gegen die Längsachse des Smartphones gemessen > wird. Damit sollte sich der Winkel zwischen Smartphone und "Boden" > bestimmen lassen. Dem liegt wieder ein teilweiser Denkfehler zugrunde. Deine Annahme stimmt nur, wenn das Smartphone NICHT seitlich gekippt wird. Aber das ist dann ein Zirkelschluss: wenn ich eine bestimmte Lage zur Voraussetzung mache, lege ich vorab fest was eigentlich gemessen werden soll. Um dafür zu sorgen, dass die Querachse des Smartphones parallel zur Horizontebene verläuft, muss man ja eben die Lage der Ebene und der Achse vorab kennen. Georg
Borislav B. schrieb: > Rolf M. schrieb: >> Was hilft, ist die Mathematik dahinter zu verstehen. > > Und das geht am besten wie? Genau, aufzeichnen :-) Ok, vielleicht hab ich's falsch verstanden. Ich habe bei aufzeichnen an das Aufnehmen der Werte bei bestimmten Winkeln und den Versuch, daraus Rückschlüsse zu ziehen gedacht. Ich vermute aber, dass du vielmehr eine Zeichnung des ganzen erstellt hast. Das ist in der Tat sinnvoll. Lks schrieb: > Du bekommst so aber nicht jeden winkel raus. Doch schon, so lange man in zwei Dimensionen bleibt und nur den Winkel zur Horizontalen will. Wenn man die Ausrichtung komplett wissen will, braucht man natürlich noch die beiden anderen Raumwinkel und zusätzliche Sensorik. In der Regel wird dafür ein Magnetfeldsensor als Kompass genutzt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.