Zadania wykonywane w czasie laboratorium należy dokumentować w postaci zdjęć przedstawiających postępy prac.
Zadanie 1 – 3,5
Wykorzystać program z poprzednich zajęć.
- dodać do wątku obsługi czujnika, odczytywanie wartości mierzonych z akcelerometru i żyroskopu, dane udostępniać przy użyciu odpowiedniego mechanizmu kolejki. Odczyt dokonywać z częstotliwością 10Hz,
- odczytane dane przeliczyć na odpowiednie jednostki w zależności od czujnika, wyniki publikować w kolejnej kolejce,
- porównać przyśpieszenie mierzone przez akcelerometr z przyśpieszeniem grawitacyjnym – wyznaczyć przyśpieszenie ziemskie z odczytów z 3 osi, kiedy obliczone przyśpieszenie będzie równe 9,8066m/s^2?
- dodać wątek, który na podstawie danych pomiarowych z akcelerometru wyznaczy położenie kątowe modułu w dwóch osiach (poziomnica), dane przekaże do nowej kolejki,
- zmodyfikować wątek wyświetlający informacje w terminalu o nowe pomiary,
Zadanie 2 – 4,5
- dodać kolejny wątek zajmujący się obliczaniem i dystrybucją wyników:
- oblicza kąt obrotu modułu na podstawie całkowania danych z żyroskopu dla 3 osi. Porównać nowe kąty z wynikami z poprzedniego zadania,
- częstotliwość wykonywania wątku musi być bardzo dokładna – zastosować funkcję “vTaskDelayUntil”,
- wszystkie nowe dane mają być wyświetlane przez wątek obsługujący komunikację z terminalem.
Zadanie 3 – 5
- polepszyć wyniki wyznaczania orientacji z poprzednich zadań, przez zastosowanie jakiejś metody:
- uśrednianie,
- filtr komplementarnego,
- filtr alfa/beta,
- filtr Kalmana,