Windows Phone - poziomica i AccelerometerReading

Odpowiedz Nowy wątek
2014-10-30 00:08
0

Piszę aplikację poziomicę, jest już prawie gotowa jednak chciałbym dodać aby na ekranie były wypisywane stopnie. Sensor jaki używam to akcelerometr, który zwraca mi 3 odczyty dla X/Y/Z :

"Gets the g-force acceleration along the x-axis."

Podobnie dla x i z. Jak takie wartości odczytane z akcelerometru mogę przekonwertować na stopnie?

Pozostało 580 znaków

2014-10-30 06:58
0

Dla ustawienia poziomego: float degrees = Math.Atan2(x, y) * 180 / Math.PI.

Ogólnie, do wykrywania obrotu urządzenia możesz zastosować żyroskop, który będzie o wiele dokładniejszy: http://msdn.microsoft.com/en-[...]s/hh202943%28v=vs.105%29.aspx

W jakim sensie dokładniejsze, odczytywanie stopni tak ? Bo sam akcelerometr do sprawdzania czy jest równo działa dość dobrze, mój tak naprawdę mierzy tylko przy X i Y więc jedyne co to sprawdzam czy to co zwróci odczyt na nich jest równy 0 jeżeli tak to jest równo i działa bardzo dobrze :) Za chwilę będę próbować z twoim pomysłem do wypisywania kątów ! :) - By.Future 2014-10-30 09:45

Pozostało 580 znaków

2014-10-30 12:39
0

Dość dziwne wyniki mi daje ten kod :/

Pozostało 580 znaków

2014-10-30 18:10

Przy ustawieniu telefonu w pionie powinien ci ten kod zwrócić 180 stopni, do góry nogami 0 stopni, na jednym i drugim boku 90 oraz -90 stopni.

Jeżeli sobie zrobisz Math.Atan2(e.SensorReading.Acceleration.Y, e.SensorReading.Acceleration.X) * -180 / Math.PI to na prawym boku będziesz miał 0 stopni, na lewym 180 stopni, a w pionie 90 stopni.

WinRT udostępnia ci klasę Inclinometer (http://msdn.microsoft.com/en-[...]clinometer%28v=win.10%29.aspx) która od razu robi to, co chcesz - zwraca wartości obrotu według osi x, y, i z w stopniach.

Pozostało 580 znaków

2014-10-30 23:12
0

Dziękuję bardzo jednak wszystko działa jak należy ! :) Możesz powiedzieć albo jakimś linkiem podać skąd taki wzór i dlaczego tak ? :)

Pozostało 580 znaków

2014-11-02 13:43
0

Atan2 to odwrotna funkcja trygonometryczna - arcus tangens, tylko w wersji dwuargumentowej.

For any real number (e.g., floating point) arguments x and y not both equal to zero, atan2(y, x) is the angle in radians between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. The angle is positive for counter-clockwise angles (upper half-plane, y > 0), and negative for clockwise angles (lower half-plane, y < 0).

Mnożenie przez 180 i dzielenie przez liczbę pi, to z kolei konwersja na stopnie z radianów.

http://www.freescale.com/files/sensors/doc/app_note/AN3461.pdf (chyba równanie 25, tylko wersja uproszczona, bo ignorujemy jedną oś obrotu).

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0