Cyfrowy kompas na STM32 z czujnikiem HMC5883

Za pomocą funkcji trygonometrycznych obliczane są współrzędne punktu końca wirtualnej linii która ma swój początek na środku ekranu. Współrzędne te zmieniają się w zależności od kąta obrazującego kierunek geograficzny, dzięki takiemu rozwiązaniu mamy w zależności od kąta ruch punktu po okręgu o określonej średnicy. Skoro zmienna k oznacza nam położenie południa to k+180 da nam północ itd.

Wyjaśnienia wymaga zmienna declinationAngle, która jest wyznaczona za pomocą strony http://magnetic-declination.com/ i przekształcona na radiany (kalkulator dostępny np. http://www.wolframalpha.com/input/?i=%284%C2%B0+21%27%29+in+radians) i oznacza ona deklinację magnetyczną.

Ponieważ do realizacji kompasu elektronicznego został użyty sam magnetometr jest duże prawdopodobieństwo że kąt będzie się gwałtownie zmieniał w pewnym przedziale, a to oznacza drganie liter obrazujących kierunki świata na wyświetlaczu.

Na „odreagowanie” została stworzona kolejna funkcja, rysująca losowe figury, służąca tylko i wyłącznie rozrywce i nie ma nic wspólnego z kompasem prócz tego, że także wykorzystuje obliczenia trygonometryczne:

Tak naprawdę to są trzy proste o jednakowej długości połączone do siebie szeregowo z czego pierwsza z nich ma stały punkt zaczepu tj. środek ekrany a jej koniec jest początkiem następnej prostej itd. z czego ostatnia linia swoim końcem rysuje pewne krzywe które są zobrazowane na TFT. Każda z części tej 3-odcinkowej prostej obraca się z pewną losową prędkością względem swojego początku co daje nam ciekawy efekt. Aby było ciekawiej figury zmieniają swój kolor w zależności od ich kształtu a informacje na temat prędkości są wyświetlone na ekranie.

Do pobrania

O autorze