Turinys:

Nuotolinis kompiuterio IR valdymas: 4 žingsniai
Nuotolinis kompiuterio IR valdymas: 4 žingsniai

Video: Nuotolinis kompiuterio IR valdymas: 4 žingsniai

Video: Nuotolinis kompiuterio IR valdymas: 4 žingsniai
Video: Kompiuterio Valdymas Telefonu! 2024, Birželis
Anonim
Kompiuterio IR nuotolinis valdymas
Kompiuterio IR nuotolinis valdymas

Be daugelio kitų tikslų, savo kompiuterį naudoju kaip daugialypės terpės centrą. Kartais atsipalaiduoju ant sofos, klausausi muzikos, žiūriu filmą ar televizorių ir nesinori keltis reguliuoti garsumo ar keisti televizijos kanalo kiekvieną kartą, kai pasirodo kvailos reklamos arba aš užmiegu ir linkiu tyla. Taigi nusprendžiau savo kompiuterį valdyti nuotoliniu būdu su standartiniu IR nuotolinio valdymo pultu, kad galėčiau tiesiog akimirksniu paspausti mygtuką, o ne įnirtingai griebtis pelės ar klaviatūros nutildymo klavišo.

Projektas susideda iš kelių dalių:

  1. Nuotolinio valdymo pultas
  2. PC programinė įranga
  3. IR imtuvo modulis

1 žingsnis: nuotolinio valdymo pultas

Nuotolinio valdymo pultas
Nuotolinio valdymo pultas

Pirmasis elementas - nuotolinio valdymo pultas - yra nereikšmingas. Tiesiog naudokite bet kurį jums patinkantį IR valdiklį. Aš naudoju tą, kuris parduodamas kaip komplektas kartu su IR imtuvu - žr. Vienintelė priežastis, dėl kurios pasirinkau šį tipą, yra tik todėl, kad ją jau turėjau namuose.

2 žingsnis: programinė įranga

Aš sukūriau programą GNU/Linux OS, kuri veikia terminale. Šaltinio kodą galima nemokamai atsisiųsti/naudoti/bendrinti/keisti. Norėdami surinkti kodą, tiesiog terminale išduokite tokią komandą kaip gcc -o remotePC remotePC.c. Norėdami paleisti programos tipą./remotePC.

Toliau pateikta informacija šiame etape skirta tiems, kurie domisi, kaip viskas veikia.

Programos aprašymas

Programa pirmiausia patikrina, ar failas /dev /ttyACM0 ar ttyACM1 egzistuoja. Jei taip, patikrinama, ar failo grupės ID skiriasi nuo nulio. Tai reiškia, kad nuoseklųjį prievadą gali skaityti ir rašyti paprastas vartotojas. Tada du baitai, kurių reikšmės yra 0xAA 0x55, įrašomi į prievadą, kad būtų pranešta, kad programa yra pasirengusi priimti duomenis. Įeinantys duomenys lyginami su išsaugotomis vertėmis. Jei randama atitiktis, vykdomas iš anksto nustatytas veiksmas.

Garso valdymas

Programa gali įjungti/išjungti garsą, padidinti/sumažinti garso lygį sistemos lygiu. Tai pasiekiama naudojant pactl programą. Tada komandos atrodo taip:

pactl set-sink-mute 0 perjungimas

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0 -10%

Jei reikia, įdiekite reikiamus paketus.

„VLC Media Player“valdymas

Programa taip pat gali paleisti/pristabdyti garso/vaizdo įrašą ir pakeisti takelį į ankstesnį/kitą „VLC Media Player“grojaraštyje. Šiuo atveju naudojama darbalaukio magistralė. Komandos:

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. Kitas

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

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Ankstesnis

3 žingsnis: IR imtuvo modulis

IR imtuvo modulis
IR imtuvo modulis
IR imtuvo modulis
IR imtuvo modulis
IR imtuvo modulis
IR imtuvo modulis

Trečioji projekto dalis yra sudėtingiausia, tačiau gana paprasta. Idėja yra ta, kad IR imtuvas perduos signalą MCU, kuris jį pavers unikaliu numeriu. Tada šis numeris bus perduotas į kompiuterį per USB.

Modulis skirtas montuoti kompiuterio korpuso viduje ir kabeliu prijungtas prie pagrindinės plokštės USB lizdo. Jei pageidaujate išorinio prijungimo prie USB, turėsite atlikti nedidelius pakeitimus.

MCU

Aš sukūriau modulį ant PIC16F1829 mikrovaldiklio. MCU pasirinkimas nėra svarbus, galite naudoti bet kurį kitą MCU, jei galite koreguoti šaltinio kodą. Pasirinkau šį PIC dėl dviejų priežasčių. Pirmiausia turėjau jį prieinamą, o antra - kaiščius iš dalies sugadino intensyvus naudojimas įvairiuose bandymų projektuose. Taigi norėjau jį naudoti nuolatiniame projekte, kol jis taps visiškai netinkamas.:-)

IR imtuvas

Antroji modulio dalis yra IR imtuvas VS1838B - tas, kuris paminėtas 1 žingsnyje.

UART/USB keitiklis

Trečioji dalis yra MCP2221, kuris yra UART/I2C/USB keitiklis.

Užduotis yra sujungti šias 3 dalis ir sukurti modulį, kuris galės priimti signalus iš IR nuotolinio valdymo pulto ir perduoti juos asmeniniam kompiuteriui.

Laidai

Pirmame paveikslėlyje yra bandymo grandinė ant duonos lentos. Antrame yra elektros instaliacijos schema.

Dalių sąrašas

1 vnt. PIC16F1829 (arba bet kuris kitas MCU)

1 vnt VS1838B (arba bet kuris kitas IR imtuvas)

1 vnt. MCP2221 (arba bet kuris kitas UART/USB keitiklis)

2 vnt 4 kontaktų antraštė

1 vnt 6 kontaktų antraštė

1 vnt rezistorius 100R

2 vnt 10K rezistorius

2 vnt rezistorius 330R

1 vnt kondensatorius 470 nF

2 vnt elektrolitinis kondensatorius 4,7 uF

1 vnt jungiklis (neprivaloma)

PCB surinkimas

Sudėkite modulį naudodami schemą. Galite naudoti universaliąją plokštę arba sukurti pasirinktinę PCB. Pastaruoju atveju aš pateikiau „KiCad“failus žemiau esančiame archyve.

Firmware

PIC, parašyto naudojant MPLAB X IDE ir XC8 kompiliatorių, šaltinio kodą galima atsisiųsti žemiau.

Šaltinio kodas pažymi

Tiems, kurie nori sužinoti, ką tiksliai daro programa, yra šios eilutės.

Atlikus visus nustatymus, dega raudonas šviesos diodas, o MCU laukia 0x55AA duomenų. Po to šviesos diodas tampa žalias ir MCU pradeda aptikti signalą iš IR imtuvo, naudodamas pertraukas. Jis matuoja ir registruoja laiko intervalus, kai signalas yra aukšto ir žemo lygio. Tada šie laikai paverčiami 32 bitų numeriu, kuris siunčiamas į kompiuterį.

Santykis tarp laiko ir galutinio skaičiaus pateikiamas NEC protokole.

4 veiksmas: kaip naudotis įrenginiu

Kaip naudotis įrenginiu
Kaip naudotis įrenginiu
Kaip naudotis įrenginiu
Kaip naudotis įrenginiu
Kaip naudotis įrenginiu
Kaip naudotis įrenginiu

Firmware

Įkelkite programinę -aparatinę įrangą į PIC. Aš naudoju PICkit 3 programuotoją.

Techninė įranga

Įdiekite IR imtuvo modulį, kaip parodyta paveikslėliuose:

  1. Prijunkite USB antraštę prie vidinio USB lizdo pagrindinėje plokštėje, esančioje kompiuterio korpuso viduje, naudodami atitinkamą 4 laidų kabelį arba išoriškai prie USB lizdo naudodami standartinį USB kabelį. Antruoju atveju jūs turite kažkaip sau padėti, pvz. kaip matyti 3 paveiksle įkvėpimui.
  2. Prijunkite 5 V maitinimo kabelį prie kompiuterio korpuso esančio maitinimo šaltinio prie 4 kontaktų jungties. Arba maitinkite modulį kitu būdu, jei jis naudojamas išorėje.

Ieškokite pagrindinės plokštės USB lizdo kaiščių aprašymo. Nesu tikras, ar laidai atitinka tam tikrus standartus, todėl geriau įsitikinti. Mano atveju yra dvi kaiščių eilės su 5 kaiščiais viršutinėje eilutėje ir 4 kaiščiais apatinėje. Iš kairės į dešinę kaiščiai yra + 5 V, D-, D +, Gnd. Pirmasis eilutės 5 -asis kaištis nėra prijungtas. Prijungiau kabelį, kaip matyti antroje nuotraukoje.

Programinė įranga

Paleiskite programą terminale. Jei viskas gerai, paskutinis programos pranešimas yra „laukia duomenų …“. Dabar, kai paspausite nuotolinio valdymo pulto mygtuką, gautas kodas bus rodomas terminale. Taip žinosite, kuris mygtukas kurį kodą skleidžia.

Dabar jūsų laukia kai kurie programavimo dalykai, bet nesijaudinkite. Programos šaltinio kode reikia pakeisti tik kelis dalykus, kad programa reaguotų į jūsų nuotolinio valdymo pultą. Jei norite, atidarykite failą remotePC.c teksto rengyklėje arba kokiame nors IDE ir pakeiskite mano kodus savo. Tiesiog paspauskite mygtukus, kuriuos ketinate naudoti kiekvienam veiksmui po vieną. Tiesiog nukopijuokite terminale rodomus kodus ir įklijuokite juos į šaltinio kodą į atitinkamą veiksmą.

Kai baigsite, nutraukite programą ir iš naujo sukompiliuokite kodą naudodami komandą gcc -o remotePC remotePC.c. Paleiskite programą dar kartą ir nuo šiol ji reaguos į jūsų nuotolinio valdymo pultą.

Aš naudoju šį būdą su programoje koduotais veiksmais, nes manau, kad beprasmiška gaišti savo laiką tolesniam projekto kūrimui į būseną, kai, pavyzdžiui, galima pridėti/pakeisti kodus/veiksmus patogioje grafinėje aplinkoje. Bet jei norite tai padaryti ar dar daugiau, galite.

Rekomenduojamas: