KursyPoradnikiInspirujące DIYForum

Różne zastosowania podczerwieni – przegląd rozwiązań

Różne zastosowania podczerwieni – przegląd rozwiązań

Promieniowanie podczerwone ma bardzo szerokie zastosowanie w robotyce. Jest wykorzystywane między innymi w czujnikach czy komunikacji.

Prawie każdy opisany na Forbocie robot  korzysta z jej dobrodziejstw. Artykuł ten omawia aspekty teoretyczne związane z IR.

Do plusów technologii należą między innymi: niska cena, łatwość użycia i powszechna dostępność. Część poruszanych tutaj zagadnień na pewno jest znana i powszechnie wykorzystywana w praktyce. Jednak myślę, że dla porządku one również powinny się tutaj znaleźć. Mam nadzieję, że nie zabraknie również przydatnych informacji dla bardziej zaawansowanych.

Najważniejsza teoria

Jak powszechnie wiadomo światło ma naturę falowo-korpuskularną. Czyli po części zachowuje się jak fala, a po części jak strumień cząsteczek. Wiąże się z tym szereg zjawisk fizycznych, które mają praktyczne zastosowanie w robotyce. Gałęzią fizyki zajmującą się tymi zjawiskami jest optyka. Promieniowanie świetlne jest częścią promieniowania elektromagnetycznego o określonej długości fal. Przyjrzyjmy się spektrum fal elektromagnetycznych:

swiatlo_spektrum

Na tym schemacie dobrze widać jak mały zakres spektrum stanowi światło widzialne. Ultrafiolet i podczerwień, które również wchodzą w skład promieniowania świetlnego mają dużo większe zakresy. Cały zakres promieniowania świetlnego podlega tym samym prawom fizyki, jednak to właśnie podczerwień została sobie upodobana przez konstruktorów wielu urządzeń.

Światło widzialne nie sprawdziło by się tak dobrze w elektronice, ponieważ ludzie wytwarzają dużo więcej zakłóceń w tym paśmie. Co więcej w niektórych przypadkach "niewidzialność" może być atutem (np.: w wojsku). Promieniowanie ultrafioletowe natomiast jest szkodliwe dla żywych organizmów.

Innym rodzajem fal elektromagnetycznych wykorzystywanych w robotyce są fale radiowe. Jednak do ich nadawania i odbioru potrzeba innego rodzaju sprzętu. Natomiast fale o długości mniejszej niż ultrafiolet należą już do promieniowania jądrowego i mogą być bardzo niebezpieczne.

Mimo, iż podczerwień nie jest widzialna dla ludzkiego oka, może ona zostać zarejestrowana przez kamery i aparaty, szczególnie te tańsze. Filtr podczerwieni w tych urządzeniach nie jest zbyt wysokiej jakości i przepuszcza sporą część światła w paśmie podczerwonym.

Dzięki użyciu takich prostych kamer możemy łatwo sprawdzić czy interesujący nas układ działający w podczerwieni działa. Źródłem promieniowania podczerwonego są wszystkie ciała, a jego natężenie zależy od temperatury. Jest to podstawa działania kamer termowizyjnych.

Źródła światła takie jak słońce, czy tradycyjne żarówki emitują również podczerwień. Mogą one być więc źródłami zakłóceń dla naszych układów. Wiemy już skąd wynika wyższość promieniowania podczerwonego nad innymi, przejdźmy teraz do krótkiego omówienia zjawisk fizycznych.

Emisja światła

W opisie fizycznym przyjmuje się, że wiązka światła rozpoczyna się w źródle, a następnie rozchodzi się w linii prostej. Źródła emitują światło w różnych kierunkach. Z niektórych promienie rozchodzą się sferycznie, inne natomiast mogą być skupione na jednym kierunku i rozchodzić się tylko w jakimś niewielkim kącie.

Z punktu widzenia robotyki wiązka powinna rozchodzić się w interesującym nas kierunku. W większości przypadków w kierunku, w którym znajduje się odbiornik. Rozchodzenie się światła na boki jest stratą energii oraz źródłem potencjalnych zakłóceń.

Kontakt światła z powierzchnią

Jeżeli wiązka światła rozchodząca się w danym ośrodku natrafi na powierzchnię jakiegoś ciała, zachodzą dwa zjawiska: odbicie oraz załamanie światła. Dobrze pokazuje to zdjęcie:

kat_odbicie_normalna

Wiązka światła odbija się od przeszkody w sposób symetryczny. Oś symetrii wychodzi z punktu odbicia, natomiast kąt odbicia jest równy kątowi padania. Załamanie jest spowodowane zmianą prędkości rozchodzenia się światła związaną ze zmianą ośrodka.

Odbicie jest jednym z najczęściej wykorzystywanych przez robotyków zjawisk. Dlatego w fazie projektowania należy wziąć pod uwagę chropowatość i kolor powierzchni od jakich wiązka światła będzie się odbijać oraz obecność innych powierzchni od których odbicie może być dla nas zakłóceniem.

Interferencja

Jest to nakładanie się różnych fal sprawiające, że w niektórych miejscach się wzmacniają, a w innych osłabiają. Najlepiej widoczne dla fal o zbliżonych częstotliwościach. Oto symulacja interferencji na Wikipedii:

interferencja

Przykład interferencji dwóch fal.

Jest to znaczący problem w technice radiowej. Występuje również dla fal świetlnych, ale nie jest aż tak duży. Często występuje razem ze zjawiskiem odbicia kiedy to wiązka wysłana interferuje z odbitą.

Dyfrakcja

Jeżeli wiązka trafi na szparę, to zmienia sposób rozchodzenia się. Szczególnie jeśli szpara ma szerokość zbliżoną do długości fali. Zjawiska dyfrakcji i interferencji często zachodzą jednocześnie.

dyfrakcja

Rozproszenie światła

Jeżeli światło przechodzi przez mieszaninę o określonych parametrach, jej cząsteczki pochłaniają część energii wiązki i staje się ona mniej skupiona. Zjawisko to jest dobrze widoczne np.: w czasie mgły. Rozproszenie światła jest źródłem zakłóceń.

Czujniki odbiciowe

Zasada działania czujnika odbiciowego jest bardzo prosta. Składa się on z diody nadawczej oraz odbiornika w postaci fotoelementu. Poza tym posiada układy służące do zamiany pomiaru na sygnały elektryczne.

Jak sama nazwa wskazuje, wykorzystuje fakt odbicia światła od przeszkody. Czujniki odbiciowe potrafią wykrywać obecność przeszkody w swoim zasięgu. Bardziej zaawansowane analogowe czujniki odległości dają na wyjściu napięcie zależne od dystansu między czujnikiem, a przeszkodą.

Ten typ czujników stosowany jest powszechnie w robotach typu sumo, gdzie służy do znalezienia przeciwnika na dohyo. Innym popularnym zastosowaniem są roboty omijające przeszkody. Mogą też występować w instalacjach budynkowych takich jak alarmy, sterowanie oświetleniem, automatyczne drzwi itp.

Najpopularniejszymi w robotyce przedstawicielami tej grupy są czujniki firmy SHARP cyfrowe, oraz analogowe różniące się zasięgiem. Popularne modele to GP2D120XJ00F o zasięgu 4-30cm, GP2Y0A21YK0F o zasięgu 10-80cm oraz GP2Y0A02YK0F o zasięgu 20-150cm.

Zależność napięcia od odległości ma bardzo podobny przebieg dla różnych modeli, różni się jedynie wartościami. Charakterystyczne jest szybkie narastanie napięcia poniżej zakresu pomiarowego, a następnie stabilny spadek w zakresie pomiarowym.

sharp

Czujniki tego typu potrafią wykryć jasne przedmioty z dalszej odległości, ale jak widać na wykresie, zmierzona odległość dla różnych kolorów jest taka sama. Natomiast w przypadku prostszych sensorów, kolor powierzchni może wpływać na wykrywaną odległość.

Innymi czynnikami wpływającymi na działanie czujników mogą być temperatura, warunki pogodowe czy gładkość powierzchni odbicia. Poza tym bardzo ważne jest umieszczenie czujnika na odpowiedniej wysokości od podłoża i pod odpowiednim kątem, aby do odbiornika nie trafiał sygnał odbity od podłogi. Wynika to oczywiście z przedstawionych wcześniej własności fizycznych światła. Dobrze wiedzą o tym konstruktorzy robotów sumo, którzy starają się stworzyć konstrukcje ciężkie do wykrycia przez czujniki przeciwnika potrafiące jednocześnie samemu bezbłędnie go wykrywać.

Skoro zasada działania tego typu czujnika nie jest tajemnicą, nic nie stoi na przeszkodzie, aby zbudować samodzielnie własną wersję czujnika przeszkody. Potrzebna jest do tego dioda IR, scalony demodulator podczerwieni np. popularny TSOP oraz trochę elementów biernych.

Dlaczego nie opłaca się używać zwykłego fotoelementu? Układ z fototranzystorem służący do odbioru ciągłego światła z diody ma poważną wadę - będzie odbierać również sygnały z innych źródeł. Rozwiązaniem jest modulacja częstotliwościowa sygnału. Zamiast sygnału ciągłego, wysyłamy impulsy o wybranej przez nas częstotliwości. Dzięki temu odbiornik wie, że tylko sygnały posiadające tą częstotliwość zostały wysłane przez nas i może je odfiltrować od szumów.

Oczywiście możemy za pomocą fototranzystora zbudować demodulator, ale jego parametry na pewno będą gorsze niż w gotowym dekoderze. Układ czujnika powinien składać się z części służącej do generacji impulsów przez diodę, oraz części odbiornika ograniczonej praktycznie jedynie do detektora oraz ewentualnie jakiś LEDów sygnalizujących stan. Układ do generacji impulsów można wykonać na przykład na bramkach logicznych lub na układzie NE555.

Aby taki czujnik własnej roboty działał trzeba pamiętać o jednej rzeczy. Promień z diody IR może rozchodzić się również na boki i trafiać bezpośrednio do odbiornika przekłamując wyniki. Dlatego właśnie nadajnik i odbiornik muszą być od siebie oddzielone materiałem nie przepuszczającym światła. Doskonale nadaje się do tego rurka termokurczliwa. W internecie bardzo prosto jest znaleźć tutoriale zawierające schematy i instrukcje krok po kroku jak zbudować taki sensor.

Transoptory odbiciowe

Transoptory odbiciowe również można zaliczyć do czujników odbiciowych. Postanowiłem jednak poświęcić im osobny rozdział ponieważ maja dużo prostszą budowę i mniejszy zasięg od czujników wykrywających przeszkody.

Typowy zasięg ich pracy to kilka milimetrów. Są często wykorzystywane do określenia czy powierzchnia przed nimi jest czarnego czy białego koloru. Dzięki temu służą jako czujniki linii w linefollowerach oraz enkodery odbiciowe. Poza tym mogą służyć do wykrywania przedmiotu w bardzo niewielkiej odległości.

Transoptory jako czujniki linii mogą zostać podłączone bezpośrednio do przetwornika kontrolera i być kalibrowane za pomocą programu. W tym wypadku schemat układu jest maksymalnie uproszczony. Należy jedynie pamiętać o dodaniu odpowiednich rezystorów.

Główną zaletą tej konfiguracji jest prostota i wykorzystanie niewielu elementów. Dzięki temu jest ona popularna wśród początkujących. Większość konstruktorów wykonuje swojego pierwszego Line Followera właśnie w ten sposób. Do wad tego rozwiązania należy komplikacja kodu programu oraz mniejsza szybkość odczytu. Przetwornik ADC w popularnych Atmegach pracuje zwykle na częstotliwości preskalera do 250kHz i w każdej chwili może prowadzić odczyt tylko z jednego kanału. Pełny odczyt napięcia przez przetwornik ADC trwa od 13 do 25 taktów zegara dając w sumie około 10-20kSPS. Sam mikrokontroler pracuje zwykle na częstotliwości 8-16MHz.

Tak więc wykorzystanie przetwornika ADC do odczytu stanu czujnika linii jest nieefektywne z punktu widzenia wykorzystania mocy obliczeniowej procesora. Z drugiej strony jednak programiście może się przydać informacja z czujnika o wyższej rozdzielczości, a częstotliwość sygnału PWM silnika i tak jest mniejsza niż okres próbkowania przetwornika ADC.

Alternatywą jest użycie dodatkowych elementów do przerobienia sygnału na cyfrowy. Można tego dokonać za pomocą komparatora (np LM339 z czterema komparatorami w jednej kostce DIP16) oraz dzielnika napięcia. Mamy wtedy możliwość kalibracji czujnika za pomocą potencjometru na dzielniku. Poniżej przykładowy schemat układu czujników z komparatorem. Dodatkowo umieściłem w nim diody LED ułatwiające obserwację aktualnego stanu poszczególnych wyjść. Rezystory 330R służą do ustalania prądu diod, 10k stanowią pullupy, a potencjometr służy do ustalania progowej wartości napięcia dla której zmienia się stan logiczny. Podczas tworzenia realnego układu nie należy się kurczowo trzymać tego schematu, ale dostosować do własnych wymagań.

czujniki_komparator

Wykorzystanie transoptorów obiciowych wraz z komparatorami.

Innym rozwiązaniem jest użycie przerzutnika Schmitta, którego nie możemy kalibrować, ale za to jedna kostka DIP14 wystarczy do podłączenia aż sześciu czujników. Poniżej znów przykładowy schemat. Tym razem nie dodałem diod statusowych, ale jeżeli ktoś chce, to nic nie stoi na przeszkodzie, aby je tam umieścić.

Alternatywne podłączenie transoptorów odbiciowych.

Alternatywne podłączenie transoptorów odbiciowych.

To rozwiązanie pozwala procesorowi na odczytywanie pomiarów od razu w postaci cyfrowej zapewniając dużą szybkość wykonywania programu. Poza tym czujniki można podłączyć wtedy pod każdy pin wejściowy.

Dzieje się to jednak kosztem zwiększenia ilości potrzebnych elementów a co za tym idzie większymi trudnościami z zaprojektowaniem płytki PCB. Poza tym trzeba pamiętać, że użyte elementy również mają swoje czasy ustalania, więc częstotliwość próbkowania przy metodzie cyfrowej nie będzie zależeć jedynie od szybkości wykonywania pętli programu.

Ten artykuł nie ma na celu udowadniania, które rozwiązania są lepsze, a które gorsze. Oba z nich znalazły zastosowanie w wielu konstrukcjach odnoszących sukcesy na zawodach. A o wybraniu jednego z tych podejść do konkretnej konstrukcji decydują założenia projektowe oraz indywidualne preferencje.

Dzięki zastosowaniu transoptorów odbiciowych można również skonstruować proste enkodery refleksyjne. Tarcza enkodera składa się z ułożonych na przemian białych i czarnych pól. Jeśli tarcza obraca się w zasięgu transoptora odbiciowego, może on generować impulsy zależne od szybkości obrotów. Znając średnicę koła oraz ilość pól na tarczy jesteśmy w stanie obliczyć prędkość obracania się wału silnika czy drogę przebytą przez koła. Dzięki zastosowaniu dwóch enkoderów przesuniętych w fazie o 1/4 okresu pojedynczego pola tarczy, jesteśmy w stanie określić nie tylko prędkość, ale także kierunek obrotów.

Enkoder refleksyjny.

Enkoder refleksyjny.

Piloty

Piloty do sprzętu RTV również wykorzystują diodę nadawczą IR oraz odbiornik. Tym razem każdy z tych elementów znajduje się w odrębnym układzie. Pilot jest naszym nadajnikiem i składa się z przycisków oraz diody IR.

Odbiornik natomiast jest umieszczony w elemencie docelowym czyli na przykład w telewizorze, radiu czy w najbardziej interesującym nas przypadku - w robocie. Każdy przycisk pilota ma przypisany pewien kod, który wysyła do odbiornika. Tam natomiast znajduje się układ, który podejmuje odpowiednią akcję w zależności od otrzymanego kodu.

Większość dużych producentów sprzętu elektronicznego takich jak Philips, Sony, Panasonic itp. ma po kilka standardów kodowania, a każdy z nich posiada uaktualnienia i nowe wersje. W tym wypadku wzięcie dowolnego pilota i wykorzystanie go do własnych celów jest znacznie utrudnione. Trzeba najpierw zidentyfikować standard.

Podstawowe sposoby kodowania

Prześledźmy zatem podstawowe sposoby kodowania. Zdecydowana większość pilotów działa na sygnale modulowanym. Zdarzają się również, głównie w starszych modelach, układy działające na sygnałach ciągłych. Popularne częstotliwości modulujące to: 36kHz, 38kHz, 40kHz, 56kHz. Natomiast długość najkrótszego sygnału zakodowanego w ten sposób wynosi zwykle 8-16 impulsów. Liczba ta nie może być za mała, aby zostawić odbiornikowi czas na wykrycie przychodzącego sygnału.

Nieraz w danym pomieszczeniu może znajdować się kilka odbiorników tego samego kodu. Żeby uniknąć nieporozumień, każdy z nich posiada swój własny kod systemu. Jest on wysyłany w ramce danych i w ten sposób odbiornik wie, czy komenda adresowana jest do niego. Nie wszystkie standardy zawierają kod systemu, szczególnie te gorsze, starsze lub nieprzystosowane do pracy w środowisku z wieloma odbiornikami.

Powodem takiego wyboru jest delikatność kwarców, a jak wiemy zapewne z własnego doświadczenia taki pilot telewizora w swoim życiu przechodzi wiele wzlotów i upadków...  Dlatego częstotliwość modulująca może być generowana z pewnym błędem, a detektory posiadają odpowiednią tolerancję.

Producenci zwykle nie chwalą się dokładnymi opisami swoich standardów. Dlatego o wielu z nich trudno znaleźć informacje. Tym bardziej, że jak już wspomniałem, istnieje ogromna liczba wersji. Niemniej jednak o kilku z nich można powiedzieć coś więcej. Na podstawie tych informacji możliwe jest rozkodowanie innych kodów.

Standard RC5

Został wynaleziony przez Philipsa ponad 20 lat temu. Kodu tego używa nie tylko Philips, ale również wiele innych marek w tym te mniej znane. Jest to najczęściej używany standard wśród amatorskich konstrukcji. Popularność swą zawdzięcza dużej dostępności informacji na ten temat, a szczególnie nocie aplikacyjnej Atmela . Jest tam zawarty algorytm dekodera oraz kod źródłowy w asemblerze.

Przejdźmy zatem do omówienia standardu RC5. Używa on częstotliwości 36kHz i kodowania typu Manchester. Oznacza to, że wartości logiczne bitów odpowiadają rosnącemu lub opadającemu zboczu w środku trwania sygnału bitu. Każdy bit trwa 1.776ms, a po 889us od jego rozpoczęcia następuje zmiana zbocza. Zmiana z niskiego na wysokie oznacza "1", a z wysokiego na niskie - 0. (przy opisie stanów logicznych przyjąłem, że wysoki to kiedy czujnik odczytuje przychodzący impuls, a niski kiedy jest w stanie spoczynku. Niektóre dekodery w stanie spoczynku wskazują logiczną jedynkę. Wtedy należy odwrócić podane tutaj wartości) Każda ramka ma więc taką samą długość i składa się z 14 bitów. Są to kolejno:

  • dwa bity startu pozwalające odbiornikowi na wykrycie transmisji
  • bit toggle mówiący czy przycisk został dopiero naciśnięty, czy jest trzymany przez dłuższy czas
  • 5 bitów systemu
  • 6 bitów komendy

Jeżeli przycisk jest wciśnięty przez dłuższy czas, pilot czeka 114ms po czym wysyła komendę ponownie. Przez cały czas przyciskania tego samego przycisku bit toggle ma taką samą wartość logiczną. Za każdym razem gdy zostanie wciśnięty inny przycisk, bit toggle zmienia swą wartość logiczną.

Poniżej graficzne przedstawienie kolejnych bitów oraz przykładowa zakodowana ramka danych:

RC5

Kod RC5 doczekał się kilku modyfikacji. Nowsze wersje tego standardu mogą mieć więcej bitów systemu lub komend np.: standard RC5X ma dodatkowy bit komendy przed toggle.

Standard RC6

RC6, jak sama nazwa wskazuje młodszy brat RC5 posiadający kilka modyfikacji. Tak samo jak jego poprzednik korzysta z częstotliwości 36kHz i kodowania typu Manchester. Jest on jednak nieco bardziej skomplikowany. Tym razem mamy trzy rodzaje sygnałów z czego dwa są wykorzystywane tylko w nagłówku czyli części inicjalizacyjnej. Oto one:

  • bit startowy - stan wysoki trwa 2.666ms a następnie stan niski przez 889us. Ma on zawsze taką samą postać
  • bit toggle - trwa przez 1.8ms i w połowie jego długości (po 889us) następuje zmiana zbocza
  • bit danych - trwa przez 889us i w połowie następuje zmiana zbocza.

Rodzaje sygnałów występujące w standardzie RC6:

RC6

Przejdźmy teraz do wyglądu ramki danych:

  • bit startowy
  • bit o wartości logicznej "1" (kodowany jak bity danych) służący do kalibracji odbiornika
  • 3 bity trybu operacji (również kodowane jak bity danych). Dla kodowania RC6 tryb ustawiony jest na 000
  • bit toggle działający podobnie jak w przypadku RC5, trzy powyższe elementy składają się na nagłówek
  • 8 bitów systemu
  • 8 bitów komendy

Istnieje również standard RC6A dla którego bity trybu operacji przyjmują wartości 110. W tym wypadku po bicie Toggle dochodzi kod producenta który wykupił od Philipsa licencję na użytkowanie kodu w swoich produktach. Jeżeli pierwszy bit kodu producenta wynosi "0" to długość całego kodu wynosi 8 bitów (pozwala to na zakodowanie do 128 różnych producentów), jeśli natomiast wynosi "1" to cały kod producenta liczy 16 bajtów pozwalając zakodować ponad 32 000 różnych producentów.

Kodowanie długością impulsu

Mimo, że w konstrukcjach amatorskich króluje kod RC5 wykorzystujący kodowanie typu Manchester to dużo więcej standardów do kodowania wartości logicznych używa zmiennej długości impulsów. Zasada jest bardzo prosta.

Każdy bit rozpoczyna się stanem wysokim trwającym stałą ilość czasu. Następnie następuje stan niski którego długość przyjmuje jedną z dwóch wartości oznaczającą odpowiednio "1" lub "0" logiczne. W niektórych standardach to stan wysoki ma zmienną długość, ale mechanizm pozostaje ten sam. Istnieje ogromna ilość standardów korzystająca z tego rodzaju kodowania.

Wykorzystują one różne częstotliwości fali nośnej, a niektóre (głównie starsze) działają na sygnałach niezmodulowanych. Każdy jednak korzysta z ramki danych w której możemy wyróżnić kod systemu, kod komendy i opcjonalnie dodatkowe bity np.: startu czy toggle. Wszystkie te standardy łatwo odróżnić od kodowania typu Manchester po zmiennej długości ramki danych.

dl_impulsu

Jeżeli ktoś nie chce bawić się w przystosowywanie istniejącego pilota, zawsze może zbudować swój własny i wykorzystać w nim autorski sposób kodowania. Można też zakodować go według istniejącego standardu np. z naszego domowego telewizora (przy okazji jest to świetny sposób, aby trochę podenerwować domowników). Pilot taki składał by się z przycisków, kontrolera oraz diody nadawczej zamkniętych w obudowę. Temat zostawiam do własnych testów.

Komunikacja bezprzewodowa

Omówione w poprzednim rozdziale piloty były już przykładem komunikacji bezprzewodowej. Miała ona jednak szereg ograniczeń. Przede wszystkim transmisja danych odbywa się jednokierunkowo. Poza tym transfer danych zachodzi w ślimaczym jak na mikroprocesory tempie.

Odczyt jednej ramki danych zajmuje kilkanaście milisekund, a przerwy między kolejnymi po kilkadziesiąt. Dlatego właśnie powstał inny standard transmisji danych - IrDA. Nie rozwiązuje on oczywiście problemów niemożliwych do obejścia jeśli używamy podczerwieni czyli konieczności "kontaktu wzrokowego" komunikujących się urządzeń czy ograniczonego zasięgu, ale znalazł wiele praktycznych zastosowań.

irda

Technologia IrDA jest rozwijana od początku lat 90-tych i doczekała się już kilku standardów, dokładnej specyfikacji oraz kilkuset milionów produktów z niej korzystających. Nad jej rozwojem czuwa organizacja IrDA zrzeszająca producentów rozwijających tę technologię.

Technologia IrDA posiada odrębne protokoły do pracy jako sieć LAN (IrLAN), porty szeregowe i równoległe komputera (IrCOMM) czy do wymiany plików (IrOBEX). Do jej zalet należą niska cena, małe zużycie energii i niewielkie rozmiary układów komunikacyjnych.

Jest powszechnie używana w telefonach, sprzęcie RTV, komputerach, słuchawkach, klawiaturach, myszkach, drukarkach bezprzewodowych czy aparatach. Wśród robotyków jednak nie cieszy się zbytnią popularnością. Tutaj ustępuje komunikacji radiowej, przewodowej, Bluetoothowi i pilotom. Szkoda, bo mimo swoich ograniczeń mogła by się sprawdzić na przykład w komunikacji między współpracującymi ze sobą robotami, w systemach rozproszonych, do sterowania czy jako zastępstwo dla RS232 przy komunikacji z komputerem. Poza tym podobnie jak w przypadku Bluetooth możliwa by była implementacja sterowania za pomocą telefonu komórkowego.

Dzięki IrDA możemy przesyłać dane z prędkością do 115kb/s dla standardu IrDA 1.0, do 4Mb/s dla 1.1 i do 16Mb/s dla 1.2 pośrednie obsługiwane prędkości to 2.4kb/s, 9.6kb/s, 38.4kb/s, 57,6kb/s, 576kb/s, 1,152Mb/s. Standardy 1.1 i 1.2 są kompatybilne w dół. Urządzenia spełniające standard IrDA 1.0 muszą zapewniać bezbłędną transmisję na zasięg 1m, ale większość urządzeń ma dalszy zasięg sięgający nawet kilkunastu metrów.

Poza tym między urządzeniami nie mogą znajdować się przeszkody nie przepuszczające światła, a kąt padania światła musi się zawierać w granicy +/- 15 stopni. Zero logiczne jest kodowane jako impuls o długości 3/16 okresu transmisji, natomiast jedynka jako brak takiego impulsu. Przed każdym bajtem danych występuje bit startu a po - bit stopu. Jako kontrola błędów wykorzystywane są 16-bitowe sumy kontrolne CRC.

W praktyce nie jest potrzebna tak dokładna wiedza o transmisji danych. Zamiast budować od zera moduły komunikacyjne lepiej jest używać gotowych układów takich jak transciever HSDL-3201 firmy HP oraz oraz współpracujący z nim kontroler IrDA Microchipa MCP2150, który przetwarza sygnały w podczerwieni na standard USART.

Dzięki zaimplementowanemu protokołowi IrCOMM powinien być widoczny dla komputera PC jako wirtualny port COM. Poniżej schemat układu z MCP2150 dostępny na stronie producenta oraz kilka przydatnych linków dotyczących wspomnianych przeze mnie układów.

transciever

Przedstawione przeze mnie informacje o IrDzie bazują tylko na teorii. Zamówiłem już jednak próbki z Microchipa i jak dojdą będę mógł przejść do testów praktycznych. Moim zdaniem IrDA posiada niedoceniony potencjał i w niektórych wypadkach może okazać się dobrą alternatywą dla drogich interfejsów bezprzewodowych takich jak Bluetooth czy moduły radiowe.

Współpraca z kamerą

Jak już wspomniałem mimo, iż ludzkie oko nie widzi światła podczerwonego, może ono zostać zarejestrowane przez kamerę. Co z tego wynika? Dioda IR i kamera mogą posłużyć do systemu wizyjnego robota pracującego w nocy.

Kiedy popatrzymy w obiektyw kamery czy aparatu pod różnymi kątami przy odpowiednim świetle, szkło będzie miało różowawy kolor. To właśnie przez ten filtr. Okazuje się jednak, że każdy, nawet najlepszy, filtr przepuszcza część promieniowania. Nietrudno się domyślić, że w lepszym sprzęcie filtry będą przepuszczać mniejszą część.

Czyli, aby zbudować własną kamerę na podczerwień wystarczy zdjąć ręcznie ten filtr. Jeżeli przy okazji nie chcemy odbierać światła widzialnego, trzeba w jego miejsce wstawić inny filtr tym razem przepuszczający podczerwień a zatrzymujący światło widzialne. Można go zrobić domowym sposobem używając początkowej części filmu od aparatu (tej służącej do zamontowania filmu na rolce), dysku magnetycznego ze środka dyskietki czy taśmy od kasety magnetofonowej lub video. Posiadając tą wiedzę postanowiłem samemu zrobić taką kamerkę.

Do systemu wizyjnego z prawdziwego zdarzenia była by potrzebna droga kamera bezprzewodowa. Ja niestety nie dysponuje odpowiednimi środkami. Tym bardziej, że przystosowanie zwykłej kamery do pracy w podczerwieni wymaga rozkręcenia i modyfikacji sprzętowej. Nie mogłem więc sobie pozwolić na takie wydatki. Kupiłem tanią kamerkę USB. Może nie sprawdzi się ona w realnych konstrukcjach, ale na pewno nie będzie mi szkoda takiej rozkręcać i modyfikować. W końcu zasada działania pozostaje ta sama i dla droższych rozwiązań a praktyka na tańszym sprzęcie może w przyszłości zapobiec zepsuciu czegoś droższego.

Moja kamerka jest wyposażona dodatkowo w fotoelement i 6 diod LED. Układ ten służy do oświetlania pola widzenia kamery, gdy ta znajduje się w ciemnościach. Nie powinno być żadnych problemów, żeby te LEDy wylutować i w ich miejsce dać diody IR. Umożliwiło by to pracę kamery w ciemnościach.

Rozkręciłem więc obudowę kamery, aby zlokalizować filtr podczerwieni. Następnie odkręciłem obiektyw. Filtr musi znajdować się gdzieś pomiędzy soczewką, a matrycą CCD czyli tym układem pod obiektywem wlutowanym do PCB. Jest to szkiełko pod różnymi kątami mogące przybierać kolor różowy, czerwony, a czasem niebieski. U mnie był przyklejony do dolnej części obiektywu i udało mi się go łatwo wyjąć za pomocą nożyka.

Na jego miejsce zamocowałem wycięty kawałek kliszy fotograficznej. Po testach okazało się, że to za mało bo kamera wyłapuje część światła z ledów i z ekranu laptopa. Dołożyłem więc drugą warstwę kliszy. Kamerka dalej wychwytuje silne światło LEDów z odległości około centymetra, ale żadnego innego już nie. Spokojnie więc można było dołożyć jeszcze trzecią warstwę, ale stwierdziłem, że mi to wystarczy.

Klisza trzyma się w końcowej części obiektywu za pomocą drucika zwiniętego w kółko. Można było użyć kleju uważając, aby nie rozlał się za mocno i nie zaburzał przebiegu światła. Jednak moje rozwiązanie okazało się bardzo praktyczne, bo można łatwo dołożyć kolejne warstwy filtra. Poza tym mogę w miejsce kliszy włożyć z powrotem wyciągnięte szkiełko i wrócić do początkowej konfiguracji. Poniżej zdjęcie kamerki oraz drugie po rozkręceniu. Strzałką zaznaczyłem lokalizację filtru podczerwieni. To czerwone szkiełko na obiektywie.

Jako ciekawostkę mogę powiedzieć, że na początku wydawało mi się, że uszkodziłem kamerę. Obraz po zhackowaniu kamery był kompletnie nieostry. Okazało się jednak, że ta prymitywna kamera ma zooma ręcznego. Czyli samemu trzeba wkręcać lub wykręcać obiektyw dopasowując ostrość do odległości.  Poza tym ostrość sama w sobie nie jest zbyt oszałamiająca. No ale nie można za wiele wymagać od najtańszej kamery USB jaką mogłem kupić.

Poniżej zdjęcia plakatu wiszącego w moim pokoju w kolorze i podczerwieni, oba przy świetle lampy.

Dalej nożyczki na biurku przy zgaszonym świetle na które migałem pilotem, zdjęcie zielonego kaktusa i mojej czarnej koszulki.

W podczerwieni można zobaczyć niektóre zabezpieczenia banknotów. Niestety jako biedny student dysponuje tylko najniższym nominałem... Widać jednak wyraźnie, że niektóre elementy nie są widoczne, szczególnie połowa monety na odwrocie.

Jak wspomniałem na początku - wszystkie ciała emitują promieniowanie w paśmie podczerwieni zależne od temperatury. Tę właściwość wykorzystuje się w pirometrach. Postanowiłem więc sprawdzić ten efekt na rozgrzanej lutownicy. Oto zdjęcie w ciemnym pokoju na którym dokładnie widać rozgrzane elementy lutownicy oraz zdjęcie przy zapalonej lampie, która uniemożliwia identyfikacje nagrzanych elementów.

Przecież kamery termowizyjne też działają w podczerwieni, więc dlaczego tak się dzieje? Otóż dlatego, że skonstruowana przeze mnie kamera działa jedynie w pewnym wąskim zakresie podczerwieni, bliskim światłu widzialnemu. Promieniowanie cieplne natomiast jest najlepiej widoczne dla innego zakresu fal - średniej podczerwieni.

W matrycy CCD kamery termowizyjnej zamiast filtrów RGB stosuje się takie przepuszczające podczerwień, a skala kolorów na obrazie termowizyjnym jest umowna. Oto przykładowy obraz wykonany taką kamerą oraz przyjęta skala barw:

Obraz z kamery termowizyjnej.

Obraz z kamery termowizyjnej.

Zakończenie

Artykuł przedstawił różne obszary zastosowań podczerwieni. Są one bardzo zróżnicowane. Znalazło się tutaj miejsce zarówno dla wielokrotnie omawianych na tym forum czujników, jak i dla zaawansowanych zagadnień takich jak kamery i transmisja danych.

Mam nadzieję. że każdy znajdzie coś dla siebie. Prawdopodobnie jeszcze rozszerzę artykuł o więcej praktycznych testów takich jak ten w rozdziale dotyczącym kamer. Aktualnie jestem w trakcie przygotowywania opisu jak zdekodować sygnał z pilota w domowym telewizorze. Poza tym może opublikuję wyniki moich starć z IrDA kiedy już przyjdą sample z Microchipa.

Artykuł był już wcześniej publikowany na forum.

czujnik, czujniki, IR, pilot, podczerwień, promieniowanie

Trwa ładowanie komentarzy...