Infračervené tykadlo pro robota

Milan Horkel

Čidlo využívá modulované infračervené záření pro bezdotykovou detekci předmětů. Je určeno zejména pro menší pohyblivé roboty jako náhrada mechanických tykadel. Jádrem čidla je procesor řady ATtiny a přijímač Ir pro dálkové ovládání. Modulace a průměrování signálu zajišťuje zvýšenou odolnost proti rušení.

Pohled na čidlo zhora

Pohled na čidlo ze strany

Acrobat PDF verze

Technické parametry

Parametr Hodnota Poznámka
Napájení (2.7V ..) 3.6V .. 5V (.. 5.5V) Zkontrolujte požadavky U1 a U2
Spotřeba 10mA / 15mA Při 5V v klidu a při detekci
Nosný kmitočet 38kHz Obvyklé hodnoty: 30, 33, 36, 38, 40, 56kHz
Dosah Cca 1m Bez stínítka proti listu papíru A4
Rychlost odezvy 20ms / 15ms Aktivace a deaktivace
Rozměry 35 x 15 x 15mm Bez stínítka

Popis konstrukce

Úvodem

Aby mohl robot detekovat překážku aniž do ní narazí, potřebuje vhodné čidlo. Tato konstrukce popisuje čidlo, které využívá odrazu infračerveného záření od překážky.

Zapojení modulu

Srdcem čidla je obvod U1, přijímač infračerveného signálu a procesor ATtiny U2, který zajišťuje inteligenci čidla.

Schéma zapojení čidla

Infračervená dioda D2 vysílá modulovaný signál směrem k překážce. Signál se od překážky odráží do přijímače U1. Procesor U2 generuje vysílací signál pro diodu D2 a současně analyzuje přijímaný signál z přijímače U1. Pokud se přijímaný signál dostatečně shoduje s vysílaným signálem, je aktivován výstupní signál na výstupu J2 a rozsvítí se indikační dioda D3.

R1 a C1 filtruje napájení pro přijímač infračerveného signálu U1, dioda D1 je ochranná proti nechtěnému přepólování čidla. Čidlo je vybaveno jedním upevňovacím šroubem.

Konektor J3 je standardní programovací konektor ATMEL ISP 6 PIN. Je zapojen obvyklým způsobem. Do procesoru se musí nahrát ovládací program přeložený pro příslušný nosný kmitočet použitého přijímače U1. Kmitočet přijímače bývá uváděn v posledním dvojčíslí označení, například 38 znamená 38kHz.

Přijímač IR (obvod U1)

Tyto obvody jsou vyráběny pro přijímače dálkového ovládání rádií, televizí a dalších komponent spotřební elektroniky.

Blokové schéma IR přijímače

Sdružují v sobě přijímací fotodiodu, selektivní zesilovač s proměnným ziskem a obvody pro demodulování signálu. Aby čidlo fungovalo nezávisle na okolním osvětlení, je jeho pouzdro z černé hmoty, která propouští je vybranou vlnovou délku infračerveného záření.

Závislost citlivosti na vlnové délce záření

Dálkové ovládání používá spoustu přenosových kódů, ale drtivá většina je založena na vysílání pulsů nosné frekvence řádu 30 až 50kHz. Nejkratší přenesený impuls musí obsahovat alespoň 10 period nosného kmitočtu. Pro optimální fungování přijímače je doporučeno, aby přenášené impulsy byly dlouhé mezi 10 a 70 periodami nosného kmitočtu.

Testovací signál

Čidla se vyrábějí pro různé frekvence nosného kmitočtu a mohou být lépe nebo méně přizpůsobené pro použití konkrétního přenosového protokolu (jedná se o kompromis mezi odolností vůči rušení a parametry jednotlivých kódů). Je třeba dát pozor na zapojení vývodů, existují i typy, které mají prohozené napájecí vývody.

Jaký použít IR přijímač?

Zdánlivě prostá otázka skrývá velkou záludnost. Záludnost spočívá v tom, že některé přijímače IR signálu fungují dobře, jiné mizerně. Platí zde že méně inteligence může být lépe.

TSOP34838 – špatná volba

Konkrétně přijímač TSOP348xx funguje tak, že s tím, jak se signál zeslabuje zvyšuje svou citlivost až nakonec signál ztratí. Jenže pak je třeba signál hodně zesílit, aby ho přijímač zase začal registrovat.

V praxi to pak vypadá tak, že čidlo nic nevidí dokud se překážka velmi nepřiblíží a pak ji vidí dokud se velmi nevzdálí. Pro náš účel je tato řada IR přijímačů nepoužitelná.

Jaký přijímač tedy použít?

Přijímače OSRAM řady SFH5110-xx pracují správně. Překážku čidlo zaregistruje a zase ztratí v prakticky stejné vzdálenosti. Další typy je třeba ověřit.

Přijímač Výrobce Poznámka
TSOP348xx VISHAY Má obrovskou hysterezi mezi zachycením signálu a jeho ztrátou
SFH5110-33
SFH5110-36
SFH5110-38
SFH5110-40
OSRAM Funguje výborně

Inteligence čidla

Pro detekci překážky by stačilo použít střídavý signál o vhodném kmitočtu a přímo výstup IR přijímače. Takové řešení ale není příliš odolné proti rušení, a kromě toho stejně potřebujeme nějaký obvod pro generování nosného kmitočtu. Proto bylo zvoleno řešení s malým procesorem, který generuje signál a současně ho i vyhodnocuje.

Vysílá se signál v podobě nepřetržité řady jedniček a nul. Jednička je představována 10 impulsy nosného kmitočtu a nula stejně dlouhou mezerou, během které se nevysílá žádné záření. Průběh je na obrázku ve stopě 1.

Průběh vysílaného a přijímaného signálu

Ve stopě 2 je signál na výstupu IR přijímače U1. Stav L indikuje detekovaný optický signál. Detekovaný signál na přijímači je „rozpitý“, protože přijímač potřebuje cca 6 až 10 period signálu pro vyhodnocení a změnu stavu. Na obrázku vidíme asi 10 sekund aktivity zaznamenané přes sebe.

Vyhodnocování procesor provádí tak, že testuje, zda přijímač zachytil kombinaci 10 a pokud ano, zvýší počítadlo úspěšných detekcí. Jakmile toto počítadlo přeroste aktivační mez, nastaví výstup čidla do stavu H. Pokud se místo očekávané kombinace 10 přijme cokoli jiného, sníží se počítadlo. Jakmile počítadlo poklesne pod nulu, výstup čidla se překlopí do neaktivního stavu L. Obrázek ukazuje máchnutí rukou před čidlem, odezva 20ms pro zapnutí a 15ms pro vypnutí.

Odezva čidla na máchnutí rukou

Toto poměrně jednoduché řešení vede k solidní odolnosti vůči rušení. Ani ovladač od televize z bezprostřední blízkosti neovlivňuje funkci čidla.

Mechanická konstrukce

Předpokládá se, že čidlo bude připevněno na přední část robotu nebo na nějaký drátový nebo plechový tvarovatelný nosník. Je proto opatřeno 1 upevňovacím šroubem. Vysílací dioda a přijímací obvod na sebe nesmějí vidět a je nutné tyto komponenty doplnit vhodně tvarovanými stínítky tak, aby čidlo detekovalo překážky dle potřeby. Přijímač je velmi citlivý a vidí vysílací LED i tehdy, kdyby to člověk neřekl (například zezadu). Stínítko lze udělat například z černé smršťovací bužírky.

Vysílací IR LED lze osadit jak shora desky, tak i ze spodní strany. V případě potřeby je možné LED umístit dál od desky a vhodně nasměrovat.

Osazení a oživení

Osazení

Osazovací výkres, strana součástek

Osazovací výkres, strana spojů

Počet Reference Název Pouzdro
Odpory
1 R1 100 R0805
1 R2 330 R0805
1 R3 680 R0805
1 R4 10k R0805
Keramické kondenzátory
2 C1, C2 4u7/6.3V C0805
Diody
1 D1 1N4007SMD MELF
LED
1 D2 L-53F3BT LED5
1 D3 LED_RED_5mm LED5
Integrované obvody
1 U1 IR_RECEIVER (viz text) TSOP348xx
1 U2 ATtiny13-20SU SO8_210
Mechanické součástky
1 J1 JUMP3 JUMP3
1 J2 JUMP1 JUMP1
1 J3 JUMP2x3 JUMP2x3/B

Obrázek osazené desky ze strany spojů

Oživení a kalibrace

Oživení spočívá v naprogramování řídícího programu do procesoru. Je třeba použít program, který generuje vysílací signál o stejné frekvenci, na jakou je naladěn přijímací obvod. Hodnoty pro naprogramování konfiguračních buněk procesoru jsou uvedeny na začátku zdrojového kódu.

Programové vybavení

Popis programu

Pro generování budícího signálu vysílací IR diody se využívá časovač v režimu CTC. Časovač opakovaně čítá od 0 do horní meze, která je nastavena v registru OCR0A. Touto konstantou je dána frekvence generovaného signálu.

Při každém dosažení horní meze časovače se automaticky neguje výstup PB1, na který je připojena vysílací dioda. Současně se vyvolá podprogram pro obsluhu přerušení, který čítá počet půlperiod vysílaného signálu. Pokud se má vysílat tma (nazvěme stav 0), vše probíhá stejně, jen se výstupní stav PB1 nemění.

Po vyslání nastaveného počtu period signálu (konstanta SYMBOL_LENGTH) se střídá vysílání stavu 0 a 1 (střídavý signál a tma) a současně se vyhodnocuje, zda se přijímaný signál shoduje s vysílaným. Vyhodnocování se provádí po dvojici 0/1.

Hlavní program obsahuje inicializační část a prázdnou nekonečnou smyčku. Za běhu se vše vyřizuje v podprogramu obsluhy přerušení od časovače.

Překlad programu

Pro překlad je připravený Makefile, který přeloží program s nastavením pro vyjmenované nosné kmitočty.