ADuCino360: graficzny wskaźnik przyspieszenia 2D na mikrokontrolerze ADuCM360 (Cortex-M3 z Analog Devices)
List. 3. Wizualizacja zmierzonego przyspieszenia na wyświetlaczu graficznym
ax=0; do { ax=CzytajAkcel(STATUS)&0x01; //czytaj status czujnika, tymczasowe podstawienie pod ax }while(ax!=0x01); //czekaj na nowa dana ax=CzytajAkcel(XDATA_L); //czytaj przyspieszenie ax if(ax<0) { ax--; } ax/=zakres; ax+=66; wx=ax; ay=CzytajAkcel(YDATA_L); //czytaj przyspieszenie ay if(ay<0) { ay--; } ay/=zakres; ay+=66; wy=ay; LcdKolo(sy,sx,5,WHITE); //wytrzyj poprzednie okno LcdOkrag(65,65,60,RED); LcdOkrag(65,65,30,BLUE); LcdLinia(65,2,65,129,BLACK); LcdLinia(2,65,129,65,BLACK); LcdKolo(wy,wx,5,kolor); //rysuj aktualny punkt przyspieszenia sx=wx; //zapamietaj aktualne wspolrzedne sy=wy; czekaj(50);
Domyślny zakres przyspieszeniomierza jest równy ±2 g dla każdej składowej, jednak po naciśnięciu przycisku S2 znajdującego się na płytce ADuCino jest on zmniejszany do ±1 g. Zakresy są zmieniane cyklicznie po każdorazowym naciśnięciu przycisku S2. Zakres jest sygnalizowany kolorem świecenia punktu: czerwony dla ±2 g i pomarańczowy dla ±1 g.
Układ nie wymaga kalibracji, jest gotowy do pracy natychmiast po włączeniu. Warunkiem poprawnej pracy jest jednak dokładne wypoziomowanie płytki. Należy też zwrócić uwagę na zachowanie odpowiedniej orientacji płytki względem kierunku ruchu.
Program został napisany w języku C, a do uruchomienia wykorzystano środowisko mVision4 Keila.