Vajeni smo, da najrazličnejše vrste datotek zapisujemo na trdem disku ali drugem pomnilniškem mediju. Do končnega zapisa slike, multimedijskega signala ali besedilne datoteke vodi več pretvorb signalov, rezultat pa zapis na želenem mediju. V času prvih osebnih računalnikov (npr. Sinclair ZX-80, IBM PC j r...) so bile pred množično uporabo disket in disketnih enot v uporabi predvsem običajne avdio kasete. Datoteke osebnega računalnika so se preoblikovale v ustrezen avdio signal, ki ga je kasetofon zapisal na kaseto. Za vrnitev datoteke ali nalaganje programske opreme v računalnik je bilo treba izvesti postopek pretvarjanja iz zvočnega signala v digitalno obliko.

ZVOKI KANSAS CITYJA

Ena od priljubljenih možnosti tistega časa je standard Byte, ki je znan tudi pod imenom Kansas City Standard. O tem standardu smo pred leti že pisali, zato omenimo le najpomembnejša dejstva. Ta standard je bil razvit sredi sedemdesetih let in uporablja shemo kodiranja, pri kateri zapisujemo nivo logične 0 s štirimi cikli signala 1200 Hz oziroma logične 1 s štirimi cikli signala 2400 Hz. Prenosna hitrost znaša za današnje čase skromnih 300 bitov na sekundo. Pa si poglejmo, kako bi z osebnim računalnikom zapisali določeno besedilo v obliki zvočnega signala. V pomoč nam je lahko program KCS (Kansas City Standard), ki ga prenesemo s spletnega naslova www.netbay.com.au/~dxforth/kcs08.zip. Stisnjeno datoteko odpremo s programom za raztezanje v enem od imenikov na trdem disku (npr.c:\KCS). Program zaženemo iz ukazne vrstice (Start – cmd – cd c:\KCS), še prej pa si bomo pripravili testno datoteko. Ustvarili jo bomo ročno z ukazom edit, ki mu sledi ime datoteke. V našem primeru bo to edit mojmikro.txt. V urejevalniku vpišemo nekaj besed, nato besedilo shranimo s kombinacijo Alt+F, ki mu sledi pritisk tipke S. Iz urejevalnika gremo s kombinacijo Alt+F in tipko X. Tako dobljeno datoteko bomo pretvorili v zvočno datoteko. To storimo z ukazom

kcs -M mojmikro.txt mojmikro.wav

Besedilo, zapisano v besedilno datoteko, smo spremenili v zvočni signal. Odprimo datoteko s predvajalnikom zvočnih datotek (npr. Windows Media Player) in poglejmo, kako je »videti« nova datoteka. Ugotovimo lahko, da precej spominja na signal telefaksa oziroma analognih modemov namenjenih klicnim povezavam. Zvočno datoteko lahko pretvorimo nazaj v besedilno z ukazom

kcs -X mojmikro.wav wav2.txt

Če datoteko wav2.txt odpremo z urejevalnikom besedil, vidimo, da sta vsebini datotek mojmikro.txt in wav2.txt popolnoma enaki. Naredili bi lahko še korak snemanja na medij oziroma z medija (npr. kasetofon, MP3-predvajalnik). Paziti moramo le, da je pri snemanju vzorčenje v osebnem računalniku nastavljeno na mono signal s frekvenco 22,050 KHz in 8-bitni zapis.

Poskusimo z nekoliko daljšim besedilom. Za zapis do te točke napisanega besedila je besedilna datoteka txt velika 2913 bajtov. Če datoteko znova pretvorimo v zvočno datoteko (kcs -M besedilo.txt besedilo.wav), bo dolga minuto in petinpetdeset sekund. S parametri programa KCS lahko zapis tudi »navijemo«. Dodali bomo parameter -B2 in povečali hitrost za štirikrat (s 300 na 1200). Nova vrstica bo videti takole:

kcs -M -B2 besedilo.txt hitreje.wav

Zvočna datoteka bo zdaj krajša in bo trajala le šestintrideset sekund. Podobno kot pri kodiranju v zvočni zapis moramo parameter uporabiti tudi pri dekodiranju zvočnega signala (kcs -X –B2 hitreje.wav wav2b.txt). Tudi v tem primeru je vsebina datotek besedilo.txt in wav2b popolnoma enaka.

Informacija je zapisana v obliki IR-signala z jasno definiranimi časi med logičnimi nivoji.

ZAPISANO V ZVOKU

Iz opisanega postopka smo lahko spoznali določene zakonitosti. Poljubno datoteko lahko brez težav zapišemo v obliki zvočnega signala – informacijo smo zapisali v obliki moduliranega zvočnega signala. Z večanjem količine informacij sorazmerno narašča čas, ki je potreben za zapis določene informacije v obliki zvočnega signala. Čas lahko skrajšamo z uporabo večje hitrosti (npr. 1200 namesto 300), vendar s tem povečujemo možnost napake pri zapisu na medij oziroma zajemu z njega. To pomeni, da bomo pri končnem postopku pretvarjanja/dekodiranja iz zvočne datoteke v izvorno datoteko lahko naleteli na težave. Tega se verjetno še zelo dobro spominjajo starejši bralci, ko so običajno šele po nekajminutnem nalaganju (tik pred koncem) programske opreme s kasete dobili na zaslon dobro znano in osovraženo sporočilo o napaki pri prenosu (npr. Tape loading error). Na prvi pogled se morda zdi, da je pri današnji količini informacij in velikosti datotek takšno početje brez pomena. To ne drži v vseh primerih, saj lahko zvočni zapis uporabimo tudi za generiranje različnih vrst signalov, ki jih oddajajo različne naprave. V naslednjih vrsticah si bomo ogledali nekaj uporabnih primerov, kako z osebnim računalnikom, preprostim vezjem in zvočno datoteko simuliramo delovanje druge naprave.

3,5 mm vtikač in IR-dioda sta najpomembnejši komponenti.

V INFRARDEČEM SVETU

Kljub najrazličnejšim tipom radijskih vmesnikov so v naših domovih še vedno prisotni predvsem infrardeči (IR – InfraRed) daljinski upravljalniki. Ob pritisku določene tipke se prek očem nevidnega svetlobnega signala pošlje niz impulzov. Vir IR-svetlobe (IR- oddajnik) pošlje nize zelo kratkih signalov – vklop/izklop. Hitrost, s katero se to dogaja, imenujemo nosilna frekvenca in se lahko od proizvajalca do proizvajalca razlikuje. Opise protokolov nekaterih proizvajalcev si lahko ogledate na spletni strani www.sbprojects.com/knowledge/ir/ir.htm. Tipične vrednosti se gibljejo v pasu med 36 kHz in 40 KHz. Na omenjeno frekvenco lahko informacijo »naložimo« na različne načine. Ena od njih je PWM (Pulse Width Modulation). V tem primeru stanje logične enice zapisujemo z nizom hitrih vklopov in izklopov, stanju logične ničle pa ustreza izklop svetlobnega vira. Z ustrezno kombinacijo časov (med logično 0 in logično 1) in s kombinacijo samih logičnih stanj lahko dobimo različne kombinacije, s katerimi prenašamo želena stanja, ki so specifična za določeno napravo oziroma proizvajalca. To je tudi razlog, zakaj se ob pritisku na tipko daljinskega upravljalnika odzove le ena naprava, in ne vse, ki sprejemajo IR-signal. Na poti med IR-oddajnikom in sprejemnikom je signal izpostavljen različnim motnjam (npr. močna sončna svetloba), zato proizvajalci pogosto uporabljajo različne mehanizme, kot so redundantni biti ali večkratno pošiljanje informacije.

Na trgu sta v grobem prisotni dve vrsti univerzalnih upravljalnikov. V prvi skupini so že programirane naprave, ki na podlagi nastavitve določene kode pošljejo signal, značilen za določenega proizvajalca. V drugi skupini so naprave, ki za delovanje potrebujejo izvor (originalni daljinski upravljalnik). V tem primeru nov upravljalnik postopno naučimo signalov, ki jih mora poslati ob pritisku določene tipke. Idejo učenja/posnemanja signalov, bomo uporabili tudi v našem primeru.

Glavne ideje lahko najdemo v različnih patentih. Prvega lahko najdemo na strani www.freepatentsonline.com/6330091.html. Patent opisuje način uporabe IR diode, ki jo lahko uporabimo v vlogi oddajnika ali sprejemnika IR signala. Če diodo krmilimo z ustreznim signalom, bo le ta oddajala ustrezno IR svetlobo. V primeru osvetlitve IR diode z infrardečo svetlobo pa se bo na njenih sponkah pojavila določena napetost, ki je odvisna od infrardeče svetlobe. To pomeni, da lahko oddajno IR diodo, uporabimo kot osnovo za izdelavo sprejemnika IR signala.

IR-sprejemnik

IZDELAVA IN »TRENING« IR-upravljalnika

Še standardno opozorilo – izdelava vezja ni zahtevna, vsekakor pa vse navedeno počnete na lastno odgovornost. Eno od možnih rešitev najdemo na spletni strani http://jumpjack.wordpress.com/2008/05/20/worlds-cheapest-remote-control-.... Senzor lahko izdelamo z uporabo 3,5 mm stereo vtikača, priključnega kabla in IR-diode. IR-diode dobimo v trgovini z elektronskimi komponentami ali jih vzamemo iz odsluženih daljinskih upravljalnikov. IR-diodo bomo priključili na enega od kanalov, smer diode (ni vseeno, kako diodo obrnemo) in kanal lahko ugotovimo s poskušanjem. To najlažje storimo tako, da diodo priključimo na enega od kanalov, vtikač pa priključimo na mikrofonski vhod zvočne kartice. Nato s programom za snemanje (npr. Windows Sound Recorder) zaženemo snemanje in pritisnemo na poljuben IR daljinski upravljalnik. Če smo zaznali ustrezen signal pravokotne oblike je vezje pravilno, v nasprotnem primeru obrnemo IR-diodo oziroma zamenjamo kanal. Če imamo težave, preverimo na nadzorni plošči, kako je z nastavitvijo vhoda mikrofona. V našem primeru je zaznavanje delovalo na levem kanalu. Windows Sound Recorder nam je pomagal pri izdelavi IR-sprejemnika, v nadaljevanju pa bo neuporaben. Za zajem in obdelavo signala potrebujemo zmogljivejše orodje, saj bomo morali narediti nekaj operacij, ki jih omenjeni program ne pozna. V našem primeru smo uporabili kar Audacity (http://audacity.sourceforge.net/), za katerega je opisan tudi postopek na zgoraj navedeni strani.

Shema oddajnika z dvema IR-diodama

SVETLOBA, UJETA V ZVOK

Po zagonu programa Audacity in priključitvi vezja aktiviramo snemanje (klik gumba z rdečo piko ali pritisk tipke R). Signal vzorčimo s 44.100 Hz in zapisujemo s 16 oziroma 32 biti. Nato pritisnemo poljubno tipko na IR daljinskemu upravljalniku. V našem primeru je bila to tipka Power, s katero lahko vključimo/izključimo videorekorder (zakaj ravno to tipko, bo jasno v nadaljevanju). V presledku nekaj sekund smo pritisnili tipko, kar naš IR-senzor zazna (sprememba nivoja na IR-diodi zaradi IR-signala), Audacity pa to pokaže kot opazno spremembo amplitude zvočnega signala (signal na mikrofonskem vhodu). Ko signal zajamemo, ustavimo snemanje signala (tipka z rumenim kvadratkom ali pritisk na tipko za presledek). Zdaj izberemo eno od sekvenc, ki so se pojavile ob pritisku tipke, druge pa označimo in zbrišemo (Edit – Delete). Druga možnost je, da označimo le del, ki nas zanima, drugo pa izrežemo (Edit – Trim).

Kljub zajemu prek enega kanala je Audacity signal zajel kot stereo signal. Signal zdaj pretvorimo v mono tako, da označimo signal in izberemo Tracks in možnost Stereo Track to Mono. Idealno je, če ima naš signal amplitudo čim večjo – to pomeni, da so minimumi oziroma maksimumi stereo signala pri vrednostih plus oziroma minus ena. Z uporabo tega signala bomo naredili nov signal, ki ga bomo pošiljali v oddajnik.

Izdelan oddajnik

Najprej bomo dodali nov mono kanal (Tracks – Add new – Audio Track ali Ctrl+Shift+N). V njem bomo ustvarili nov sinusni signal (Generate – Tone), sinusne oblike s frekvenco 19.000 Hz in amplitudo 1. Del novega signala, ki sega preko trajanja našega mono signala, lahko takoj izrežemo. Zdaj pogled signalov povečamo, dokler dobro ne vidimo podrobnosti zajetega signala (zgoraj). V naslednjem koraku je pomembna natančnost, saj so od nje odvisni bodoči izhodni signal in morebitne težave pri njegovem sprejemu.

Tistim delom signala, kjer zajeti signal dosega največje vrednosti, bomo priredili ustrezen signal, preostali deli pa bodo označeni kot odsotnost signala – za Audacity bo to tišina. Se še spomnite: logična 1 so hitri impulzi, pri logični 0 signala ni. To storimo tako, da dele, ki jim ustreza nivo logične ničle, označimo in pritisnemo gumb »Silence« (lahko tudi Generate – Silence). Postopek ponavljamo od začetka do konca vzorčenega signala. Osnovnega signala zdaj ne potrebujemo več in ga lahko zbrišemo. Nov signal podvojimo. To storimo z ukazom Edit – Duplicate oziroma s pritiskom kombinacije tipk Ctrl+D. Pazimo, da označimo le spodnji kanal, in ga invertiramo. (Effect – Invert). Na koncu oba signala še združimo v stereo signal (Audio Track – Make Stereo track). Do zdaj smo datoteko shranjevali kot projekt Audacity, zato končni izdelek izvozimo v zvočno datoteko v formatu wav (File – Export – OK).

Zajem IR-signala prek vmesnika za slušalke v programu Audacity

Glede na veliko število tipk daljinskega upravljalnika in zamudnost postopka traja priprava zelo dolgo časa. Pomagamo si lahko s programsko opremo na strani http://ledrem.googlecode.com/files/LedRem_with_SOX.zip. Gre za zbirko, ki nam v nekaj korakih »samodejno« izvede vse potrebne korake obdelave zajetega signala. Preneseno datoteko namestimo v enem od imenikov (npr. c:\mojmikro). Zvočno datoteko, ki smo jo dobili s snemanjem signala (npr. zajemsignala.vaw) IR-diode prekopiramo v ta imenik in zaženemo program RAW2LIRC.exe. Z njim odpremo datoteko zajemsignala.vaw in počakamo na obdelavo signala. Raw2LIRC naredi datoteko Provalirc.conf. Nato zaženemo program lic2ledrem in v polja vnesemo podatke (Sox path: c:\mojmikro\sox.exe,Licr filename: c:\mojmikro\Provalirc.conf, Output path: c:\mojmikro\) nato pritisnemo gumb Go. Rezultat te obdelave je izdelava paketne datoteke command0001.bat, katere zagon bo izdelal končno datoteko wav, primerno za prenos signala. In če ne deluje? Pri programu RAW2LIRC.exe lahko poskusimo z možnostjo Inverted signal, ročnim popravljanjem paketne datoteke z vrednosti 18.000 na 19.000 oziroma s prej opisanim ročnim postopkom. Sam kljub zamudnosti, prisegam na slednjega, saj je z njim najmanj težav.

Natančnejši pogled (povečava) pokaže obliko signala.

IZ ZVOKA V SVETLOBO

V nekaterih redkih primerih (npr. proženje Nikonovega aparata DSLR– zato smo vzorčili »power« gumb videorekorderja proizvajalca Sony) bo delovalo že vezje, s katerim smo zaznali IR-signal. Za večino primerov bo treba narediti še oddajno vezje, s katerim bomo oddali IR-signal. Tokrat bomo vzporedno vezali dve IR-diodi v »obratni« smeri. Krajši priključek prve IR-diode, bomo vzporedno povezali z daljšim priključkom druge IR-diode in obratno. Tej vezavi bomo zaporedno dodali še nekajomski upor. To vezje bomo podobno kot prej prispajkali neposredno na 3,5 mm stereo vtikač, le da bomo tokrat uporabili priključka za levi in desni kanal (zemlja ostane neuporabljena). Izdelano vezje priključimo na izhod za slušalke. Za takšno vezavo se odločimo, ker potrebujemo signal do 40 KHz, kar pa ni mogoče na določenem kanalu, saj je posamezni kanal omejen na frekvenco okrog 20 kHz. Zato smo v postopku obdelave signala ustvarili signal s frekvenco 19 kHz, ki smo ga invertirali in združili v stereo signal. S priklopom vezja med sponke posameznega signala smo namreč dosegli »podvojitev« frekvence (2 x 19 kHz =38 kHz , 2 x 18 kHz = 36 kHz) in širše območje prekrivanja (dve diodi namesto ene). Rešitev opisuje patent www.freepatentsonline.com/6931231.html.

Ročno moduliranje z uporabo zajetega signala zahteva natančnost.

IZHOD, A NE VSAK

Opisano oddajno vezje je brez težav delovalo na razdalji več metrov. Vezje smo uporabili na izhodih različnih tipov zvočnih kartic, ki so vdelane v osebnih računalnikih – tako v stacionarnih kot prenosnih. Gotovo se marsikomu postavlja vprašanje, ali ne bi bilo mogoče uporabiti podobnega vmesnika tudi na prenosnem MP3-predvajalniku in ga tako spremeniti v univerzalni daljinski upravljalnik. Enoumnega odgovora ni mogoče dati, saj se izhodni nivoji predvajalnikov precej razlikujejo. V nekaterih primerih izhodni nivo zadošča za delovanje na razdalji nekaj metrov, v drugih je domet omejen le na nekaj decimetrov. Pri šibkejšem izhodnem signalu potrebujemo preprost ojačevalnik z nekaj elementi, slabost takšne rešitve pa je potreba po dodatnem napajanju, ki ga ta ojačevalnik zahteva.

Pri pretvorbi zvočnih datotek pa moramo paziti, da ne uporabimo različnih izgubnih stiskanj (npr. MP3), saj pri pretvorbi izgubimo del koristne informacije z zapisom »kode« IR-signala. Vseeno se je zgodilo, da je pri konstantni bitni hitrosti (CBR –Constant Bit Rate) pri 256 KB/s ali celo 320 KB/s v določenih primerih sprejem signala celo deloval brez težav. Še namig. Po informacijah na spletni strani http://features.engadget.com/2004/07/27/how-to-turn-your-ipod-in-to-a-un..., naj bi izhodni signal na predvajalniku iPod ustrezal potrebnemu nivoju.

Toliko za zdaj. V naslednji številki bomo izdelali preprosto vezje, s katerim bomo lahko upravljali osebni računalnik prek univerzalnega daljinskega upravljalnika.


Zanimivosti in nasveti
• Opisani IR-vmesnik za zajem in oddajo IR-signala ni nadomestilo za vmesnik IrDA in z njim ni združljiv. IR-signal smo zaznali in ga spremenili v električni signal, ki smo ga obravnavali enako kot preveden zvočni signal na vhodu mikrofona. Edina skupna lastnost obeh vmesnikov je uporaba IR frekevenčnega pasu.
• Pri zajemu IR-signala si lahko pomagamo tudi z dlančnikom ali ustreznim mobilnim telefonom. Na spletnih straneh najdemo veliko programske opreme, ki omogoča delovanje mobilnega telefona ali dlančnika v vlogi univerzalnega upravljalnika.
• Zgodi se lahko, da določenih signalov nikakor ne boste mogli ponoviti. Nosilne frekvence IR daljinskih upravljalnikov so največkrat nižje od frekvence 40 kHz. V določenih primerih pa so lahko tudi višje (od 56 kHz do celo preko 450 kHz). V tem primeru ne moremo uspešno reproducirati signala prek opisanega vmesnika in zvočne kartice. Razlog za težave se lahko skriva tudi v majhnih tolerancah naprav (ki zahtevajo natančno kopijo signala) ali uporabe zelo hitrih signalov z ozkimi impulzi. Tudi univerzalni daljinski upravljalniki zato niso vedno vsemogočni.
• Izkušnje so zlata vredne pri odpravljanju težav. Včasih zadošča za rešitev problema že obrat oziroma invertiranje signala ali sprememba frekvence. V določenih primerih pa bo signal pred oddajanjem treba ojačiti prek ojačevalnika.

Shema
www.instructables.com/files/deriv/FIO/WGA8/FWA98PHZ/FIOWGA8FWA98PHZ.MEDI...

Moj mikro, oktober 2009 | Marko Koblar