Indholdsfortegnelse:

Computerens fjernbetjening: 4 trin
Computerens fjernbetjening: 4 trin

Video: Computerens fjernbetjening: 4 trin

Video: Computerens fjernbetjening: 4 trin
Video: Обзор контроллера ARGB подсветки вентиляторов 6 пин регулятор оборотов 5В 12В 2024, Juni
Anonim
Computerens fjernbetjening
Computerens fjernbetjening

Udover de mange andre formål bruger jeg min pc som multimediecenter. Nogle gange slapper jeg af på sofaen og lytter til musik eller ser en film eller et fjernsyn og har ikke lyst til at stå op for at justere lydstyrken eller skifte tv -kanal hver gang dumme reklamer dukker op, eller jeg sover og ønsker stilhed. Så jeg har besluttet at lave min pc fjernbetjent med en standard IR -fjernbetjening, så jeg bare med det samme kunne trykke på knappen i stedet for rasende at gribe efter musen eller mute -tasten på tastaturet.

Projektet består af flere dele:

  1. Fjernbetjening
  2. PC -software
  3. IR -modtagermodul

Trin 1: Fjernbetjeningen

Fjernbetjeningen
Fjernbetjeningen

Det første element - fjernbetjeningen - er trivielt at blive færdig med. Brug bare enhver IR -kontrol, du kan lide. Jeg brugte den der er til salg som sættet sammen med IR -modtager - se billedet. Den eneste grund til at jeg har besluttet mig for denne type er bare fordi jeg allerede havde den hjemme.

Trin 2: Software

Jeg har oprettet programmet til GNU/Linux OS, der kører i en terminal. Kildekoden er gratis at downloade/bruge/dele/ændre. For at kompilere koden skal du bare udstede kommandoen som gcc -o remotePC remotePC.c i terminalen. For at køre programtypen./remotePC.

Følgende oplysninger i dette trin er rettet til dem, der er interesserede i, hvordan tingene fungerer.

Programbeskrivelsen

Programmet kontrollerer først, om filen /dev /ttyACM0 eller ttyACM1 findes. I så fald er gruppens ID for filen markeret til at være forskellig fra nul. Det betyder, at den serielle port kan læses fra og skrives til af den almindelige bruger. To bytes med værdierne 0xAA 0x55 skrives derefter til porten for at signalere, at programmet er klar til at modtage dataene. De indgående data sammenlignes med de lagrede værdier. Hvis matchen findes, udføres den foruddefinerede handling.

Volumenkontrollen

Programmet er i stand til at tænde/slukke lyden, øge/reducere lydstyrken på systemniveau. Dette opnås ved brug af pactl -programmet. Kommandoerne ser derefter sådan ud:

pactl set-sink-mute 0 skifte

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0-10%

Om nødvendigt installeres de påkrævede pakker.

VLC Media Player kontrol

Programmet kan også starte/sætte lyd/video på pause og ændre sporet til det forrige/næste i afspilningslisten på VLC Media Player. Desktopbus bruges i dette tilfælde. Kommandoerne:

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

Trin 3: IR -modtagermodul

IR -modtagermodul
IR -modtagermodul
IR -modtagermodul
IR -modtagermodul
IR -modtagermodul
IR -modtagermodul

Den tredje del af projektet er den mest komplekse, men alligevel ret simpel. Ideen er, at IR -modtageren sender signalet til MCU'en, der vil transformere det til det unikke nummer. Dette nummer overføres derefter til pc'en via USB.

Modulet er beregnet til at blive monteret inde i pc -kabinettet og tilsluttet USB -stikket på bundkortet med kablet. Hvis du foretrækker den eksterne forbindelse til USB'en, skal du foretage mindre justeringer.

MCU

Jeg har bygget modulet på PIC16F1829 mikrokontroller. Valget af MCU er ikke kritisk. Du kan bruge enhver anden MCU, hvis du er i stand til at justere kildekoden. Jeg har valgt denne PIC af to grunde. Først havde jeg den tilgængelig, og for det andet blev stifterne delvist beskadiget af den intensive brug i de forskellige testprojekter. Så jeg ville bruge det i det permanente projekt, før det bliver totalt ubrugeligt.:-)

IR -modtager

Den anden del, modulet er baseret på, er IR -modtageren VS1838B - den, der er nævnt i det første trin.

UART/USB -konverter

Den tredje del er MCP2221, der er UART/I2C/USB -konverteren.

Opgaven er at kombinere disse 3 dele til at opbygge det modul, der vil være i stand til at modtage signalerne fra IR -fjernbetjeningen og aflevere dem til pc'en.

Ledningerne

På det første billede er der testkredsløbet på brødbrættet. I den anden er der ledningsskemaet.

Listen over dele

1 stk PIC16F1829 (eller enhver anden MCU)

1 stk VS1838B (eller enhver anden IR -modtager)

1 stk MCP2221 (eller enhver anden UART/USB -konverter)

2 stk. 4-benet header

1 stk. 6-benet header

1 stk modstand 100R

2 stk modstand 10K

2 stk. Modstand 330R

1 stk kondensator 470 nF

2 stk elektrolytkondensator 4,7 uF

1 pc switch (valgfri)

PCB -samling

Sæt modulet sammen ved hjælp af skematikken. Du kan enten bruge universalbordet eller oprette det brugerdefinerede printkort. Hvis sidstnævnte er tilfældet, har jeg leveret KiCad -filerne i arkivet herunder.

Firmwaren

Kildekoden til PIC'en skrevet med brug af MPLAB X IDE og XC8 -kompilatoren er tilgængelig til download herunder.

Kildekoden noterer

For dem, der gerne vil vide, hvad programmet præcist laver, er følgende linjer.

Når alle indstillingerne er udført, lyser den røde LED, og MCU venter på 0x55AA -dataene. Derefter lyser LED'en grønt, og MCU begynder at registrere signalet fra IR -modtageren ved hjælp af afbrydelserne. Det måler og registrerer de tidsintervaller, signalet er i de høje og lave niveauer. Disse tider omdannes derefter til det 32-bit nummer, der sendes til pc'en.

Forholdet mellem tiderne og det endelige nummer er givet ved NEC -protokollen.

Trin 4: Sådan bruges enheden

Sådan bruges enheden
Sådan bruges enheden
Sådan bruges enheden
Sådan bruges enheden
Sådan bruges enheden
Sådan bruges enheden

Firmware

Upload firmwaren til PIC. Jeg bruger PICkit 3 programmereren.

Hardware

Installer IR -modtagermodulet som vist på billederne:

  1. Tilslut USB-headeren enten til den interne USB-slot på bundkortet inde i pc-kabinettet med passende 4-leder kabel eller eksternt til USB-stikket med standard USB-kabel. I det andet tilfælde skal du hjælpe dig selv på en eller anden måde, f.eks. som set på det 3. billede for en inspiration.
  2. Vedhæft 5 V-strømkablet fra strømkilden inde i pc-kabinettet til det 4-benede header. Eller strøm modulet på en anden måde i tilfælde af ekstern brug.

Slå op på bundkortets USB -stik pins beskrivelse. Jeg er ikke sikker på, om ledningerne følger en slags standard, så det er bedre at sikre sig. I mit tilfælde er der to stifterækker med 5 ben i den øverste række og 4 ben i den nederste. Fra venstre til højre er benene + 5 V, D-, D +, Gnd. Den 5. pin i den første række er ikke forbundet. Jeg fastgjorde kablet som set på det andet billede.

Software

Kør programmet i terminalen. Hvis alt går rigtigt, er den sidste meddelelse i programmet "venter på data …". Når du nu trykker på knappen på fjernbetjeningen, vises den modtagne kode i terminalen. På denne måde ved du, hvilken knap der udsender hvilken kode.

Nu venter nogle programmerings ting på dig, men bare rolig. Bare et par ting skal ændres i programmets kildekode, så programmet reagerer på din fjernbetjening. Åbn filen remotePC.c i teksteditoren eller i en eller anden IDE, hvis du kan lide det, og udskift mine koder med dine. Bare tryk på de knapper, du agter at bruge for hver handling en efter en. Du skal blot kopiere de koder, der vises i terminalen, og indsætte dem i kildekoden til stedet med tilsvarende handling.

Når du er færdig, afslut programmet og kompilér koden igen med kommandoen gcc -o remotePC remotePC.c. Kør programmet igen, og det vil reagere på din fjernbetjening fra nu af.

Jeg bruger denne måde med hardkodede handlinger i programmet, da jeg finder det meningsløst at spilde min tid med videreudvikling af projektet til staten, når det f.eks. Er muligt at tilføje/ændre koder/handlinger i det brugervenlige grafikmiljø. Men hvis du gerne vil gøre dette eller endnu mere, kan du.

Anbefalede: