Wizualizacja danych sensorycznych Projekt Dalmierz optyczny
Transkrypt
Wizualizacja danych sensorycznych Projekt Dalmierz optyczny
Wizualizacja danych sensorycznych Projekt Dalmierz optyczny Anna Napierała 137097 17 czerwca 2007 Spis treści 1 Wstęp 2 2 Urządzenie 2.1 Obsługa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Budowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Oprogramowanie . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 4 3 Aplikacja komputerowa 3.1 Obsługa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Uwaga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 4 Kod źródłowy programu urządzenia 5 5 Kod źródłowy aplikacji 5 1 1 Wstęp Celem projetku było wykonanie dalmierza z wykorzystaniem czujnika typu PSD (GP2Y0A02). Umożliwienie komunikacji z komputerem poprzez łącze RS232. Dodatkowo wizualizacja paskiem diod LED. Tryby pacy: pomiar ciągły wyzwalany przyciskiem na obudowie, pomiar pojedynczy wyzwalany przyciskiem na obudowie, pomiar na żądanie z komputera PC. Dodatkowo możliwość wyłączenia wizualizacji realizowanej za pomocą diod LED. 2 Urządzenie Do budowy dalmierza (Rysunek 1) wykorzystano czujnik odległości GP2Y0A02 firmy Sharp, o zakresie pomiarowym 20 - 150 [cm], który zamontowano na czołowej ścianie obudowy plastikowej Z-44. Znajdują się w nim 24 diody do wizualizacji odległości, trzy przyciski do sterowania trybami wizualizacji, przycisk resetu mikrokontrolera, złącze do RS232, wyłącznik urządzenia oraz gniazdo do zasilania. Urządzenie jest autonomiczne, ma wewnątrz miejsce na cztery baterie AA lub cztery akumulatorki. Rysunek 1: Widok złożonego urządzenia. 2.1 Obsługa Urządzenie może być zasilane czterema bateriami AA (akumulatorkami) bądź z zewnętrznego zasilacza prądu stałego o napięciu 5V. Odpowiednie podpięcie gniazda zasilania pozwala na podłączenie zasilania zewnętrznego 2 mimo znajdujących się w środku baterii, które na ten czas zostają odcięte. Po włączeniu domyślnie ustawiony jest tryb bez wizualizaji diodami. Wybierając przyciski ”Tryb 1 - pomiar ciągły” lub ”Tryb 2 - pomiar pojedynczy” jednocześnie zostają włączone diody. Wybranie przycisku ”Led - wyłączenie diod”, wyłącza wizualizację diodami, ale czujnik nie przestaje działać, pracuje w ostatnio wybranym trybie (jednym z dwóch). 2.2 Budowa Budowę dalmierza (Rysunek 2) oparto na mikrokontrolerze ATmega 16, ze względu na odpowiednią liczbę portów oraz łatwą obsługę. Sposób podłączenia elementów oraz rozmieszczenie ich na płytce drukowanej pokazano na rysunkach (3) (4) (5). W ten sposób uzyskano 24 diody dla wskazań odległości, z których zrobiono linijkę diodową: cztery pierwsze diody koloru czerwonego wskazują odległości 20 - 50 [cm] co 10 cm, kolejne dziesięć diod koloru żółtego wskazuję odłegłości 55 - 100 [cm] co 5 cm, ostatnie dziesięć diod koloru zielonego wskazuje odległości 105 - 150 [cm] co 5 cm. Trzy przyciski obsługujące wizualizacje połączono z portami, wyprowadzono także przycisk resetu mikrokontrolera. Z tyłu urządzenia umieszczono gniazdo zasilania oraz złącze do RS232, w ten sposób aby korzystanie z dalmierza było nadal w pełni możliwe. W środku umieszczono złącze do programowania, celowo nie wyprowadzono go na zewnątrz, gdyż zaprogramowanie kontrolera jest czynnością jednorazową, dzieki temu można było w sposób ergonomiczny umieścić przyciski, diody i złącza. Rysunek 2: Widok rozłożonego urządzenia. 3 2.3 Oprogramowanie Czujnik odległości wykorzystany w projekcie na wyjściu podaje wartość napięcia w zależności od odległości (Rysunek 6). Z wykresu odczytano napięcie dla określonych odległości (Tabela 1) oraz wyliczono wartości prztwornika analogowo-cyfrowego ADC. Czujnik na wyjściu wysyła 8 bitów, stąd liczba 256 we wzorze (1). Dalmierz wysyła dane w postaci ramki: 0x00 adc 0xff, przez RS232 o parametrach: 115200 8N1 (b/s, parzystość, bity). ADC = gdzie V 256 VD V - napęcie dla danej odległości (1) V D = 5V - napięcie odniesienia Tabela 1: Wartości napięcia oraz ADC dla odpowiednich odległości. lp odległość [cm] napięcie [V] ADC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 20 30 40 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 2,72 2,26 1,88 1,57 1,44 1,32 1,22 1,13 1,04 0,97 0,90 0,84 0,79 0,74 0,70 0,66 0,63 0,60 0,58 0,56 0,54 0,52 0,51 0,50 557/4 462/4 385/4 322/4 295/4 271/4 250/4 231/4 214/4 198/4 185/4 172/4 161/4 152/4 143/4 136/4 129/4 124/4 118/4 114/4 110/4 107/4 105/4 102/4 4 3 Aplikacja komputerowa Dla urządzenia napisano aplikację (Rysunek 7) na komputer. Odwzorowuje ona dalmierz, posiada odpowiadające przyciski sterowania wizualizacją oraz diody, ponad to znajduje się w niej okno do podglądu odległości, które jest aktywne nawet przy wyłączonej wizualizacji diodami. Program został napisany z wykorzystaniem bibliotek Qt 3.3 oraz QextSerialPort 0.9.0. Komunikuje się z urządzeniem poprzez RS232. 3.1 Obsługa Po podłączeniu dalmierza do komputera oraz uruchomieniu aplikacji (Rysunek 7) należy przycisnąć przycisk ”START” aby uruchomić komunikację z urządzeniem. Następnie należy wybrać jeden z dwóch trybów - pomiar ciągły lub pojedynczy. Aplikacja będzie odwzorowywała działanie dalmierza z lekkim opóźnieniem. Dodatkowo w programie stworzono pole, które pokazauje wskazania w wybranym trybie, a po przyciśnięciu przycisku ”LED” w ostatnio wybranym trybie. 3.2 Uwaga W programie są wpisane na stałe ustawienia do obsługi portu szeregowego. Gdy program nie działa należy w pliku gui.cpp w metodzie Wizualizacja() zmienić (”/dev/ttyUSB0”) na nazwę urządzenia z jaką się ono zgłasza po podłączeniu do komputera. Gdy dalmierz przy pdłączeniu z komputerem nie odpowiada, bądź się resetuje oznacza to, że należy podłączyć zasilanie zewnętrzne bądź wymienić baterie (naładować akumulatorki). 4 Kod źródłowy programu urządzenia Kod źródłowy programu znajduje się w dołączonym katalogu - dalmierz. 5 Kod źródłowy aplikacji Kod źródłowy aplikacji znajduje się w dołączonym katalogu - aplikacja. 5 Rysunek 3: Schemat elektryczny urządzenia. 6 Rysunek 4: Płytka drukowana - położenie elementów. Rysunek 5: Płytka drukowana - ścieżki. 7 Rysunek 6: Zależność napięcia na wyjściu czujnika od odległości. Rysunek 7: Widok aplikacji do obsługi urządzenia. 8