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