V pretekli številki smo se seznanili z uporabo IR (infrardečih) upravljalnikov. IR- signal, ki je prenašal nam neznano kodo za krmiljenje določene naprave, smo prek IR- diode, priključene na mikrofonski vhod, zajeli, ustrezno obdelali in shranili v obliki zvočne datoteke. Če smo to zvočno datoteko predvajali prek preprostega vezja, priključenega na izhod za slušalke, je osebni računalnik »oddal« želeno kodo. Naprava se je odzvala enako, kot da bi sprejela signal z daljinskega upravljalnika. Spoznali smo tudi razloge, zakaj lahko v določenih primerih naletimo na težave. Najpogostejša je ta, da daljinski upravljalnik ne deluje znotraj »standardnega« pasu, ki ga pokrivajo univerzalni daljinski upravljalniki. Neprijetnost rešitve, omenjene v prejšnji številki, je, da je opisani postopek za uporabo precej neprijazen, saj je treba zajem izvajati ročno ali s programsko opremo, ki to bolj ali manj uspešno opravi namesto nas. Uporaba takšne rešitve je tudi razmeroma omejena, saj sprejem zvočnega signala zahteva določeno obdelavo in ga zato ne moremo uporabiti za neposredno upravljanje računalnika (vsaj ne brez namenske programske opreme).

NAREDI SPREJEMNO VEZJE SAM

Struktura signala nas do zdaj ni posebej zanimala, saj smo korak med zajemom in oddajo signala obravnavali po svoje (shranjevanje v obliki zvočne datoteke). Tokrat bo naš namen drugačen. Izdelati želimo sprejemno vezje, s katerim bomo lahko upravljali svoj osebni računalnik. Opisano sprejemno vezje je v ta namen neuporabno, saj je namenjeno priklopu na zvočno kartico. V našem primeru bomo potrebovali vezje, ki bo omogočalo priklop sprejemnega vezja na enega od podatkovnih vmesnikov (USB, zaporedna vrata).

Shema IR-vmesnika

Na spletnih straneh lahko poiščete različne sheme vezij, vse pa počnete na lastno odgovornost. Od načina priklopa vezja na računalnik, je odvisna tudi njegova kompleksnost. Odločitev za priklop na vmesnik USB bi vodila v nekoliko dražja in kompleksnejša vezja (npr. www.ocinside.de/go_e.html?/html/modding/usb_ir_receiver/solder_usb_ir_re...) pri katerih je uporaba mikrokrmilnikov (http://sl.wikipedia.org/wiki/Mikrokontroler) praktično nujna. V našem primeru smo se zato odločili za preprostejše in cenejše vezje, ki ga bomo priključili na zaporedna (COM) vrata osebnega računalnika. Takšno vezje je zelo preprosto in ga je brez težav sestavila tudi moja hči, ki obiskuje osnovno šolo (seveda ob določenih namigih z moje strani). Zaradi uporabe majhnega števila osnovnih/preprostejših komponent tudi uporaba ploščice za tiskano vezje ni nujna. V tem primeru moramo pri izdelavi paziti na ustrezno razdaljo in mehansko stabilnost elementov, da med njimi ne bo prišlo do neželenega stika. Posledica tega bi bilo lahko uničenje vezja oziroma zaporednih vrat.

Med podobnimi vezji smo izbrali vezje, opisano na spletni strani http://lnx.manoweb.com/lirc/?partType=section&partName=circuit.

Podobno kot do zdaj opisana vezja tudi to ni združljivo s standardom IrDA (http://en.wikipedia.org/wiki/IRDA), uporabimo pa ga lahko skupaj z večino najbolj priljubljenih programov. Vidimo lahko, da gre za vezje z minimalnim številom komponent. Seznam potrebnih komponent za vmesnik je tak:

• 9-polni ženski priključek – za priklop na zaporedna vrata RS-232,
• vsaj 3-žilni priključni kabel dolžine 2 m – za povezavo zaporednega vmesnika z vezjem,
• IR-sprejemnik TSOP 1738 ali združljiv (www.lirc.org/receivers.html),
• 5 V 100 mA napetostni regulator TO-92 78L05,
• dioda 1N4148,
• elektrolitski kondenzator 4,7 μF,
• upora 4,7 kiloohmov.

Izbirno lahko dodamo še (za samo delovanje ni nujno, je pa priporočljivo):

• ohišje 9-polnega priključka,
• plastično ohišje – za vdelavo vezja,
• dve vezici – za zagotovitev mehanske stabilnosti kabla,
• prototipna ploščica – za izdelavo vezja,
• skrčne cevke / termo božirke,

Shema za začetnike

Izdelano vezje se napaja prek priključka RTS (Request to Send ) na zaporednih vratih, zato zunanje napajanje ni potrebno. Za stabilizacijo napetosti skrbijo napetostni generator, kondenzator in upor. Za zaščito zaporednega vmesnika je uporabljena dioda, ki onemogoča povratni tok. Izhodni signal IR-senzorja peljemo na vrata DCD (Data Carrier Detect), ki so namenjena povezavi z »oddaljeno« napravo. Zadnji dve številki pri oznaki senzorja označujeta frekvenco senzorja v kHz. Ustrezen nivo zagotavljamo prek upora.

Pri izdelavi moramo biti pazljivi na smer kondenzatorja, diode, napetostnega stabilizatorja in IR-sprejemnika. Kdor ne obvlada elektronike, si lahko pomaga s sliko na strani, ki v električno shemo vpeljuje tudi dejanski pogled posamezne komponente. V določenih primerih se nekateri odločajo za vdelavo vezja v ohišje priključnega konektorja. Ne glede na obliko ohišja pa je nujno, da je IR-senzor zunaj ohišja, sicer vezje ne bo moglo sprejemati IR-signala.

ZAGON

Nekateri bodo hitrejši, drugi počasnejši, vsekakor bo preprosto vezje končano prej kot v eni uri. Pred priklopom na zaporedna vrata še enkrat preverimo vse povezave vmesnika in priključnega konektorja, da katera od komponent ne bi bila napačno priključena in da ni kratkih stikov. Vezje priključimo na zaporedna vrata računalnika, medtem ko je ta izključen, enako velja za odklop vezja. Zaporedna vrata imajo sicer zaščito, a previdnost ni odveč. Če v svoj izdelek ne zaupate, lahko prvi preizkus naredite s starejšim računalniku, ki ga je »manj škoda«.

Da se bo osebni računalnik lahko razumel z našim vezjem, potrebujemo še ustrezno programsko opremo. Uporabili bomo odprtokodni Linux Infrared Remote Control ali krajše LIRC (www.lirc.org/). Gre za programski paket, ki omogoča sprejem in dekodiranje ter pošiljanje signalov velikega števila infrardečih daljinskih upravljalnikov. LIRC podpira različne vrste vmesnikov, med njimi tudi tega, ki smo ga izdelali v našem primeru. Opis natančnejše namestitve v Linuxu najdemo na strani http://lnx.manoweb.com/lirc/?partType=section&partName=lirc. Prek LIRC-a bo naš vmesnik lahko komuniciral tudi z drugimi programi. Nekaj možnosti je navedenih na strani www.lirc.org/software.html. Uporaba tovrstnega vmesnika je zanimiva tudi za uporabnike okolja Windows. Njim je namenjen WinLIRC (http://winlirc.sourceforge.net/), ki je v okensko okolje preneseni LIRC. Seznam podprtih vmesnikov je v tem primeru krajši, naš vmesnik pa bo vseeno deloval.

Okolje WinLIRC

Po prenosu WinLIRC namestimo v poljubnem imeniku (na primer c:\WinLIRC). Trenutno aktualna različica 0.6.5 je stara že nekaj let in deluje zadovoljivo. Program zaženemo s klikom datoteke winlirc.exe. Ko uporabljamo WinLIRC prvič, se nam odpre okno, ki opozori na napako. Kliknemo gumb OK, ki nam omogoča konfiguriranje programa. Izberemo zaporedni vmesnik, na katerega smo priključili vmesnik (npr. COM1), hitrost nastavimo na vrednost 115.200, izberemo možnost DCD device, ker zaporedni vmesnik sprejema na tem priključku. Parameter transmiter settings ni pomemben, saj naše vezje ne bo delovalo kot oddajnik. Ne smemo pozabiti na polje config, kjer bo shranjena konfiguracija programa. V to polje vpišemo C:\winlirc\winlirc.rc. Zdaj s klikom gumba Raw Codes preverimo, ali je vzpostavljena komunikacija med vmesnikom in programsko opremo. Če je vse tako, kot je treba, bo ob pritisku poljubne tipke daljinskega upravljalnika WinLIRC začel izpisovati različne kode. Dokler tega ne dosežemo, ne moremo narediti naslednjega koraka.

Kode za nekatere upravljalnike lahko brez zamudnega učenja prenesemo s spletne strani.

UČENJE

Po uspešno vzpostavljeni komunikaciji pride na vrsto učenje. Izdelali bomo profil, pod katerim bomo shranili kode, ki jih vmesnik sprejme ob pritisku določene tipke daljinskega upravljalnika. Profilu bomo dali poljubno ime. V našem primeru bo to mojmikro. Na naslednji vprašanji lahko odgovorimo ali pa vnesemo privzete vrednosti s pritiskom tipke enter. V skladu z navodilom pritiskamo poljubno tipko, dokler WinLIRC ne ugotovi potrebnih parametrov signala. V korakih, ki sledijo, vnašamo imena posameznih tipk in pritiskamo tipko v skladu z zahtevami. Ko je določen zajem narejen, ga potrdimo. Odločimo se lahko, ali bomo učenje nadaljevali s signali nove tipke ali pa bomo učenje zaključili. To storimo tako, da ne vnesemo novega imena v polje Input. Program zapustimo s klikom gumba OK.

Učenje tipk daljinskega upravljalnika lahko včasih tudi preskočimo. Za določene tipe daljinskih upravljalnikov, so konfiguracije tipk oziroma kod na voljo na spletni strani http://lirc.sourceforge.net/remotes/. Če na primer želimo, da WinLIRC deluje z daljinskim upravljalnikom Vivanco UR 89, prekopiramo vsebino datoteke http://lirc.sourceforge.net/remotes/vivanco/UR_89 in jo vpišemo v konfiguracijsko datoteko C:\winlirc\winlirc.rc. Ko daljinski upravljalnik sprogramiramo na TV- sprejemnik tipa 170 (pritisk tipk SET in TV nato vnos 170), bo WinLIRC sprejete kode razumel kot pritisk ustreznih tipk. Sprejem signala lahko ob pritisku opazujemo tudi na ikoni v vrstici stanja. Siva barva se ob sprejemu signala spremeni v zeleno.

Komercialni uICE

VROČE TIPKE

WinLIRC poskrbi za ustrezno dekodiranje sprejetega signala. Vzpostavi neviden most med pritiskom posamezne tipke daljinskega upravljalnika, izvede dekodiranje in deluje kot »vmesnik« za drugo programsko opremo. Kaj bomo storili s sprejetimi kodami, je torej naša stvar. WinLIRC prepozna veliko programske opreme, na primer odprtokodni EventGhost (www.eventghost.org/), Girder (www.girder.nl/), Universal Infrared Control Engine ali krajše uICE (www.mediatexx.com/), AutoHotkey (www.autohotkey.com/) ...

Oglejmo si nekaj preprostih primerov. EventGhost po namestitvi zaženemo. Da se izognemo nepotrebnim podrobnostim, ustvarimo novo konfiguracijo (File/ New). V EventGhost dodamo podporo za IR-sprejemnik (Configuration Plugin/ Add plugin/ Remote Receiver/ Lirc Client) in vnos potrdimo z OK. Odpre se nam okno, ki zahteva podatke o strežniku WinLIRC. Ker bomo imeli IR-vmesnik priključen v drugem računalniku, spremenimo IP-naslov s 127.0.0.1 v IP-naslov strežnika za nameščenim strežnikom WinLIRC. V našem primeru je to IP-naslov 192.168.200.2. Vrata 8765 ostanejo nespremenjena, paziti pa moramo, da ta vrata na požarnem zidu niso zaprta. Če je povezava uspešno vzpostavljena, se izpiše sporočilo v dnevniku, ki je v levi polovici okna. Zdaj pritisnimo poljubno tipko na daljinskemu upravljalniku. Vidimo, da bo WinLIRC za vsak pritisk tipke daljinskega upravljalnika prek strežnika poslal sporočilo v dnevnik. S pritiskom tipke lahko priredimo tudi določene dogodke oziroma posledice. Recimo, da si želimo s pritiskom tipke 1 zagnati program calc.exe. Dogodek določimo z izborom Configuration/ Add macro/ System/ Start Application. V polje Executable vpišemo še pot do programske datoteke, ki jo želimo zagnati (calc.exe). Pritisk tipke povežemo z dogodkom tako, da pritisnemo želeno tipko – dogodek, ki se prikaže v dnevniku pa povlečemo v desno polovico na prostor, kjer je definiran zagon programa. Če želimo, da omenjeni program aktivira tudi pritisk tipke 3, lahko po pritisku te tipko na isto mesto povlečemo tudi ta dogodek. Podobno lahko povežemo tudi druge dogodke, kot so gibanje miške po zaslonu, emulacija različnih klikov, krmiljenje zvočne kartice, manipulacija z okni, različni dogodki na nivoju sistema ...

Zmogljivi EventGhost

Preprostejši za uporabo je HotkeyP (http://petr.lastovicka.sweb.cz/hotkeyp.zip). Z WinLIRC-em izberemo zavihek Mouse/Remote, tako da kliknemo gumb Options, in pod možnostjo Remote control aktiviramo možnost Enable. Pokažemo še na imenik, kjer je nameščen WinLIRC, in aktiviramo povezavo s klikom gumba OK. Tudi HotkeyP lahko deluje prek omrežne povezave, podobno kot EventGhost. Pritiske tipk na daljinskem upravljalniku povežemo z dogodkom tako, da kliknemo gumb Add. Prikaže se nam okno za vnos. Po pritisku želene tipke se njena koda (npr. {3} za tipko) izpiše v enem od polj. Nato v polje Command vpišemo ime in pot do programa, ki ga želimo aktivirati ob pritisku te tipke (npr. Cmd.exe). Po potrditvi vnosa bo pritisk tipke 3 aktiviral ukazno vrstico. Pritiske tipk lahko povezujemo tudi z drugimi vnaprej določenimi opravili. V tem primeru namesto ročnega vnosa kliknemo gumb <, ki nam preko menijev odpre različne možnosti. V določenih primerih je treba vnesti tudi parameter, ki ga najlažje ugotovimo s klikom gumba Help. Tipičen primer je emulacija gibanja miške po zaslonu. Za gibanje v vseh smereh izberemo Add/ < Macro/ Mouse/ Move mouse cursor, od vnosa v polje parameters pa je odvisno gibanje. Gibanje definiramo z dvema parametroma, ki pomenita gibanje v smeri X oziroma Y. Vrednost parametra je lahko pozitivna ali negativna. Če parametra ne vnesemo, se miška prestavi na sredino zaslona. Program deluje solidno, še največja slabost je razmeroma skromna dokumentacija, zato boste za njegovo spoznavanje potrebovali nekaj več časa.

Končajmo s kratko predstavitvijo programa uIRC. Kot preizkusno (shareware) različico ga lahko prenesemo iz spleta. Odlikuje ga razmeroma preprosta uporaba. S programom LIRC oziroma WinLIRC ga najprej povežemo. To storimo tako, da pod menijem General Config izberemo zavihek Device Selection. Poiščemo možnost LIRC Basic Device (za povezavo z LIRC-em) oziroma WinLIRC. Možnost samodejnega zagona programa omogočimo v zavihku General Options. Zanimiva je možnost zagona spletnega strežnika, ki jo najdemo pod zavihkom TCP/IP server. Privzeta vrednost vrat je 1234. Aktiviranje možnosti Make server available to other machines nam omogoči, da se izpišejo tipke v okolju spletnega brskalnika (http://ipnaslov:1234, v našem primeru http://192.168.200.2:1234). Ta strežnik je namenjen komunikaciji s programsko opremo, ki jo uporabniki razvijejo sami. Povezavo med programoma WinLIRC in uIRC oživimo tako, da v Hardware Setup pritisnemo gumb Setup, vnesemo IP-naslov strežnika, v katerem je priključen IR-vmesnik (deluje strežnik LIRC), vnos potrdimo in pritisnemo gumb Initialize. Čez nekaj trenutkov se nam izpiše sporočilo o vzpostavljeni povezavi med obema programoma.

Marsikaj zmore preprosti HotkeyP

V polju Commands kliknemo z desno tipko miške in dodamo daljinski upravljalnik (v našem primeru je to Vivanco_ur89). V meniju Actions posamezni tipki podobno kot pri predhodnikih dodamo želen dogodek. Izberemo tipko, ki ji želimo dodati dogodek (hitreje jo najdemo, če pritisnemo tipko daljinskega upravljalnika). V polju Name/Action z desnim klikom miške odpremo možnosti vnaprej definiranih dogodkov. Poleg odprtosti programa prek vrat 1234 uIRC se od predhodnikov razlikuje tudi zaradi možnost izdelave zaslonskih menijev, ki smo jih vajeni pri TV-sprejemnikih in pri sorodnih napravah. Uporabnik lahko določi lastne menije, ki mu omogočajo hitrejši dostop (npr. Filmi, Glasba ...).

Seznam programske opreme, ki podpira uporabo daljinskih upravljalnikov z osebnim računalnikom še zdaleč ni izčrpan. Žal je »umazano« dejstvo, da se med seboj razlikujejo po pomembnih podrobnostih, ki jih brez upravljalnika največkrat ne moremo preizkusiti. Za uporabnike pa je še bolj neprijetno, da vsa programska oprema ne podpira vseh tipov IR-vmesnikov. No, na srečo lahko z razmeroma nizkimi stroški hitro izdelamo nov program ali pa se malo bolj potrudimo z obstoječim. Verjamem tudi, da boste po nekaj dneh polni idej, kaj vse še lahko storite z daljincem.


Zanimivosti in nasveti
• Opozorilo: Pri priklopu na zaporedna vrata z uporabo USB-vmesnika ali pri prenosnih računalnikih lahko pri določenih vmesnikih zaradi nižjih nivojev naletimo na težave. V tem primeru je ena od možnih rešitev sprememba vrednosti uporov v vezju. Več o nivojih signalov RS-232 najdete na spletni strani http://en.wikipedia.org/wiki/RS-232#Voltage_levels.
• Zgodi se lahko, da se IR vmesnik »obnaša« nenavadno. V tem primeru preverimo. kaj sprejema WinLIRC (analiza sprejema – Analyze oziroma RAW codes). Pri uporabi neoklopljenega kabla je lahko vpliv motenj tako velik, da bo WinLIRC to razumel kot konstanten niz različnih signalov.
• Paketa LIRC za Linux in WinLIRC sta si v marsičem zelo podobna. Kljub vsemu pa je med njima nekaj pomembnih razlik. LIRC podpira uporabo širšega nabora vmesnikov kot WinLIRC. Razlike so tudi na ravni komunikacije in same strukture programske opreme. Pomembno pa je, da se konfiguracijske datoteke za daljinske upravljalnike med seboj ne razlikujejo in jih zato lahko brez težav izmenjujemo.
• Opisani IR-vmesnik lahko s programom (Win)LIRC uporabimo skupaj s priljubljeno programsko opremo za daljinske upravljalnike. (Win)LIRC je pravzaprav vmesnik med IR daljinskim upravljalnikom in programsko opremo, ki podpira uporabo LIRC-a.
• Upravljanje TV-sprejemnika v računalniku, nadzor nad multimedijskim predvajalnikom, premik miške po zaslonu, izvajanje opravil/zagon programske opreme v oddaljenem računalniku in še kaj – pri uporabi daljinskega upravljalnika ste omejeni le s številom tipk in s svojo domišljijo.
• Veliko časa pri konfiguraciji prihranimo, če s spletne strani prenesemo že izdelane konfiguracijske datoteke za tip daljinskega upravljalnika, ki ga imamo. Pri uporabi univerzalnega daljinskega upravljalnika ne smemo pozabiti definirati predpisanega tipa, saj v nasprotnem primeru povezava ne bo delovala.

Moj mikro, November 2009 | Marko Koblar