Wizualizacja danych sensorycznych - projekt

Transkrypt

Wizualizacja danych sensorycznych - projekt
Raport:
Wizualizacja danych sensorycznych - projekt
——————————————–
Komputerowe przedstawienie obiektów
rozpoznanych przez sonary ultradźwiękowe
——————————————–
Łukasz Chodorski∗
prowadzący: dr inż. Bogdan Kreczmer
12 czerwca 2009
∗ 148393
/ Robotyka / Automatyka i Robotyka / Elektronika / Politechnika Wrocławska
1
Spis treści
1 Opis zadania:
3
2 Testy sonarów:
3
3 Opis fizycznego układu:
3.1 Opis fizycznego układu: . . . . . . . . . . . . . . . . . . . . . . .
5
5
4 Program:
4.1 AtMega16: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Qt: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
8
5 Literatura i spis dodatków:
9
2
1
Opis zadania:
Celem projektu była budowa i oprogramowanie urządzenia opartego o sonary
ultradźwiękowe do wizualnego wyświetlania otoczenia na ekranie komputera.
Założenia projektowe określały wizualizację bliskiego otoczenia sonarów z wykorzystaniem analizy danych. Podobne rozwiązania mogą znaleźć zastosowanie
w programach wspomagających procesy decyzyjne. Najpierw dokonywana jest
przestrzenna lokalizacja obiektu przez 4 sonary. Potem dane zostają przekazane
z czujników odległościowych do mikrokontrolera poprzez przetworniki ADC. Zebrane cztery dane pomiarowe zostają przesłanie z kontrolera AtMega16 do komputera za pomocą konwertera RS232/USB opartego na układzie ft232r. Program
napisany w Qt dokonuje odbioru, analizy i wizualizacji danych.
2
Testy sonarów:
Zebrana literatura znajduje się w spisie na końcu sprawozdania. Podstawowe
dokumenty niezbędne do wykonania projektu to pozycje [2] i [11]. Są one podstawą do połączenia sonarów1 z mikroprocesorem.
Przeprowadzone testy sonarów pozwoliły określić czy specyfikacje są prawidłowe
i czy sonary działają poprawnie. Sprawdzenie czy czujniki działają, odbyło się
przy oraniczeniu do minimum układu: zasilanie, miernik, sonar, linijka i przewody. Zgodne z instrukcją podłączenie wyprowadzeń sonaru:
(2) +5V
→ VCC (+5V) (dokładne informacje potem)
(3) ANOUT → miernik napięcia
(4) AUTO → GND (praca automatyczna - pomiar co 0,01s)
(10) GND → GND
Pozostałe wyprowadzenia nie zostały podłączone. Za pomocą takiego połączenia
sonaru z miernikiem zbierane dane pomiarowe z wyświetlacza miernika, na podstawie zamieszczonej w dokumentacji zależności:
1[m] = 1[V ] . . . zakres ∈ (0 − 5V )
Rysunek 1: Pierwsze testy sonarów
1 MOBOT-US
V2 firmy WObit (dodatek A)
3
(1)
Testy miały na celu sprawdzenie realnych mozliwości pomiarów i współpracy
sonarów. Pozwoliło to określić funkcjonalność czujników. Testy wykazały, że
sonary działają zgodnie z zasadami zamieszczonymi poniżej:
- LED1 - sygnalizacja VCC,
- LED2 - zmiana przy odbiorze,
- LED3 - przy przekroczeniu wartości zadanej (czasami strasznie skacze),
Sonar nie nadaje się do pomiaru odległości od obiektów szybko się poruszających. W takich sytuacjach napięcie uzyskuje losowe wartości. Napięcie doprowadzone do sonaru wynosiło 4, 75V , nie jest to dokładnie 5V , stąd wynikają
niedokładności. Zakres ∈ (7 − 230cm). Poniżej 7cm wynik jest losowy, powyżej
230cm nie testowany. Kąt pod jakim przeszkoda została rozpoznawana zależał
w większości od tego jaki to był przedmiot i jak był ustawiony. 40o to wynik
w którym wszystko co się znajduje zostaje wychwycone. Dokładność = 1cm.
Napięcie zmienia się wraz z dokładnością miernika. Dotyczy to znów szerokiej
gamy przedmiotów i jest to zależne od rozpraszania się ultradźwięków i ich odbijaniu od powierzchni.
Celem projektu jest stworzenie i oprogramowanie układu, którego schemat ideowy przedstawiony jest na rysunku (Rys. 2). Program napisany w C jest przesyłany
przez programator ISP do pamięci AtMegi. Obiekty są rozpoznawane przez
sonary i odległość od nich w postaci napiecia zostaje przekazana do mikrokontrolera przez przetworniki analogowo-cyfrowe. Zbiór danych zostaje dalej przesłany
do komputera za pomocą konwertera ft232r i zostają wizualnie przedstawione.
Rysunek 2: Schemat ideowy układu sonarowego
4
3
Opis fizycznego układu:
3.1
Opis fizycznego układu:
Kwestia stworzenia prawidłowo funkcjonującego hardwearu była fundamentalna
w projekcie. Po wielu próbach stworzenia płytki łączącej na sobie wszystkie
elementy w jeden układ (podjęte próby projektowania w eaglu przedstawia
(Rys.3)). Doszedłem do wniosku, że zrealizuję układ jako połączenie kilku uniwersalnych modułów, połączonych kablami. Powodem takiej decyzji były przede
wszystkim problemy z wydrukowaniem płytki "metodami domowymi". Dodatkowo,
w razie błędów, układ połączony na kable można łatwo zmienić, w razie wystąpienia nowych pomysłów łatwiej je wdrożyć.
Rysunek 3: Pierwsze próby stworzenia płytki
Finalnie układ sonarów składa się z kilku części przymocowanych do obudowy,
zasilacza, kabli łączących całość z komputerem i komputerem jako urządzeniem wyświetlającym wyniki. Zdjęcie całości jest pokazane na następnej stronie
(Rys.4). Schemat połączeń znajduje się w dodatku (Dodatek C). Poszczególne
elemęty:
• Płytka testowa z Atmega16:
Umiejscowienie AVR na płytce z podaniem wyprowadzeń na goldpiny,
podłączenie do ISP, umieszczenie testowych diód i podłączenie zasilania.
• Płytka sonarów:
Połączenie do zasilania i masy sonarów (Dodatek A), ustawienie w tryb
auto, wyjscie każdego z wyprowadzeń anout sonara do A16 (wcześniej zastanawiałem się nad wykorzystaniem I 2 C ale wykozystanie przetworników
AC w zupełności w tym przypadku wystarczy.) Odległość przedmiotu od
sonaru jest określana przez układ snarów jako wartość napięcia i zostaje
wyprowadzana na piny ANOUT każdego z nich. Ustawienie sonarów z
czterech stron obudowy pozwala na obserwację tego co się dzieje dookoła
całej wieżyczki. Wykonywanie pomiarów jest ustawione w tryb automatyczny (zwarcie do masy pinów AUTO). Powoduje to ciągłe wykonywanie
pomiarów i wystawienie wyników na ANOUT, który jest połączony z
wyprowadzeniami przetworników A/C - PA0..PA3 (ADC0..ADC3).
• Zasilacz - 9V, płytka stabilizatora 5V i prostownika, wiatraczek.
• Wieżyczka wykonana z łatwych do obróbki materiałów: drewno + korek
• konwerter ft232rl (Dodatek B) RS<->USB, programator, kabel USB
5
Rysunek 4: Zestawiony układ sonarów, AtMegi, zasilania i konwertera rs
Rysunek (Rys.4) prezentuje zabudowany układ sonarów. Mimo zwartej struktury, układ pozostaje segmentalny. Poszczególne płytki zostały przykręcone do
drewnianej wierzy, ale cały czas można je wyjąc i testować z osobna. Projekt
ma charakter dydaktyczny i dlatego takie rozwiązanie jest najlepsze. Projekt
daje możliwości kolejnych zastosowań, np połączenie z ruchomym serwomechanizmem wprawionym w ruch obrotowy wokół własnej osi umożliwił by zaczytywanie danych ze wszystkich kierunków, a nie tylko z czterech ... ale to może w
przyszłości.
6
4
4.1
Program:
AtMega16:
Mikrokontroler za pomocą czterech przetworników analogowo - cyfrowych (ADC0..ADC3)
na bieżąco zczytuje wartości napięć wystawionych przez sonary. Przetworzone na
postać cyfrową wielkości napięć zostają zapamiętane jako zmienne w programie
i za pomocą UARTU (RXD, TXD) zostają podane do konwertera ft232rl. Obsługą przetworników i przesyłem danych przez UART zarządza program, który
został wgrany na AVR poprzez środowisko AVRStudio4 przez standardowe programowanie w trybie ISP (MOSI, MISO, SCK, RESET) poprzez programator
AVRProgUSB.
Konwerter ft232rl przechwytuje wysłane przez RS232 dane (RXD, TXD) i podaje je na USB. Konwerter jest dodatkowo zasilany z zewnątrz. Komputer sczytuje dane w postaci 4 liczb powtarzających się ciągle i odpowiadających kolejnym wynikom pomiarów poszczególnych sonarów. Wstępne testy wysyłanych
danych przeprowadziłem poprzez terminale coma i otrzymywałem poprawne
wyniki (Rys.5):
Rysunek 5: Odbierane dane przez terminal
Ustawiono jest 8 bitowy przesył danych, 4800 bitów na sekundę. Schemat podłączeń
całego układu znajduje się w dodatku (Dodatek C), natomiast kod programu
zamieszczony jest w pliku stanowiacym dodatek (Dodatek D).
7
4.2
Qt:
Program napisany w Qt to QtSerialPortTerminal rozbudowany o wizualizację.
Po ustawieniu parametrow transmisji i przyłączeniu układu do odpowiedniego
portu zostają wyświetlone odległości obiektów znajdujących się blisko sonarów.
Wynik działania programu to okienko pokazana na rysunku (Rys.6):
Rysunek 6: Wizualizacja danych sonarowych prze Qt
Okienko z lewej strony pokazuje aktualnie sczytywane potokiem dane z portu
com5. Po prawej stronie widać pole wizualizacyjne. Linie symbolizujące cztery
kierunki świata sygnalizują wychwycenie obiektu przez dany sonar. Długość linii
jest wprost proporcjonalna do odległości obiektu od danego sonara. Dodatkowo
przy każdej linii są wyświetlane informacje o odległości. W przypadku braku
identyfikacji obiektu lub jego lokalizacji w odległosci większej od 2 metrów od
sonaru, linia zostaje maksymalnie wyrysowana a w polu odległości zostaje wypisane > 2[m].
Program uzyskałem po modyfikacji darmowego QtSerialPortTerminal:
http://www.qt-apps.org/content/show.php/QTSerialPortTerminal?content=77764
Free software (License: GPL) - GNU General Public License
Program korzysta ze standardowych bibliotek Qt Creatora + QextSerialPort.
Występuje błąd przetwarzania danych z potoku znaków na liczby do ustalenia długości linii wizualizacyjnych i po pewnym czasie otrzymywane wyniki są
nieprawidłowe: (Dodatek E) - QtSerialPorTerminal.cpp linijka 233)
8
5
Literatura i spis dodatków:
Literatura
[1] dr inż. B. Kreczmer: Slajdy z wykładu: Wizualizacja danych sensorycznych
PWR 2007.
[2] WObit: Instrukcja obsługi Sonar MOBOT-US V2, Poznań 2008.
[3] Atmel: AtMega16 - datasheet
[4] FTDIChip-IDTM : FT232R USB UART I.C.
[5] KAMAMI: ZL4USB: Interfejs USB<->RS232, btc ver.1.0
[6] R. Baranowski: Mikrokrokontrolery AVR ATmega w praktyce,
btc Warszawa 2005.
[7] Daniel Solin: Poznaj programowanie przy użyciu biblioteki QT w 24 godziny
[8] http://www.qt-apps.org/content/show.php/QTSerialPortTerminal?content=77764
[9] http://qextserialport.sourceforge.net/
[10] Tobias Oetiker, Hubert Partl, Irene Hyna i Elisabeth Schlegl:
Nie za krótkie wprowadzenie do systemu LATEX , w.3.2 - 21 wrz. 1998
[11] materiały wydobyte z www
Spis dodatków:
[Dodatek A]: Sonar MOBOT-US V2 (datasheet)
[Dodatek B]: ZL4USB – interfejs USB<->RS232 (datasheet)
[Dodatek C]: Schemat połączeń układu
[Dodatek D]: Program Atmega16
[Dodatek E]: Program Qt
LATEX
9