Pozyskiwanie obrazów za pomocą czujnika i mikrokontrolera

47_25637_got

Czujnik obrazu TSL1412S (IC2) – układ scalony firmy TAOS (Texas Advanced Optoelectronic Solutions, www.taosinc.com), może pozyskać liniowy obraz o rozdzielczości 1536 × 1 pikseli lub 400 dpi (Rysunek 1).
Używa on pojedynczego źródła zasilania i można nim sterować za pomocą kilku sygnałów cyfrowych.
W ten sposób można zaprojektować system pozyskiwania obrazów, który będzie używać czujnika i mikrokontrolera AVR ATmega328 (www.atmel.com) – IC1.
Na rysunku 1 pokazano, w jaki sposób można podłączyć czujnik do mikrokontrolera.
Należy zaprogramować mikrokontroler do generowania sygnałów sterujących dla czujnika.
Prezentowany projekt używa zegara o częstotliwości 16MHz. Timer 2 8-bitowego mikrokontrolera generuje sygnały poleceń.
W trybie 2 timer generuje sygnały zegara twardego CLK1 i CLK2 oraz miękkie sygnały stroboskopowe SI1, HOLD1 i HOLD2.
Czujnik TSL1412S wykorzystuje połączenia szeregowe.
Sygnał SO2 łączy się z wejściem ICP czujnika TSL1412S po aktywacji flagi ICF1.
Timer 2 generuje obsługę przerwania, która zapewnia prawidłową fazę sygnału zegara, generuje sygnał stroboskopowy, pobiera i zapisuje wyjściowe dane analogowe czujnika TSL1412S.
Model podprogramu przerwania w wersji tekstowej można podejrzeć w pliku: 25641_code.zip. (kliknąć, aby pobrać)

Kod ustawia stos, rejestr, ADC, Timer 2 i funkcje przerwań mikrokontrolera.
Aby zapisać dane obrazu, należy ustawić bit T w SREG na 1 i ustawić wskaźnik X = 0×0200. Te ustawienia można wykonać podczas ostatniej integracji zegara czasu (R25, R24 = 0×0001). Modyfikując dane z rejestru, można ustawić czas integracji czujnika na 2,5 do 50 ms lub 100 ms z preskalerem T2.
Wiedząc, że czujnik pobrał dane w poprzednim cyklu, można wykonać gromadzenie danych projektu wykorzystując wewnętrzny przetwornik ADC mikrokontrolera.
Czas integracji musi być większy niż 50ms. Czas konwersji dla zegara o 16MHz wynosi około 16μs, co odpowiada czasowi integracji około 25ms.
Ponieważ częstotliwość konwersji wynosi 1MHz – wyższa niż zalecana częstotliwość dla układu IC1 200kHz – zmniejsza się precyzję przetwornika ADC z 10bitów na 8bitów.
Mikrokontroler zapisuje bajt dla każdego piksela, co pozwala zapisać dane w wewnętrznej pamięci mikrokontrolera dla jednej klatki.
Reszta 2-kilobajtowej pamięci mikrokontrolera wykonuje zadania gromadzenia i zbierania danych.
System szybko przetwarza analogowy sygnał wyjściowy czujnika przez analogowy komparator wewnętrznego układu mikrokontrolera.
Można dokonać porównania ze ustalonym napięciem za pomocą wewnętrznego napięcie odniesienia 1,25V i dzielnika rezystancyjnego lub zmiennego napięcie, które można uzyskać z przetwornika DAC lub PWM (modulowanego szerokością impulsu) sygnału generowanego przez mikrokontroler

Autor: Ioan Ciascai i Liliana Ciascai (Rumunia)

Komentarze z Facebooka

Komentarze obecnie - OFF.