Sadržaj:

IC daljinsko upravljanje računalom: 4 koraka
IC daljinsko upravljanje računalom: 4 koraka

Video: IC daljinsko upravljanje računalom: 4 koraka

Video: IC daljinsko upravljanje računalom: 4 koraka
Video: ЛУЧШАЯ!!! Камера видеонаблюдения 2в1 СЛЕДИТ ЗА ЛЮДЬМИ с полицейской МИГАЛКОЙ И СИРЕНОЙ 2024, Studeni
Anonim
Računalno IC daljinsko upravljanje
Računalno IC daljinsko upravljanje

Osim mnogih drugih svrha, svoje računalo koristim i kao multimedijski centar. Ponekad se opuštam na sofi slušajući glazbu ili gledajući film ili televizor i ne dođe mi se ustati da prilagodim glasnoću ili promijenim TV kanal svaki put kad se pojave glupe reklame ili zaspim i poželim tišina. Stoga sam odlučio učiniti svoje računalo daljinskim upravljanjem standardnim IC daljinskim upravljačem kako bih mogao odmah pritisnuti gumb umjesto da bijesno zgrabim miš ili tipku za isključivanje zvuka na tipkovnici.

Projekt se sastoji od nekoliko dijelova:

  1. Daljinski upravljač
  2. PC softver
  3. Modul IC prijemnika

Korak 1: Daljinski upravljač

Daljinski upravljač
Daljinski upravljač

Prva stavka - daljinski upravljač - trivijalna je s kojom možete završiti. Samo upotrijebite bilo koju IR kontrolu koja vam se sviđa. Koristio sam onaj koji se prodaje kao komplet zajedno s IC prijemnikom - pogledajte sliku. Jedini razlog zašto sam se odlučio za ovu vrstu je taj što sam je već imao kod kuće.

Korak 2: Softver

Napravio sam program za GNU/Linux OS koji radi na terminalu. Izvorni kod možete besplatno preuzeti/koristiti/dijeliti/mijenjati. Za sastavljanje koda samo izdajte naredbu poput gcc -o remotePC remotePC.c u terminalu. Za pokretanje programa upišite./remotePC.

Sljedeće informacije u ovom koraku upućene su onima koje zanima kako stvari funkcioniraju.

Opis programa

Program prvo provjerava postoji li datoteka /dev /ttyACM0 ili ttyACM1. U tom slučaju provjerava se da se ID grupe datoteke razlikuje od nule. To znači da zajednički korisnik može čitati i pisati serijski port. Dva bajta s vrijednostima 0xAA 0x55 tada se zapisuju na port kako bi signalizirali da je program spreman za primanje podataka. Dolazni podaci se uspoređuju sa pohranjenim vrijednostima. Ako se pronađe podudaranje, izvršava se unaprijed definirana radnja.

Kontrola glasnoće

Program može uključiti/isključiti zvuk, povećati/smanjiti glasnoću na razini sustava. To se postiže korištenjem programa pactl. Naredbe tada izgledaju ovako:

pactl set-sink-mute 0 prebacivanje

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0 -10%

Ako je potrebno, instalirajte potrebne pakete.

Kontrola VLC Media Player -a

Program također može pokrenuti/pauzirati audio/video zapis i promijeniti pjesmu u prethodnu/sljedeću na popisu za reprodukciju VLC Media Playera. U ovom slučaju koristi se Desktop Bus. Naredbe:

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

Korak 3: Modul IC prijemnika

Modul IC prijemnika
Modul IC prijemnika
Modul IC prijemnika
Modul IC prijemnika
Modul IC prijemnika
Modul IC prijemnika

Treći dio projekta je najsloženiji, a ipak prilično jednostavan. Ideja je da će IC prijemnik emitirati signal u MCU koji će ga transformirati u jedinstveni broj. Taj će se broj zatim prenijeti na računalo putem USB -a.

Modul se namjerava ugraditi u kućište računala i spojiti kabelom na USB utor na matičnoj ploči. U slučaju da više volite vanjsku vezu s USB -om, morat ćete izvršiti manje prilagodbe.

MCU

Modul sam izgradio na mikrokontroleru PIC16F1829. Odabir MCU -a nije kritičan, možete koristiti bilo koji drugi MCU ako možete prilagoditi izvorni kod. Odabrao sam ovaj PIC iz dva razloga. Prvo sam ga imao na raspolaganju, a drugo, njegove su igle djelomično oštećene intenzivnom uporabom u različitim projektima testiranja. Stoga sam ga htio koristiti u stalnom projektu prije nego što postane potpuno neupotrebljiv.:-)

IC prijemnik

Drugi dio na kojem se modul temelji je IC prijemnik VS1838B - onaj spomenut u 1. koraku.

UART/USB pretvarač

Treći dio je MCP2221 koji je UART/I2C/USB pretvarač.

Zadatak je kombinirati ta tri dijela kako bi se izradio modul koji će moći primati signale s daljinskog upravljača i predati ih računalu.

Ožičenje

Na prvoj slici je krug ispitivanja na ploči. U drugom je shema ožičenja.

Popis dijelova

1 kom PIC16F1829 (ili bilo koji drugi MCU)

1 kom VS1838B (ili bilo koji drugi IC prijemnik)

1 kom MCP2221 (ili bilo koji drugi UART/USB pretvarač)

2 kom 4-pinski zaglavlje

1 kom 6-pinski zaglavlje

1 kom otpornik 100R

2 kom otpornika 10K

2 kom otpornika 330R

1 kom kondenzator 470 nF

2 kom elektrolitskog kondenzatora 4,7 uF

1 kom prekidač (opcionalno)

PCB sklop

Sastavite modul pomoću sheme. Možete koristiti univerzalnu ploču ili izraditi prilagođenu PCB. Ako je ovo posljednje, dostavio sam KiCad datoteke u donju arhivu.

Firmver

Izvorni kod za PIC napisan upotrebom MPLAB X IDE -a i kompajlera XC8 dostupan je za preuzimanje u nastavku.

Napomene o izvornom kodu

Oni koji bi željeli znati čime se točno program bavi su sljedeći redovi.

Nakon svih postavki crvena LED lampica svijetli i MCU čeka podatke 0x55AA. Nakon toga LED svijetli zeleno i MCU počinje detektirati signal s IC prijemnika uz pomoć prekida. Mjeri i bilježi vremenske intervale u kojima je signal na visokoj i niskoj razini. Ta se vremena zatim pretvaraju u 32-bitni broj koji se šalje na računalo.

Odnos između vremena i konačnog broja dan je NEC protokolom.

Korak 4: Kako koristiti uređaj

Kako koristiti uređaj
Kako koristiti uređaj
Kako koristiti uređaj
Kako koristiti uređaj
Kako koristiti uređaj
Kako koristiti uređaj

Firmware

Prenesite firmver na PIC. Koristim programer PICkit 3.

Hardver

Instalirajte modul IC prijemnika kao što je prikazano na slikama:

  1. Spojite USB zaglavlje bilo na unutarnji USB utor na matičnoj ploči unutar kućišta računara odgovarajućim 4-žičnim kabelom ili izvana na USB utor sa standardnim USB kabelom. U drugom slučaju morate si na neki način pomoći, npr. kao što se vidi na trećoj slici za inspiraciju.
  2. Priključite 5 V kabel za napajanje iz izvora napajanja unutar kućišta računala na 4-polno zaglavlje. Ili napajanje modula na drugi način u slučaju vanjske uporabe.

Potražite opis pinova USB utičnice na matičnoj ploči. Nisam siguran da li ožičenje slijedi neku vrstu standarda pa je bolje provjeriti. U mom slučaju postoje dva reda pinova sa 5 igala u gornjem i 4 igle u donjem. Slijeva na desno pinovi su + 5 V, D-, D +, Gnd. 5. pin u prvom redu nije spojen. Priključio sam kabel kao što se vidi na drugoj slici.

Softver

Pokrenite program na terminalu. Ako sve ide kako treba, zadnja poruka programa je "čekanje podataka …". Sada kada pritisnete gumb na daljinskom upravljaču, primljeni kôd će se pojaviti na terminalu. Na taj ćete način znati koje dugme emitira koji kôd.

Sada vas čekaju neke programske stvari, ali ne brinite. U izvornom kodu programa potrebno je promijeniti samo nekoliko stvari kako bi program reagirao na vaš daljinski upravljač. Otvorite datoteku remotePC.c u uređivaču teksta ili u nekom IDE -u ako želite i zamijenite moje kodove svojim. Jednostavno pritisnite gumbe koje namjeravate koristiti za svaku radnju jedan po jedan. Jednostavno kopirajte kodove koji se pojavljuju na terminalu i zalijepite ih u izvorni kod na mjesto s odgovarajućom radnjom.

Kad završite, zatvorite program i ponovno kompajlirajte kôd naredbom gcc -o remotePC remotePC.c. Ponovno pokrenite program i od sada će reagirati na vaš daljinski upravljač.

Koristim ovaj način s tvrdo kodiranim radnjama u programu jer smatram besmislenim gubiti vrijeme na daljnji razvoj projekta do stanja kada je moguće dodavati/mijenjati kodove/radnje u grafičkom okruženju prilagođenom korisniku. Ali ako želite to učiniti ili još više, možete.

Preporučeni: