Obsah:

Diaľkové ovládanie počítača IR: 4 kroky
Diaľkové ovládanie počítača IR: 4 kroky

Video: Diaľkové ovládanie počítača IR: 4 kroky

Video: Diaľkové ovládanie počítača IR: 4 kroky
Video: How To Make a 4 Channel Remote Controller | Remote distance : 100m #jlcpcb 2024, November
Anonim
Počítačové diaľkové ovládanie IR
Počítačové diaľkové ovládanie IR

Okrem mnohých ďalších účelov používam svoj počítač ako multimediálne centrum. Niekedy relaxujem na pohovke, počúvam hudbu alebo pozerám film alebo televíziu a nechce sa mi vstávať, aby som upravil hlasitosť alebo zmenil televízny kanál zakaždým, keď sa objavia hlúpe reklamy alebo zaspávam a želám si ticho. Rozhodol som sa preto, aby bol môj počítač diaľkovo ovládaný štandardným IR diaľkovým ovládaním, aby som mohol okamžite stlačiť tlačidlo namiesto zúrivého chytania za myš alebo kláves stlmenia na klávesnici.

Projekt pozostáva z niekoľkých častí:

  1. Diaľkové ovládanie
  2. Počítačový softvér
  3. Modul IR prijímača

Krok 1: Diaľkové ovládanie

Diaľkové ovládanie
Diaľkové ovládanie

Prvá položka - diaľkový ovládač - je triviálne, ako to urobiť. Použite akékoľvek IR ovládanie, ktoré sa vám páči. Ten, ktorý je na predaj, som použil ako sadu spolu s IR prijímačom - viď obrázok. Jediný dôvod, prečo som sa rozhodol pre tento typ, je ten, že som ho už mal doma.

Krok 2: Softvér

Vytvoril som program pre operačný systém GNU/Linux, ktorý beží na termináli. Zdrojový kód je možné voľne stiahnuť/použiť/zdieľať/upravovať. Na kompiláciu kódu stačí v termináli zadať príkaz ako gcc -o remotePC remotePC.c. Ak chcete spustiť program, spustite program./remotePC.

Nasledujúce informácie v tomto kroku sú určené tým, ktorých zaujíma, ako veci fungujú.

Popis programu

Program najskôr skontroluje, či súbor /dev /ttyACM0 alebo ttyACM1 existuje. Ak je to tak, kontroluje sa, či sa ID skupiny súboru líši od nuly. To znamená, že bežný užívateľ môže zo sériového portu čítať a zapisovať doň. Dva bajty s hodnotami 0xAA 0x55 sa potom zapíšu do portu, aby signalizovali, že program je pripravený na prijatie údajov. Prichádzajúce údaje sa porovnávajú s uloženými hodnotami. Ak sa nájde zhoda, vykoná sa preddefinovaná akcia.

Ovládanie hlasitosti

Program je schopný zapnúť/vypnúť zvuk, zvýšiť/znížiť úroveň hlasitosti na úrovni systému. To sa dosiahne použitím programu pactl. Príkazy potom vyzerajú takto:

pactl set-sink-mute 0 prepnúť

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0 -10%

V prípade potreby nainštalujte požadované balíky.

Ovládací prvok VLC Media Player

Program môže tiež spustiť/pozastaviť zvuk/video a zmeniť skladbu na predchádzajúcu/nasledujúcu v zozname skladieb VLC Media Player. V tomto prípade sa používa Desktop Bus. Príkazy:

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

Krok 3: Modul IR prijímača

Modul IR prijímača
Modul IR prijímača
Modul IR prijímača
Modul IR prijímača
Modul IR prijímača
Modul IR prijímača

Tretia časť projektu je najkomplexnejšia, napriek tomu veľmi jednoduchá. Ide o to, že IR prijímač bude vysielať signál do MCU, ktorý ho transformuje na jedinečné číslo. Toto číslo sa potom prenesie do počítača cez USB.

Modul je určený na montáž do puzdra na počítač a pomocou kábla ho pripojíte k zásuvke USB na základnej doske. V prípade, že dávate prednosť externému pripojeniu k USB, budete musieť vykonať menšie úpravy.

MCU

Modul som postavil na mikrokontroléri PIC16F1829. Voľba MCU nie je rozhodujúca, ak môžete upraviť zdrojový kód, môžete použiť akýkoľvek iný MCU. Tento PIC som si vybral z dvoch dôvodov. Najprv som ho mal k dispozícii a za druhé, jeho kolíky boli čiastočne poškodené intenzívnym používaním v rôznych testovacích projektoch. Preto som ho chcel použiť v trvalom projekte, než sa stane úplne nepoužiteľným.:-)

IR prijímač

Druhá časť, z ktorej modul vychádza, je IR prijímač VS1838B - ten, ktorý je uvedený v 1. kroku.

Prevodník UART/USB

Tretia časť je MCP2221, ktorý je prevodníkom UART/I2C/USB.

Úlohou je skombinovať tieto 3 časti a vytvoriť modul, ktorý bude schopný prijímať signály z IR diaľkového ovládača a odovzdávať ich do počítača.

Zapojenie

Na prvom obrázku je testovací obvod na doske. V druhom je schéma zapojenia.

Zoznam dielov

1 ks PIC16F1829 (alebo akýkoľvek iný MCU)

1 ks VS1838B (alebo akýkoľvek iný IR prijímač)

1 ks MCP2221 (alebo akýkoľvek iný prevodník UART/USB)

2 ks 4-kolíkový konektor

1 ks 6-kolíkový konektor

1 ks odpor 100R

2 ks odpor 10 K.

2 ks odpor 330R

1 ks kondenzátor 470 nF

2 ks elektrolytický kondenzátor 4,7 uF

1 ks prepínač (voliteľné)

Montáž DPS

Zostavte modul pomocou schémy. Môžete použiť buď univerzálnu dosku, alebo si vytvoriť vlastnú dosku plošných spojov. Ak je to tak, poskytol som súbory KiCad v nižšie uvedenom archíve.

Firmvér

Zdrojový kód PIC napísaný pomocou MPLAB X IDE a kompilátora XC8 je k dispozícii na stiahnutie nižšie.

Poznámky k zdrojovému kódu

Pre tých, ktorí by chceli vedieť, čo presne program robí, slúžia nasledujúce riadky.

Po dokončení všetkých nastavení červená dióda LED svieti a MCU čaká na údaje 0x55AA. Potom sa LED dióda rozsvieti na zeleno a MCU začne pomocou prerušenia detekovať signál z IR prijímača. Meria a zaznamenáva časové intervaly, v ktorých je signál na vysokej a nízkej úrovni. Tieto časy sú potom transformované na 32-bitové číslo, ktoré je odoslané do PC.

Vzťah medzi časmi a konečným číslom je daný protokolom NEC.

Krok 4: Ako používať zariadenie

Ako používať zariadenie
Ako používať zariadenie
Ako používať zariadenie
Ako používať zariadenie
Ako používať zariadenie
Ako používať zariadenie

Firmvér

Nahrajte firmvér na PIC. Používam programátor PICkit 3.

Hardvér

Nainštalujte modul IR prijímača tak, ako je to znázornené na obrázkoch:

  1. Pripojte USB konektor buď k internému slotu USB na základnej doske vo vnútri skrinky počítača s príslušným 4-žilovým káblom, alebo externe k USB konektoru pomocou štandardného USB kábla. V druhom prípade si musíte nejakým spôsobom pomôcť, napr. ako je vidieť na 3. obrázku pre inšpiráciu.
  2. Pripojte 5 V napájací kábel zo zdroja napájania do skrinky počítača k 4-kolíkovému konektoru. Alebo v prípade externého použitia modul napájajte iným spôsobom.

Vyhľadajte popis pinov zásuvky USB na základnej doske. Nie som si istý, či kabeláž dodržiava nejaký štandard, takže je lepšie sa uistiť. V mojom prípade existujú dva rady kolíkov s 5 kolíkmi v hornom rade a 4 kolíkmi v dolnom. Zľava doprava sú kolíky + 5 V, D-, D +, Gnd. 5. kolík v prvom rade nie je pripojený. Pripojil som kábel, ako je vidieť na druhom obrázku.

Softvér

Spustite program v termináli. Ak všetko pôjde správne, poslednou správou programu je „čakanie na údaje …“. Teraz, keď stlačíte tlačidlo na diaľkovom ovládači, prijatý kód sa zobrazí v termináli. Vďaka tomu budete vedieť, ktoré tlačidlo vysiela kód.

Teraz na vás čakajú veci z programovania, ale nebojte sa. Vo zdrojovom kóde programu je potrebné zmeniť len niekoľko vecí, aby program reagoval na vaše diaľkové ovládanie. Ak chcete, otvorte súbor remotePC.c v textovom editore alebo v nejakom IDE a nahraďte moje kódy svojimi. Stačí postupne stlačiť tlačidlá, ktoré chcete použiť pre každú akciu. Jednoducho skopírujte kódy, ktoré sa zobrazujú v termináli, a prilepte ich do zdrojového kódu na miesto so zodpovedajúcou akciou.

Keď skončíte, ukončite program a znova skompilujte kód príkazom gcc -o remotePC remotePC.c. Spustite program znova a odteraz bude reagovať na váš diaľkový ovládač.

Tento spôsob používam s pevne zakódovanými akciami v programe, pretože považujem za bezvýznamné strácať čas ďalším vývojom projektu do stavu, keď je možné napríklad pridávať/meniť kódy/akcie v užívateľsky príjemnom grafickom prostredí. Ale ak by ste to chceli urobiť alebo ešte viac, môžete.

Odporúča: