2013-04-30 11 views
5

Korzystając event.accelerationIncludingGravity na Androida, to zwraca wartośćKonwersja przyspieszenia z grawitacją do czystego przyspieszenia?

x: -0.2 
y: +0.1 
z: +9.1 

gdy spoczywa na płaskiej powierzchni. Jednak chcę uzyskać przyspieszenie bez grawitacji, ale event.acceleration nie jest obsługiwane. Czy istnieje sposób na konwersję przez Math? W HTML5Rocks jest przykład usuwania współczynnika grawitacji, ale wydaje się, że nie działa.

// Convert the value from acceleration to degrees acceleration.x|y is the 
    // acceleration according to gravity, we'll assume we're on Earth and divide 
    // by 9.81 (earth gravity) to get a percentage value, and then multiply that 
    // by 90 to convert to degrees.         
    var tiltLR = Math.round(((acceleration.x)/9.81) * -90); 
    var tiltFB = Math.round(((acceleration.y + 9.81)/9.81) * 90 * facingUp); 

Example script graphing acceleration values (nie z HTML5Rocks)

Odpowiedz

0

widzę. Masz liczby dla osi X i Y, które są w istocie 0, ciągle mierz pomiar urządzenia spoczywającego na płaskiej powierzchni i średnie wszystkie twoje wartości xiy, a otrzymasz stopień błędu w każdym kierunku. Przyspieszenie mierzy się w m/s^2. (metry na sekundę do kwadratu). Przyspieszenie grawitacyjne na powierzchni Ziemi wynosi 9,86 m/s^2. W idealnym problemie fizycznym wystarczy odjąć tę liczbę, a otrzymasz odpowiedź. Gdybyś próbował obliczyć prędkość, to byłby to bardziej złożony problem, ale przyspieszenie ziemskie Ziemi nie przyspiesza. Masz większy stopień błędu w osi Z, ale nie, jeśli obliczysz stopień błędu jako procent rzeczywistej wartości. Lub jesteś około 300 km nad poziomem morza.

+0

Właśnie przetestowałem, że '9.86 - e.acceleration.z' działa poprawnie, gdy urządzenie jest skierowane do góry. Ale gdy tylko ją przechylę, czynnik grawitacji zaczyna wpływać również na inne osie. [Ten skrypt] (http://developer.android.com/reference/android/hardware/SensorEvent.html#values) Myślę, że jest to pomocne, ponieważ wymaga ono grawitacji, ale nie wiem, jak to zrobić . (i jest napisany w Javie) –

+0

Tak, natywna funkcjonalność sprzętu wydaje się być na razie lepsza niż rozwój mobilny. –

Powiązane problemy