Sadržaj:

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

Video: IC daljinsko upravljanje računarom: 4 koraka

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

Pored mnogih drugih svrha, računar koristim i kao multimedijalni centar. Ponekad se opuštam na sofi slušajući muziku ili gledajući film ili TV i ne dođe mi se ustati da podesim jačinu zvuka ili promijenim TV kanal svaki put kad se pojave glupe reklame ili zaspim i poželim tišina. Stoga sam odlučio učiniti svoj računar daljinskim upravljanjem standardnim IC daljinskim upravljačem kako bih mogao odmah pritisnuti dugme umjesto da bijesno zgrabim miš ili tipku za isključivanje zvuka na tastaturi.

Projekat 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 treba završiti. Samo upotrijebite bilo koju IR kontrolu koja vam se sviđa. Koristio sam onaj koji se prodaje kao set zajedno sa 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. Ako je tako, 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 se zatim zapisuju na port kako bi signalizirali da je program spreman za prijem podataka. Dolazni podaci se uspoređuju sa pohranjenim vrijednostima. Ako se pronađe podudaranje, izvršava se unaprijed definirana radnja.

Kontrola jačine zvuka

Program može uključiti/isključiti zvuk, povećati/smanjiti jačinu zvuka na nivou sistema. To se postiže upotrebom programa pactl. Komande tada izgledaju ovako:

pactl set-sink-mute 0 prekidač

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đe može pokrenuti/pauzirati audio/video zapis i promijeniti pjesmu u prethodnu/sljedeću na listi za reprodukciju VLC Media Playera. U ovom slučaju koristi se Desktop Bus. Komande:

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

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 je predviđen za ugradnju u kućište računara i kablom povezan na USB priključak na matičnoj ploči. U slučaju da više volite vanjsku vezu s USB -om, morat ćete izvršiti manja podešavanja.

MCU

Modul sam izgradio na mikrokontroleru PIC16F1829. Izbor MCU -a nije kritičan, možete koristiti bilo koji drugi MCU ako ste u mogućnosti prilagoditi izvorni kod. Odabrao sam ovaj PIC iz dva razloga. Prvo sam ga imao na raspolaganju, a drugo, njegove iglice su djelomično oštećene intenzivnom upotrebom u različitim projektima testiranja. Pa 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 koji je 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 izgradio modul koji će moći primati signale sa daljinskog upravljača i predati ih računaru.

Ožičenje

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

Spisak delova

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 elektrolitički kondenzator 4,7 uF

1 prekidač za računar (opcionalno)

PCB sklop

Sastavite modul pomoću sheme. Možete koristiti univerzalnu ploču ili stvoriti prilagođenu PCB. Ako je ovo drugo slučaj, dostavio sam KiCad datoteke u arhivu ispod.

Firmver

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

Napomene o izvornom kodu

Sledeći redovi su za one koji bi želeli da znaju šta program tačno radi.

Nakon svih postavki crvena LED lampica svijetli i MCU čeka na podatke 0x55AA. Nakon toga LED svijetli zeleno i MCU počinje detektirati signal iz IC prijemnika uz pomoć prekida. On mjeri i bilježi vremenske intervale u kojima je signal na visokom i niskom nivou. Ova vremena se zatim pretvaraju u 32-bitni broj koji se šalje na računar.

Odnos između vremena i konačnog broja dat 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

Otpremite firmver na PIC. Koristim programer PICkit 3.

Hardver

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

  1. Priključite USB zaglavlje ili na unutrašnji USB priključak na matičnoj ploči unutar kućišta računara odgovarajućim 4-žičnim kablom ili spolja na USB priključak sa standardnim USB kablom. 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čunara u 4-polno zaglavlje. Ili napajanje modula na drugi način u slučaju vanjske upotrebe.

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 iglasta reda 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 povezan. 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 tipku na daljinskom upravljaču, primljeni kod će se pojaviti na terminalu. Na ovaj način ćete znati koje dugme emituje koji kôd.

Sada vas čekaju neke programske stvari, ali ne brinite. Samo nekoliko stvari treba promijeniti u izvornom kodu programa 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. Samo pritisnite jedno po jedno dugme koje namjeravate koristiti za svaku radnju. Jednostavno kopirajte kodove koji se pojavljuju na terminalu i zalijepite ih u izvorni kod na mjesto s odgovarajućom radnjom.

Kada završite, zatvorite program i ponovno kompajlirajte kôd naredbom gcc -o remotePC remotePC.c. Ponovo pokrenite program i on će od sada 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čuje se: