Innholdsfortegnelse:

Datamaskinens fjernkontroll: 4 trinn
Datamaskinens fjernkontroll: 4 trinn

Video: Datamaskinens fjernkontroll: 4 trinn

Video: Datamaskinens fjernkontroll: 4 trinn
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, November
Anonim
Datamaskinens IR -fjernkontroll
Datamaskinens IR -fjernkontroll

Ved siden av mange andre formål bruker jeg min PC som multimediasenter. Noen ganger slapper jeg av på sofaen og hører på musikk eller ser på en film eller en TV, og har ikke lyst til å stå opp for å justere volumet eller endre TV -kanalen hver gang dumme reklamer dukker opp, eller jeg sover og ønsker stillhet. Så jeg har bestemt meg for å gjøre PC -en fjernkontrollert med en standard IR -fjernkontroll, slik at jeg bare kunne trykke på knappen i stedet for rasende å gripe etter musen eller mute -tasten på tastaturet.

Prosjektet består av flere deler:

  1. Fjernkontroll
  2. PC -programvare
  3. IR mottaker modul

Trinn 1: Fjernkontrollen

Fjernkontrollen
Fjernkontrollen

Det første elementet - fjernkontrollen - er trivielt å bli ferdig med. Bare bruk hvilken som helst IR -kontroll du liker. Jeg brukte den som er til salgs som settet sammen med IR -mottaker - se bildet. Den eneste grunnen til at jeg har bestemt meg for denne typen er bare fordi jeg allerede hadde den hjemme.

Trinn 2: Programvare

Jeg har laget programmet for GNU/Linux OS som kjører i en terminal. Kildekoden er gratis å laste ned/bruke/dele/endre. For å kompilere koden, bare gi kommandoen som gcc -o remotePC remotePC.c i terminalen. For å kjøre programtypen./remotePC.

Følgende informasjon i dette trinnet er rettet til de som er interessert i hvordan ting fungerer.

Programbeskrivelsen

Programmet sjekker først om filen /dev /ttyACM0 eller ttyACM1 eksisterer. I så fall er gruppens ID for filen kontrollert for å være forskjellig fra null. Dette betyr at den serielle porten kan leses fra og skrives til av den vanlige brukeren. To byte med verdiene 0xAA 0x55 skrives deretter til porten for å signalisere at programmet er klart til å motta dataene. De innkommende dataene blir sammenlignet med de lagrede verdiene. Hvis kampen blir funnet, utføres den forhåndsdefinerte handlingen.

Volumkontrollen

Programmet er i stand til å slå lyden av/på, øke/senke volumnivået på systemnivå. Dette oppnås ved bruk av pactl -programmet. Kommandoene ser da slik ut:

pactl set-sink-mute 0 veksle

pactl set-sink-volum 0 +10%

pactl set-sink-volume 0-10%

Installer om nødvendig de nødvendige pakkene.

VLC Media Player -kontrollen

Programmet kan også starte/pause lyd/video og endre sporet til forrige/neste i spillelisten til VLC Media Player. Desktop -bussen brukes i dette tilfellet. Kommandoene:

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

Trinn 3: IR -mottakermodul

IR mottaker modul
IR mottaker modul
IR mottaker modul
IR mottaker modul
IR mottaker modul
IR mottaker modul

Den tredje delen av prosjektet er den mest komplekse, men likevel ganske enkel. Tanken er at IR -mottakeren sender ut signalet til MCU som vil transformere det til det unike nummeret. Dette nummeret blir deretter overført til PC -en via USB.

Modulen er ment å monteres inne i PC -etuiet og kobles til USB -sporet på hovedkortet med kabelen. Hvis du foretrekker den eksterne tilkoblingen til USB -en, må du foreta mindre justeringer.

MCU

Jeg har bygget modulen på PIC16F1829 mikrokontroller. Valget av MCU er ikke kritisk. Du kan bruke hvilken som helst annen MCU hvis du kan justere kildekoden. Jeg har valgt denne PIC av to grunner. Først hadde jeg den tilgjengelig, og for det andre ble pinnene delvis skadet av intens bruk i de forskjellige testprosjektene. Så jeg ønsket å bruke det i det permanente prosjektet før det blir totalt ubrukelig.:-)

IR -mottaker

Den andre delen modulen er basert på er IR -mottakeren VS1838B - den som er nevnt i det første trinnet.

UART/USB -omformer

Den tredje delen er MCP2221 som er UART/I2C/USB -omformeren.

Oppgaven er å kombinere disse 3 delene for å bygge opp modulen som vil kunne motta signalene fra IR -fjernkontrollen og overlevere dem til PCen.

Ledningene

På det første bildet er det testkretsen på brødbrettet. I den andre er det ledningsskjemaet.

Listen over deler

1 stk PIC16F1829 (eller annen MCU)

1 stk VS1838B (eller annen IR -mottaker)

1 stk MCP2221 (eller annen UART/USB -omformer)

2 stk 4-pinners topptekst

1 stk 6-pinners topptekst

1 stk motstand 100R

2 stk motstand 10K

2 stk motstand 330R

1 stk kondensator 470 nF

2 stk elektrolytkondensator 4,7 uF

1 stk bryter (valgfritt)

PCB -montering

Sett sammen modulen ved bruk av skjemaet. Du kan enten bruke universalbordet eller lage det egendefinerte kretskortet. Hvis sistnevnte er tilfelle, har jeg gitt KiCad -filene i arkivet nedenfor.

Fastvaren

Kildekoden for PIC skrevet med bruk av MPLAB X IDE og XC8 -kompilatoren er tilgjengelig for nedlasting nedenfor.

Kildekoden notater

For de som ønsker å vite hva programmet egentlig gjør, er følgende linjer.

Etter at alle innstillingene er gjort, er den røde lysdioden på og MCU venter på 0x55AA -dataene. Etter det blir LED -en grønn og MCU begynner å oppdage signalet fra IR -mottakeren ved bruk av avbruddene. Den måler og registrerer tidsintervallene signalet er i høye og lave nivåer. Disse tidene blir deretter transformert til 32-biters nummeret som sendes til PCen.

Forholdet mellom tidene og det endelige nummeret er gitt av NEC -protokollen.

Trinn 4: Slik bruker du enheten

Slik bruker du enheten
Slik bruker du enheten
Slik bruker du enheten
Slik bruker du enheten
Slik bruker du enheten
Slik bruker du enheten

Fastvare

Last opp fastvaren til PIC. Jeg bruker PICkit 3 programmereren.

Maskinvare

Installer IR -mottakermodulen som vist på bildene:

  1. Koble USB-hodet enten til det interne USB-sporet på hovedkortet inne i PC-etui med passende 4-leder kabel eller eksternt til USB-sporet med standard USB-kabel. I det andre tilfellet må du hjelpe deg selv på en eller annen måte, f.eks. som vist på det tredje bildet for inspirasjon.
  2. Fest 5 V-strømkabelen fra strømkilden inne i PC-etui til 4-pinners topptekst. Eller slå på modulen på en annen måte ved ekstern bruk.

Slå opp beskrivelsen på hovedkortets USB -kontaktpinner. Jeg er ikke sikker på om ledningene følger en slags standard, så det er bedre å sørge for det. I mitt tilfelle er det to pinnerader med 5 pinner i den øvre raden og 4 pinner i den nedre. Fra venstre til høyre er pinnene + 5 V, D-, D +, Gnd. Den femte pinnen i den første raden er ikke tilkoblet. Jeg festet kabelen som vist på det andre bildet.

Programvare

Kjør programmet i terminalen. Hvis alt går som det skal, er den siste meldingen i programmet "venter på data …". Når du trykker på knappen på fjernkontrollen, vil den mottatte koden vises på terminalen. På denne måten vet du hvilken knapp som sender ut hvilken kode.

Nå venter noen programmeringsgreier på deg, men ikke bekymre deg. Bare noen få ting må endres i programmets kildekode slik at programmet reagerer på fjernkontrollen. Åpne filen remotePC.c i tekstredigereren eller i en IDE hvis du vil, og bytt ut kodene mine med dine. Bare trykk på knappene du har tenkt å bruke for hver handling en etter en. Bare kopier kodene som vises i terminalen, og lim dem inn i kildekoden til stedet med tilsvarende handling.

Når du er ferdig, avslutt programmet og kompiler koden med kommandoen gcc -o remotePC remotePC.c. Kjør programmet igjen, og det vil svare på fjernkontrollen din fra nå av.

Jeg bruker denne måten med hardkodede handlinger i programmet da jeg synes det er meningsløst å kaste bort tiden min med videreutvikling av prosjektet til staten når det er mulig å legge til/endre koder/handlinger i det brukervennlige grafikkmiljøet for eksempel. Men hvis du vil gjøre dette eller enda mer, kan du gjøre det.

Anbefalt: