ZL31ARM: sterowanie kulki i obroty bryły w 3D za pomocą czujnika MEMS LIS35

Również parametry czasowe, jak ograniczenie w czasie i opóźnienie są podawane (wartości te są przykładowe i mogą zostać swobodnie zmieniane w zależności od potrzeb):

Na koniec zostaje jeszcze włączenie generacji sygnału przerwania po wykryciu kliknięcia:

Po skonfigurowaniu czujnika wg powyższego wzoru (konfigurację przerwań z kontrolerem NVIC przedstawiono przy konfiguracji projektu) można skorzystać z funkcji EXTI0_IRQHandler i odpowiednio reagować za zdarzenia w postaci kliknięć:

Obracanie figury

Wykorzystując wiedzę nabytą w poprzednim punkcie można zrealizować obracanie figurą 3D za pomocą odchylenia akcelerometru od pozycji neutralnej (osie X i Y są równoległe do powierzchni Ziemi). Im dłużej jest on odchylony tym coraz szybciej figura się obraca, a im większy jest kąt pochylenia tym większe przyśpieszenie kątowe otrzymuje obracający się obiekt. Również uwzględnia się tarcie, które powoduje, że prędkość kątowa w dowolnej osi maleje do zera w pozycji neutralnej akcelerometru. Funkcja realizująca powyższe zamierzenie jest podobna do tej opisanej z kulką na stole wirtualnym z niewielką różnicą; wielkości liniowe zostały zamienione na kątowe:

Do pobrania

O autorze