Rev Author Line No. Line
1391 miho 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title> IRFEE01A </title>
6 <meta name="keywords" content="stavebnice MLAB univerzální moduly infračervený detektor infrared tykadlo">
7 <meta name="description" content="Projekt MLAB, Infračervný detektor překážek pro robota">
8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
9 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
10 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
11 <link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
12 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
13 <!-- AUTOINCLUDE END -->
14 </head>
15  
16 <body lang="cs">
17  
18 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
19 <!-- ============== HLAVICKA ============== -->
20 <div class="Header">
21 <script type="text/javascript">
22 <!--
23 SetRelativePath("../../../../../");
24 DrawHeader();
25 // -->
26 </script>
27 <noscript>
28 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
29 </noscript>
30 </div>
31 <!-- AUTOINCLUDE END -->
32  
33 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
34 <!-- ============== MENU ============== -->
35 <div class="Menu">
36 <script type="text/javascript">
37 <!--
38 SetRelativePath("../../../../../");
39 DrawMenu();
40 // -->
41 </script>
42 <noscript>
43 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
44 </noscript>
45 </div>
46 <!-- AUTOINCLUDE END -->
47  
48 <!-- ============== TEXT ============== -->
49 <div class="Text">
50 <p class="Title">
51 Infračervené tykadlo pro robota
52 </p>
53 <p class=Autor>
54 Milan Horkel
55 </p>
56 <p class="Subtitle">
57 Čidlo využívá modulované infračervené záření pro bezdotykovou detekci
58 předmětů. Je určeno zejména pro menší pohyblivé roboty jako náhrada
59 mechanických tykadel. Jádrem čidla je procesor řady ATtiny a přijímač
60 Ir pro dálkové ovládání. Modulace a průměrování signálu zajišťuje
61 zvýšenou odolnost proti rušení.
62 </p>
63 <p class="Subtitle">
1392 miho 64 <img width="327" height="105" src="IRFEE01A_Files/image001.jpg"
1391 miho 65 alt="Pohled na čidlo zhora">
66 </p>
67 <p class="Subtitle">
1392 miho 68 <img width="328" height="162" src="IRFEE01A_Files/image002.jpg"
1391 miho 69 alt="Pohled na čidlo ze strany">
70 </p>
71 <p>
72 <a href="../IRFEE01A.cs.pdf"><img class="NoBorder"
73 src="../../../../../Web/PIC/FileIco_PDF.ico"
74 alt="Acrobat">&nbsp;PDF verze</a>
75 </p>
76  
77 <h1>Technické parametry </h1>
78  
79 <table>
80 <tr>
81 <th> Parametr </th>
82 <th> Hodnota </th>
83 <th> Poznámka </th>
84 </tr>
85 <tr>
86 <td> Napájení </td>
87 <td> (2.7V&nbsp;..)&nbsp;3.6V&nbsp;..&nbsp;5V&nbsp;(..&nbsp;5.5V) </td>
88 <td> Zkontrolujte požadavky U1 a U2 </td>
89 </tr>
90 <tr>
91 <td> Spotřeba </td>
92 <td> 10mA&nbsp;/&nbsp;15mA </td>
93 <td> Při 5V v&nbsp;klidu a při detekci </td>
94 </tr>
95 <tr>
96 <td> Nosný kmitočet </td>
97 <td> 38kHz </td>
98 <td> Obvyklé hodnoty: 30, 33, 36, 38, 40, 56kHz </td>
99 </tr>
100 <tr>
101 <td> Dosah </td>
102 <td> Cca&nbsp;1m </td>
103 <td> Bez stínítka proti listu papíru A4 </td>
104 </tr>
105 <tr>
106 <td> Rychlost odezvy </td>
107 <td> 20ms&nbsp;/&nbsp;15ms </td>
108 <td> Aktivace a deaktivace </td>
109 </tr>
110 <tr>
111 <td> Rozměry </td>
112 <td> 35&nbsp;x&nbsp;15&nbsp;x&nbsp;15mm </td>
113 <td> Bez stínítka </td>
114 </tr>
115 </table>
116  
117 <h1> Popis konstrukce </h1>
118  
119 <h2> Úvodem </h2>
120  
121 <p>
122 Aby mohl robot detekovat překážku aniž do ní narazí, potřebuje vhodné
123 čidlo. Tato konstrukce popisuje čidlo, které využívá odrazu
124 infračerveného záření od překážky.
125 </p>
126  
127 <h2> Zapojení modulu </h2>
128  
129 <p>
1397 miho 130 Srdcem čidla je obvod U1, přijímač infračerveného signálu a procesor
131 ATtiny U2, který zajišťuje inteligenci čidla.
1391 miho 132 </p>
133  
134 <p>
1392 miho 135 <img width="588" height="396" src="IRFEE01A_Files/image003.png"
1391 miho 136 alt="Schéma zapojení čidla">
137 </p>
138  
139 <p>
140 Infračervená dioda D2 vysílá modulovaný signál směrem k&nbsp;překážce.
141 Signál se od překážky odráží do přijímače U1. Procesor U2 generuje
142 vysílací signál pro diodu D2 a současně analyzuje přijímaný signál
143 z&nbsp;přijímače U1. Pokud se přijímaný signál <i>dostatečně</i>
144 shoduje s&nbsp;vysílaným signálem, je aktivován výstupní signál na
145 výstupu J2 a rozsvítí se indikační dioda D3.
146 </p>
147  
148 <p>
149 R1 a C1 filtruje napájení pro přijímač infračerveného signálu U1, dioda
150 D1 je ochranná proti nechtěnému přepólování čidla. Čidlo je vybaveno
151 jedním upevňovacím šroubem.
152 </p>
153  
154 <p>
155 Konektor J3 je standardní programovací konektor ATMEL ISP 6 PIN. Je
156 zapojen obvyklým způsobem. Do procesoru se musí nahrát ovládací program
157 přeložený pro příslušný nosný kmitočet použitého přijímače U1. Kmitočet
1397 miho 158 přijímače bývá uváděn v&nbsp;posledním dvojčíslí označení, například 38
159 znamená 38kHz.
1391 miho 160 </p>
161  
162 <h2> Přijímač IR (obvod U1) </h2>
163  
164 <p>
165 Tyto obvody jsou vyráběny pro přijímače dálkového ovládání rádií,
166 televizí a dalších komponent spotřební elektroniky.
167 </p>
168  
169 <p>
1392 miho 170 <img width="386" height="195" src="IRFEE01A_Files/image004.png"
1391 miho 171 alt="Blokové schéma IR přijímače">
172 </p>
173  
174 <p>
175 Sdružují v&nbsp;sobě přijímací fotodiodu, selektivní zesilovač
176 s&nbsp;proměnným ziskem a obvody pro demodulování signálu. Aby čidlo
177 fungovalo nezávisle na okolním osvětlení, je jeho pouzdro z&nbsp;černé
178 hmoty, která propouští je vybranou vlnovou délku infračerveného záření.
179 </p>
180  
181 <p>
1392 miho 182 <img width="222" height="212" src="IRFEE01A_Files/image005.png"
1391 miho 183 alt="Závislost citlivosti na vlnové délce záření">
184 </p>
185  
186 <p>
187 Dálkové ovládání používá spoustu přenosových kódů, ale drtivá většina
188 je založena na vysílání pulsů nosné frekvence řádu 30 až 50kHz.
189 Nejkratší přenesený impuls musí obsahovat alespoň 10 period nosného
190 kmitočtu. Pro optimální fungování přijímače je doporučeno, aby
191 přenášené impulsy byly dlouhé mezi 10 a 70 periodami nosného kmitočtu.
192 </p>
193  
194 <p>
1392 miho 195 <img width="362" height="158" src="IRFEE01A_Files/image006.png"
1391 miho 196 alt="Testovací signál">
197 </p>
198  
199 <p>
200 Čidla se vyrábějí pro různé frekvence nosného kmitočtu a mohou být lépe
201 nebo méně přizpůsobené pro použití konkrétního přenosového protokolu
202 (jedná se o kompromis mezi odolností vůči rušení a parametry
203 jednotlivých kódů). <i>Je třeba dát pozor na zapojení vývodů, existují
204 i typy, které mají prohozené napájecí vývody.</i>
205 </p>
206  
207 <h2> Jaký použít IR přijímač? </h2>
208  
209 <p>
210 Zdánlivě prostá otázka skrývá velkou záludnost. Záludnost spočívá
211 v&nbsp;tom, že některé přijímače IR signálu fungují dobře, jiné
212 mizerně. Platí zde že méně inteligence může být lépe.
213 </p>
214  
215 <h3> TSOP34838 – špatná volba </h3>
216  
217 <p>
1397 miho 218 Konkrétně přijímač TSOP348xx funguje tak, že s&nbsp;tím, jak se signál
1391 miho 219 zeslabuje zvyšuje svou citlivost až nakonec signál ztratí. Jenže pak je
220 třeba signál hodně zesílit, aby ho přijímač zase začal registrovat.
221 </p>
222  
223 <p>
224 V&nbsp;praxi to pak vypadá tak, že čidlo nic nevidí dokud se překážka
225 velmi nepřiblíží a pak ji vidí dokud se velmi nevzdálí. Pro náš účel je
226 tato řada IR přijímačů nepoužitelná.
227 </p>
228  
229 <h3> Jaký přijímač tedy použít? </h3>
230  
231 <p>
1397 miho 232 Přijímače OSRAM řady SFH5110-xx pracují správně. Překážku čidlo
233 zaregistruje a zase ztratí v&nbsp;prakticky stejné vzdálenosti. Další
234 typy je třeba ověřit.
1391 miho 235 </p>
236  
237 <table>
238 <tr>
239 <th> Přijímač </th>
240 <th> Výrobce </th>
241 <th> Poznámka </th>
242 </tr>
243 <tr>
1397 miho 244 <td> TSOP348xx </td>
245 <td> VISHAY </td>
1391 miho 246 <td> Má obrovskou hysterezi mezi zachycením signálu a jeho ztrátou </td>
247 </tr>
248 <tr>
1397 miho 249 <td> SFH5110-33 <br>
250 SFH5110-36 <br>
251 SFH5110-38 <br>
252 SFH5110-40 </td>
253 <td> OSRAM </td>
1391 miho 254 <td> Funguje výborně </td>
255 </tr>
256 </table>
1397 miho 257  
1391 miho 258 <h2> Inteligence čidla </h2>
259  
260 <p>
261 Pro detekci překážky by stačilo použít střídavý signál o vhodném
262 kmitočtu a přímo výstup IR přijímače. Takové řešení ale není příliš
263 odolné proti rušení, a kromě toho stejně potřebujeme nějaký obvod pro
264 generování nosného kmitočtu. Proto bylo zvoleno řešení s&nbsp;malým
265 procesorem, který generuje signál a současně ho i vyhodnocuje.
266 </p>
267  
268 <p>
269 Vysílá se signál v&nbsp;podobě nepřetržité řady jedniček a nul.
270 Jednička je představována 10 impulsy nosného kmitočtu a nula stejně
271 dlouhou mezerou, během které se nevysílá žádné záření. Průběh je na
272 obrázku ve stopě 1.
273 </p>
274  
275 <p>
1392 miho 276 <img width="320" height="240" src="IRFEE01A_Files/image007.png"
1391 miho 277 alt="Průběh vysílaného a přijímaného signálu">
278 </p>
279  
280 <p>
281 Ve stopě 2 je signál na výstupu IR přijímače U1. Stav L indikuje
282 detekovaný optický signál. Detekovaný signál na přijímači je „rozpitý“,
283 protože přijímač potřebuje cca 6 až 10 period signálu pro vyhodnocení a
284 změnu stavu. Na obrázku vidíme asi 10 sekund aktivity zaznamenané přes
285 sebe.
286 </p>
287  
288 <p>
289 Vyhodnocování procesor provádí tak, že testuje, zda přijímač zachytil
290 kombinaci 10 a pokud ano, zvýší počítadlo úspěšných detekcí. Jakmile
291 toto počítadlo přeroste aktivační mez, nastaví výstup čidla do stavu H.
292 Pokud se místo očekávané kombinace 10 přijme cokoli jiného, sníží se
293 počítadlo. Jakmile počítadlo poklesne pod nulu, výstup čidla se
294 překlopí do neaktivního stavu L. Obrázek ukazuje máchnutí rukou před
295 čidlem, odezva 20ms pro zapnutí a 15ms pro vypnutí.
296 </p>
297  
298 <p>
1392 miho 299 <img width="320" height="240" src="IRFEE01A_Files/image008.png"
1391 miho 300 alt="Odezva čidla na máchnutí rukou">
301 </p>
302  
303 <p>
304 Toto poměrně jednoduché řešení vede k&nbsp;solidní odolnosti vůči
305 rušení. Ani ovladač od televize z&nbsp;bezprostřední blízkosti
306 neovlivňuje funkci čidla.
307 </p>
308  
309 <h2> Mechanická konstrukce </h2>
310  
311 <p>
312 Předpokládá se, že čidlo bude připevněno na přední část robotu nebo na
313 nějaký drátový nebo plechový tvarovatelný nosník. Je proto opatřeno 1
314 upevňovacím šroubem. Vysílací dioda a přijímací obvod na sebe nesmějí
315 vidět a je nutné tyto komponenty doplnit vhodně tvarovanými stínítky
316 tak, aby čidlo detekovalo překážky dle potřeby. Přijímač je velmi
317 citlivý a vidí vysílací LED i tehdy, kdyby to člověk neřekl (například
318 zezadu). Stínítko lze udělat například z&nbsp;černé smršťovací bužírky.
319 </p>
320  
321 <p>
322 Vysílací IR LED lze osadit jak shora desky, tak i ze spodní strany.
323 V&nbsp;případě potřeby je možné LED umístit dál od desky a vhodně
324 nasměrovat.
325 </p>
326  
327 <h1> Osazení a oživení </h1>
328  
329 <h2> Osazení </h2>
330  
331 <p>
1392 miho 332 <img width="567" height="241" src="IRFEE01A_Files/image010.jpg"
1391 miho 333 alt="Osazovací výkres, strana součástek">
334 </p>
335  
336 <p>
1392 miho 337 <img width="563" height="240" src="IRFEE01A_Files/image011.jpg"
1391 miho 338 alt="Osazovací výkres, strana spojů">
339 </p>
340  
341 <table class="Soupiska">
342 <tr>
343 <th> Počet </th>
344 <th> Reference </th>
345 <th> Název </th>
346 <th> Pouzdro </th>
347 </tr>
348 <tr>
349 <th colspan="4"> Odpory </th>
350 </tr>
351 <tr>
352 <td> 1 </td>
353 <td> R1 </td>
354 <td> 100 </td>
355 <td> R0805 </td>
356 </tr>
357 <tr>
358 <td> 1 </td>
359 <td> R2 </td>
360 <td> 330 </td>
361 <td> R0805 </td>
362 </tr>
363 <tr>
364 <td> 1 </td>
365 <td> R3 </td>
366 <td> 680 </td>
367 <td> R0805 </td>
368 </tr>
369 <tr>
370 <td> 1 </td>
371 <td> R4 </td>
372 <td> 10k </td>
373 <td> R0805 </td>
374 </tr>
375 <tr>
376 <th colspan="4"> Keramické kondenzátory </th>
377 </tr>
378 <tr>
379 <td> 2 </td>
380 <td> C1, C2 </td>
381 <td> 4u7/6.3V </td>
382 <td> C0805 </td>
383 </tr>
384 <tr>
385 <th colspan="4"> Diody </th>
386 </tr>
387 <tr>
388 <td> 1 </td>
389 <td> D1 </td>
390 <td> 1N4007SMD </td>
391 <td> MELF </td>
392 </tr>
393 <tr>
394 <th colspan="4"> LED </th>
395 </tr>
396 <tr>
397 <td> 1 </td>
398 <td> D2 </td>
399 <td> L-53F3BT </td>
400 <td> LED5 </td>
401 </tr>
402 <tr>
403 <td> 1 </td>
404 <td> D3 </td>
405 <td> LED_RED_5mm </td>
406 <td> LED5 </td>
407 </tr>
408 <tr>
409 <th colspan="4"> Integrované obvody </th>
410 </tr>
411 <tr>
412 <td> 1 </td>
413 <td> U1 </td>
414 <td> IR_RECEIVER (viz text) </td>
415 <td> TSOP348xx </td>
416 </tr>
417 <tr>
418 <td> 1 </td>
419 <td> U2 </td>
420 <td> ATtiny13-20SU </td>
421 <td> SO8_210 </td>
422 </tr>
423 <tr>
424 <th colspan="4"> Mechanické součástky </th>
425 </tr>
426 <tr>
427 <td> 1 </td>
428 <td> J1 </td>
429 <td> JUMP3 </td>
430 <td> JUMP3 </td>
431 </tr>
432 <tr>
433 <td> 1 </td>
434 <td> J2 </td>
435 <td> JUMP1 </td>
436 <td> JUMP1 </td>
437 </tr>
438 <tr>
439 <td> 1 </td>
440 <td> J3 </td>
441 <td> JUMP2x3 </td>
442 <td> JUMP2x3/B </td>
443 </tr>
444 </table>
445  
446 <p>
1392 miho 447 <img width="328" height="147" src="IRFEE01A_Files/image009.jpg"
1391 miho 448 alt="Obrázek osazené desky ze strany spojů">
449 </p>
450  
451 <h2> Oživení a kalibrace </h2>
452  
453 <p>
454 Oživení spočívá v&nbsp;naprogramování řídícího programu do procesoru.
455 Je třeba použít program, který generuje vysílací signál o stejné
456 frekvenci, na jakou je naladěn přijímací obvod. Hodnoty pro
457 naprogramování konfiguračních buněk procesoru jsou uvedeny na začátku
458 zdrojového kódu.
459 </p>
460  
461 <h1> Programové vybavení </h1>
462  
463 <h2> Popis programu </h2>
464  
465 <p>
466 Pro generování budícího signálu vysílací IR diody se využívá časovač
467 v&nbsp;režimu CTC. Časovač opakovaně čítá od 0 do horní meze, která je
468 nastavena v&nbsp;registru OCR0A. Touto konstantou je dána frekvence
469 generovaného signálu.
470 </p>
471  
472 <p>
473 Při každém dosažení horní meze časovače se automaticky neguje výstup
474 PB1, na který je připojena vysílací dioda. Současně se vyvolá
475 podprogram pro obsluhu přerušení, který čítá počet půlperiod vysílaného
476 signálu. Pokud se má vysílat tma (nazvěme stav 0), vše probíhá stejně,
477 jen se výstupní stav PB1 nemění.
478 </p>
479  
480 <p>
481 Po vyslání nastaveného počtu period signálu (konstanta SYMBOL_LENGTH)
482 se střídá vysílání stavu 0 a 1 (střídavý signál a tma) a současně se
483 vyhodnocuje, zda se přijímaný signál shoduje s&nbsp;vysílaným.
484 Vyhodnocování se provádí po dvojici 0/1.
485 </p>
486  
487 <p>
488 Hlavní program obsahuje inicializační část a prázdnou nekonečnou
489 smyčku. Za běhu se vše vyřizuje v&nbsp;podprogramu obsluhy přerušení od
490 časovače.
491 </p>
492  
493 <h2> Překlad programu </h2>
494  
495 <p>
496 Pro překlad je připravený Makefile, který přeloží program
497 s&nbsp;nastavením pro vyjmenované nosné kmitočty.
498 </p>
499 </div>
500  
501 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
502 <!-- ============== PATIČKA ============== -->
503 <div class="Footer">
504 <script type="text/javascript">
505 <!--
506 SetRelativePath("../../../../../");
507 DrawFooter();
508 // -->
509 </script>
510 <noscript>
511 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
512 </noscript>
513 </div>
514 <!-- AUTOINCLUDE END -->
515  
516 </body>
517 </html>