Skaneroptyczny- Fafik MariuszDymarek,MarekKorczyński 14 czerwca 2008 1 Wstęp Zadanie polegało na wykonaniu modyfikacji programowych i sprzętowych istniejącego urządzenia dalmierza optycznego[1]. W ramach zadania należało: zbudować nową głowice zawierającą trzy czujniki mały-gp2d120, średni- GP2Y0A02YK, duży-gp2y0a710k0f, rysunek 1,2 zlinearyzować czujniki średni i duży dokonać modyfikacji programowych mikrokontrolera w celu dostosowania protokołu komunikacji do współpracy z aplikacją wizualizującą i z dużym czujnikiem wykonać modyfikacje sprzętowe pozwalające na współprace z czujnikiem dużego zasięgu Rysunek 1: Zbudowana głowica- tył Rysunek 2: Zbudowana głowica- przód RaportzprojektuprzedmiotuWizualizacjadanychsensorycznych,ARE4355P. c MariuszDymarek,MarekKorczyński.Wszelkieprawazastrzeżone. 1
2 Wykonano Dużo problemów w pracach przysporzyła istniejąca dokumentacja projektu[1]. Są w niej inne oznaczenia pinów, inne schematy i inne oznaczenia elementów niż w rzeczywistości. To co łączyło się wykonywanymi modyfikacjami zostało poprawione w tym dokumencie. Przebieg prac: wykonano nową głowicę z trzema czujnikami PSD firmy Sharp, Do portu P0 mikrokontrolera podłączono rezystor R1(1k) oraz tranzystor Q4(BC325-25), które mają za zadanie załączanie dołączanego dodatkowego czujnika. Sygnał z czujnika został podłączony do przetwornika analogowo cyfrowego do portu PAD2. Wyprowadzono również piny służące do podłączenia dodatkowego czujnika. Wszystkie czujniki mają wspólną masę a ich sterownie odbywa się przez załączanie napięcia Vcc. Aktualny schemat połączeń czujników przedstawiony jest na rysunku 3, a wyprowadzenia złącz Z11iZ11aodpowiedniowtabelach1i2, Spalono mikrokontroler HC12 i krańcówki optyczne służące do ograniczenia położenia głowicy obrotowej w wypadku próby wykonania pełnego obrotu, Z elementów dostarczonych przez prowadzącego wykonano nową płytkę modułu mikrokontrolera(dokumentacja[2]), Z elementów dostarczonych przez autora projektu[3] wykonano interfejs służący do debugowania i programowania modułu mikrokontrolera. Interfejs zaprogramowano w tryb pracy TBDML dla HC(x)12- firmware i drivery[4], Wymieniono elementy krańcówek optycznych oraz zaktualizowano dokumentacje[1] dotyczącą połączenia krańcówek- rysunek 4. Wykorzystany układ logicznych bramek NAND 74LS00, Przeprowadzono linearyzacje czujników średniego i dużego zasięgu- opisana w rozdziale 2.1, Wykonano modyfikacje protokołu komunikacyjnego- opisane w rozdziale 2.2. PIN Kolor Sygnał 1 brązowy GND 2 zielony A02 +5V 3 czerwony D120 SYG 4 pomarańczowy D120 +5V 5 żółty A02 SYG 6 niebieski LED +5V Tablica 1: Złącze Z11-Sygnały sensorów pomiarowych(krótkiego i średniego zasięgu 2
Rysunek 3: Schemat wprowadzonych modyfikacji- sterowanie czujnikami. PIN Kolor Sygnał 1 niebieski Y710 SYG 2 czerwony Y710 +5v Tablica 2: Złącze Z11a-Sygnały sensorów pomiarowych(dalekiego zasięgu) 2.1 Linearyzacja czujników PSD firmy Sharp Żeby przekształcić napięcie odczytane z przetwornika A/C mikrokontrolera na odległość przeprowadzono linearyzację czujników. W urządzeniu wykorzystano trzy rodzaje czujników, które w teorii powinny dać możliwość wiarygodnego pomiaru odległości od 4 cm do 550cm. Najmniejszy czujnik został wykorzystany w poprzedniej głowicy i został już zlinearyzowany. Ponowna linearyzacja nie jest więc konieczna. 2.1.1 Linearyzacja czujnika średniego zasięgu GP2Y0A02YK Czujnik ten charakteryzuje się zasięgiem od 20 cm do 150 cm. Przeprowadzono seriępomiarów,od20cmdo180cmco10cm,którajestprzedstawionanawykresie5.widaćnanim,żenapięciezmieniasięwsposóbnieliniowy.abywprosty sposób uzyskać linearyzację czujnika(korzystając z noty katalogowej) aproksymowano zależność odwrotności odległości od napięcia z przetwornika A/C(ponieważ teoretycznie powinna być to zależność zależność liniowa). Aproksymację liniową uzyskano za pomocą regresji liniowej. Wyniki pomiarów jak i aproksymację przed- 3
Rysunek 4: Schemat wprowadzonych modyfikacji- krańcówki optyczne. stawiono na rysunku 6. Uzyskana aproksymacja: y=18857 1 R 2 gdzie y- napięcie z przetwornika A/C po przekształceniu otrzymujemy zależność ostateczny wzór przekształcający napięcie na odległość: R= 18857 y+2. Jak widać na rysunku 6 czujnik działał dobrze nawet dla odległości przekraczających jego zasięg. Jeszcze nawet dla przeszkody w odległości 180 cm czujnik dawał w miarę stałe i liniowo zmieniające się napięcie(w stosunku do odwrotności odległości) 2.1.2 Linearyzacja czujnika dużego zasięgu GP2Y0A710K0F Czujnik ten charakteryzuje się zasięgiem od 100 cm aż do 550 cm. Przeprowadzonoseriępomiarów,od100cmdo550cmco20cm,którajestprzedstawiona na wykresie 7. Dokładnie jak w przypadku czujnika o średnim zasięgu(rozdział 2.1) aproksymowano zależność odwrotności odległości od napięcia z przetwornika A/C a nie odległości od napięcia. Aproksymację liniową uzyskano za pomocą regresji liniowej. Wyniki pomiarów jak i aproksymację przedstawiono na rysunku 8 Uzyskana aproksymacja: y=51486 1 R +322.2335 4
180 aaa 160 140 120 odleglosc [cm] 100 80 60 40 20 0 100 200 300 400 500 600 700 800 900 napiecie z przetwornika A/C Rysunek 5: Wykres odległości w zależności od napięcia wyjściowego z przetwornika A/C dla czujnika o średnim zakresie gdzie y- napięcie z przetwornika A/C po przekształceniu otrzymujemy zależność ostateczny wzór przekształcający napięcie na odległość: 51486 R= y 322.2335. Pomiary dla dużych odległości(powyżej 4 metrów) wahały się bardzo, co widać bardzo dobrze jako zafalowanie na rysunku 8 i 7. Pomiary potrafiły odbiegać nawet o 50 cm od prawdziwej wartości. Dlatego zalecamy nie używanie tego czujnika dla pomiarów odległości ponad 4 metrów, jeśli pomiary mają być dokładne. 2.2 Dostosowanie programu na mikrokontroler do nowej głowicy Na potrzeby nowej głowicy zmodyfikowano program napisany wcześniej w ramach pracy dyplomowej[1]. Dodano nowe funkcje obsługujące trzeci czujnik. Włączeniem dodatkowego czujnika o dużym zasięgu steruje się zmieniając stany na porcie PB0. Sygnał pomiarowy z czujnika jest pobierany z portu PAD2. Do protokołu komunikacyjnego dodano 2 identyfikatory ramki potrzebne do obsługi dodatkowego czujnika 3: PIN Identyfikator Wartość Atrybut liczba bajtów Min Max 1 FIATD2RAWVALUE 0x16 R 2 - - 2 FI SENSOR2 ON 0x20 RW 1 0 1 Tablica 3: Dodatkowe identyfikatory ramki w protokole komunikacyjnym Gdzie: 5
0.05 0.045 0.04 odwrotnosc odleglosci [1/cm] 0.035 0.03 0.025 0.02 0.015 0.01 0.005 zmierzone wartosci aproksymacja 0 0 100 200 300 400 500 600 700 800 900 napiecie z przetwornika A/C Rysunek 6: Wykres odwrotności odległości od napięcia wyjściowego z przetwornika A/C oraz jego aproksymacja dla czujnika o średnim zakresie FIATD2RAWVALUEodczytwartościzprzetwornikaA/C,doktórego podłączony jest czujnik dużego zasięgu FI SENSOR2 ON komenda załączenia sensora dużego zasięgu Do wgrania zmodyfikowanego programu i jego debugowania potrzebny był interfejs TBDML, ponieważ program wykorzystuje 2 porty szeregowe i debugowanie i wgrywanie poprawionych wersji programów przez Serial Monitor jest niemożliwa. Do modyfikacji programu użyto środowiska CodeWarrior w wersji 4.6 2.3 Interfejsużytkownika Do sterowania i wizualizacji pracy urządzenia służy aplikacja ESELDO, która jest integralną częścią pracy dyplomowej[1]. Ze wzgledu na dodanie nowego czujnika do urządzenia konieczne było zmodyfikowanie aplikacji dostosowywując ją do pracy z nowym sensorem(rysunek 9). Dla czujnika o największym zasięgu: dodano pole włączające, dodano pole wyświetlające wskazanie, zmodyfikowano okno wizualizujące pomiary zwiekszając jego zakres do 500cm oraz dodano linie określające zakres czujnika. Ponadto ograniczono możliwość powiększania i zmniejszania sceny, wielkosc punktow, oraz napisy na scenie dostosowano do skali sceny, poprawiono zauwazone niedociagniecia w aplikacji(np. brak polaczenia sygnalu z przycisku zamknij z odpowiednim slotem, itp...) 6
550 zmierzone wartosci 500 450 400 odleglosc [cm] 350 300 250 200 150 100 350 400 450 500 550 600 650 700 750 800 850 napiecie z przetwornika A/C Rysunek 7: Wykres odległości w zależności od napięcia wyjściowego z przetwornika A/C dla czujnika o dużym zakresie napisano całą dokumentacje programu(dokumentacja została wygenerowana za pomocą programu Doxygen) dostosowano język aplikacji do ustawien regionalnych systemu. 3 Podsumowanie Udało się stworzyć nową głowicę z trzema czujnikami. Fuzja trzech czujników pozwalanapomiarodległościodprzeszkodyod4cmdookoło4metrów.okazało się, że czujnik o największym zasięgu nie pozwala na stabilny pomiar odległości powyżej 4 metrów. Ponadto wystąpiły problemy z czujnikiem o średnim zasięgu, który był uszkodzony. Nie dawał powtarzalnych wyników dla niezmieniających się odległości. Dopiero taki sam czujnik zastępczy pozwolił na dokończenie podłączania głowicy. Ponadto poprzez prawdopodobnie przebicie w sieci elektrycznej został spalony moduł mikrokontrolera i krańcówki optyczne. Elementy te musieliśmy wymienić na nowe. Podczas realizacji projektu napotkano duże problemy z dokumentacją pracy dyplomowej[1], której zawartość jest inna niż rzeczywiste rozwiązania. Przez to bardzo dużo czasu poświecono na prawidłowe rozpoznanie układów. Dokumentacja złącz i schematów, których dotyczy ten dokument są już poprawione. Ponadto do urządzenia zmodyfikowano program wizualizujący i sterujący urządzeniem z poziomu komputera. Umożliwia on pomiar w trzech trybach: 1. pomiar jednorazowy- najbardziej stabilny 2. pomiar co krok- skanuje otoczenie z zadanym krokiem zatrzymując się podczas pomiaru 7
10 x 10 3 9 8 odwrotnosc odleglosci [1/cm] 7 6 5 4 3 2 zmierzone wartosci aproksymacja 1 350 400 450 500 550 600 650 700 750 800 850 napiecie z przetwornika A/C Rysunek 8: Wykres odległości w zależności od napięcia wyjściowego z przetwornika A/C dla czujnika o dużym zakresie 3. pomiar ciągły- skanuje otoczenie z zadanym krokiem pomiaru nie zatrzymując się podczas pomiaru Do progranu została napisana w całości dokumentacja wygenerowana za pomocą programu Doxygen. Dokumentacja oraz poprawiony program wizualizacyjny i program do mikrokontrolera bedzie dostarczona osobno na płycie CD-ROM przy oddawaniu projektu. Literatura [1] G.Soroko: http://rab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2007/ praca_dyplomowa-grzegorz_soroko.pdf [2] M.Wnuk, M.Kabała: http://rab.ict.pwr.wroc.pl/~mw/proj/micro/hc12/hc12a64.pdf [3] R.Kuczaj: http://www.konar.ict.pwr.wroc.pl/uploads/download/hc12/osbdm_tbdml.pdf [4] R.Kuczaj(zip): http://www.konar.ict.pwr.wroc.pl/module.php?op=download&cmd=click&id=124 8
Rysunek 9: Nowy interfejs użytkownika 9