Na levi sliki je prikazana blok shema integriranega IR sprejemnika z vsemi
svojimi funkcijami. Na vhodu je IR dioda, kateri sledi vhodni ojačevalnik (1). Kontrolno
vezje (2) povečuje ali zmanjšuje ojačanje avtomatske kontrole ojačanja (3) (AGC =
automatic gain controll). Za njim sledi prepustnik frekvence (4) in demodulator (5), ki je
tudi kontroliran. Na izhodu je tranzistor s svojim koletorskim uporom. Frekvenca Band
Pass-a je podana v zadnjih dveh številkah oznake integrirca ( TSOP 18xx).
AGC (avtomatska regulacija ojačanja) zna biti dvorezen meč pri
napajanju izvora izmeničnega signala in senzorja iz istega izvora. Proizvajalci senzorjev
priporočajo preprost RC filter v napajanju senzorja.
V sredini je izgled IR sprejemnika TSOP 18xx. Pred IR diodo je majhna leča,
ki je pravzaprav pri uporabi kot senzor za robota moteča, saj služi zato da dioda
sprejema v čim širšem krogu. Ta problem sem rešil z zmanjšanjem moči (povečanje
vrednosti R5) na oddajni IR diodi in tulcem iz termoskrčljive cevke na njej. S tem sem
dosegel da je vsaj oddajni snop svetlobe usmerjen v določeno smer. Malo
poizkušanja da najboljši rezultat.
Na naslednjih slikah so prikazani priključki treh različnih IR
sprejemnikov. Namerno sem narisal več različnih IR sprejemnikov, ker se mi je zgodilo da
sem v dobri veri da so se vsi proizvajalci držali istega razporeda priključkov zmotil,
ko sem dobil nekaj podobnega po obliki in brez oznake in mislil da to ni IR sprejemnik ali
pa je pokvarjen. Spodaj na tej strani je še več različnih oblik in tipov senzorjev. |
555 kot oscilator za IR senzorje
|
Kot
oscilator uporabljam IC 555 vezan kot astabilni multivibrator. Integrirec je poceni,
stabilnost oscilatorja pa je za te potrebe popolnoma zadovoljiva, saj ni Band Pass v
sprejemniku preveč ozkopasoven. Za doseg čim večjega dosega prenosa podatkov pri IR
komandah so dali v telekomandi razmerje med signalom in pavzo okoli 10% in tok skoz IR
diodo celo do 1 A. V vezju na desni je to razmerje 15%, tako da je potrebno povečevati
upor R5 v kolektorju drugega tranzistorja zaradi prevelike občutljivosti pri uporabi kot
senzor robota. Za točno frekvenco 36 kHz je treba malo menjati vrednost upora R3.
Oscilator je zadosti stabilen saj je TSOP 1836 relativno širokopasoven. Za uporabo v
robotu sem R5 povečal na 1k Ohm in s tem zmanjšal razdaljo na okoli 15 cm. Poleg tega
sem obe IR diodi postavil v smeri 45 o od smeri hoje ali vožnje. To se vidi
najlepše na sliki vozička. Ker je
tok skozi IR diodi sorazmerno majhen oscilator dela stalno in je priključen pred
stabilizatorjem za PIC16F84 in senzorje direktno na akumulatorje. S tem se izognemo
tudi eventualnim motnajm preko napajanja senzorjev. |
|
Za preizkušanje
občutljivosti senzorja si je najenostavneje narediti to preprosto vezje, s katerim lahko
nastavljamo občutljivost. Enostavno postavimo oscilator z IR oddajno diodo in tole
enostavno vezje eno poleg drugega in opazujemo kaj se dogaja. Pri tem moramo na IR oddajno
diodo vsekakor natakniti cevko iz termoskrčljivega materiala. Paziti moramo tudi na to da
IR dioda oddaja tudi nazaj in da je oscilator na pravi frekvenci IR sprejemnika. Na svojih
robotih uporabljam poenostavljen oscilator ker ne rabim občutljivosti večje od 10 cm. Z
zgornjim oscilatorjem in tem vezjem se da narediti preprosto IR daljinsko komando, samo
LED in njen predupor zamenjamo z relejem. Paralelno z relejem je pametno dodati zaščitno
diodo. Napajanje mora biti dobro filtrirano, saj lahko pride
38 kHz signal preko napajanja na sprejemnik. Zadostuje že 1 mV izmenične komponente v
napajanju in ga senzor zazna (čitaj zgoraj o AGC). Na sliki levo, je v napajanju
sprejemnika RC filter (47 Ohm, 100 nF). |
Za eksperimente
z IR in RC5 sprejemniki pride prav preizkusna ploščica iz programa PC v praksi. Na njo sem postavil vse
elemente, ki so potrebni za eksperimente. Z malim programom > Logger
< napisanem v Visual Basic-u se da nato videti RC5 signal TV daljinca. Pozor! Port.dll
je treba prekopirati v sistemski meni računalnika.
IR sprejemnik na testni ploščici
Shema IR sprejemnika na testni poščici
priključeni na COM port
RC5 protokol za IR telekomande
Diagram spodaj prikazuje RC5
protokol in njegovo sestavo. RC5 protokol uporablja t.i. bifazni signal. Informacija je
skrita v menjavi faze. Najkasneje po 1,77 ms menja signal svoj nivo. Sprejemnik se lahko
po teh spremembah nivoja vedno znova sinhronizira. Signal začenja vedno z enako dolgimi
začetnimi sekvencami. Nato sledijo tri podatkovna področja, pri čem menjava nivoja v
dolžini 1,77 ms predstavlja podatkovne bite. Po vsaki taki menjavi nivoja čaka
sprejemnik okoli 0,88 ms, nasledja menjava novoja je sinhronizacijska točka kot tudi
bitna informacija. V principu se lahko tako prenašajo poljubno dolge informacije. Pri RC5
signalu je to točno 12 bitov.
Kontrolni bit (Ctrl) se menja pri vsakem pritisku na
tipko med 1 in 0. Sprejemnik lahko na ta način loči med stalno in večkrat kratko
pritisnjeno tipko. Naslov naprave (Adress) vsebuje 5 bitov, pri čem so višjevredni biti
prenešeni najprej. Naslov za televizor je 0, za videorekorder pa 5. Tako je omogočena
uporaba več različnih naprav v istem prostoru. Podatkovno (Data) območje signala
sestavlja 6 bitov za 64 različnih tipk. Tudi tu so višjevredni biti prenešeni najprej.
Z malim programom > RC5 < tudi napisanem v Visual
Basic-u lahko vidiš vse tri podatke, ki jih pošilja določen daljinec. Port.dll
je treba prekopirati v sistemski meni računalnika. Več o tem se najde na Internetu, samo
je potrebno vnesti v nek iskalnik "RC5 protocoll".
Spodnja slika prikazuje primer
pritisnjene tipke za vklop in izklop televizorja Samsung.
Frekvencmeter za IR oscilator
Ker sem dobil goro vprašanj v
zvezi s tem kako nastaviti frekvenco oscilatorja, sem se odločil narediti ta mali
instrument, ki je pri nastavljanju v veliko pomoč.
Celoten instrument se da z malo truda in preciznosti
vgraditi v ohišje DB9/F konektorja. Lahko pa ga tudi sestavimo na ploščici iz programa PC v praksi. Napajanja ne rabi, saj se napaja z
napetostjo na izhodih COM porta. Za meritev in prikaz rezultata sem napisal majhen program v Visual Basic-u. Za ta program je treba prekopirati
v sistemski meni (za WIN XP je to:
C:\WINDOWS\SYSTEM32) računalnika Port.dll.
Za vse programe napisane v Visual Basic-u je v sistemskem meniju računalnika potrebna
tudi Msvbvm60.dll datoteka.Točnost in najvišja frekvenca
meritve je odvisna od računalnika, vendar to ni problem, saj je preizkušeno na
računalniku z AMD procesorjem 333 MHz. Če merimo samo signale v pozitivni smeri (kar je
npr. pri oscilatorju s 555) lahko kondenzator C4 izpustimo. V času merjenja lahko otrpne
miška saj program uporablja t.i. "REALTIME" ukaz in so zato v trenutku merjenja
vsi ostali programi zaustavljeni. To najprej opazimo na miškinem kursorju, ki lahko
"zamrzne" (ni pa to pravilo - odvisno od računalnika). Merjenje,
oziroma štetje (program šteje število impulsov na vhodu CTS COM port-a), traja samo
poldrugo sekundo tako da to ni problem.
Program izgleda tako
|
Še tiskanina za zgornje vezje
|
Digitalni osciloskop
|
S cenenim AD pretvornikom je mogoče narediti enostaven
osciloskop za signale nizke frekvence kot so v IR ali radijskih telekomandah. Vezje že
dolgo uporabljam kot enostaven osciloskop za opazovanje ravno teh signalov. Uporabil sem
TLC549CP, ki stane nekje okoli 300 Sit. To integrirano vezje je 8 bitni AD pretvornik, ki
omogoča 13000 meritev v približno 200 mikrosekundah. Celo merjenje traja 2,6
sekunde in je možno potem pogledati vsak detalj meritve z večjo ločljivostjo. Stikalo
na desni strani v ohišju osciloskopa je predvideno za vklop delilca frekvence, ki ga bom
vgradil če se pokaže potreba za merjenjem višjih frekvenc. Levo stikalo (na sliki
uporabljeno) veže na vhod kondenzator za merjenje izmeničnih napetosti. Ko je stikalo
razklenjeno merimo izmenično napetost. Meriti smemo napetosti do 3,5 V ~ (vršna
napetost je 5 V !!!).
Program v Visual Basicu je tukaj. Ko
program poženemo moramo prvo določiti na katera vrata imamo priključeno vezje, nato s
stikalom na desni vključiti napajanje. Ko z levim gumbom poženemo meritev nam v
času meritve (največ za 2,6 sekunde, odvisno od nastavitve meritve) otrpne miška in
zaustavi vse ostale programe zaradi Visual Basic ukaza REALTIME, tako da se izvaja v tem
času samo ta program. Po končani meritvi se vrnejo vse funkcije programa
Windows nazaj na stanje pred meritvami. Na ekranu ostane izrisana oblika vhodnega signala.
To je mogoče malo moteče, vendar če želimo meritev v realnem času je potrebno. |
In še nekaj
različnih IR sprejemnikov
|