Satura rādītājs:

Datora IR tālvadības pults: 4 soļi
Datora IR tālvadības pults: 4 soļi

Video: Datora IR tālvadības pults: 4 soļi

Video: Datora IR tālvadības pults: 4 soļi
Video: Simplest Way To Test IR LED 2024, Novembris
Anonim
Datora IR tālvadības pults
Datora IR tālvadības pults

Papildus daudziem citiem mērķiem es izmantoju savu datoru kā multivides centru. Ir reizes, kad es atpūšos uz dīvāna, klausos mūziku vai skatos filmu vai televizoru, un man negribas celties, lai pielāgotu skaļumu vai mainītu TV kanālu katru reizi, kad parādās stulbas reklāmas vai es aizmigu un novēlu klusums. Tāpēc es esmu nolēmis padarīt savu datoru tālvadāmu ar standarta IR tālvadības pulti, lai es varētu uzreiz nospiest pogu, nevis nikni satvert peli vai izslēgt tastatūras taustiņu.

Projekts sastāv no vairākām daļām:

  1. Tālvadība
  2. PC programmatūra
  3. IR uztvērēja modulis

1. darbība: tālvadības pults

Tālvadības pults
Tālvadības pults

Pirmais priekšmets - tālvadības pults - ir triviāls, lai to paveiktu. Vienkārši izmantojiet jebkuru IR vadību, kas jums patīk. Es izmantoju to, kas tiek pārdots kā komplekts kopā ar IR uztvērēju - skatiet attēlu. Vienīgais iemesls, kāpēc esmu izvēlējusies šo veidu, ir tikai tāpēc, ka man tas jau bija mājās.

2. darbība: programmatūra

Esmu izveidojis programmu GNU/Linux OS, kas darbojas terminālī. Avota kodu var brīvi lejupielādēt/izmantot/koplietot/modificēt. Lai apkopotu kodu, vienkārši izsniedziet komandu, piemēram, gcc -o remotePC remotePC.c terminālī. Lai palaistu programmas tipu./remotePC.

Tālāk sniegtā informācija šajā solī ir adresēta tiem, kurus interesē lietu darbība.

Programmas apraksts

Programma vispirms pārbauda, vai fails /dev /ttyACM0 vai ttyACM1 pastāv. Ja tā, tiek pārbaudīts, ka faila grupas ID atšķiras no nulles. Tas nozīmē, ka seriālo portu var lasīt un rakstīt parastajam lietotājam. Pēc tam ostā tiek ierakstīti divi baiti ar vērtībām 0xAA 0x55, lai norādītu, ka programma ir gatava datu saņemšanai. Ienākošie dati tiek salīdzināti ar saglabātajām vērtībām. Ja tiek atrasta atbilstība, tiek izpildīta iepriekš definētā darbība.

Skaļuma kontrole

Programma spēj ieslēgt/izslēgt skaņu, palielināt/samazināt skaļuma līmeni sistēmas līmenī. Tas tiek panākts, izmantojot pactl programmu. Pēc tam komandas izskatās šādi:

pactl set-sink-mute 0 pārslēgšana

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0 -10%

Ja nepieciešams, instalējiet pieprasītās paketes.

VLC Media Player vadība

Programma var arī sākt/apturēt audio/video un mainīt celiņu uz iepriekšējo/nākamo VLC Media Player atskaņošanas sarakstā. Šajā gadījumā tiek izmantota darbvirsmas kopne. Komandas:

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

3. solis: IR uztvērēja modulis

IR uztvērēja modulis
IR uztvērēja modulis
IR uztvērēja modulis
IR uztvērēja modulis
IR uztvērēja modulis
IR uztvērēja modulis

Projekta trešā daļa ir vissarežģītākā, tomēr diezgan vienkārša. Ideja ir tāda, ka IR uztvērējs izvadīs signālu MCU, kas to pārveidos par unikālo numuru. Šis numurs pēc tam tiks pārsūtīts uz datoru, izmantojot USB.

Moduli paredzēts uzstādīt datora korpusā un ar kabeli savienot ar mātesplates USB slotu. Ja priekšroku dodat ārējam savienojumam ar USB, jums būs jāveic nelieli pielāgojumi.

MCU

Esmu izveidojis moduli uz PIC16F1829 mikrokontrollera. MCU izvēle nav kritiska, ja varat pielāgot avota kodu, varat izmantot jebkuru citu MCU. Es izvēlējos šo PIC divu iemeslu dēļ. Pirmkārt, man tas bija pieejams, un, otrkārt, tās tapas daļēji sabojāja intensīvā izmantošana dažādos testēšanas projektos. Tāpēc es gribēju to izmantot pastāvīgajā projektā, pirms tas kļūst pilnīgi nelietojams.:-)

IR uztvērējs

Otra moduļa daļa ir IR uztvērējs VS1838B - tas, kas minēts 1. solī.

UART/USB pārveidotājs

Trešā daļa ir MCP2221, kas ir UART/I2C/USB pārveidotājs.

Uzdevums ir apvienot šīs 3 daļas, lai izveidotu moduli, kas varēs uztvert signālus no IR tālvadības pults un nodot tos datoram.

Elektroinstalācija

Pirmajā attēlā ir testēšanas shēma uz maizes dēļa. Otrajā ir elektroinstalācijas shēma.

Daļu saraksts

1 gab. PIC16F1829 (vai jebkurš cits MCU)

1 gab. VS1838B (vai jebkurš cits IR uztvērējs)

1 gab. MCP2221 (vai jebkurš cits UART/USB pārveidotājs)

2 gab. 4 kontaktu galvene

1 gab. 6 kontaktu galvene

1 pc rezistors 100R

2 gab 10K rezistors

2 gab rezistors 330R

1 pc kondensators 470 nF

2 gab. Elektrolītiskais kondensators 4,7 uF

1 pc slēdzis (pēc izvēles)

PCB montāža

Salieciet moduli, izmantojot shēmu. Jūs varat izmantot universālo plati vai izveidot pielāgotu PCB. Pēdējā gadījumā esmu nodrošinājis KiCad failus tālāk esošajā arhīvā.

Programmaparatūra

PIC avota kods, kas rakstīts, izmantojot MPLAB X IDE un XC8 kompilatoru, ir pieejams lejupielādei zemāk.

Avota kods atzīmē

Tiem, kas vēlas uzzināt, ko tieši programma dara, ir šādas rindas.

Kad visi iestatījumi ir izdarīti, iedegas sarkanā gaismas diode un MCU gaida 0x55AA datus. Pēc tam gaismas diode kļūst zaļa un MCU sāk noteikt signālu no IR uztvērēja, izmantojot pārtraukumus. Tas mēra un reģistrē laika intervālus, kad signāls ir augstā un zemā līmenī. Šie laiki tiek pārveidoti par 32 bitu numuru, kas tiek nosūtīts uz datoru.

Attiecības starp laikiem un galīgo skaitli nosaka NEC protokols.

4. solis: kā lietot ierīci

Kā lietot ierīci
Kā lietot ierīci
Kā lietot ierīci
Kā lietot ierīci
Kā lietot ierīci
Kā lietot ierīci

Programmaparatūra

Augšupielādējiet programmaparatūru PIC. Es izmantoju programmētāju PICkit 3.

Aparatūra

Uzstādiet IR uztvērēja moduli, kā redzams attēlos:

  1. Savienojiet USB galveni vai nu ar iekšējo USB slotu mātesplatē datora korpusa iekšpusē, izmantojot atbilstošu 4 vadu kabeli, vai ārēji ar USB slotu, izmantojot standarta USB kabeli. Otrajā gadījumā jums kaut kādā veidā jāpalīdz sev, piem. kā redzams 3. attēlā iedvesmai.
  2. Pievienojiet 5 V strāvas kabeli no strāvas avota datora korpusā 4 kontaktu galvenei. Vai arī barojiet moduli citā veidā, ja to izmantojat ārēji.

Atrodiet mātesplates USB ligzdas tapas aprakstu. Es neesmu pārliecināts, vai elektroinstalācija atbilst kādam standartam, tāpēc labāk ir pārliecināties. Manā gadījumā ir divas tapas rindas ar 5 tapām augšējā rindā un 4 tapām apakšējā. No kreisās uz labo tapu ir + 5 V, D-, D +, Gnd. Pirmās rindas 5. tapa nav savienota. Es pievienoju kabeli, kā redzams otrajā attēlā.

Programmatūra

Palaidiet programmu terminālī. Ja viss notiek pareizi, programmas pēdējais ziņojums ir "gaida datus …". Tagad, nospiežot tālvadības pults pogu, terminālī parādīsies saņemtais kods. Tādā veidā jūs zināt, kura poga izstaro kādu kodu.

Tagad jūs gaida dažas programmēšanas lietas, taču neuztraucieties. Programmas avota kodā ir jāmaina tikai dažas lietas, lai programma reaģētu uz jūsu tālvadības pulti. Atveriet failu remotePC.c teksta redaktorā vai kādā IDE, ja vēlaties, un aizstājiet manus kodus ar savējiem. Vienkārši nospiediet pogas, kuras plānojat izmantot katrai darbībai pa vienam. Vienkārši nokopējiet terminālī parādītos kodus un ielīmējiet tos avota kodā vietā ar atbilstošu darbību.

Kad esat pabeidzis, pārtrauciet programmu un pārkompilējiet kodu ar komandu gcc -o remotePC remotePC.c. Palaidiet programmu vēlreiz, un no šī brīža tā reaģēs uz tālvadības pulti.

Es to izmantoju programmā ar kodētām darbībām, jo uzskatu, ka ir bezjēdzīgi tērēt savu laiku, turpinot projektu attīstīt līdz stāvoklim, kad, piemēram, lietotājam draudzīgā grafiskajā vidē ir iespējams pievienot/mainīt kodus/darbības. Bet, ja vēlaties to darīt vai pat vairāk, varat.

Ieteicams: