ADuCino360: graficzny wskaźnik przyspieszenia 2D na mikrokontrolerze ADuCM360 (Cortex-M3 z Analog Devices)
Mikrokontrolery ADuCM360/361 produkowane przez Analog Devices wyposażono w rdzeń Cortex-M3 oraz peryferia, które pozwalają nazywać te mikrokontrolery „analogowymi”, bowiem bloki analogowe zaprojektowano ze szczególną starannością, czego należało oczekiwać po producencie. Nie zapomniał on też o typowych interfejsach, bez których trudno dziś wyobrazić sobie nowoczesny mikrokontroler. W opisywanym projekcie – jest to kolejna aplikacja przykładowa publikowana przez portal MIKROKONTROLER.pl (opis cyfrowego termometru przedstawiliśmy pod adresem) – przedstawiono realizację przyspieszeniomierza 2D pokazującego graficznie wypadkowe przyspieszenie chwilowe. Bazą sprzetową projektu jest tani zestaw startowy o nazwie ADuCino360 (KAMAMI.pl).
Peryferia analogowe, w jakie wyposażone są mikrokontrolery produkowane przez Analog Devices, to jedna z wielu cech zwracających uwagę użytkowników. Producent ten znany jest z doskonałej jakości układów analogowych, które w postaci bloków funkcjonalnych implementowane są w strukturach mikrokontrolerów. Przykładem jest jedna z najnowszych rodzin mikrokontrolerów Analog Devices oznaczona symbolem ADuCM. Procesor z rdzeniem Cortex-M3 w połączeniu ze zintegrowanymi peryferiami analogowymi może stanowić ciekawe rozwiązanie dla wielu aplikacji.
W artykule skoncentrujemy się na mikrokontrolerze ADuCM360, w którym najważniejszym komponentem wydaje się być podwójny 24-bitowy przetwornik analogowo-cyfrowy z wejściami w pełni różnicowymi lub asymetrycznymi. Uzupełnia go 12-bitowy przetwornik DAC z wyjściem napięciowym. Lecz to nie te peryferia będą wykorzystane w projekcie opisanym w artykule. Głównym komponentem mikrokontrolera ADuCM360 w prezentowanym projekcie jest interfejs SPI, który będzie wykorzystany do komunikacji między procesorem a czujnikiem przyspieszenia oraz modułem wyświetlacza graficznego KAmodTFT2. Aplikację oparto na płytce ewaluacyjnej ADuCino360, opracowanej dla mikrokontrolera ADuCM360, której schemat ideowy przedstawiono na rys. 1. Urządzenie pełni funkcję graficznego wskaźnika przyspieszenia 2D, który może sygnalizować na przykład przeciążenia w samochodzie. Podobny wskaźnik widzimy czasami podczas transmisji z wyścigów Formuły 1. W projekcie wykorzystano 2-osiowy akcelerometr ADXL362 produkowany przez Analog Devices. Jest on elementem składowym płytki ADuCino360.
Rys. 1. Schemat ideowy płytki ADuCino360
Graficzny wskaźnik przyspieszenia 2D
Zadaniem opisywanego urządzenia jest graficzna wizualizacja chwilowego przyspieszenia mierzonego przez akcelerometr ADXL362. Wynik jest przedstawiony w postaci punktu wyświetlanego na tle dwóch koncentrycznych okręgów symbolizujących przyspieszenie 1 g (9,81 m/s2 – niebieski okrąg wewnętrzny) i 2 g (czerwony okrąg zewnętrzny). Czułość przyrządu może być zwiększona 2-krotnie, odpowiada jej zakres 0,5 g. Akcelerometr ADXL362 może wprawdzie mierzyć przyspieszenia w zakresach ±2 g, ±4 g i ±8 g, ale uznano, że opisywany miernik nie jest przeznaczony do samochodów sportowych, więc zakres ±2 g będzie w zupełności wystarczający. Kierunki odchylania plamki w odniesieniu do przyspieszenia działającego na płytkę ADuCino360 przedstawiono na rys. 2. Czujnik mierzy przyspieszenia w osi X i w osi Y, które są składowymi przyspieszenia wypadkowego. Składowa Z nie jest wykorzystywana. Przyspieszenie wypadkowe nie jest jednak obliczane, gdyż nie ma takiej potrzeby. Plamka jest umieszczana bezpośrednio w punkcie o współrzędnych wynikających z przyspieszeń ax i ay. Należy pamiętać, że czujnik jest wrażliwy na przyspieszenie ziemskie. W trakcie pracy płytka powinna być ustawiona dokładnie w płaszczyźnie poziomej. Każde odchylenie od poziomu spowoduje powiązane z nim odchylenie plamki o wartość odpowiadającą cosinusom kątów składowej X i Y. Jak widać, urządzenie może też pełnić funkcję poziomnicy 2D. Jej dokładność w tej aplikacji nie będzie jednak zbyt wysoka.
Rys. 2. Kierunki odchylania plamki na ekranie w zależności od kierunków przyspieszeń działających na płytkę ADuCino