UNIVERZITET U BEOGRADU
ELEKTROTEHNIČKI FAKULTET
Mladen Panović, 3059/2013
Daljinska kontrola i upravljanje kućnim uređajima
Projekat iz predmeta Personalizacija telekomunikacionih servisa
mentor:
doc. dr Milan Bjelica
Beograd, februar 2014.
Sažetak
Ovaj rad prikazuje osnove konfigurisanja i korišćenja uređaja poput RaspberryPI pri upravljanju
i kontroli kućnim aparatima. Rad demonstrira korišćenje GPIO (General Purpose Input/Output)
modula uz primenu WiringPI biblioteke i LIRC aplikacije (Linux Infrared remote control), kao i
korišćenje predajne i prijemne IR (Infrared) diode u cilju kontrolisanja TV prijemnika.
Ključne reči: Automatizacija, Upravljanje, IR kontrola, Raspberry PI, GPIO, LIRC
2
Sadržaj
Sadržaj............................................................................................................................................. 3 Slike ................................................................................................................................................ 4 Tabele.............................................................................................................................................. 5 Uvod................................................................................................................................................ 6 1.1 Daljinska kontrola i upravljanje uređajima ...................................................................... 6 1.2 Raspberry PI ..................................................................................................................... 7 1.3 GPIO (General-purpose input/output) modul .................................................................. 8 Daljinska kontrola ......................................................................................................................... 11 2.1 IR predajnik i prijemnik ...................................................................................................... 11 2.2 Protokol RC-5 ..................................................................................................................... 14 2.3 LIRC (Linux infrared remote control) ................................................................................ 17 Povezivanje, konfigurisanje i testiranje sistema ........................................................................... 18 3.1 Povezivanje sistema ............................................................................................................ 18 3.2 Konfigurisanje sistema........................................................................................................ 20 3.3 Testiranje sistema................................................................................................................ 27 Zaključak....................................................................................................................................... 28 3
Slike
Slika 1.2 Raspberry PI .................................................................................................................... 7 Slika 1.3 GPIO modul na Raspberry PI ......................................................................................... 8 Slika 1.3 Šematski prikaz rasporeda GPIO pin-ova........................................................................ 9 Slika 2.1.1 Prikaz snage izračenog signala u funkciji od talasne dužine i ugla zračenja.............. 11 Slika 2.1.2 Izgled i blok dijagram TSOP34838 ............................................................................ 13 Slika 2.1.3 Relativna spektralna osetljivost u funkciji detektovane talasne dužine...................... 13 Slika 2.2.1 RC-5 forma signala ..................................................................................................... 14 Slika 2.2.2 Signalizacioni oblik simbola „0“ i „1“ primenom Manchester koda ......................... 15 Slika 2.2.3 Prikaz signalizacije RC-5 protokola ........................................................................... 16 Slika 3.1.1 Povezivanje IR detektora, IR predajnika i LED sa GPIO Raspberry PI .................... 19 Slika 3.1.2 Izgled povezanog sistema ........................................................................................... 19 Slika 3.2 WiringPI nomenklatura GPIO pin-ova .......................................................................... 25 4
Tabele
Tabela 1.3.1 Prikaz nomenklature GPIO pin-ova ......................................................................... 10 Tabela 1.3.2 Legenda .................................................................................................................... 10 Tabela 2.1.1 Karakteristike IR predajne diode TSUS5402........................................................... 11 Tabela 2.1.2 Karakterisnike IR prijemne diode TSOP34838 ....................................................... 12 5
Glava 1
Uvod
U ovom poglavlju biće pojašnjena ideja i proces daljinske kontrole kućnih uređaja, kao i
dat kraći opis uređaja Raspberry PI, u okviru koga se nalazi GPIO (General-purpose
input/output) modul.
1.1 Daljinska kontrola i upravljanje uređajima
Daljinska kontrola nekih kućnih uređaja poput TV prijemnika ili klima uređaja, odavno je
zastupljena u formi IR daljinskih upravljača. Ostalim kućnim uređajima se samo naizgled ne
može upravljati daljinskim putem. Naime, i ostalim uređajima poput celokupnog sistema rasvete,
sigurnosti, vrata, grejanja, kao i utičnicama i prekidačima, može se upravljati.
Ideja daljinske kontrole proizilazi iz potreba korisnika za personalizacijom i
prilagođenjem sopstvenim potrebama raznih dostupnih servisa i uređaja. Sadašnji sistemi za
kućno upravljenje često nisu sveobuhvatni i kompatibilni sa velikim brojem uređaja već
prisutnim u domaćinstvima, pa se stoga teži rešenju za upravljanjem svim dostupnim aparatima.
Rešenje je upravo u instalaciji custom-made sistema. Ovi sistemi mogu se kreirati tako da
zadovolje sve potrebe korisnika, a kao glavnu prednost ističemo to da se stalno mogu
nadograđivati i prilagođavati novim aparatima.
U okviru ovog projekta koji obrađuje tek mali deo kućne automatizacije, akcenat će biti
stavljen na upravljanje pametnim uređajima u okviru kojih već postoji implementiran sistem IR
daljinskog upravljanja, kao i demonstrirane prekidačke funkcije paljenja i gašenja svetla u okviru
nekog objekta. Izrađeni projekat predstavlja platformu za skeniranje signala daljinskih upravljača
TV prijemnika, klima uređaja ili IR LED trake, i njihove centralizovane kontrole.
6
1.2 Raspberry PI
Raspberry PI predstavlja minijaturni, džepni računar razvijen od strane Raspberry PI
Fondacije (Velika Britanija) u cilju edukovanja dece o računarskim osnovama i promovisanja
korišćenja računara u školama. Svojim karakteristikama i brojnim mogućnostima koje nudi,
Raspberry PI je pokrenuo revoluciju u korišćenju minijaturnih računarskih platformi, a dokaz za
to je da je upravo Raspberry PI ocenjen kao „najiščekivaniji računar 2012“, sa tada preko 350
000 ljudi na listi čekanja za kupovinu ovog uređaja.
Raspberry PI svojim karakteristikama parira prosečnim PC računarima (Pentium II/III) i
u potpunosti zadovoljava potrebe korisnika kao što su Web Browsing, gledanje full HD videa
(1080p), korišćenje Office programa i sl. Usled izuzetno povoljne cene uređaja (oko 40€), malih
dimenzija, niske potrošnje električne energije, tihog rada i moćnih karakteristika koje poseduje,
ovaj uređaj predstavlja odličnu platformu za kontrolisanje i upravljanje raznim drugim
uređajima, na čemu će i biti akcenat u daljem radu.
Takođe, pored ovih funkcija, uređaj može paralelno da funkcioniše kao WEB i FTP
server i kao klijent računar dok obavlja funkcije rutera i tačke pristupa. Stoga, Raspberry PI
može predstavljati tačku pristupa sistema za manipulisanje i upravljanje raznim kućnim
uređajima poput TV prijemnika, klima uređaja, sistema za grejanje, kućne rasvete, raznih alarma,
sistema za zalivanje cveća, sistema za nadzor prostora, zaključavanje vrata, različitih senzora i sl.
Slika 1.2 Raspberry PI
7
1.3 GPIO
G
(G
General-p
purpose input/ou
i
utput) moodul
GPIO
G
predstaavlja pin modul i low-lev
vel interfejs u okviru inttegrisanih koola čiji se piin-ovi
jednostav
vno mogu mapirati
m
i ko
ontrolisati prrimenom oddređenih proogramskih jeezika poput C ili
Python i sl.
Raspberry
R
PII poseduje integrisan
i
GPIO
G
modul i tako omoogućava razlličitim eksteernim
uređajim
ma direktan pristup
p
procesoru i celo
okupnim res ursima sisteema. Raspbeerry PI rasppolaže
modulom
m od 26 pin--ova, rasporređenih u dv
ve kolone odd po 13 pin--ova koji suu na raspolagganju
korisnicim
ma. Ovi pin--ovi su oznaačeni oznakaama od P1-1 do P1-26, kkao što je i prrikazano na slici:
Slik
ka 1.3 GPIO
O modul na R
Raspberry PII
Prikazani pin
n-ovi nemaj
aju identičnee funkcije. Pinovi P1--01, P1-02, P1-04 i P
P1-17
predstavlljaju tzv. „p
power pins“ i to P1-01 i P1-17 kojii su 3,3V pin-ovi, a P11-02 i P1-044 koji
predstavlljaju izvore napona
n
od 5V.
5 Maksimaalna dozvoljjena jačina sstruje je Imax= 50mA zaa pinove od 3,3V i Imax=
= 700 - 1000
0mA za pino
ove od 5V. N
Napomenim
mo i to da see veliki akceenat u
G
stavljaa upravo na pin-ove od 5V. Naimee, uređaj Rasspberry PI nnije tolerantaan na
radu sa GPIO
„povratni“ napon od
d 5V, već saamo na 3,3V
V i kako ne bi došlo to trajnog ošteećenja uređaaja, o
s mora vo
oditi računa. Pinovi P1
1-06, P1-099, P1-14, P
P1-20 i P1--25 predstavvljaju
ovome se
„GROUN
ND“ pin-ov
ve. Svi ostaali pin-ovi mogu se pprekonfiguriisati za obbavljanje mnnogih
naprednih
h funkcija, i dostupni su korisniccima za koorišćenje u svrhe logiččkih ulaza/izzlaza.
Međutim
m, neki pino
ovi su prem
ma početnim
m konfiguraacijama većć predodređeeni za odreeđene
funkcije kao npr: P1--3 (SDA0) i P1-5 (SCL0
0) koji su I²C
C (Inter-Inteegrated Circuuit) interfejsii, P112 (GPIO
O 18) koji predstavlja PCM_CLK
K i stoga poodržava PW
WM (Puls-width modulaation),
GPIO 14
4 & 15, koji su
s namenjen
ni za UART (Universal aasynchronouus receiver/trransmitter) i sl.
8
Šematski prikaz GPIO prikazan je na slici:
Slika 1.3 Šematski prikaz rasporeda GPIO pin-ova
9
Pri radu sa GPIO modulom, različitim pin-ovima su dodeljeni različiti nazivi, i to:
Broj pina
P1-01
P1-02
P1-03
P1-04
P1-05
P1-06
P1-07
P1-08
P1-09
P1-10
P1-11
P1-12
P1-13
P1-14
P1-15
P1-16
P1-17
P1-18
P1-19
P1-20
P1-21
P1-22
P1-23
P1-24
P1-25
P1-26
Naziv
Predefinisana funkcija
3,3V
5V
GPIO 0
5V
GPIO 1
GND
GPIO 4
GPIO 14
GND
GPIO 15
GPIO 17
GPIO 18
GPIO 21
GND
GPIO 22
GPIO 23
3,3V
GPIO 24
GPIO 10
GND
GPIO 9
GPIO 25
GPIO 11
GPIO 8
GND
GPIO 7
I2C0_SDA
I2C0_SCL
GPCLK0
UART0_TXD
UART0_RXD
PCM_CLK
PCM_DOUT
SPI0_MOSI
SPI0_MISO
SPI0_SCLK
SPI0_CE0_N
SPI0_CE1_N
Tabela 1.3.1 Prikaz nomenklature GPIO pin-ova
+5 V
+3,3 V
Ground,
0V
UART
Tabela 1.3.2 Legenda
10
GPIO
SPI
I²C
Glava 2
Daljinska kontrola
U ovom poglavlju biće predstavljen princip rada IR prijemnika i predajnika, date osnovne
karakteristike korišćenih komponenati, kao i prikazana struktura protokaola koji se koristi pri
daljinskoj kontroli TV prijemnika, RC-5. Takođe, biće predstavljen i softverski alat LIRC koji
omogućava dekodiranje i analizu detektovanih infracrvenih signala.
2.1 IR predajnik i prijemnik
Na strani predaje, primenom IR LED diode, emituju se modulisani impulsi signala.
Emitujuća IR dioda zrači impulse koji reprezentuju odgovarajuće binarne kodove. Kao predajnu
IR diodu koristićemo model TSUS5402, namenjen prvenstveno korišćenju u okviru sistema za
daljinsku kontrolu uređaja. Neke od karakteristika prikazane su tabelarno.
Model
Dimenzije
Ugao zračenja:
Talasna dužina:
TSUS5402
Ø 5 mm
φ = ±22°
λ = 950 nm
Tabela 2.1.1 Karakteristike IR predajne diode TSUS5402
Slika 2.1.1 Prikaz snage izračenog signala u funkciji od talasne dužine i ugla zračenja
11
IR (Infra Red) detektori su detektori koji su osetljivi na zračenja u infra-crvenom delu
spektra. Dva glavna tipa ovih detektora su termički i foto-detektori. Najčešću primenu nalaze u
daljinskim kontrolama i upravljanju uređajima. U daljem radu koristićemo IR detektor, odnosno,
prijemnu foto diodu model TSOP34838, namenjenu prvenstveno detekciji signala TV daljinskih
upravljača.
Za razliku od klasičnih foto-detektora, IR detektori su konstruisani tako da filtriraju samo
zračenja u infra-red delu spektra i nisu namenjeni detekciji zračenja iz vidljivog dela spektra, dok
su klasične foto-ćelije dobri detektori vidljivog dela spektra (žuta/zelena), ali ne i IR dela. IR
detektori poseduju integrisan demodulator koji ima ulogu u demodulisanju IR signala
modulisanog odgovarajućom frekvencijom nosioca. Konkretno, kod modela TSOP34838, ta
frekvencija je 38KHz. To zapravo znači da obična zračeća IR LED dioda ne može biti
detektovana od strane TSOP34838, ukoliko ne zrači signal sa frekvencijom nosioca od 38KHz.
Za razliku od klasičnih foto-ćelija koje nemaju integrisan demodulator i koje se u zavisnosti od
količine svetlosti koja pada na foto-ćeliju ponašaju kao otpornik promenljive otpornosti, IR
detektori imaju digitalni izlaz. Tačnije, ukoliko je na mestu prijema detektovan modulisani
signal, na digitalnom izlazu je prisutan napon 0V što odgovara logičkoj nuli. Ukoliko modulisani
signal nije prisutan, na izlazu je napon od 5V (3.3V u našem slučaju), što odgovara logičkoj
jedinici.
TSOP34838 predstavlja prijemnik infracrvenih signala daljinskih upravljača čiji se izlaz
može direktno povezati sa mikrokontrolerom. Ovaj model IR detektora najčešću primenu nalazi
u okviru TV prijemnika i kompatibilan je sa velikom većinom standarda kao što su npr: RC5,
RC6, NEC, Panasonic, Sharp, r-step, r-map, Thompson RCA.
Neke od osnovnih karakteristika prikazane su u tabeli:
Model
Pinning
Frekvencija nosioca
Dimenzije
Napon napajanja – Vs
Struja napajanja – Is
Napon na izlazu – Vout
Struja na izlazu – Iout
Temperatura sredine
Snaga
Implementirano
Zaštita od neželjenog
zračenja
Protokoli
TSOP34838
1 = OUT, 2 = GND, 3 = Vs
38 KHz
6,9 x 5,6 x 6,0 (W x H x L) [mm]
-0,3 V do +6 V
3 mA
-0,3 V do (Vs+0,3 V)
5 mA
-25 do +85°C
10 mW
Fotodetektor, predpojačavač, filtar
Poboljšana zaštita od elektromagnetske interferencije (EMI),
kao i od ambijentalnog osvetljenja
RC-5, RC-6, Panasonic, NEC, Sharp, r-step, Thomson RCA, r-map
Tabela 2.1.2 Karakterisnike IR prijemne diode TSOP34838
12
Slika 2.1.2 Izgled i blok dijagram TSOP34838
Slika 2.1.3 Relativna spektralna osetljivost u funkciji detektovane talasne dužine
13
2.2 Protokol RC-5
RC-5 protokol, originalno razvijen krajem `80-tih godina XX veka od strane kompanije
Philips, predstavlja protokol za infracrveno daljinsko upravljanje uređajima. Protokol je usvojen
od strane mnogobrojnih evropskih i američkih proizvođača audio i video opreme.
Za predstavljenje signala, protokol koristi bi-fazno modulisan signal, Manchester kod, sa
frekvencijom nosioca od 36KHz (Često nosioci koriste još i frekvencije 38KHz i 40KHz). Na
strani prijema, signal je detektovan pomoću fotodiode, tj. IR detektora, i biva pojačan, filtriran i
demodulisan.
Signali RC-5 protokola predstavljani su sa 14 bita, a njihovu strukturu čine:
1. Start bit koji je uvek logička jedinica i omogućava prijemnom IR detektoru da podesi
odgovarajuće pojačanje. Start bit inicira prijemnu sekvencu.
2. Field bit koji nosi informaciju o tome da li je komanda poslata u lower field (logička 1 =
od 0 do 63) ili u upper field (logička 0 = od 64 do 127 )
3. Control bit koji menja vrednost svaki put kada je taster na daljinskom upravljaču pritisnut
(toggle bit). Ovo omogućava prijemnom uređaju da razlikuje dva sukcesivna pritiska
istog tastera od zadržavanja pritisnutog jednog tastera (npr. Razlikovanje „1“ i „1“ od
„11“). Control bit ostaje nepromenjen dokle god je taster ostaje pritisnut, ali menja
vrednost ukoliko je taster ponovo pritisnut ili je pritisnut neki drugi taster.
4. 5-bit system address – selekcija jednog od mogućih 32 sistema. Ovaj set od 5 bit-a
predstavlja ID uređaja kome je signal namenjen. Na ovaj način moguće je koristiti više
uređaja u istoj prostoriji koji koriste isti RC-5 protokol, a da pritom ne dolazi do mešanja
komandnih signala.
5. 6-bit command – komanda koja uz field-bit predstavlja jednu od 128 mogućih RC5
komandi.
Primer jednog RC-5 signala predstavljen je na sledećoj slici.
Slika 2.2.1 RC-5 forma signala
14
Frekvencija nosioca odabrana je tako da ne dolazi do interferencije i eventualnih smetnji
prouzrokovanih frekvencijom skeniranja linija na TV prijemniku. Protokol koristi bi-fazno
modulisan signal (Manchester kod) sa frekvencijom nosioca od 38 KHz gde su binarni simboli
predstavljeni na sledeći način:
Slika 2.2.2 Signalizacioni oblik simbola „0“ i „1“ primenom Manchester koda
Kako se nosilac ponavlja sa učestanošću od 38 KHz, odnosno, svakih 26,315 µs, i kako je faktor
režima tj. ispune - duty factor, 25% (bira se u opsegu od 25% do 33%), trajanje impulsa nosioca
zapravo iznosi 6,579 µs. Pri predstavljanju jednog bita koji se koristi pri signaliziranju u RC-5
protokolu, tj. simbola Manchester koda, koriste se 32 ovakva impulsa nosioca. Stoga, period
ponavljanja simbola Manchester koda iznosi 2 x 32 x 26,315 µs = 1,684 ms. Kako protokol
operiše rečima dužine 14 bit, potrebno vreme emisije iznosi 14 x 1,684ms = 23,576 ms. Pri
ponavljanju koda, odnosno dok taster ostaje pritisnut, kodne reči od 12 bita (toggle bit + 5 bit ID
+ 6 bit command) emituju se svakih 107,789 ms (4096 / 38 KHz).
15
Slika 2.2.3 Prikaz signalizacije RC-5 protokola
16
2.3 LIRC (Linux infrared remote control)
LIRC (Linux Infrared remote control) je open-source softverski alat koji omogućava
dekodiranje i slanje infracrvenih signala velikog broja najčešće korišćenih daljinskih upravljača,
odnosno protokola za infracrvenu daljinsku komunikaciju kao što su RC-5, RC-6, NEC, JVC,
SONY, LIRC. Takođe, sadrži i integrisane driver-e za rad sa mnogobrojnim IR predajnicima i
prijemnicima. Korišćenjem LIRC-a korisnici mogu detektovati i dekodirati veliki broj kodova
koje koriste najčešći današnji daljinski upravljači koji koriste IR sistem emitovanja.
Najvažnija komponenta LIRC-a je lircd daemon, odnosno proces koji funkcioniše kao apstraktni
sloj (layer) u okviru Unix kernel-a i koji korišćenjem odgovarajućih driver-a omogućava
dekodiranje primljenih IR signala. Takođe, prihvata i procesira komande za slanje. Drugi
daemon je lircmd koji se konektuje na lircd i prevodi IR kodove u pokrete i pomeraje kursora.
U okviru LIRC-a postoje već predefinisane funkcije i procesi koji se mogu koristiti za operisanje
IR signalima, a najznačajniji od njih su:




Mode2
Irrecord
Irw
Irsend
Mode2 predstavlja režim rada LIRC-a koji se koristi u detektovanju i očitavanju „sirovog“ izlaza
sa IR prijemnika. Mode2 nam omogućava da detektujemo i očitamo talasni oblik signala
daljinskih upravljača bez korišćenja skupih osciloskopa. Ukoliko je detektovan IR signal, Mode2
će jednostavno na ekranu ispisivati detektovane impulse u formi pulse / space.
Irrecord mod predstavlja režim rada koji omogućava beleženje i dekodiranje IR signala sa
daljinskih upravljača i kreiranje konfiguracione datoteke za lircd. Napomenimo i to da će signali
biti dekodovani samo ukoliko je reč o nekom od standardnih protokola kao što su: RC-5, RC-6,
NEC, JVC, SONY i sl. Ukoliko je reč o nepoznatom protokolu, signal se i dalje može snimiti i
koristiti u „sirovom“ obliku. Takođe, mnoge konfiguracione datoteke najpoznatijih proizvođača
su već dostupne na zvaničnoj web stranici LIRC-a i slobodne su za preuzimanje i korišćenje.
Irw predstavlja proces detektovanja predefinisanih tastera iz lirc konfiguracione datoteke i
povezivanja sa Unix socket-om uz ispisivanje detektovanih tastera na izlazu terminala.
Irsend predstavlja bazični LIRC program za slanje IR komandi mapiranih u okviru
konfiguracione datoteke. Irsend direktno nalaže lircd daemon-u slanje jednog ili više signala,
odnosno komandi. U okviru irsend, definisane su funkcije kao što su SEND_ONCE,
SEND_START, SEND_STOP, LIST i sl. Na taj način se efikasno i jednostavno može upravljati
uređajima poput TV prijemnika, klima-uređaja, IR dimer-a, direktno korišćenjem terminala.
17
Glava 3
Povezivanje, konfigurisanje i
testiranje sistema
U ovom poglavlju prikazan je način povezivanja IR detektora, IR predajne diode i LED
dioda sa GPIO u okviru Raspberry PI, kao i njihovo testiranje. Takođe, predstavljena je i LIRC
konfiguraciona datoteka sa dekodiranim signalima za kontrolu TV prijemnika, detektovanih
pomoću IR detektora.
3.1 Povezivanje sistema
Za povezivanje sistema koji čine IR detektor, IR predajna dioda i dve LED diode biće
korišćeni sledeći GPIO pin-ovi u okviru Raspberry PI:





P1-01
P1-06
GPIO 18
GPIO 17
GPIO 22
Pin P1-01 predstavlja izvor napajanja od 3,3 V i na njega će biti priključen krak broj #3 sa
TSOP34838. Krak broj #2 će biti priključen za Ground pin P1-06, dok je krak #1, koji
predstavlja digitalni izlaz iz IR detektora, priključen na GPIO 18 koji poseduje PCM_CLK.
Za povezivanje LED dioda biće korišćeni GPIO 17 i GPIO 22, kao logički ulazi, i pin P1-06. Za
povezivanje TSUS5402 će biti korišćeni pin-ovi GPIO 21, kao i neki od P1-06 kao Ground pin.
Ovako povezan sistem spreman je za konfigurisanje detekcije IR signala daljinskih upravljača,
njihovog slanja, kao i za kontrolu LED dioda.
18
Slika 3.1.1 Povezivanje IR detektora, IR predajnika i LED sa GPIO Raspberry PI
Slika 3.1.2 Izgled povezanog sistema
19
3.2 Konfigurisanje sistema
Konfigurisanje ovako povezanog sistema započinje instalacijom softverskog alata LIRC, kao i
biblioteka koje dati alat koristi.
[email protected] ~ $ sudo apt-get install lirc liblircclient-dev
Nakon procesa preuzimanja i instalacije LIRC-a, potrebno je dodeliti neki od GPIO pin-ova koji
će se koristiti. Budući da je IR detektor priključen na GPIO18 pin, koji podržava PCM_CLK, u
okviru operativnog sistema Raspberry PI, pristupom lokaciji /etc/modules neophodno je
postaviti sledeće parametre:
lirc_dev
lirc_rpi gpio_in_pin=18 gpio_out_pin=22
U okviru /etc/lirc/hardware.conf potrebno je konfigurisati sledeće parametre:
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"
# Don't start lircmd even if there seems to be a good config file
# START_LIRCMD=false
# Don't start irexec, even if a good config file seems to exist.
# START_IREXEC=false
# Try to load appropriate kernel modules
LOAD_MODULES=true
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"
# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
20
Nakon toga, početna podešavanja LIRC-a su završena i mogu se testirati i videti da li IR detektor
funkcioniše i reaguje na zračenja IR dioda.
[email protected] ~ $ sudo /etc/init.d/lirc stop
[email protected] ~ $ mode2 -d /dev/lirc0
Pritiskom na tastere daljinskog upravljača, detektovano i prikazano je sledeće:
pulse
space
pulse
space
pulse
space
pulse
space
pulse
space
pulse
space
pulse
space
pulse
space
pulse
space
627
514
624
513
599
521
618
1668
589
532
624
513
599
521
618
1668
589
532
Uviđanjem da IR detektor funkcioniše i detektuje impulse, možemo pristupiti kreiranju
konfiguracione datoteke i mapiranju i detektovanju kodova daljinskog upravljača. Komandom
irrecord započinje kreiranje datoteke lircd.conf u koju će biti smešteni kodovi.
[email protected] ~ $ irrecord -d /dev/lirc0 ~/lircd.conf
Konfiguraciona datoteka za lircd smeštena je na lokaciji: /etc/lirc/lircd.conf i
sadrži osnovni opis signala kao i blok kod u okviru koga su smeštene komande i njima dodeljeni
kodovi.
21
U okviru dela koji opisuje signal, sva polja su opciona osim polja name. Ovih
konfiguracionih datoteka može biti više, ali svaka mora imati različito ime. Nakon toga sledi
kodni deo koji počinje i završava se sa begin remote i end remote ukoliko je reč o dekodiranim
signalima, ili begin raw_codes i end raw_codes ukoliko je reč o „sirovim“ signalima koji nisu
dekodirani. U kodnom delu, svaka linija sadrži naziv tastera i kod u heksadecimalnom zapisu
koji mu je dodeljen, i koji obično počinje sa 0x. Ukoliko je reč o „sirovom“ obliku signala, pored
naziva tastera stajaće lista celih brojeva u decimalnom obliku, koja predstavlja signal koji
odgovara datom tasteru. Prvi broj će odgovarati dužini trajanja impulsa izraženoj u
mikrosekundama, a drugi broj trajanju razmaka, odnosno pauze, koja sledi (do sledećeg
impulsa). Pri slanju signala, kod tastera se šalje nakon pre-signal i pre post-signal sekvenci.
Za opis signala koriste se sledeća polja:



















name <remote name> - jedinstven naziv dodeljen konfiguracionoj datoteci
bits <number of data bits> - broj bita u heksadecimalnom zapisu koji predstavljaju
korisnu informaciju, odnosno koji odgovaraju nekom od tastera.
flags <flag1><flag2> i sl. – Specijalni nizovi karaktera koji odgovaraju različitim
karakteristikama daljinskih upravjlača i koji određuju značenje određenih polja
eps <relative error tolerance> - Relativna tolerancija greške za primljene signale, izražena
u procentima (decimal integer)
aeps <absolute error tolerance> - Apsolutna tolerancije greške ze primljene signale,
izražena u mikrosekundama.
header <phead><shead> - Inicijalni impuls koji se šalje i njegovo trajanje
three <pthree><sthree> - Samo za RC-MM daljinskih upravljača
two <ptwo><stwo> - Samo za RC-MM daljinskih upravljača
one <pone><sone> - Impuls koji reprezentuje binarnu jedinicu, i njegovo trajanje
zero <pzero><szero> - Impluls koji reprezentuje binarnu nulu, i njegovo trajanje
ptrail <trailing pulse> - Prateći impuls koji dolazi odmah nakon post_data
plead <leading pulse> - Vodeći impuls koji dolazi odmah nakon header-a
foot <pfoot><sfoot> - Impuls i razmak koji slede odmah nakon trailing pulse-a
repeat <prepeat><srepeat> - Impuls i trajanje koji zamenjuju sve između leading pulse-a
i trailing pulse-a kad god se signal ponavlja. Foot impuls se ne šalje ukoliko nije prisutan
REPEAT_HEADER flag.
pre_data_bits <number of pre_data_bits> - broj bita u pre_data kodu
pre_data <hexidecimal number> - Heksadecimalni kodni zapis koji označava sekvencu
nula i jedinica odmah nakon leading pulse-a.
post_data_bits <number of pre_data_bits> - Broj bita u post_data kodu.
post_data <hexidecimal number> - Heksadecimalni koidni zapis koji označava sekvencu
nula i jedinica odmah nakon post signala.
pre <ppre><spre> - Impuls i razmak odmah nakon pre_data.
22







post <ppost><spost> - Impuls i razmak odmah nakon koda koji odgovara nekom od
tastera.
gap <gap length> - Razmak koji sledi nakon trailing pulse-a i koji je obično nešto duži.
repeat_gap <repeat_gap length> - Razmak koji sledi nakon trailing pulse-a i koji
prethodi ponovnom slanju iste kodne sekvence usled pritiska istog tastera.
min_repeat <minimum number of repetitions> - Minimalni broj puta koji je signal
ponovljen svaki put kada je taster pritisnut. 0 označava da je signal poslat samo jednom.
toggle_bit <bit to toggle> - Bit pre_data koda ili post_data koji menja vrednost 0 ili 1
svaki put kada je dugme pritisnuto
frequency <hertz> - Frekvencija nosioca signala (default is 38000)
duty_cycle <on time> - Procenat vremena tokom trajanja impulsa u kojem dolazi do
slanja infracrvenog signala (default is 50).
Flags descriptions










RC5 – Koristi se RC-5 protokol
RC6 – Koristi se RC-6 protokol
RCMM – Koristi se RC-MM protokol
SHIFT_ENC – Zastareli flag, sada sinonim za RC5. Položaj impulsa (pre ili posle
razmaka) određuje da li je u pitanju 1 ili 0.
SPACE_ENC – 1 i 0 mogu biti razlikovani po dužini razmaka.
REVERSE – Obrtanje redosleda pre_data, post_data i bita kodova. Ukoliko je ovaj flag
naznačen, bitovi najmanjeg značaja se prvi šalju (npr. 0x123 postaje 0xC48).
NO_HEAD_REP – Header tj. zaglavlje se ne šalje ukoliko je signal ponovljen (taster
pritisnut i zadržan)
CONST_LENGTH – Celokupna dužina signala ostaje nepromenjena tj. konstantna.
RAW_CODES – kodivi su u „sirovom“ obliku.
REPEAT_HEADER – Zaglavlje se šalje kada je signal ponovljen.
23
Nakon procesa detektovanja tastera i imenovanja dekodiranih sekvenci, konfiguraciona datoteka
lircd.conf sada izgleda ovako:
begin remote
name GRUNDIG
bits
5
flags RC5|CONST_LENGTH
eps
30
aeps
100
one
850
822
zero
850
822
plead
853
pre_data_bits
8
pre_data
0x80
gap
107843
toggle_bit_mask 0x800
begin codes
KEY_0
KEY_1
KEY_2
KEY_3
KEY_4
KEY_5
KEY_6
KEY_7
KEY_8
KEY_9
KEY_UP
KEY_DOWN
KEY_LEFT
KEY_RIGHT
KEY_MENU
KEY_VOLUMEUP
KEY_VOLUMEDOWN
KEY_PLAY
KEY_STOP
KEY_PAUSE
KEY_POWER
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x16
0x17
0x13
0x12
0x19
0x10
0x11
0x0E
0x1A
0x0B
0x0C
end codes
end remote
Dalje, nakon restartovanja LIRC procesa radi aktivacije konfiguracione datoteke, može se
pristupiti jednostavnoj proveri sistema korišćenjem irw.
[email protected] ~ $ sudo /etc/init.d/lirc restart
[email protected] ~ $ irw
0000000000001001 00 KEY_1
0000000000001001 01 KEY_1
0000000000001001 02 KEY_1
0000000000001002 00 KEY_2
0000000000001002 01 KEY_2
0000000000001003 00 KEY_3
GRUNDIG
GRUNDIG
GRUNDIG
GRUNDIG
GRUNDIG
GRUNDIG
24
Pri kontroli LED dioda, biće korišćen prvenstveno programski jezik C. Radi
manipulisanja GPIO modulom u okviru programa napisanih u C, potrebno je koristiti biblioteku
WiringPI koja sadrži brojne funkcije koje su namenjene korišćenju GPIO modula. Takođe,
napomenimo i to da WiringPI ima drugačiju nomenklaturu GPIO pinovi, i to:
Slika 3.2 WiringPI nomenklatura GPIO pin-ova
25
Radi ilustracije kontrole osvetljenja, biće primenjene sledeće dve skripte:
KONTROLA RASVETE U STANU
#include <wiringPi.h>
#include <stdio.h>
main (){
int i,p;
printf ("\n\n\nKONTROLA SVETLA U ? \n\n Kupatilo: 1 \n Spavaca soba: 2 \n ");
scanf ("%d",&p);
if (p==1) {
printf ("Kupatilo.\n");
printf("ON: 1\nOFF: 2");
scanf ("%d",&i);
if (i==1) {
wiringPiSetup () ;
pinMode (0, OUTPUT) ;
digitalWrite (0, HIGH) ;
}
else if (i==2) {
wiringPiSetup () ;
pinMode (0, OUTPUT) ;
digitalWrite (0, LOW) ;
}}
else if (p==2) {
printf ("Spavaca soba.\n");
printf("ON: 1\nOFF: 2");
scanf ("%d",&i);
if (i==1) {
wiringPiSetup () ;
pinMode (3, OUTPUT) ;
digitalWrite (3, HIGH) ;
}
else if (i==2) {
wiringPiSetup () ;
pinMode (3, OUTPUT) ;
digitalWrite (3, LOW) ;
}}}
BLINK
#include <wiringPi.h>
main ()
{
wiringPiSetup () ;
pinMode (0, OUTPUT) ; // WiringPI pin 0 = GPIO 17
for (;;)
{
digitalWrite (0, HIGH) ; delay (500) ;
digitalWrite (0, LOW) ; delay (500) ;
}}
26
3.3 Testiranje sistema
Test 1.
Jednostavnim korišćenjem LIRC-a moguće je slati signale iz konfiguracionih datoteka,
primenom IR predajne diode koja je povezana na GPIO22.
irsend SEND_ONCE GRUNDIG KEY_VOLUMEDOWN
irsend SEND_ONCE GRUNDIG KEY_1
irsend SEND_ONCE GRUNDIG KEY_2
irsend SEND_ONCE GRUNDIG KEY_POWER
Test 2.
Testiranje kontrole rasvete:
sudo ./blink
Sudo ./pr
27
Glava 4
Zaključak
Ovaj projekat imao je zadatak da prvenstveno prikaže vid personalizacije različitih
kućnih sistema i prilagođenje i iskorišćenje dostupnih resursa u korist korisnika.
Kako su sadašnji dostupni renomirani sistemi za kontrolu kućnih uređaja veoma skupi, i kako
trenutno ne obuhvataju širok spektar kontrole uređaja, korišćenje custom-made sistema za
upravljanje predstavlja veoma efikasan i sveobuhvatan način pristupa i kontrole svih sadašnjih
kućnih uređaja. Naime, napretkom tehnologije, danas su dostupni i pristupačni uređaji poput IR
dimera, RF dimera, IR kontrolisanih LED-ova i raznih IR releja koji se kao i svi dosadašnji
uređaji koji dolaze sa daljinskim upravljačima (TV prijemnici, klima uređaji, sistemi za
grejanje), mogu kontrolisati bežičnim putem, odnosno primenom IR ili RF tehnologija. Takođe,
mogu se kontrolisati razne IR/RF utičnice, a tako i rad mnogih kućnih uređaja.
Uveliko su dostupni i brojni senzori koji se mogu implementirati u personalizovane sisteme
upravljanja, kao npr. temperaturni senzori, senzori pokreta, senzori za ugljen dioksid ili svetlosni
senzori.
Primenom uređaja kao što su Raspberry PI ili Arduino, moguće je kreirati sveobuhvatni sistem
upravljanja kome se može pristupati i preko mobilnih telefona. Uz prisustvo internet konekcije,
mogu se izraditi i sistemi za daljinsku kontrolu uređaja kojima se može pristupati i sa veoma
udaljenih lokacija što predstavlja posebnu pogodnost u sistemima video-nadzora,
zaključavanja/otključavanja vrata, kontroli grejanja i sl. Takođe, primenom PWM, može se
upravljati i radom raznih motora, pa se tako mogu i otvarati vrata od garaža ili čak kontrolisati
roletne i sistemi za zalivanje cveća u udaljenim ubjektima.
28
Download

Glava 2 Daljinska kontrola