Kompas Cyfrowy - Politechnika Wrocławska

Transkrypt

Kompas Cyfrowy - Politechnika Wrocławska
Wizualizacja Danych Sensorycznych
Politechnika Wrocławska
Instytut Cybernetyki Technicznej
Wizualizacja Danych Sensorycznych
Projekt
Kompas Elektroniczny
Prowadzący:
dr inż. Bogdan Kreczmer
Wykonali:
Tomasz Salamon
Paweł Chojnowski
Wrocław, styczeń 2005
Wizualizacja Danych Sensorycznych
1. Cel projektu
Projekt powstał w ramach kursu „Wizualizacja Danych Sensorycznych”
i polegał na opracowaniu oraz praktycznym wykonaniu układu elektronicznego kompasu.
2. Założenia główne
Projektowany układ miał:
-
-
zapewnić obsługę, konfigurację i komunikację z modułem kompasu CMPS03
przetwarzać i wyświetlać dane na panelu LCD oraz pierścieniu diod LED
komunikować się z komputerem PC wykorzystując protokół MODBUS
stanowić w miarę małe urządzenie
3. Rozwiązanie projektowe
„Sercem” całego układu przedstawionego na Rys.1 jest mikrokontroler ATmega8,
który steruje wyświetlaczem LCD oraz poszczególnymi diodami LED. Układ komunikuje się
z modułem CMPS03 poprzez sprzętową magistralę I2C. Układ U1 – stabilizator 5V- pracuje
w swej typowej aplikacji, obniżając i stabilizując napięcie pochodzące z zewnętrznego
zasilacza wtyczkowego. Układ U3 – MAX232 zapewnia dopasowanie poziomów napięć do
standardu RS232. Przyciski S1 - (Menu) i S2 – (Ok) umożliwiają konfiguracje i obsługę
urządzenia. Złącze Z4 służy do połączenia urządzenia z komputerem, za pomocą kabla typu
null-modem (opis poniżej). Złącze Z2 (z sygnałami magistrali I2C) służy do dołączenia
modułu CMPS03. Złącze to, rozszerzone o sygnały +5V i masy, zostało tak że umieszczone
na zewnątrz obudowy, umożliwiając tym samym zewnętrzne dołączenie modułu CMPS03.
Opis jego wyprowadzeń przedstawiono na Rys. 4.
Kompas Elektroniczny
2
Wizualizacja Danych Sensorycznych
Rys. 1 Schemat ideowy układu
Kompas Elektroniczny
3
Wizualizacja Danych Sensorycznych
Powyższy układ zmontowano na specjalnie do tego celu zaprojektowanych płytkach,
których widoki przedstawiono na poniższych rysunkach.
Rys.2 Widok ścieżek płytki mikroprocesora (odbicie lustrzane) i widok montażu
elementów
Rys.3 Widok ścieżek płytki diod (odbicia lustrzane) i widok montażu elementów
Kompas Elektroniczny
4
Wizualizacja Danych Sensorycznych
4. Opis modułu CMPS03
Użyty w projekcie moduł kompasu jest układem specjalnie zaprojektowanym do
zastosowań w robotyce do celów nawigacji. Zbudowany został w oparciu o magnetyczne
sensory KMZ51 Philipsa i mikroprocesor PIC 16F872 o bardzo niskim poborze prądu.
Układ zasilany jest napięciem 5V i nominalnie pobiera 15mA prądu.
Rys.4 Widok i opis wyprowadzeń modułu CMPS03
Informacje o aktualnym kącie obrotu możemy uzyskać na dwa sposoby :
·
poprzez wyjście PWM (Pin 4) na którym dostępny jest sygnał o współczynniku
wypełnienia proporcjonalnym do kąta obrotu : od 1ms dla 0° do 36,99ms dla 359.9°
·
poprzez odczyt odpowiednich rejestrów mikroprocesora PIC za pomocą magistrali J2C
w których dostępne są już gotowe, wstępnie przetworzone informacje. Opis zawartości
dostępnych z poziomu magistrali J2C rejestrów przedstawiono poniżej:
Kompas Elektroniczny
5
Wizualizacja Danych Sensorycznych
Rejestr
Funkcja
0
Numer wersji oprogramowania
Zgrubna, bajtowa informacja o odchyleniu od 0 do 255 dla kąta
1
pełnego
Informacja dokładna w postaci słowa 2 bajtowego od 0 do 3599
2,3
dla kąta pełnego, reprezentująca odpowiednio 0° - 359.9 °
4,5 Test Wewnętrzny - Sensor1
6,7 Test Wewnętrzny – Sensor2
8,9 Test Wewnętrzny - kalibracja wartości sensora 1
10,11 Test Wewnętrzny - kalibracja wartości sensora 2
15 Kalibracja
Tab.1 Adresy i zawartości dostępne w rejestrach modułu CSMP03
Dokładny opis powyższego modułu znaleźć można na stronie producenta:
http://www.robot-electronics.co.uk/htm/cmps3doc.shtml
5. Komunikacja z komputerem
W urządzeniu zaimplementowano obsługę protokołu MODBUS (pracującego
w trybie RTU) dzięki czemu możliwe jest odczytywanie danych przez komputer PC (lub inny
sterownik zewnętrzny) pełniący rolę typu MASTER (parametry transmisji: 9600, 8, N,1 )
Opisywane urządzenie pełni rolę typu SLAVE o adresie 12, który w odpowiedzi na
zapytanie funkcją o kodzie 3 (odczyt n rejestrów), wysyła zawartość 2 bajtowego rejestru o
adresie 1, zawierającego najnowsze dane odczytane z rejestrów 2 i 3 modułu kompasu.
Poniżej znajdują się przykładowe ramki komunikacji z urządzeniem:
Master:
[0C] [03] [00][01] [00][01] [D4][D7]
^
^ \____/ \_____/ \_____/
- zapytanie
adres Slave
/
kod
funkcji
|
adres
rejestru
Kompas Elektroniczny
|
liczba
rejestrów
\
suma CRC
6
Wizualizacja Danych Sensorycznych
Slave:
[0C] [03] [02] [07][33] [D7][A0]
^
^
^ \____/ \_____/
- odpowiedź
adres Slave
/
kod
funkcji
|
liczba
bajtów
|
zawartość
rejestru
\
suma CRC
W przypadku wysłania zapytania o innym kodzie funkcji lub o rejestr o innym adresie,
urządzenie wyśle informacje o błędzie (kod 83) zgodnie ze specyfikacją protokołu
odpowiednio : 01 (niedozwolona funkcja) lub 02 (niedozwolony adres danych) np.
Master: [ 0C] [04] [00][01] [00][01] [61][17]
Slave:
[0C] [83] [01] [11][33]
- zapytanie
- odpowiedź
Master: [0C] [03] [00][03] [00][02] [35][16]
Slave:
[0C] [83] [02] [51][32]
- zapytanie
- odpowiedź
6. Obsługa urządzenia
Urządzenie gotowe jest do pracy tuż po włączeniu zasilania. Na wyświetlaczu LCD
prezentuje aktualny kąt odchylenia od kierunku Północy. Dodatkowo, gdy kąt odchylenia
odpowiada 4 głównym kierunkom, wyświetla informację typu: Wschód, Zachód, Północ,
Południe. W centralnej części urządzenia znajduje się pierścień 12 diod Led, z których każda
odpowiada odchyleniu 30° ( 12 x 30° = 360°). Zaświecają się one pojedynczo, przeciwnie do
wykonywanego obrotu, dzięki czemu święcąca się dioda wskazuje kierunek północny.
Klawiszem „Menu” przechodzimy kolejno po dostępnych w menu opcjach, których
wyboru dokonujemy klawiszem „Ok.”. Funkcja „Kalibracja” służy do skalibrowania modułu
kompasu w przypadku znaczącej zmiany otoczenia modułu (np. po zamieszczeniu modułu
wewnątrz obudowy urządzenia, ze względu na obecność w niej metalowych przedmiotów).
Kalibracja, po jej aktywowaniu z poziomu menu, polega na ustawieniu modułu kolejno w
kierunkach północnym, wschodnim, południowym i zachodnim, i naciśnięciu każdorazowo po
ustawieniu klawisza „Ok”, zgodnie z komunikatami wyświetlanymi na LCD.
Kompas Elektroniczny
7
Wizualizacja Danych Sensorycznych
7. Załączniki
Wymiary modułu
Przykład płyty czołowej ;)
Kompas Elektroniczny
8