<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title> IRFEE01A </title><meta name="keywords" content="stavebnice MLAB univerzální moduly infračervený detektor infrared tykadlo"><meta name="description" content="Projekt MLAB, Infračervný detektor překážek pro robota"><!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --><link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl"><link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print"><link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico"><script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script><!-- AUTOINCLUDE END --></head><body lang="cs"><!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --><!-- ============== HLAVICKA ============== --><div class="Header"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawHeader();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --><!-- ============== MENU ============== --><div class="Menu"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawMenu();// --></script><noscript><p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- ============== TEXT ============== --><div class="Text"><p class="Title">Infračervené tykadlo pro robota</p><p class=Autor>Milan Horkel</p><p class="Subtitle">Čidlo využívá modulované infračervené záření pro bezdotykovou detekcipředmětů. Je určeno zejména pro menší pohyblivé roboty jako náhradamechanický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šťujezvýšenou odolnost proti rušení.</p><p class="Subtitle"><img width="327" height="105" src="IRFEE01A_Files/image001.jpg"alt="Pohled na čidlo zhora"></p><p class="Subtitle"><img width="328" height="162" src="IRFEE01A_Files/image002.jpg"alt="Pohled na čidlo ze strany"></p><p><a href="../IRFEE01A.cs.pdf"><img class="NoBorder"src="../../../../../Web/PIC/FileIco_PDF.ico"alt="Acrobat"> PDF verze</a></p><h1>Technické parametry </h1><table><tr><th> Parametr </th><th> Hodnota </th><th> Poznámka </th></tr><tr><td> Napájení </td><td> (2.7V ..) 3.6V .. 5V (.. 5.5V) </td><td> Zkontrolujte požadavky U1 a U2 </td></tr><tr><td> Spotřeba </td><td> 10mA / 15mA </td><td> Při 5V v klidu a při detekci </td></tr><tr><td> Nosný kmitočet </td><td> 38kHz </td><td> Obvyklé hodnoty: 30, 33, 36, 38, 40, 56kHz </td></tr><tr><td> Dosah </td><td> Cca 1m </td><td> Bez stínítka proti listu papíru A4 </td></tr><tr><td> Rychlost odezvy </td><td> 20ms / 15ms </td><td> Aktivace a deaktivace </td></tr><tr><td> Rozměry </td><td> 35 x 15 x 15mm </td><td> Bez stínítka </td></tr></table><h1> Popis konstrukce </h1><h2> Úvodem </h2><p>Aby mohl robot detekovat překážku aniž do ní narazí, potřebuje vhodnéčidlo. Tato konstrukce popisuje čidlo, které využívá odrazuinfračerveného záření od překážky.</p><h2> Zapojení modulu </h2><p>Srdcem čidla je obvod U1, přijímač infračerveného signálu a procesorATtiny U2, který zajišťuje inteligenci čidla.</p><p><img width="588" height="396" src="IRFEE01A_Files/image003.png"alt="Schéma zapojení čidla"></p><p>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 generujevysílací signál pro diodu D2 a současně analyzuje přijímaný signálz přijímače U1. Pokud se přijímaný signál <i>dostatečně</i>shoduje s vysílaným signálem, je aktivován výstupní signál navýstupu J2 a rozsvítí se indikační dioda D3.</p><p>R1 a C1 filtruje napájení pro přijímač infračerveného signálu U1, diodaD1 je ochranná proti nechtěnému přepólování čidla. Čidlo je vybavenojedním upevňovacím šroubem.</p><p>Konektor J3 je standardní programovací konektor ATMEL ISP 6 PIN. Jezapojen obvyklým způsobem. Do procesoru se musí nahrát ovládací programpřeložený pro příslušný nosný kmitočet použitého přijímače U1. Kmitočetpřijímače bývá uváděn v posledním dvojčíslí označení, například 38znamená 38kHz.</p><h2> Přijímač IR (obvod U1) </h2><p>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.</p><p><img width="386" height="195" src="IRFEE01A_Files/image004.png"alt="Blokové schéma IR přijímače"></p><p>Sdružují v sobě přijímací fotodiodu, selektivní zesilovačs proměnným ziskem a obvody pro demodulování signálu. Aby čidlofungovalo 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í.</p><p><img width="222" height="212" src="IRFEE01A_Files/image005.png"alt="Závislost citlivosti na vlnové délce záření"></p><p>Dálkové ovládání používá spoustu přenosových kódů, ale drtivá většinaje založena na vysílání pulsů nosné frekvence řádu 30 až 50kHz.Nejkratší přenesený impuls musí obsahovat alespoň 10 period nosnéhokmitočtu. Pro optimální fungování přijímače je doporučeno, abypřenášené impulsy byly dlouhé mezi 10 a 70 periodami nosného kmitočtu.</p><p><img width="362" height="158" src="IRFEE01A_Files/image006.png"alt="Testovací signál"></p><p>Čidla se vyrábějí pro různé frekvence nosného kmitočtu a mohou být lépenebo 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 parametryjednotlivých kódů). <i>Je třeba dát pozor na zapojení vývodů, existujíi typy, které mají prohozené napájecí vývody.</i></p><h2> Jaký použít IR přijímač? </h2><p>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.</p><h3> TSOP34838 – špatná volba </h3><p>Konkrétně přijímač TSOP348xx funguje tak, že s tím, jak se signálzeslabuje zvyšuje svou citlivost až nakonec signál ztratí. Jenže pak jetřeba signál hodně zesílit, aby ho přijímač zase začal registrovat.</p><p>V praxi to pak vypadá tak, že čidlo nic nevidí dokud se překážkavelmi nepřiblíží a pak ji vidí dokud se velmi nevzdálí. Pro náš účel jetato řada IR přijímačů nepoužitelná.</p><h3> Jaký přijímač tedy použít? </h3><p>Přijímače OSRAM řady SFH5110-xx pracují správně. Překážku čidlozaregistruje a zase ztratí v prakticky stejné vzdálenosti. Dalšítypy je třeba ověřit.</p><table><tr><th> Přijímač </th><th> Výrobce </th><th> Poznámka </th></tr><tr><td> TSOP348xx </td><td> VISHAY </td><td> Má obrovskou hysterezi mezi zachycením signálu a jeho ztrátou </td></tr><tr><td> SFH5110-33 <br>SFH5110-36 <br>SFH5110-38 <br>SFH5110-40 </td><td> OSRAM </td><td> Funguje výborně </td></tr></table><h2> Inteligence čidla </h2><p>Pro detekci překážky by stačilo použít střídavý signál o vhodnémkmitoč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 progenerování nosného kmitočtu. Proto bylo zvoleno řešení s malýmprocesorem, který generuje signál a současně ho i vyhodnocuje.</p><p>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 naobrázku ve stopě 1.</p><p><img width="320" height="240" src="IRFEE01A_Files/image007.png"alt="Průběh vysílaného a přijímaného signálu"></p><p>Ve stopě 2 je signál na výstupu IR přijímače U1. Stav L indikujedetekovaný 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í azměnu stavu. Na obrázku vidíme asi 10 sekund aktivity zaznamenané přessebe.</p><p>Vyhodnocování procesor provádí tak, že testuje, zda přijímač zachytilkombinaci 10 a pokud ano, zvýší počítadlo úspěšných detekcí. Jakmiletoto 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íží sepočítadlo. Jakmile počítadlo poklesne pod nulu, výstup čidla sepřeklopí do neaktivního stavu L. Obrázek ukazuje máchnutí rukou předčidlem, odezva 20ms pro zapnutí a 15ms pro vypnutí.</p><p><img width="320" height="240" src="IRFEE01A_Files/image008.png"alt="Odezva čidla na máchnutí rukou"></p><p>Toto poměrně jednoduché řešení vede k solidní odolnosti vůčirušení. Ani ovladač od televize z bezprostřední blízkostineovlivňuje funkci čidla.</p><h2> Mechanická konstrukce </h2><p>Předpokládá se, že čidlo bude připevněno na přední část robotu nebo nanějaký drátový nebo plechový tvarovatelný nosník. Je proto opatřeno 1upevň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ítkytak, aby čidlo detekovalo překážky dle potřeby. Přijímač je velmicitlivý a vidí vysílací LED i tehdy, kdyby to člověk neřekl (napříkladzezadu). Stínítko lze udělat například z černé smršťovací bužírky.</p><p>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.</p><h1> Osazení a oživení </h1><h2> Osazení </h2><p><img width="567" height="241" src="IRFEE01A_Files/image010.jpg"alt="Osazovací výkres, strana součástek"></p><p><img width="563" height="240" src="IRFEE01A_Files/image011.jpg"alt="Osazovací výkres, strana spojů"></p><table class="Soupiska"><tr><th> Počet </th><th> Reference </th><th> Název </th><th> Pouzdro </th></tr><tr><th colspan="4"> Odpory </th></tr><tr><td> 1 </td><td> R1 </td><td> 100 </td><td> R0805 </td></tr><tr><td> 1 </td><td> R2 </td><td> 330 </td><td> R0805 </td></tr><tr><td> 1 </td><td> R3 </td><td> 680 </td><td> R0805 </td></tr><tr><td> 1 </td><td> R4 </td><td> 10k </td><td> R0805 </td></tr><tr><th colspan="4"> Keramické kondenzátory </th></tr><tr><td> 2 </td><td> C1, C2 </td><td> 4u7/6.3V </td><td> C0805 </td></tr><tr><th colspan="4"> Diody </th></tr><tr><td> 1 </td><td> D1 </td><td> 1N4007SMD </td><td> MELF </td></tr><tr><th colspan="4"> LED </th></tr><tr><td> 1 </td><td> D2 </td><td> L-53F3BT </td><td> LED5 </td></tr><tr><td> 1 </td><td> D3 </td><td> LED_RED_5mm </td><td> LED5 </td></tr><tr><th colspan="4"> Integrované obvody </th></tr><tr><td> 1 </td><td> U1 </td><td> IR_RECEIVER (viz text) </td><td> TSOP348xx </td></tr><tr><td> 1 </td><td> U2 </td><td> ATtiny13-20SU </td><td> SO8_210 </td></tr><tr><th colspan="4"> Mechanické součástky </th></tr><tr><td> 1 </td><td> J1 </td><td> JUMP3 </td><td> JUMP3 </td></tr><tr><td> 1 </td><td> J2 </td><td> JUMP1 </td><td> JUMP1 </td></tr><tr><td> 1 </td><td> J3 </td><td> JUMP2x3 </td><td> JUMP2x3/B </td></tr></table><p><img width="328" height="147" src="IRFEE01A_Files/image009.jpg"alt="Obrázek osazené desky ze strany spojů"></p><h2> Oživení a kalibrace </h2><p>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 pronaprogramování konfiguračních buněk procesoru jsou uvedeny na začátkuzdrojového kódu.</p><h1> Programové vybavení </h1><h2> Popis programu </h2><p>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á jenastavena v registru OCR0A. Touto konstantou je dána frekvencegenerovaného signálu.</p><p>Při každém dosažení horní meze časovače se automaticky neguje výstupPB1, 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éhosignálu. Pokud se má vysílat tma (nazvěme stav 0), vše probíhá stejně,jen se výstupní stav PB1 nemění.</p><p>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ě sevyhodnocuje, zda se přijímaný signál shoduje s vysílaným.Vyhodnocování se provádí po dvojici 0/1.</p><p>Hlavní program obsahuje inicializační část a prázdnou nekonečnousmyčku. Za běhu se vše vyřizuje v podprogramu obsluhy přerušení odčasovače.</p><h2> Překlad programu </h2><p>Pro překlad je připravený Makefile, který přeloží programs nastavením pro vyjmenované nosné kmitočty.</p></div><!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --><!-- ============== PATIČKA ============== --><div class="Footer"><script type="text/javascript"><!--SetRelativePath("../../../../../");DrawFooter();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --></body></html>