Innehållsförteckning:

Datorns fjärrkontroll: 4 steg
Datorns fjärrkontroll: 4 steg

Video: Datorns fjärrkontroll: 4 steg

Video: Datorns fjärrkontroll: 4 steg
Video: En dators delar och delarnas funktion - Tekniktorsdag - #2 2024, Juni
Anonim
Datorns fjärrkontroll
Datorns fjärrkontroll

Förutom många andra ändamål använder jag min dator som multimediecenter. Ibland slappnar jag av i soffan och lyssnar på musik eller tittar på en film eller en TV och känner inte för att gå upp för att justera volymen eller byta TV -kanal varje gång dumma reklamfilmer dyker upp eller jag somnar och önskar tystnad. Så jag har bestämt mig för att göra min dator fjärrkontrollerad med en vanlig IR -fjärrkontroll så att jag bara kunde trycka på knappen omedelbart istället för att rasande ta tag i musen eller mut -knappen på tangentbordet.

Projektet består av flera delar:

  1. Fjärrkontroll
  2. PC -programvara
  3. IR -mottagarmodul

Steg 1: Fjärrkontrollen

Fjärrkontrollen
Fjärrkontrollen

Det första objektet - fjärrkontrollen - är trivialt att göra klart. Använd bara vilken IR -kontroll du vill. Jag använde den som är till salu som set tillsammans med IR -mottagare - se bilden. Den enda anledningen till att jag har bestämt mig för den här typen är bara för att jag redan hade den hemma.

Steg 2: Programvara

Jag har skapat programmet för GNU/Linux OS som körs i en terminal. Källkoden är gratis att ladda ner/använda/dela/ändra. För att kompilera koden utfärdar du bara kommandot som gcc -o remotePC remotePC.c i terminalen. För att köra programtypen./remotePC.

Följande information i detta steg riktar sig till dem som är intresserade av hur sakerna fungerar.

Programbeskrivningen

Programmet kontrollerar först om filen /dev /ttyACM0 eller ttyACM1 finns. I så fall kontrolleras gruppens ID för filen för att vara annorlunda än noll. Detta innebär att den seriella porten kan läsas från och skrivas till av den vanliga användaren. Två byte med värdena 0xAA 0x55 skrivs sedan till porten för att signalera att programmet är redo att ta emot data. Inkommande data jämförs med de lagrade värdena. Om matchningen hittas utförs den fördefinierade åtgärden.

Volymkontrollen

Programmet kan slå på/av ljudet, öka/sänka volymen på systemnivå. Detta uppnås med hjälp av programmet pactl. Kommandona ser då ut så här:

pactl set-sink-mute 0 växla

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0-10%

Installera vid behov paketen som krävs.

VLC Media Player -kontroll

Programmet kan också starta/pausa ljudet/videon och ändra spåret till föregående/nästa i spellistan på VLC Media Player. Skrivbordsbussen används i detta fall. Kommandona:

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

Steg 3: IR -mottagarmodul

IR -mottagarmodul
IR -mottagarmodul
IR -mottagarmodul
IR -mottagarmodul
IR -mottagarmodul
IR -mottagarmodul

Den tredje delen av projektet är den mest komplexa men ändå ganska enkel. Tanken är att IR -mottagaren kommer att mata ut signalen till MCU som omvandlar den till det unika numret. Detta nummer överförs sedan till datorn via USB.

Modulen är avsedd att monteras inuti PC -fodralet och anslutas till USB -kortplatsen på moderkortet med kabeln. Om du föredrar den externa anslutningen till USB måste du göra mindre justeringar.

MCU

Jag har byggt modulen på PIC16F1829 mikrokontroller. Valet av MCU är inte kritiskt, du kan använda valfri annan MCU om du kan justera källkoden. Jag har valt denna PIC av två skäl. Först hade jag den tillgänglig och för det andra skadades nålarna delvis av den intensiva användningen i de olika testprojekten. Så jag ville använda den i det permanenta projektet innan det blir helt oanvändbart.:-)

IR -mottagare

Den andra delen som modulen bygger på är IR -mottagaren VS1838B - den som nämns i det första steget.

UART/USB -omvandlare

Den tredje delen är MCP2221 som är UART/I2C/USB -omvandlaren.

Uppgiften är att kombinera dessa 3 delar för att bygga upp modulen som kommer att kunna ta emot signalerna från IR -fjärrkontrollen och överlämna dem till datorn.

Ledningarna

På den första bilden finns testkretsen på brödbrädan. I den andra finns kopplingsschemat.

Listan över delar

1 st PIC16F1829 (eller någon annan MCU)

1 st VS1838B (eller någon annan IR -mottagare)

1 st MCP2221 (eller någon annan UART/USB -omvandlare)

2 st 4-polig header

1 st 6-polig sidhuvud

1 st motstånd 100R

2 st motstånd 10K

2 st motstånd 330R

1 st kondensator 470 nF

2 st elektrolytkondensator 4,7 uF

1 st switch (tillval)

PCB -montering

Sätt ihop modulen med hjälp av schemat. Du kan antingen använda universalkortet eller skapa det anpassade kretskortet. Om det senare är fallet har jag tillhandahållit KiCad -filerna i arkivet nedan.

Firmware

Källkoden för PIC skriven med användning av MPLAB X IDE och XC8 -kompilatorn är tillgänglig för nedladdning nedan.

Källkod anteckningar

För dem som vill veta vad programmet gör exakt är följande rader.

När alla inställningar är klara lyser den röda lysdioden och MCU väntar på 0x55AA -data. Därefter lyser lysdioden grön och MCU börjar detektera signalen från IR -mottagaren med hjälp av avbrotten. Den mäter och registrerar tidsintervallen som signalen är i höga och låga nivåer. Dessa tider omvandlas sedan till 32-bitarsnumret som skickas till datorn.

Förhållandet mellan tiderna och det slutliga numret ges av NEC -protokollet.

Steg 4: Så här använder du enheten

Hur man använder enheten
Hur man använder enheten
Hur man använder enheten
Hur man använder enheten
Hur man använder enheten
Hur man använder enheten

Firmware

Ladda upp firmware till PIC. Jag använder PICkit 3 programmeraren.

Hårdvara

Installera IR -mottagarmodulen enligt bilderna:

  1. Anslut USB-huvudet antingen till det interna USB-uttaget på moderkortet inuti PC-fodralet med lämplig 4-trådskabel eller externt till USB-uttaget med standard USB-kabel. I det andra fallet måste du hjälpa dig själv på något sätt, t.ex. som på den 3: e bilden för inspiration.
  2. Anslut 5 V-strömkabeln från strömkällan inuti PC-fodralet till det 4-poliga huvudet. Eller strömförsörj modulen på ett annat sätt vid extern användning.

Slå upp beskrivningen på moderkortets USB -uttag. Jag är inte säker på om ledningarna följer någon form av standard så det är bättre att se till. I mitt fall finns det två stiftrader med 5 stift i den övre raden och 4 stift i den nedre. Från vänster till höger är stiften + 5 V, D-, D +, Gnd. Den femte stiftet i den första raden är inte ansluten. Jag fäst kabeln som ses på den andra bilden.

programvara

Kör programmet i terminalen. Om allt går rätt är det sista meddelandet i programmet "väntar på data …". När du nu trycker på knappen på fjärrkontrollen kommer den mottagna koden att visas i terminalen. På så sätt vet du vilken knapp som sänder vilken kod.

Nu väntar några programmeringsgrejer på dig, men oroa dig inte. Bara några saker måste ändras i programmets källkod så att programmet svarar på din fjärrkontroll. Öppna filen remotePC.c i textredigeraren eller i någon IDE om du vill och ersätt mina koder med dina. Tryck bara på knapparna du tänker använda för varje åtgärd en efter en. Kopiera bara koderna som visas i terminalen och klistra in dem i källkoden till platsen med motsvarande åtgärd.

När du är klar avslutar du programmet och kompilerar om koden med kommandot gcc -o remotePC remotePC.c. Kör programmet igen och det kommer att svara på din fjärrkontroll från och med nu.

Jag använder detta sätt med hårdkodade åtgärder i programmet eftersom jag tycker det är meningslöst att slösa min tid med vidareutveckling av projektet till staten när det är möjligt att lägga till/ändra koder/åtgärder i den användarvänliga grafikmiljön till exempel. Men om du vill göra det här eller ännu mer kan du.

Rekommenderad: