Witaj! Chcesz nauczyć się obliczać kąt nachylenia za pomocą akcelerometru? To prostsze, niż myślisz! Wyobraź sobie, że masz w telefonie mini-detektor ruchu, który informuje Cię, jak bardzo Twój telefon jest przechylony.
Co to jest akcelerometr?
Pomyśl o akcelerometrze jak o małej kulce w pudełku. Gdy pudełko jest poziomo, kulka spoczywa na dnie. Kiedy przechylasz pudełko, kulka się przesuwa.
Akcelerometr mierzy przyspieszenie w trzech osiach: X, Y i Z. Wyobraź sobie kostkę Rubika. Każda ściana kostki odpowiada jednej osi.
Oś X to ruch na boki. Oś Y to ruch do przodu i do tyłu. Oś Z to ruch w górę i w dół.
Kiedy akcelerometr jest w spoczynku, mierzy tylko siłę grawitacji. To tak, jakby Ziemia ciągnęła go w dół.
Jak grawitacja pomaga obliczyć kąt?
Grawitacja zawsze ciągnie w dół. Wyobraź sobie jabłko spadające z drzewa. Zawsze spada pionowo w dół.
Akcelerometr mierzy, jak mocno grawitacja działa na każdą oś. To trochę jak ważenie jabłka na każdej ze ścian kostki Rubika.
Kiedy akcelerometr jest idealnie poziomo, cała grawitacja działa na oś Z. Na osiach X i Y grawitacji nie ma.
Kiedy akcelerometr jest przechylony, grawitacja rozkłada się na wszystkie trzy osie. Im większy kąt, tym większy udział grawitacji na osiach X i Y.
Wzory na obliczenie kąta
Użyjemy funkcji arctangent (atan2) do obliczenia kąta. Pomyśl o tym jak o translatorze, który zamienia pomiary przyspieszenia na kąty nachylenia.
Kąt nachylenia względem osi X (roll) obliczymy następująco:
roll = atan2(Ay, Az)
Gdzie Ay to przyspieszenie na osi Y, a Az to przyspieszenie na osi Z.
Kąt nachylenia względem osi Y (pitch) obliczymy następująco:
pitch = atan2(Ax, sqrt(Ay * Ay + Az * Az))
Gdzie Ax to przyspieszenie na osi X.
Funkcja sqrt to pierwiastek kwadratowy. Potrzebujemy jej, aby obliczyć długość wektora grawitacji na płaszczyźnie YZ.
Te kąty są wyrażone w radianach. Potrzebujesz pomnożyć je przez 180/PI, aby uzyskać stopnie.
roll (w stopniach) = roll (w radianach) * 180 / PI
pitch (w stopniach) = pitch (w radianach) * 180 / PI
Przykład krok po kroku
Załóżmy, że akcelerometr podaje następujące wartości:
- Ax = 0.2
- Ay = 0.5
- Az = 9.7
Najpierw obliczamy roll:
roll = atan2(0.5, 9.7) = 0.051 radianów
Następnie zamieniamy radiany na stopnie:
roll (w stopniach) = 0.051 * 180 / 3.14159 = 2.92 stopnie
Teraz obliczamy pitch:
pitch = atan2(0.2, sqrt(0.5 * 0.5 + 9.7 * 9.7)) = atan2(0.2, sqrt(0.25 + 94.09)) = atan2(0.2, sqrt(94.34)) = atan2(0.2, 9.71) = 0.0206 radianów
Zamieniamy radiany na stopnie:
pitch (w stopniach) = 0.0206 * 180 / 3.14159 = 1.18 stopni
Oznacza to, że urządzenie jest nachylone o około 2.92 stopnia w jednym kierunku (roll) i 1.18 stopnia w drugim kierunku (pitch).
Praktyczne zastosowania
Ta wiedza jest przydatna w wielu aplikacjach. Na przykład w grach do sterowania postacią. Kiedy przechylasz telefon, postać rusza się w odpowiednim kierunku.
Inne zastosowania to:
- Automatyczna rotacja ekranu w smartfonach.
- Samopoziomujące się urządzenia, takie jak drony.
- Monitorowanie wibracji w maszynach przemysłowych.
Kilka ważnych wskazówek
Akcelerometry są wrażliwe na wibracje i zakłócenia. Potrzebujesz filtrować dane, aby uzyskać dokładne wyniki. Pomyśl o tym jak o wygładzaniu nierówności na drodze, aby jazda była bardziej komfortowa.
Kalibracja akcelerometru jest kluczowa. Musisz upewnić się, że akcelerometr poprawnie mierzy przyspieszenie.
Wykorzystuj średnią kroczącą, aby wygładzić odczyty. To trochę jak uśrednianie wyników kilku pomiarów, aby uzyskać bardziej stabilną wartość.
Podsumowanie
Obliczanie kąta nachylenia z akcelerometru to przydatna umiejętność. To jak posiadanie wirtualnej poziomicy! Pamiętaj o osiach X, Y i Z, sile grawitacji i funkcjach atan2 i sqrt.
Dzięki temu możesz tworzyć ciekawe i interaktywne aplikacje. Powodzenia!
