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