Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Tučňák na dálkové ovládání

Chcete si z počítače udělat jukebox na přehrávání MP3? Máte připojenou CD-ROM k věži a chcete ji ovládat z postele? Nebo MPlayer komfortně ovládat jako DVD přehrávač? Pak není nic jednoduššího, než si postavit přijímač dálkového ovládání.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Jak funguje dálkové ovládání

Nejprve si vysvětlíme princip dálkového ovládání. Ovladač se skládá z klávesnice, integrovaného chipu (většinou jednoúčelového nebo zákaznického) a infračervené diody. Existují samozřejmě i složitější provedení například s LCD displayem, ale základní princip je stále stejný. Chip v ovladači čte klávesnici a převádí jednotlivá tlačítka na pevně dané číselné kódy, které následně vysílá vysílací diodou.

Až do tohoto momentu se všechna dálková ovládání shodují, odlišnosti nastávají v protokolu, kterým se komunikuje. Nosná frekvence je většinou 38kHz (infračervená dioda tedy bliká 38000krát za sekundu), „vysílání“ znamená jedničku, „ticho“ znamená nulu. To ovšem pro přenos nestačí, protože bychom například nebyli schopni přesně rozeznat, kolik jedniček, respektive nul, bylo v bloku stejných bitů za sebou. Proto se používá modulace, tzv. logická jednička se kóduje například jako 01 a logická nula jako 10 (tato modulace je velmi známá z Ethernetu a označuje se jako Manchester). Modulací existuje několik, každý výrobce používá svoji. Za zmínku stojí například: Sony, Philips (známá též jako RC-5), Nokia NRC17 nebo NEC. Kterou modulaci používá váš konkrétní ovladač, závisí na tom, od jakého výrobce je integrovaný obvod v ovládání. Já mám například ovládání od věže Yamaha a to má v sobě integrovaný obvod NEC – používá se tedy protokol NEC.

To by bylo stručně k nejnižší vrstvě přenosu. Jak jsem již uvedl, každé tlačítko má přiřazeno nějaký číselný kód. Ten se většinou skládá z adresy a čísla příkazu. Adresa slouží k rozlišení různých typů přístrojů, například pro rozlišení mezi videem a televizorem, příkaz pak určuje konkrétní „akci“, která se má provést, třeba přidání hlasitosti či přepnutí programu. Jak přesně vypadá formát kódu tlačítka (kolik bitů kód zabírá, časový interval mezi vysíláním jednotlivých kódů atd.) též upravuje konkrétní protokol.

Přijímáme data

Co tedy musíme udělat, abychom byli schopni přijímat dálkové ovládání počítačem? Jediné, co opravdu potřebujeme, je přijímací dioda. Tu koupíme asi za 20 Kč v obchodě s elektronickými součástkami. Diodu můžeme rovnou, „tak, jak je“, připojit do mikrofonního vstupu zvukové karty a zbytek zařizovat softwarově. Nemusíme vůbec rozumět tomu, co vysílač vyslal, stačí nám rozeznat jednotlivá tlačítka mezi sebou. Pro každé tlačítko tedy nasamplujeme nějaké číslo (které nemusí mít vůbec nic společného s číslem vyslaným vysílačem) a pak při přijímání porovnáváme nasamplovaný signál postupně se vzorky všech tlačítek. Je to sice hodně nečistá metoda, ale prakticky funguje, můj kamarád ji doma úspěšně používá.

UIR

Lepší je investovat do přijímače trochu více inteligence a připojit ho například na sériový port. Já jsem si postavil populárního IRMana (nebo též UIR – Universal Infrared Receiver), na jehož stavbu najdete návody na Webu, já jsem postupoval podle návodu od Ties Bose. IRMan se též prodává komerčně jako hotový výrobek. Má výhodu, že „umí“ spoustu dálkových ovládání. Na uvedených stránkách se můžete dočíst, že zapojení bylo testováno s více než 40 různými značkami dálkových ovladačů.

Zapojení je velice prosté, skládá se z mikrokontroleru PIC12C509 nebo PIC16F84 (který jsem použil já), 4MHz krystalu, přijímací diody SFH506–36 s vestavěným demodulátorem, čtyř diod, tří kondenzátorů a dvou odporů. Součástky vyjdou na cca 100 Kč s versí PIC12C509, nebo 200 Kč s versí PIC16F84. Mikrokontroler si ovšem můžete zdarma jako vzorek nechat poslat od výrobce, takže zaplatíte celkem jenom asi 50 Kč za zbylé součástky. Na stránkách Microchipu si objednáte a můžete i sledovat cestu zásilky. Za příjemných pár dní od objednávky u vás zazvoní chlápek od FedExů a předá vám velikánskou obálku poslanou odněkud z Thajska, v níž se bude krčit malá krabička s vaším chipem :).

Konstrukce je natolik jednoduchá, že ji zvládne každý, kdo aspoň jednou držel v ruce pájku. Ani snad nemá smysl kvůli tak malému zapojení vyrábět tištěný spoj, proto jsem ho sletoval na universální desku. PIC si lze nechat za mírný peníz naprogramovat ve specialisované firmě nebo v některých obchodech s elektronickými součástkami.

Zde je schema pro versi s PIC12C509, schema pro versi s PIC16F84 a program pro PIC v binární podobě pro programování (HEX) pro PIC12C509 a pro PIC16F84. Schemata i obsahy pamětí mikrokontrolerů jsou zkopírovány ze stránky pro případ, že by stránka s návodem zmizela. Veškerá práva k nim náleží vlastníkovi stránek s návodem na stavbu Universal Infrared Receiveru Martinusu Bosovi.

Celé zařízení je napájeno z linek DTR a RTS na sériovém portu. Mikrokontroler komunikuje s počítačem po sériovém portu rychlostí 9600 baudů, s parametry 8 bitů, žádná parita a 1 stop-bit. Když mu pošleme písmena „IR“, tak odpoví „OK“. Jinak posílá přijaté kódy tlačítek.

Tento přijímač chodí velice pěkně, mám ho umístěný na stole pod monitorem, není potřeba ovladačem mířit přímo na něj, stačí kamkoliv do místnosti, přijme bez problémů odraz od stropu, stěny pokoje, nábytku… Jak jsem již řekl, funguje mi s ovladačem typu NEC a zkoušel jsem ho úspěšně i se Sony.

Hotový přijímač
Takto vypadá hotový přijímač, zatím jsem ho ještě nedal do krabičky.

Spoje
Ze strany spojů je to trochu divočejší :)

Software

Přijímač máme hotový, teď ještě musíme donutit Linux data číst. V Linuxu je přijímání infračerveného dálkového ovládání podpořeno docela dobře. Existuje balík jménem LIRC, který umí pěknou řádku hardwaru, od nejjednoduššího řešení, kdy je připojena infračervená dioda do vstupu zvukové karty, přes různá podomácku vyrobená zařízení připojená na sériový či paralelní port, komerční zařízení až po přijímače vestavěné například v televizní kartě. Podporovaného hardwaru je opravdu hodně, celý seznam najdete na stránkách projektu.

Jak to celé nainstalovat? Stáhnete si tento balík, pustíte konfigurační skript, kde si v textových menu (podobných těm v konfiguraci linuxového kernelu) zvolíte váš hardware, případně nějaké další parametry (jako číslo sériového portu), které části se mají kompilovat, a nakonec pustíte klasické „make install“. Kompilace vytvoří daemony lircd a lircmd, několik utilit a případně, pokud bude potřeba, ještě kernelový modul pro konkrétní přijímač.

Po nainstalování je ještě nutné napsat konfigurační soubor s popisem vašeho ovladače. Pokud nemáte vyloženě exotický kousek, správný konfigurák s největší pravděpodobností naleznete v obsáhlém archivu remotes.tar.bz2 (najde se tam i ovladač k videu Tesla :) ) na stránkách projektu. Soubor obsahuje v podstatě popis celého protokolu, to je z toho důvodu, že LIRC umožňuje připojit i „hloupé“ přijímače, a v tom případě veškeré dekódování musí provádět daemon. V popisu najdeme nosnou frekvenci, počet bitů, délky bitů, mezer a v neposlední řadě též kódy jednotlivých tlačítek. Zde je příklad, jak vypadá konfigurační soubor od mého ovladače.

Nejdůležitější součástí LIRC je daemon lircd. Ten čte data z hardware na zařízení /dev/lirc, které je buďto symlinkem třeba na sériový port, nebo je zařízením speciálního kernelového driveru pro váš konkrétní hardware. Klienti – ovládané programy – se mohou připojovat na socket /dev/lircd, odkud čtou tlačítka nadefinovaná v /etc/lircd.conf. Podporu nalezneme například v přehrávačích videa MPlayer a Xine, v MP3 přehrávači XMMS (jako plugin), v programu pro sledování televize Xawtv a v mnoha dalších.

Součástí LIRC je i daemon lircmd, který je schopen převádět stisky tlačítek na pohyby myši. Stačí pustit tento daemon a použít jako zařízení pro myš /dev/lircmd (například v gpm nebo X). lircmd umí emulovat protokoly MouseSystems, IMPS/2 nebo IntelliMouse.

V balíku je dále distribuována řada užitečných utilit, které při zmáčknutí tlačítka například spustí program, pošlou X-event nebo napíšou nějaký text. Všechny klientské programy používají jednotný konfigurační soubor .lircrc umístěný v domovském adresáři uživatele. Soubor se skládá z bloků ohraničených klíčovými slovy „begin“ a „end“, mezi kterými je vždy několik řádek určujících program, tlačítko a „akci“, která se má provést. Jak vypadá příslušná „akce“, záleží na klientském programu. Takto vypadá část konfigurace pro program XMMS:

davame_internetu_obsah
       
  begin
    prog = xmms
    button = pause
    config = PAUSE
  end
  begin
    prog = xmms
    button = stop
    config = STOP
  end
  begin
    prog = xmms
    button = power
    config = QUIT
    flags = mode
  end

Některé programy, jako například již několikrát zmiňované XMMS, umožňují komunikovat přímo s IRManem, plugin je obsažen již v defaultní instalaci. Nicméně chcete-li ovládat více aplikací, je lepší nainstalovat si balík LIRC, který umožňuje přístup k přijímači více klientům současně. Jeho velikou výhodou je šikovný návrh, který nabízí téměř neomezené možnosti konfigurace.

K LIRC již asi není více co dodat, snad jen, že je to velmi pěkný software, který zase o krok posune kupředu uživatelský komfort vašeho linuxového stroje. Zaujal-li vás tento článek natolik, že jste se rozhodli postavit si vlastní přijímač, doufám, že se z dálkového ovládání budete těšit stejně, jako jsem se z něj těšil já.

Odkazy

Školení: Linux – Firemní server

Na třídenním školení se naučíte nainstalovat a spravovat kompletní linuxový server do Vaší firmy se všemi základními službami, které potřebujete pro provoz Vaší sítě, firemních emailů a webových stránek.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 3,11

Přehled názorů

bez titulku
PavelK 18. 12. 2002 00:20
Nový
├ 
Re:
nick 18. 12. 2002 07:37
Nový
│
└ 
Re:
PavelK 18. 12. 2002 08:26
Nový
└ 
Re:
Lopo 18. 12. 2002 07:52
Nový
 
├ 
Re:
PavelK 18. 12. 2002 08:12
Nový
 
│
└ 
Re:
zdenek 18. 12. 2002 09:14
Nový
 
└ 
Re:
KejPi 18. 12. 2002 10:52
Nový
WOW!
RedDragon 18. 12. 2002 01:29
Nový
└ 
Re: Pekny clanok
matto 30. 12. 2002 12:59
Nový
bez titulku
Steve 18. 12. 2002 07:16
Nový
└ 
Re:
PavelK 18. 12. 2002 08:15
Nový
 
├ 
Re:
AlesK 18. 12. 2002 08:42
Nový
 
└ 
Re:
Ondra 18. 12. 2002 09:09
Nový
Co vlastne bude reagovat?
RWS 18. 12. 2002 08:58
Nový
├ 
Re: Co vlastne bude reagovat?
zdenek 18. 12. 2002 09:14
Nový
├ 
Re: Co vlastne bude reagovat?
Ondra 18. 12. 2002 09:19
Nový
│
└ 
Re: Co vlastne bude reagovat?
Vaclavp 18. 12. 2002 09:51
Nový
└ 
Re: Co vlastne bude reagovat?
Michal Krause 18. 12. 2002 09:19
Nový
 
└ 
Re: Co vlastne bude reagovat?
Brain 18. 12. 2002 10:41
Nový
Microchip
Vaclavp 18. 12. 2002 09:46
Nový
└ 
Re: Microchip
Brain 19. 12. 2002 13:51
Nový
ATI Remote Wonder?
AntonK 18. 12. 2002 10:25
Nový
└ 
Re: ATI Remote Wonder?
Martin Tomasek 19. 12. 2002 03:49
Nový
 
└ 
Re: ATI Remote Wonder?
Vaclav Bilek 19. 12. 2002 13:10
Nový
 
 
└ 
Re: ATI Remote Wonder?
Martin Tomasek 19. 12. 2002 16:18
Nový
 
 
 
└ 
neumis cist !
Vaclav Bilek 27. 12. 2002 10:23
Nový
bezdrátová klávesnice
Umkebe Membe 18. 12. 2002 11:02
Nový
├ 
Re: bezdrátová klávesnice
Tosuja 18. 12. 2002 21:29
Nový
│
└ 
Re: bezdrátová klávesnice
Umkebe Membe 19. 12. 2002 10:21
Nový
│
 
└ 
Re: bezdrátová klávesnice
Brain 19. 12. 2002 14:02
Nový
├ 
Re: bezdrátová klávesnice
nekdo 19. 12. 2002 00:56
Nový
└ 
Re: bezdrátová klávesnice
Martin Tomasek 19. 12. 2002 03:54
Nový
easy
Cabi 18. 12. 2002 11:59
Nový
ja mam vlastny easy soft
Martin Zdila 18. 12. 2002 12:27
Nový
└ 
Re: ja mam vlastny easy soft
Brain 19. 12. 2002 14:05
Nový
jde to i jednoduseji
Jan Martinek 18. 12. 2002 14:25
Nový
└ 
Re: jde to i jednoduseji
Ritchie 18. 12. 2002 17:11
Nový
bsd
radar 18. 12. 2002 17:38
Nový
└ 
Re: bsd
Brain 19. 12. 2002 14:10
Nový
bez titulku
hkmaly 18. 12. 2002 18:48
Nový
├ 
Re:
dxm 18. 12. 2002 20:24
Nový
│
└ 
Re:
Paja 18. 12. 2002 21:29
Nový
└ 
Re:
Brain 19. 12. 2002 13:53
Nový
OSD menu pro Lirc
David Kutalek 18. 12. 2002 19:16
Nový
├ 
Re: OSD menu pro Lirc
Brain 19. 12. 2002 13:48
Nový
└ 
Re: OSD menu pro Lirc
pavkamlc 3. 2. 2009 22:24
Nový
Vyhoda PIC reseni
Pavouk 18. 12. 2002 22:43
Nový
├ 
Re: Vyhoda PIC reseni
PavelK 18. 12. 2002 23:52
Nový
└ 
Re: Vyhoda PIC reseni
Jan Martinek 19. 12. 2002 10:04
Nový
 
└ 
Re: Vyhoda PIC reseni
Brain 19. 12. 2002 14:14
Nový
dve otazecky
johny 19. 12. 2002 20:20
Nový
└ 
Re: dve otazecky
Vaclavp 20. 12. 2002 10:24
Nový
IR na MIC
mamm 19. 12. 2002 20:21
Nový
LIRC pod SuSE 8.1
Tomas Bzatek 19. 12. 2002 21:16
Nový
hw.cz
m 20. 12. 2002 20:26
Nový
cat /dev/ttyS0 ??
HiaeR SILVANNA 23. 1. 2003 10:58
Nový
├ 
Re: cat /dev/ttyS0 ??
tomas 29. 1. 2003 15:59
Nový
└ 
Re: cat /dev/ttyS0 ??
anonymní uživatel 26. 3. 2005 22:48
Nový
Dotaz
Petr 18. 3. 2003 22:09
Nový
Vlastní soft do jednočipu
Jakub Ladman 4. 1. 2004 01:23
Nový
bez titulku
Qwer 9. 1. 2004 23:17
Nový
Je opravdu potřeba to bastlit?
Petr Wünsch 9. 2. 2005 09:01
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem