[PL] [ENG]
logo
- uScan -

wstep

Podstawowym celem przyświecającym autorom podczas projektowania skanera obrazów dyfrakcyjnych było ułatwienie badania zjawiska dyfrakcji światła. Ujmując rzecz jakościowo, dyfrakcja to rozproszenie lub ugięcie fal przy przejściu przez szczelinę lub tuż przy ostrej krawędzi przegrody. Fale ugięte interferują, dając obszary wzmocnienia i osłabienia natężenia światła.

Pierwsze wzmianki dotyczące zjawiska dyfrakcji światła pojawiły się już w pracy Leonarda da Vinci. Jako pierwszemu poprawnie udało się opisać to zjawisko Grimaldiemu w XVII wieku. Za pomocą teorii korpuskularnej światła, tak popularnej w tamtym okresie, nie udawało się wyjaśnić zjawiska dyfrakcji. Huygens jako pierwszy zaproponował falową teorię światła, ale bynajmniej jej nie wykorzystał do opisu zjawiska dyfrakcji. Dopiero na początku XIX wieku pojawiła się praca Frenela, w której autor pokazał, iż dyfrakcja może być wyjaśniona w oparciu o zasadę Huygens'a oraz reguły interferencji. Następnie teorię zaproponowaną przez Frenela uzupełniano i rozbudowywano, a w dniu dzisiejszym teoria dyfrakcji stanowi duży rozdział optyki.

a)p1 b)p1 c)p1

Rys. 1 Dyfrakcja na szczelinie : a) model b) amplituda fali c) natężenie fali.

Na rysunku 1a) przedstawiono falę płaską padającą w kierunku prostopadłym na wąską szczelinę. W rezultacie na ekranie umieszczonym za przeszkodą otrzymamy obraz przedstawiony na 1b). Jeśli obiekty oświetlane będą miały bardziej złożone kształty otrzymamy bardzo różnorodne obrazy. Przykładowe obrazy dyfrakcji lasera na tkaninach przedstawiono na rysunku 2.


p1 p1 p1

Rys. 2 Obrazy dyfrakcji lasera na tkaninach.


Do badania zjawiska dyfrakcji na szczelinie wystarczy wykonać pomiar natężenia światła w funkcji jednej zmiennej przestrzennej. Natomiast obraz dyfrakcyjny tkaniny, czyli obiektu efektywnie dwu wymiarowego jest dwu wymiarowy. Dla pełnego zrozumienia zjawiska konieczne jest zebranie dużo większej ilości danych. W celu automatyzacji procesu akwizycji danych został zaprojektowany i zbudowany skaner obrazów dyfrakcyjnych.


zasada działania

Skaner obrazów dyfrakcyjnych możemy porównać do aparatu cyfrowego, którego zadaniem jest przekształcić obraz obserwowany do postaci cyfrowej. Zwykły aparat cyfrowy ma jednak pewne wady , do których zaliczyć można mały zakres dynamiczny mierzonego światła (zazwyczaj 8 bitów co daje około 50dB), oraz geometryczne zniekształcenia obrazu (aparat "patrzy" na ekran pod pewnym kątem). Do podstawowych zalet aparatu można nie wątpliwie zaliczyć czas wykonania pomiaru wynoszący maksymalnie kilka sekund. Alternatywą spotykaną w laboratoriach fizycznych jest układ składający się z elementu foto czułego zamocowanego na manipulatorze mechanicznym. Rozwiązanie to umożliwia uzyskanie dobrej dynamiki pomiaru i pewności co do współrzędnej położenia. Niestety, pomiar ręczny trwa bardzo długo.

Autorzy jako cel projektu postawili sobie pełną automatyzacje pomiaru. Zaproponowane rozwiązanie ma strukturę modularną w którego skład wchodzi część sprzętowa oraz programowa, co zostało schematycznie pokazane na rysunku 3.

p1

Rys. 3

Taka architektura umożliwiła pełną separację części sprzętowej odpowiedzialnej za zabieranie danych od części programowej odpowiedzialnej za ich obróbkę oraz prezentację.

część sprzętowa

W projekcie części sprzętowej zdecydowano się na zastosowanie fotodiody jako detektora światła i manipulatora mechanicznego, określającego jej współrzędne przestrzenne. W urządzeniu można wyróżnić następujące jednostki funkcjonalne:

  • uScan - zarządca systemu
  • ploter - manipulator mechaniczny
  • fotodioda - konwerter natężenia światła na prąd elektryczny
  • woltomierz - kluczowy element w obwodzie pomiaru natężenia światła

współdziałanie powyższych komponentów zostało schematycznie przedstawione na rysunku 4. Opis poszczególnych składowych oraz sposobów komunikacji miedzy nimi zostanie opisany poniżej.

p1

Rys. 4 Schemat części sprzętowej

Funkcje manipulatora pełni stary ploter pisakowy. Podstawowymi parametrami charakteryzującymi to urządzenie jest przestrzenna zdolność rozdzielcza na poziomie 30um oraz obszar aktywny o wymiarach 40 x 30 cm (15000 x 10000 punktów) co jest w zupełności wystarczające do badanych obrazów. Ploter został odpowiednio skonfigurowany tak aby komunikacja odbywała się po porcie szeregowym. Urządzenie dostarcza pełen zestaw komend niezbędnych do rysowania, dla potrzeb urządzenia zostały wykorzystane tylko te odpowiadające za przesuniecie koszyczka do odpowiedniego punktu oraz weryfikacji czy operacja ta wykonana została prawidłowo.

Elementem foto czułym jest półprzewodnikowa fotodioda typu PIN, jej zadaniem jest konwersja natężenia światła na prąd elektryczny. W tym celu dioda została spolaryzowana w kierunku zaporowym. W tym reżimie prąd fotoelektryczny (prąd wytworzony przez elektrony wybite przez fotony) jest wprost proporcjonalny do natężenia padającego światła. Dla najmniejszych planowanych natężeń światła odpowiadający im prądy mają natężenie rzędu nanoamperów, do ich pomiarów zaprojektowany został niskoszumny wzmacniacz trans impedancyjny (wejście prądowe, wyjście napięciowe).

Do pomiarów napięcia otrzymywanego na wyjściu wzmacniacza wykorzystano woltomierz konstrukcji polskiej typu v542.1. Woltomierz ten pracuje na zasadzie podwójnego całkowania, prócz precyzyjnego pomiaru napięcia (5 cyfr) udostępnia również funkcje automatycznego wyboru zakresu pomiarowego co bardzo ułatwia pomiar prądu diody (zmieniającego się w bardzo szerokich granicach). Dzięki temu można uzyskać rozpiętość dynamiczną na poziomie 140dB. Najpoważniejszym mankamentem woltomierza jest interfejs wyjściowy jaki udostępnia, dane na nim podawane są w formie równoległej zakodowane w kodzie BCD, co przy 5 cyfrowym wskazaniu wraz z sygnałami sterującymi implikuje ponad dwadzieścia linii wejścia/wyjścia. Aby uniknąć konieczności prowadzenia tak dużej ilości przewodów została wykonana przejściówka której zadaniem jest konwersja sygnałów równoległych do postaci szeregowej. Niestety ze względu na metodę pomiaru czas konieczny do przeprowadzenia jednego pomiaru jest ograniczony w tym przyrządzie wartością około pół sekundy co jest podstawowym czynnikiem wpływającym na prędkość pomiaru.

W celu optymalnego zarządzania wszystkimi wyżej omówionymi elementami stworzono układ mikroprocesorowy uScan. Układ ten oparty jest na mikrokontrolerze 8 bitowym firmy Atmel, który współpracuje z kilkoma elementami peryferyjnymi. Całość została umieszczona w obudowie o wymiarze 5,25 cala tak aby możliwy był jego montaż w komputerze klasy PC. Odpowiedzialny jest za komunikacie z ploterem oraz woltomierzem implementując wszystkie niezbędne do tego interfejsy. Udostępnia on również szereg komend za pomocą, których komputer może zlecać zadania pomiarowe. Dodatkową funkcją urządzenia jest informowanie użytkownika o aktualnych zadaniach systemu, do tego celu służy wyświetlacz alfanumeryczny VFD umieszczony na panelu przednim urządzenia (co jest bardzo wygodne w wypadku gdy komputer nie znajduje się w tym samym pomieszczeniu co skaner).

aplikacje sterujące

Równie ważnym elementem całego systemu jest oprogramowanie, zostało ono podzielone na dwie części - kliencką znajdującą się po stronie komputera PC oraz zagnieżdżona uScanEmbedded znajdująca się po stronie urządzenia. Oprogramowanie uScanEmbedded jest odpowiedzialne za komunikację z komputerem oraz sterowanie wszystkimi podzespołami, budując warstwę abstrakcji, przez co interfejs programistyczny ze strony komputera PC nie jest skomplikowany i ewentualne utworzenie nowego oprogramowania klienckiego przy wykorzystaniu jasno opisanej specyfikacji komunikacyjnej jest stosunkowo proste i nie wymaga znajomości technik inżynierii wstecznej.


p1

Rys. 5 Schemat ideowy aplikacji sterującej LaserScan


W celu uzyskania kontroli nad urządzeniem ze strony oprogramowania klienckiego niezbędne jest nawiązanie połączenia z nim poprzez szynę szeregowa rs232. Kolejnym krokiem jest wydanie rozkazu przeprowadzenia procedury inicjalizującej oraz "self testu" - czyli sprawdzenia czy wszystkie urządzenia peryferyjne są podłączone i funkcjonują poprawnie. Następnie pozostaje już tylko przeprowadzenie właściwego procesu skanowania obrazu poprzez wysyłanie prośby do urządzenia, aby pozyskał wartość natężenia światła dla danej współrzędnej przestrzennej na tablicy plotera. Taka budowa umożliwia skonstruowanie oprogramowania skanującego obraz w dowolny sposób.

Autorzy do rozwiązania postawionego im problemu postanowili wykonać dwie aplikacje sterujące. Jedną w pełni autorską, stworzoną przy wykorzystaniu darmowego oprogramowania, oraz drugą. wykorzystującą pakiet LabView.

Pierwszy program został wykonany wykorzystując pakiet GNU GCC oraz bibliotekę graficzną wxWidgets. Wybór darmowego oprogramowania był rzeczą oczywistą, gdyż w pracowni, w której miały być dokonywane pomiary, znajdował się komputer o stosunkowo niewielkim rozmiarze pamięci operacyjnej oraz małej mocy obliczeniowej. Wykorzystanie tego zestawu bibliotek umożliwiło uruchomienie aplikacji w specjalnie przystosowanym do danego komputera środowisku Linux. Użyte biblioteki umożliwiły również łatwe przeniesienie programu na inna platformę systemową - Win32. Niskie wymagania tego programu spowodowały, że mimo długiego okresu skanowania aplikacja działała szybko, oraz co najważniejsze, stabilnie i bezbłędnie.


a) p1 b) p1

Rys. 5 Aplikacja a) widok 2d b) widok 3d.


Aplikacja ta udostępnia użytkownikowi podstawową funkcjonalność skanowania obrazu taką jak wybór obszaru oraz rozdzielczości z jaką ma się ono odbywać. W trakcie procesu skanowania użytkownik może dokonywać wstępnej obróbki danych, gdyż skanowany obraz jest interaktywnie wyświetlany na ekranie monitora. Za pomocą korekcji gamma możliwe jest dowolne rozjaśnianie i przyciemnianie skanowanego obszaru w dwóch różnych skalach - liniowej jak i logarytmicznej, co umożliwia odpowiednie uwypuklenie interesujących cech obrazu. Jako, że program jest wielowątkowy (co schematycznie przedstawiono na rysunku 5) możliwe jest jednoczesne skanowanie obrazu oraz zapisywanie go do pliku. Program potrafi zapisywać dane w różnych formatach tekstowych, binarnych oraz graficznych. Takie podejście daje możliwość importowania informacji do programów zewnętrznych takich jak Gnuplot, Matlab czy dowolny inny program obsługujący format CSV.

Aplikacja również zawiera kilka dodatkowych funkcjonalności, między innymi jest w stanie wizualizować skanowany obraz w 3D. Wizualizacja ta odbywa się z wykorzystaniem biblioteki OpenGL, dzięki czemu wyświetlany obraz trójwymiarowy może być akcelerowany poprzez procesor karty graficznej. Jako dodatkowa opcję aplikacja potrafi na podstawie zeskanowanych danych obliczyć odwrotną transformatę Fouriera w sposób równoległy. Zrównoleglenie tego procesu odbywa się przy wykorzystaniu technologii programowania rozproszonego CORBA. Przykłady działania aplikacji zaprezentowano na rysunku 6.

Aby wykonać drugą aplikacje wykorzystując pakiet LabView autorzy projektu postanowili odtworzyć schemat konstrukcji sprzętu w tym właśnie pakiecie rozbijając go na różne moduły. Dzięki czemu powstał zbiór komponentów, którymi można łatwo sterować pracą urządzenia nie wnikając w szczegóły implementacyjne. Dzięki takiemu podziałowi i tym komponentom autorom udało się w prosty sposób zbudować aplikację LabView działającą na wzór aplikacji wykonanej w C++.

podsumowanie

Rozwiązanie zaproponowane przez autorów okazało się bardzo funkcjonalne. Spełniło wszystkie stawiane mu wymagania. Zastosowanie części pochodzących z odzysku umożliwiło redukcje kosztów. Jako ciekawostkę można nadmienić iż efektywna rozdzielczość urządzenia wynosi 150 mega pixeli, proces skanowania pełnego obszaru trwał by ponad 2 lata natomiast plik danych wyjściowych zajmował by prawie całą płytę CD.

Skaner obrazów dyfrakcyjnych obecnie pracuje w jednym z laboratoriów Wydziału Fizyki i Informatyki Stosowanej. Wykorzystywany jest do badań obrazów dyfrakcyjnych rozmaitych tkanin, co zapewnia pełną automatyzacje procesu, który niegdyś był wykonywany ręcznie.

wyniki pomiarow

Skanowano 15000x5000 pkt (krok 50) (gnu plot data) (laser scan data) (textowe)

p1 p1 p1 p1 p1



Skanowano 15000x1000 pkt (krok 20) (gnu plot data) (laser scan data) (textowe)

[miecz1]



Skanowano 1000x1000 pkt (krok 10) (gnu plot data) (laser scan data) (textowe)

p1 p1 p1 p1 p1



fotki hardweru


foto foto foto foto


screen shot


foto

prezentacja i animacjie

uScan w akcji (animacja) (3.2MB)[AVI]
Program LaserScan w akcji (1.8MB)[AVI]


autorzy

Autorami projektu są Stanisław Kulczycki oraz Szymon Kulis.


Copyright © 2004 - 2008 , wykonał: Szymon Kulis