• Nie Znaleziono Wyników

Aplikacja do wizualizacji danych z akcelerometru, żyroskopu oraz magnetometru

N/A
N/A
Protected

Academic year: 2022

Share "Aplikacja do wizualizacji danych z akcelerometru, żyroskopu oraz magnetometru"

Copied!
16
0
0

Pełen tekst

(1)

Politechnika Wrocławska

Wizualizacja danych sensorycznych

Aplikacja do wizualizacji danych z akcelerometru,

żyroskopu oraz magnetometru

Damian Karczewski 200509

12 czerwca 2017

(2)

Spis treści

1 Cel projektu 2

2 Opis 2

2.1 Moduł STM32F3DISCOVERY . . . 2 2.2 Akcelerometr i magnetometr LSM303DLHC . . . 2 2.3 Żyroskop L3GD20. . . 3

3 Podstawowa funkcjonalność 3

3.1 Rozszerzona funkcjonalność . . . 4

4 Harmonogram i diagram Gantta 4

5 Szkic interfejsu graficznego aplikacji 6 6 Diagram klas i przepływu sterowania 8

7 Komunikacja UART 11

8 Komunikacja I2C, LSM303DLHC 11

9 Komunikacja SPI, L3GD20 11

10 Podusmowanie 12

(3)

1 Cel projektu

Celem projektu jest stworzenie aplikacji, która będzie prezentowała dane sen- soryczne z akcelerometru, żyroskopu oraz magnetometru.

2 Opis

Aplikacja, która będzie prezentowała dane zostanie napisana z wykorzysta- niem biblioteki Qt. Na podstawie pobranych danych możliwe będzie graficz- nie przedstawienie wartości na wykresie. Użytkownik będzie miał możliwość wyboru, które dane będą wyświetlane. Możliwe są odczyty danych z osi X,Y i Z dla każdego czujnika. Połączenie mikrokontrolera z komputerem zrealizo- wane będzie przy pomocy interfejsu UART.

2.1 Moduł STM32F3DISCOVERY

Płytka oznaczona symbolem STM32F3DISCOVERY [3] wyposażona jest w niezbędne czujniki. Posiada ona 32 bitowy mikrokontroler STM32F303VCT6 [2] wyposażony w 256 kilobajtów pamięci Flash oraz 48 kilobajtów pamię- ci RAM. Rdzeniem mikrokonrolera jest Cortex-M4F ze sprzętową jednostką zmiennoprzecinkową. Maksymalna częstotliwość taktowania wynosi 72 MHz.

Do realizacji projektu ustawiono częstotliwość taktowania równą 64 MHz.

Na płytce znajduje się trzyosiowy żyroskop cyfrowy L3GD20 [4] oraz trzy- osiowy akcelerometr z magnetometrem LSM303DLHC [1]. Dodatkowo na płytce znajduje się 8 diod LED oraz mikroprzełącznik, które mogą być zapro- gramowane przez użytkownika. Programowanie układu odbywa się poprzez programator-debbuger ST-Link/V2.

2.2 Akcelerometr i magnetometr LSM303DLHC

LSM303DLHC jest modułem wyposażonym w trzyosiowy czujnik przyspie- szenia liniowego i trzyosiowy czujnik magnetyczny. Pomiary możliwe są dzięki wykorzystaniu interfejsu szeregowego I2C. Posiada on możliwość wyboru za- kresu pomiarowego. W przypadku pomiaru przyspieszenia możliwe są opcje:

±2g lub ±8g. W przypadku pomiaru pola magnetycznego możliwy jest wy- bór od ±1.3g do ±8.1g. Częstotliwość wyjściowa danych pomiarowych wynosi 100 Hz lub 400 Hz.

(4)

Rysunek 1: Moduł STM32F3DISCOVERY

2.3 Żyroskop L3GD20

L3GD20 jest trójosiowym czujnikiem mierzącym prędkość kątową. Obsługa czujnika możliwa jest dzięki szeregowemu interfejsowi SPI lub I2C. Połącze- nie mikrokontrolera z czujnikiem zrealizowane jest przy pomocy interfejsu SPI. Posiada on możliwość wyboru zakresu pomiarowego: ±250/s, ±500/s lub ±2000/s.

3 Podstawowa funkcjonalność

Podstawowa funkcjonalność aplikacji:

• Wizualizacja danych z akcelerometru, żyroskopu oraz magnetometru

• Wybór prezentowanych danych

• Wyświetlanie danych z akcelerometru oraz żyroskopu na wykresie

• Wyświetlenie kompasu

3

(5)

• Wykres będzie zawierał dane teraźniejsze oraz wcześniej pobrane war- tości

• Połączenie aplikacji z płytką STM32F3DISCOVERY

3.1 Rozszerzona funkcjonalność

Jako rozszerzenie działania aplikacji planuje się oprogramować zapisywanie zebranych danych do pliku.

4 Harmonogram i diagram Gantta

Praca nad projektem została zaplanowana zgodnie z poniższym harmonogra- mem. Rysunek 2przedstawia diagram Gantta z podziałem pracy na zadania.

• 27.03.2017 Rozpoczęcie pracy

• 28.03.2017 Założenie i konfiguracja systemu kontroli wersji - git

• 29.03.2017 Podzielenie kartoteki projektu na odpowiednie foldery. Stwo- rzenie pliku makefile oraz pliku main

• 31.03.2017 Stworzenie podstawowej wersji aplikacji okienkowej

• 07.04.2017 Rozmieszczenie elementów w aplikacji

• 21.04.2017 Obsługa sygnałów i slotów

• 28.04.2017 Podstawowa obsługa portu szeregowego

• 05.05.2017 Zaprogramowanie mikrokontrolera - interfejs SPI, I2C oraz UART

• 12.05.2017 Połączenie aplikacji z mikrokontrolerem przy pomocy portu szeregowego

• 19.05.2017 Rozszerzenie aplikacji o możliwość rysowania wykresów

• 26.05.2017 Poprawienie aplikacji okienkowej, sposobu wizualizacji da- nych i ewentualnych funkcjonalności.

• 02.06.2017 Testowanie działania aplikacji

• 09.06.2017 Prezentacja zrealizowanego projektu

(6)

Rozpoczęcie pracy 4g Konfiguracja systemu kontroli wersji Git 2g Konfiguracja kartoteki. Plik makefile oraz main 4g Podstawowa wersja aplikacji okienkowej 6g Rozmieszczenie elementów w aplikacji 1d

Obsługa sygnałów i slotów 1d

Obsługa UART przez aplikację 1d

Zaprogramowanie mikrokontrolera 6d

Interfejs SPI 2d

Interfejs I2C 2d

Interfejs UART 2d

Połączenie aplikacji z mikrokontrolerem 2d Rysowanie wykresów w aplikacji 2d

Eliminacja błędów 2d

Testowanie aplikacji 2d

Prezentacja wyników 1d

kwi 2017 maj 2017 cze 2017 lip 2017

13. tydz. 14. tydz. 15. tydz. 16. tydz. 17. tydz. 18. tydz. 19. tydz. 20. tydz. 21. tydz. 22. tydz. 23. tydz. 24. tydz. 25. tydz. 26. tydz. 27. tydz.

Nazwa Praca

Rysunek 2: Diagram Gantta

5

(7)

5 Szkic interfejsu graficznego aplikacji

Rysunek 3 przedstawia szkic interfejsu graficznego aplikacji. Okno główne aplikacji zostało podzielone na cztery moduły:

• moduł akcelerometru

• moduł żyroskopu

• moduł sterowania aplikacją

• moduł kompasu

Aplikacja Plik Bluetooth

X Y Z

X Y Z

Czas [s]

Przyspieszenie [G]

X Y Z

X Y Z

Czas [s]

Kompas Mikrokontroler

Start / Stop

Rysunek 3: Szkic interfejsu graficznego aplikacji

Rysunek 4przedstawia wygląd aplikacji po uruchomieniu. Pola z wykresami są puste, widoczna jest tylko siatka. Wykresy słupkowe są wyzerowane. Pola wybieralne przez użytkownika są nieaktywne. Moduł sterowania jest nieak- tywny. Użytkownik może jednie nawiązać komunikację z mikrokontrolerem.

Komunikat w module sterowania informuje o konieczności nawiązania po- łączenia z płytką. W tym celu należy wybrać z menu opcję „Serial port”, a następnie „Polacz”. Zostanie wyświetlone nowe okno (rys. 5), w którym

(8)

należy wybrać parametry komunikacji. Po poprawnym połączeniu uaktyw- niony zostaje przycisk umożliwiający rozpoczęcie i zakończenie odczytu da- nych (START/STOP ), a komunikat o konieczności nawiązania komunikacji zostaje ukryty.

Rysunek 4: Wygląd aplikacji po uruchomieniu

Rysunek 5: Okno z wyborem parametrów komunikacji UART

7

(9)

Moduł akcelerometru zbudowany jest w taki sam sposób jak moduł żyro- skopu. Różnią się one danymi, które wizualizują, ponieważ czujniki te mie- rzą inne parametry. Pobrane dane prezentowane są na wykresie. Na jednym wykresie mogą znaleźć się maksymalnie trzy linie. Jedna linia odpowiada od- czytom z jednej osi. Każda linia jest w innym kolorze. Odczyty względem osi X są koloru czerwonego, względem osi Y zielonego, a względem osi Z ko- loru niebieskiego. Obok znajdują się trzy wykresy słupkowe. Wyświetlają one w postaci słupka wypełnionego odpowiednim kolorem ostatnią odczy- taną wartość. Kolejnym elementem w module są pozycje wybieralne dzięki, którym użytkownik może wybrać, które dane będą wyświetlane. Zaznacze- nie opcji powoduje, że na wykresie pojawi się linia z pomiarami, a wykres słupkowy zostanie wypełniony zgodnie z ostatnią odczytaną wartością.

Moduł sterowania aplikacją jest aktywny tylko po poprawnym połączeniu z mikrokontrolerem. Posiada on przycisk, który umożliwia rozpoczęcie od- czytu danych z czujników lub zakończenie odczytu danych (START/STOP ).

Poniżej przycisku znajduje się komunikat o obecnym stanie połączenia z por- tem szeregowym. Możliwe stany to „Połączono” oraz „Rozłączono”.

Moduł kompasu rysuje strzałkę, która symbolizuje igłę magnetyczną kom- pasu zgodnie z aktualnymi odczytami z magnetometru.

Pasek menu zawiera dwa rozwijalne podmenu, które umożliwiają rozpo- częcie lub zakończenie komunikacji z mikrokontrolerem, zapisanie zgroma- dzonych danych do pliku oraz zamknięcie aplikacji. Na dole okna głównego znajduje się belka statusowa, która wyświetla informację o aktualnym stanie połączenia z portem szeregowym. Wygląd aplikacji podczas pracy przedsta- wia rysunek 6.

6 Diagram klas i przepływu sterowania

Rysunek7 przedstawia diagram klas wykorzystanych w aplikacji. Rysunek8 opisuje ogólny przypadek przepływu sterowania. Opisuje on jakie są możliwe opcje pracy z aplikacją. Po uruchomieniu aplikacji należy nawiązać połącze- nie z mikrokontrolerem poprzez port szeregowy. Po poprawnym połączeniu możliwe jest rozpoczęcie odczytywania danych z czujników. Odczytanie da- nych odświeża dane na wykresach i uaktualnia położenie strzałki w module z kompasem.

Rysunek 9 przedstawia przepływ sterowania przez moduły prezentujące dane z akcelerometru, żyroskopu i magnetometru. Po nawiązaniu połącze- nia i uaktywnieniu możliwości odczytu danych (wciśnięcie przycisku Start ) sprawdzane są opcje, które użytkownik może zaznaczyć. Dotyczą one wyboru osi względem, której dane są wyświetlane. Jeżeli żadna z opcji nie zostanie za-

(10)

Rysunek 6: Wygląd aplikacji podczas pracy

znaczona to na wykresie nie pojawią się żadne dane. Po zakończeniu odczytu danych wykresy nie są aktualizowane.

Rysunek10przedstawia przepływ sterowania przez moduł obsługi aplika- cji. W module znajduje się jeden przycisk, który jest nieaktywny dopóki nie zostanie nawiązane połączenie z mikrokontrolerem. Po nawiązaniu połącze- nia można rozpocząć wyświetlanie danych na wykresach wciskając przycisk.

Ponowne wciśnięcie guziku przerywa prezentowanie danych.

9

(11)

Rysunek 7: Diagram klas

10

(12)

7 Komunikacja UART

Mikrokontroler komunikuje się z aplikacją poprzez port szeregowy (UART ).

Transmisja danych prowadzona jest tylko jednostronnie - z mikrokontrolera do aplikacji. Parametry transmisji:

• prędkość transmisji 38400

• 8 bitów danych

• brak kontroli parzystości

• 1 bit stopu

Po podłączeniu zasilania do modułu STM32F3DISCOVERY nie będą wyko- nywane żadne pomiary. Naciśnięcie niebieskiego przycisku oznaczonego ety- kietą USER spowoduje konfigurację odpowiednich peryferiów, rozpoczęcie pomiarów i wysyłanie danych. W celu wizualizacji pracy zapalana jest jedna z diod. W przypadku błędnej konfiguracji peryferiów czerwona dioda zacznie migać z częstotliwością 1Hz. Pomiary wykonywane są co 10 milisekund, na- stępnie przekształcane są w ciąg znaków w taki sposób, że kolejne dane po- miarowe oddzielone są między sobą znakiem przecinka. W aplikacji pobrany ciąg znaków dzielony jest na liczby. Możliwe jest dokładne określenie, która liczba została odczytana, ponieważ są one oddzielone od siebie znakiem prze- cinka i zawsze występują w tej samej kolejności. Jeżeli aplikacja nie odczyta 9 wartości to cała ramka uznawana jest za błędną i zostaje odrzucona.

8 Komunikacja I

2

C, LSM303DLHC

Moduł LSM303DLHC jest wyposażonym w trzyosiowy czujnik przyspiesze- nia liniowego i trzyosiowy czujnik magnetyczny. Pomiary wykonywane są przy pomocy interfejsu szeregowego I2C pracującego w trybie „Fast mode”, którego częstotliwość pracy została ustawiona na 400kHz. Wybrany zakres pomiarowy dla czujnika przyspieszenia to ±8G oraz dla czujnika pola ma- gnetycznego ±1.3 gaus.

9 Komunikacja SPI, L3GD20

L3GD20 jest trójosiowym czujnikiem mierzącym prędkość kątową. Obsłu- gę czujnika realizuje interfejs szeregowy SPI. Ustawiono zakres pomiarowy

±500/s. Parametry transmisji:

11

(13)

• format ramki Motorola

• szerokość ramki 8 bitów

• pierwszy bit MSB First - od najważniejszego bitu

• prędkość transmisji 1Mbit/s

• polaryzacja sygnału zegarowego CPOL High

• przesunięcie w fazie CPHA 2 Edge

10 Podusmowanie

Stworzona aplikacja została wykonana zgodnie z założeniem projektu. Cele projektu zostały osiągnięte. Aplikacja została napisana w taki sposób, aby była najprostsza w obsłudze i eliminowała ewentualne błędy użytkownika.

W projekcie nie zaimplementowano kalibracji magnetometru elektronicznego przez co uzyskiwane wyniki mogą być niewystarczająco dokładne.

Na podstawie projektu przekonano się jak ważne jest odpowiednie wi- zualizowanie danych sensorycznych. Właściwe zaprezentowanie danych może ułatwić interpretację pomiarów. Na etapie planowania aplikacji powstał szkic całego interfejsu, który w późniejszej fazie uległ delikatnej zmianie. Po stwo- rzeniu aplikacji znowu należało przebudować część interfejsu, aby poprawić jego czytelność. W ostatnim etapie gdy testowano aplikację sprawdzano różne ustawienia elementów w aplikacji i na podstawie różnych ustawień wybrano te, które było najlepsze. Wykorzystanie biblioteki Qt w robotyce daje bardzo duże możliwości. Zaletą jest to, że aplikacje są przenośne pomiędzy różnymi platformami/systemami oraz prostota w tworzeniu kolejnych.

Literatura

[1] STMicroelectronics. Akcelerometr i magnetometr LSM303DLHC. http:

//www.st.com/en/mems-and-sensors/lsm303dlhc.html.

[2] STMicroelectronics. Mikrokontroler STM32F303VCT6.http://www.st.

com/en/microcontrollers/stm32f303vc.html.

[3] STMicroelectronics. Moduł STM32F3DISCOVERY. http://www.st.

com/en/evaluation-tools/stm32f3discovery.html.

[4] STMicroelectronics. Żyroskop cyfrowy L3GD20. http://www.st.com/

en/mems-and-sensors/l3gd20.html.

(14)

Rysunek 8: Diagram ogólnego przepływu sterowania 13

(15)

Rysunek 9: Diagram przepływu sterowania w module akcelerometru i żyro- skopu

(16)

Rysunek 10: Diagram przepływu sterowania w module sterującym

15

Cytaty

Powiązane dokumenty

STRUKTURY ASOCJACYJNE ORAZ ASOCJACYJNE GRAFY NEURONOWE DO EKSPLORACJI WIEDZY Z DANYCH?.

Student potrafi dokonać prawidłowej interpretacji porównawczej wpływu zagrożeń pozamilitarnych na funkcjonowanie instytucji odpowiedzialnych za bezpieczeństwo

Wniosek 9.8 W przestrzeni liniowej generowanej przez zbiór n elementowy każdy skończony zbiór liniowo niezależny jest zawarty n elementowym zbiorze

Wierzchołek:=Tmp; /*(Zmienna TMP nie jest już potrzebna i może zostać użyta do innych celów. Od teraz Wierzchołek znowu wskazuje na użyteczną zmienną dynamiczną – na

Zaznaczono działający na żyroskop nie- zrównoważony moment siły ~ N p powodujący precesję, moment pędu żyroskopu ~L i jego zmianę d~ L, oraz kąt β o jaki obraca się

Zaznaczono działający na żyroskop nie- zrównoważony moment siły ~ N p powodujący precesję, moment pędu żyroskopu ~L i jego zmianę d~ L, oraz kąt β o jaki obraca się

Zapoznanie się z budowa, zasadą działania oraz zastosowaniami biomedycznymi akcelerometru na przykładzie trójosiowego akcelerometru (SS26LA BSL Triaxal Accelerometer 5G) firmy Biopac

Użytkownik będąc przeprowadzany przez szkolenie powinien widzieć pasek postępu nauki i mieć możliwość przejścia do kolejnego tematu, a także cofnięcia się (Np. za