Kazalo:

Računalniško IR daljinsko upravljanje: 4 koraki
Računalniško IR daljinsko upravljanje: 4 koraki

Video: Računalniško IR daljinsko upravljanje: 4 koraki

Video: Računalniško IR daljinsko upravljanje: 4 koraki
Video: ESP8266 ESP01 WI-FI-UART | Программирование LDmicro-Roboremo 2024, November
Anonim
Računalniški IR daljinski upravljalnik
Računalniški IR daljinski upravljalnik

Poleg številnih drugih namenov uporabljam računalnik kot multimedijski center. Včasih se sprostim na kavču, poslušam glasbo ali gledam film ali televizijo in mi ne gre vstati, da nastavim glasnost ali spremenim televizijski kanal vsakič, ko se pojavijo neumne reklame ali zaspim in si želim tišina. Zato sem se odločil, da bom računalnik dal daljinsko upravljal s standardnim daljinskim upravljalnikom IR, da bom lahko takoj pritisnil gumb, namesto da bi besno prijel za miško ali tipko za izklop zvoka na tipkovnici.

Projekt je sestavljen iz več delov:

  1. Daljinec
  2. Računalniška programska oprema
  3. IR sprejemni modul

Korak: Daljinski upravljalnik

Daljinski upravljalnik
Daljinski upravljalnik

Prvi element - daljinski upravljalnik - je nepomemben. Uporabite kateri koli IR nadzor, ki vam je všeč. Uporabil sem tistega, ki je naprodaj kot komplet skupaj z IR sprejemnikom - glej sliko. Edini razlog, da sem se odločil za to vrsto, je, ker sem ga že imel doma.

2. korak: Programska oprema

Ustvaril sem program za OS GNU/Linux, ki deluje v terminalu. Izvorno kodo lahko brezplačno prenesete/uporabite/delite/spremenite. Če želite sestaviti kodo, v terminalu preprosto izdajte ukaz, kot je gcc -o remotePC remotePC.c. Za zagon programa vnesite./remotePC.

Naslednje informacije v tem koraku so namenjene tistim, ki jih zanima, kako stvari delujejo.

Opis programa

Program najprej preveri, ali datoteka /dev /ttyACM0 ali ttyACM1 obstaja. V tem primeru se preveri, ali je skupinski ID datoteke drugačen od nič. To pomeni, da lahko običajni uporabnik bere in piše serijska vrata. Dva bajta z vrednostmi 0xAA 0x55 se nato zapišeta v vrata, da signalizirata, da je program pripravljen sprejeti podatke. Dohodne podatke primerjajo s shranjenimi vrednostmi. Če se ujema, se izvede vnaprej določeno dejanje.

Nadzor glasnosti

Program lahko vklopi/izklopi zvok, poveča/zmanjša glasnost na ravni sistema. To dosežemo z uporabo programa pactl. Ukazi so nato videti tako:

pactl set-sink-mute 0 preklop

pactl set-sink-volume 0 +10%

pactl set-umivalnik-volumen 0 -10%

Po potrebi namestite zahtevane pakete.

Nadzor VLC Media Player

Program lahko tudi zažene/zaustavi zvok/video in spremeni skladbo na prejšnjo/naslednjo na seznamu predvajanja VLC Media Playerja. V tem primeru se uporablja namizno vodilo. Ukazi:

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Next

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Prethodno

3. korak: Modul IR sprejemnika

Modul IR sprejemnika
Modul IR sprejemnika
Modul IR sprejemnika
Modul IR sprejemnika
Modul IR sprejemnika
Modul IR sprejemnika

Tretji del projekta je najbolj zapleten, a še vedno precej preprost. Ideja je, da bo IR sprejemnik oddajal signal v MCU, ki ga bo preoblikoval v edinstveno številko. Ta številka se nato posreduje v računalnik prek USB -ja.

Modul je namenjen vgradnji v ohišje računalnika in s kablom povezan z režo USB na matični plošči. Če imate raje zunanjo povezavo z USB -jem, boste morali narediti manjše prilagoditve.

MCU

Modul sem sestavil na mikrokrmilniku PIC16F1829. Izbira MCU ni kritična, lahko uporabite katero koli drugo MCU, če lahko prilagodite izvorno kodo. Za to sliko sem se odločil iz dveh razlogov. Najprej sem ga imel na voljo, drugič pa so bili zatiči delno poškodovani zaradi intenzivne uporabe v različnih projektih testiranja. Zato sem ga želel uporabiti v stalnem projektu, preden postane popolnoma neuporaben.:-)

IR sprejemnik

Drugi del, na katerem temelji modul, je IR sprejemnik VS1838B - tisti, omenjen v 1. koraku.

UART/USB pretvornik

Tretji del je MCP2221, ki je pretvornik UART/I2C/USB.

Naloga je združiti te tri dele za izdelavo modula, ki bo lahko sprejel signale iz daljinskega upravljalnika IR in jih predal osebnemu računalniku.

Ožičenje

Na prvi sliki je preskusno vezje na plošči. V drugem je shema ožičenja.

Seznam delov

1 kos PIC16F1829 (ali kateri koli drug MCU)

1 kos VS1838B (ali kateri koli drug IR sprejemnik)

1 kos MCP2221 (ali kateri koli drug pretvornik UART/USB)

2 kosa 4-polni nastavek

1 kos 6-polne glave

1 kos upor 100R

2 kos upora 10K

2 kos upora 330R

1 kos kondenzatorja 470 nF

2 kos elektrolitskega kondenzatorja 4,7 uF

1 pc stikalo (neobvezno)

PCB sklop

Sestavite modul z uporabo sheme. Uporabite lahko univerzalno ploščo ali ustvarite tiskano vezje po meri. V primeru slednjega sem v spodnjem arhivu posredoval datoteke KiCad.

Vdelana programska oprema

Izvorna koda za PIC, napisana z uporabo MPLAB X IDE in prevajalnika XC8, je na voljo za prenos spodaj.

Opombe izvorne kode

Za tiste, ki bi radi vedeli, kaj točno program počne, so naslednje vrstice.

Po vseh nastavitvah sveti rdeča LED in MCU čaka na podatke 0x55AA. Po tem LED zasveti zeleno in MCU začne zaznavati signal iz IR sprejemnika z uporabo prekinitev. Meri in beleži časovne intervale, ko je signal na visoki in nizki ravni. Ti časi se nato pretvorijo v 32-bitno številko, ki se pošlje v računalnik.

Razmerje med časom in končno številko določa protokol NEC.

4. korak: Kako uporabljati napravo

Kako uporabljati napravo
Kako uporabljati napravo
Kako uporabljati napravo
Kako uporabljati napravo
Kako uporabljati napravo
Kako uporabljati napravo

Vdelana programska oprema

Naložite vdelano programsko opremo na PIC. Uporabljam programer PICkit 3.

Strojna oprema

Namestite modul IR sprejemnika, kot je prikazano na slikah:

  1. Glavo USB priključite bodisi v notranjo režo USB na matični plošči v ohišju računalnika z ustreznim 4-žilnim kablom ali zunaj v režo USB s standardnim kablom USB. V drugem primeru si morate na nek način pomagati, npr. kot je prikazano na tretji sliki za navdih.
  2. Priključite 5-voltni napajalni kabel iz napajalnika v ohišju računalnika na 4-polno glavo. Ali pa napajajte modul na drug način v primeru zunanje uporabe.

Poiščite opis nožic USB vtičnice matične plošče. Nisem prepričan, ali ožičenje sledi nekemu standardu, zato je bolje, da se prepričate. V mojem primeru obstajata dve vrsti zatičev s 5 zatiči v zgornji vrsti in 4 zatiči v spodnji. Od leve proti desni so zatiči + 5 V, D-, D +, Gnd. 5. pin v prvi vrsti ni povezan. Priključil sem kabel, kot je prikazano na drugi sliki.

Programska oprema

Zaženite program v terminalu. Če gre vse v redu, je zadnje sporočilo programa "čaka na podatke …". Zdaj, ko pritisnete gumb na daljinskem upravljalniku, se bo v terminalu prikazala prejeta koda. Tako boste vedeli, kateri gumb odda kodo.

Zdaj vas čakajo nekatere programske stvari, vendar ne skrbite. V izvorni kodi programa je treba spremeniti le nekaj stvari, da se program odzove na vaš daljinski upravljalnik. Odprite datoteko remotePC.c v urejevalniku besedil ali v neki IDE, če želite, in zamenjajte moje kode s svojimi. Samo pritisnite gumbe, ki jih nameravate uporabiti za vsako dejanje, enega za drugim. Preprosto kopirajte kode, ki se prikažejo v terminalu, in jih z ustreznim dejanjem prilepite v izvorno kodo na mesto.

Ko končate, zaključite program in kodirajte kodo z ukazom gcc -o remotePC remotePC.c. Znova zaženite program in od zdaj se bo odzival na vaš daljinski upravljalnik.

Na ta način uporabljam trdo kodirana dejanja v programu, saj se mi zdi nesmiselno izgubljati čas z nadaljnjim razvojem projekta do stanja, ko je mogoče na primer dodati/spremeniti kode/dejanja v uporabniku prijaznem grafičnem okolju. Če pa želite to narediti ali še več, lahko.

Priporočena: