WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z

Transkrypt

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z
WIZUALIZACJA DANYCH
SENSORYCZNYCH
Sprawozdanie z wykonanego projektu
Jakub Stanisz
19 czerwca 2008
1
Wstęp
Celem mojego projektu było stworzenie dalmierza, opierającego się na czujniku
PSD. Zadaniem dalmierza była komunikacja z komputerem poprzez łącze RS232
oraz wizualizacja pracy na ekranie LCD. Dalmierz miał pracować w trzech trybach: pomiar pojedynczy, pomiar uśredniony (z zadanego czasu) oraz pomiar
aktualnej odległości. Trzy tryby pracy dostępne są na ekranie komputera, natomiast na wyświetlaczu LCD jest stale widoczna aktualna odległość wykrywana
przez czujnik.
2
Wykorzystane elementy
Do wykonania mojego zadania użyłem następujących elementów elektronicznych:
2.1
Mikrokontroler
Do obsługi czujnika optycznego użyłem 8-bitowego mikrokontrolera atmega 32.
Użyłem go ze względu na dużą ilość dostępnych materiałów związanych z mikrokontolerami AVR, odpowiednią ilość wyprowadzeń oraz łatwość dostępu do
kompilatorów C++ dedykowanych specjalnie dla mikroprocesorów AVR. W materiałach dodatkowych zamieszczam jego szczegółową dokumentację.
2.2
Wyswietlacz LCD
Wyświetlacz jakiego użyłem do wizualizacji wyników bezpośrednio z czujnika
to LMC-SSC2M16DEYW-03. Jest to wyświetlacz alfanumeryczny 2x16 (posiada
dwa rzędy po szesnaście znaków). Połączenie między mikrokontrolerem a LCD
jest zrealizowane w trybie 4-bitowym, bez kontroli flagi zajętości. Wyświetlacz
podłączony jest do portu B mikrokontrolera (szczegółowy schemat podłączenia
poniżej). Dokumentacja samego wyświetlacza została zamieszczona w materiałach dodatkowych.
2.3
MAX 232
Układ scalony MAX232 to część zastosowana do obsługi portu RS232. Układ
MAX232 zawiera w sobie zintegrowaną przetwornicę napięcia. Dzięki temu przy
zasilaniu 3V - 5V (wartości sygnałów z mikrokontrolera) uzyskujemy potrzebne napięcia -12V - 12V, potrzebne dla zapewnienia zgodności ze standardem
RS232. Standard ten opisuje sposób połączenia urządzenia końcowego danych
- komputer, oraz urządzenia komunikacji danych - dalmierz. Dokumentacja dostępna w materiałach dodatkowych.
2.4
Stabilizator napięcia
Stabilizator napięcia jakiego użyłem to popularny stabilizator ST7805. Stabilizuje on napięcie wejściowe, które wynosiło okolo 12V, na napięcie 5V, potrzebne
do zasilenia mikrokontrolera oraz innych peryferiów. Dalsze informacje dostępne
w materiałach dodatkowych.
1
2.5
Czujnik optyczny
Czujnik jaki zastosowałem to bardzo popularny czujnik Sharpa GP2D120. Mierzy on odległość w zakresie od 4 cm do 30 cm. Zależność odległości od napięcia
przedstawia poniższy wykres.
Szczegółowe informacje o czujniku można znaleźć w informacjach dodatkowych.
2
2.6
Schemat układu
Poniżej zamieszczam schemat całej płytki:
Rzeczywisty wygląd całego układu wygląda następująco:
3
3
3.1
Oprogramowanie
Oprogramowanie mikrokontrolera
Do oprogramowania mikrokontrolera użyłem programu ”AtmanAVR”. Jest on
bardzo przejrzysty i intuicyjny w obsłudze. Program ten potrafi ”sam” konfigurować porty mikrokontrolera (po wybraniu w menu konfiguracji, w kodzie pojawiają się przypisane odpowiednie wartości do odpowiednich rejestrów). Znacznie
przyspiesza to odpowiednią konfigurację portów.
3.2
Opis wizualizacji na LCD
Na LCD wyświetlane są cały czas wartości odległości wykrytego przedmiotu od
czujnika. Wartość odległości jest zależna od napięcia wyjściowego z czujnika.
Napięcia podzielone są na przedziały według których jest wyświetlana odpowiednia odległość. Tabelę tych zależności zamieszczam poniżej:
Przedział napięcia [V]
(∞, 2.50i
(2.50, 2.45i
(2.45, 2.20i
(2.20, 2.00i
(2.00, 1.80i
(1.80, 1.58i
(1.58, 1.40i
(1.40, 1.25i
(1.25, 1.15i
(1.15, 0.95i
(0.95, 0.80i
(0.80, 0.72i
(0.72, 0.65i
(0.65, 0.55i
(0.55, 0.42i
(0.42, 0.38i
(0.38, 0.32i
(0.32, −∞)
Wartość odległości [cm]
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
12.0
14.0
17.0
19.0
21.0
25.0
30.0
35.0
40.0
> 40.0
Kod źródłowy programu wczytanego do mikrokontrolera (wraz z dokładnym
opisem użytych funkcji) zamieszczam w materiałach dodatkowych.
3.3
Interfejs na komputerze
Na komputerze został stworzony prosty interfejs w języku C. Do programu przekazywane są dane z portu COM6. Po sprawdzeniu szeregu błędow związanych z
połączeniem płytki i komputera przechodzimy do głównej części programu. Zaczynamy pobierać wartości napięcia odczytywane z przetwornika ADC. Wartości
odległości wyświetlane w programie komputerowym, podobnie jak w programie
zaimplementowanym na mikrokontrolerze, zależne są od przedziału, w którym
znajduje się odczytana wartość napięcia. Stworzony przeze mnie interfejs pozwala na wybranie jednego z trzech wspomnianych wcześniej trybów pracy:
4
• Pomiar pojedynczy
Jest to pojedyncza wartość odległości zczytana w momencie włączenia tej
opcji.
• Pomiar uśredniony
Jest to pomiar uśredniony z danego czasu podanego przez użytkownika
(w sekundach). Czas podany przez użytkownika mnożony jest przez ilość
pomiarów wykonywanych w czasie jednej sekundy. Jest on dzielony następnie przez całą ilość próbek. Wyliczona w ten sposób wartość zostaje
pokazana użytkownikowi.
• Pomiar aktualnej odległości W tym trybie wyświetlana jest cały czas aktualna wartość odległości (podobnie jak na ekranie LCD).
Kod źródlowy programu oraz opis użytych funkcji można znaleźć w materiałach
dodatkowych. Widok interfejsu przedstawiony jest poniżej:
Kod źródłowy programu załączony jest w informacjach dodatkowych.
3.4
Opis protokołu komunikacji z komputerem
Transmisja danych odbywa się z następującymi parametrami:
• Liczba bitów na sekundę - 4800
• Bity danych - 8
• Parzystość - brak
• Bity stopu - 2
4
Bibliografia
• Dokumentacja użytego sprzętu:
Dokumentacja użytego sprzętu została załączona do materiałów dodatkowych.
5
• Forum elektroniczne:
www.elektroda.pl
• Opis podłączenia mikrokontrolera z wyświetlaczem LCD
www.mikrokontrolery.net
6