Obecnie pracuję na urządzeniu, które wykorzystuje zawsze włączony akcelerometr 3D (przy użyciu skali + -2g) i czujnik żyroskopowy 3D (przy użyciu skali + -250g).
Potrafię odczytać każdy możliwy wektor (X, Y, Z) i ich przyspieszenie (g) i szybkość kątową (dps), a także kąt, w którym aktualnie znajduje się urządzenie. Ale moim problemem jest to, że gdy urządzenie jest w pozycji pochylonej (0 g, gdy nie ma przechyłu), przyspieszenie wynosi pomiędzy (w dół) 0g -> - 1g lub między (w górę) 0g-> 1g, w zależności od tego, jaki kąt jest obecnie urządzenie. Poniżej znajduje się zdjęcie, które, mam nadzieję, usuwa pomysł.
Urządzenie będzie znajdować się w samochodzie i powinno mierzyć przyspieszenie, gdy samochód zwalnia (hamulec). Jeśli jednak urządzenie jest już w trakcie pochylania, akcelerometr mierzy pewne przyspieszenie, które powoduje pochylenie, co utrudnia stwierdzenie, czy urządzenie ma naprawdę jakieś przyspieszenie, czy to tylko pochylenie powoduje przyspieszenie.
X i Y-Osi wytwarzają 0 g, a oś Z wynosi 1 g, gdy urządzenie nie ma przechyłu i znajduje się na płaskiej powierzchni. Pochylenie powoduje, że odczyt osi X idzie w kierunku 1 g, jeśli przechylenie jest w górę, i -1 g w dół. + -1g osiąga się, gdy urządzenie jest ustawione na 90 * stopni od pierwotnej pozycji
Zastanawiałem się, jak wyeliminować to przyspieszenie, które powoduje pochylenie, i zmierzyć tylko rzeczywiste przyspieszenie urządzenia, ale po prostu nie mogę wymyślić rozwiązania tego problemu dzięki następującym danym, które mogę wytworzyć.
Zasadniczo myślę, że gdybym mógł zmierzyć tylko przyspieszenie osi X (obraz), nawet jeśli czujnik jest pochylony jak na zdjęciu.
Mam nadzieję, że ta wiadomość nie jest zbyt trudna do zrozumienia ze względu na moje umiejętności angielskiego i sposób, w jaki staram się wyjaśnić mój problem.