Inhaltsverzeichnis:

Die IR-Fernbedienung des Computers - Gunook
Die IR-Fernbedienung des Computers - Gunook

Video: Die IR-Fernbedienung des Computers - Gunook

Video: Die IR-Fernbedienung des Computers - Gunook
Video: DIY USB IR Receiver - Control your PC using any remote - (HTPC + WinLIRC) 2024, November
Anonim
Die Computer-IR-Fernbedienung
Die Computer-IR-Fernbedienung

Neben vielen anderen Zwecken nutze ich meinen PC als Multimedia-Zentrale. Manchmal entspanne ich mich auf dem Sofa, höre Musik oder schaue einen Film oder Fernseher und habe keine Lust aufzustehen, um die Lautstärke zu regulieren oder den Fernsehkanal zu wechseln, wenn dumme Werbespots erscheinen oder ich einschlafe und mir das wünsche Stille. Also habe ich beschlossen, meinen PC mit einer Standard-IR-Fernbedienung fernsteuern zu lassen, damit ich sofort die Taste drücken kann, anstatt wütend nach der Maus oder der Stummschalttaste auf der Tastatur zu greifen.

Das Projekt besteht aus mehreren Teilen:

  1. Fernbedienung
  2. PC-Software
  3. IR-Empfängermodul

Schritt 1: Die Fernbedienung

Die Fernbedienung
Die Fernbedienung

Der erste Gegenstand - die Fernbedienung - ist trivial. Verwenden Sie einfach eine beliebige IR-Steuerung. Ich habe das zum Verkauf stehende Set zusammen mit IR-Empfänger verwendet - siehe Bild. Der einzige Grund, warum ich mich für diesen Typ entschieden habe, ist einfach, weil ich ihn schon zu Hause hatte.

Schritt 2: Software

Ich habe das Programm für das GNU/Linux-Betriebssystem erstellt, das in einem Terminal läuft. Der Quellcode kann kostenlos heruntergeladen/verwendet/geteilt/verändert werden. Um den Code zu kompilieren, geben Sie einfach den Befehl gcc -o remotePC remotePC.c im Terminal ein. Um das Programm auszuführen, geben Sie./remotePC ein.

Die folgenden Informationen in diesem Schritt richten sich an diejenigen, die sich für die Funktionsweise der Dinge interessieren.

Die Programmbeschreibung

Das Programm prüft zunächst, ob die Datei /dev/ttyACM0 oder ttyACM1 existiert. Wenn dies der Fall ist, wird überprüft, ob die Gruppen-ID der Datei von Null verschieden ist. Dies bedeutet, dass der serielle Port vom normalen Benutzer gelesen und beschrieben werden kann. Anschließend werden zwei Bytes mit den Werten 0xAA 0x55 auf den Port geschrieben, um zu signalisieren, dass das Programm bereit ist, die Daten zu empfangen. Die eingehenden Daten werden mit den gespeicherten Werten verglichen. Wenn die Übereinstimmung gefunden wird, wird die vordefinierte Aktion ausgeführt.

Der Lautstärkeregler

Das Programm kann den Ton ein- und ausschalten, die Lautstärke auf Systemebene erhöhen/verringern. Dies wird durch die Verwendung des pactl-Programms erreicht. Die Befehle sehen dann so aus:

pactl set-sink-mute 0 toggle

pactl Set-Senke-Volumen 0 +10%

pactl Set-Senke-Volumen 0 -10%

Installieren Sie ggf. die gewünschten Pakete.

Die VLC Media Player-Steuerung

Das Programm kann auch das Audio/Video starten/pausieren und den Titel in der Wiedergabeliste des VLC Media Players zum vorherigen/nächsten wechseln. In diesem Fall wird der Desktop-Bus verwendet. Die Befehle:

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

Schritt 3: IR-Empfängermodul

IR-Empfängermodul
IR-Empfängermodul
IR-Empfängermodul
IR-Empfängermodul
IR-Empfängermodul
IR-Empfängermodul

Der dritte Teil des Projekts ist der komplexeste und dennoch ziemlich einfach. Die Idee ist, dass der IR-Empfänger das Signal an die MCU ausgibt, die es in die eindeutige Nummer umwandelt. Diese Nummer wird dann über USB an den PC übertragen.

Das Modul soll im PC-Gehäuse montiert und mit dem Kabel an den USB-Steckplatz des Motherboards angeschlossen werden. Falls Sie die externe Verbindung zum USB bevorzugen, müssen Sie kleinere Anpassungen vornehmen.

MCU

Ich habe das Modul auf dem Mikrocontroller PIC16F1829 gebaut. Die Wahl der MCU ist nicht kritisch, Sie können jede andere MCU verwenden, wenn Sie den Quellcode anpassen können. Ich habe dieses PIC aus zwei Gründen gewählt. Erstens hatte ich es zur Verfügung und zweitens waren seine Pins durch die intensive Nutzung in den verschiedenen Testprojekten teilweise beschädigt. Also wollte ich es im Dauerprojekt verwenden, bevor es völlig unbrauchbar wird.:-)

IR-Empfänger

Der zweite Teil, auf dem das Modul basiert, ist der IR-Empfänger VS1838B - der im 1. Schritt erwähnte.

UART/USB-Konverter

Der dritte Teil ist der MCP2221, der der UART/I2C/USB-Konverter ist.

Die Aufgabe besteht darin, diese 3 Teile zu kombinieren, um das Modul aufzubauen, das die Signale der IR-Fernbedienung empfangen und an den PC weitergeben kann.

Die Verkabelung

Im ersten Bild befindet sich die Testschaltung auf dem Steckbrett. Im zweiten befindet sich der Schaltplan.

Die Liste der Teile

1 Stück PIC16F1829 (oder jede andere MCU)

1 Stück VS1838B (oder jeder andere IR-Empfänger)

1 Stück MCP2221 (oder jeder andere UART/USB-Konverter)

2 Stück 4-Pin-Header

1 Stück 6-Pin-Stiftleiste

1 Stück Widerstand 100R

2 Stück Widerstand 10K

2 Stück Widerstand 330R

1 Stück Kondensator 470 nF

2 Stück Elektrolytkondensator 4,7 uF

1 Stück Schalter (optional)

Leiterplattenmontage

Bauen Sie das Modul anhand des Schaltplans zusammen. Sie können entweder die Universalplatine verwenden oder die benutzerdefinierte Platine erstellen. Wenn letzteres der Fall ist, habe ich die KiCad-Dateien im Archiv unten bereitgestellt.

Die Firmware

Der Quellcode für den PIC, der unter Verwendung der MPLAB X IDE und des XC8-Compilers geschrieben wurde, steht unten zum Download bereit.

Die Quellcode-Hinweise

Für diejenigen, die wissen möchten, was das Programm genau macht, sind die folgenden Zeilen.

Nachdem alle Einstellungen vorgenommen wurden, leuchtet die rote LED und die MCU wartet auf die 0x55AA-Daten. Danach wird die LED grün und die MCU beginnt mit der Erkennung des Signals vom IR-Empfänger mit Hilfe der Interrupts. Es misst und zeichnet die Zeitintervalle auf, in denen sich das Signal im High- und Low-Pegel befindet. Diese Zeiten werden dann in die 32-Bit-Zahl umgewandelt, die an den PC gesendet wird.

Die Beziehung zwischen den Zeiten und der endgültigen Zahl wird durch das NEC-Protokoll vorgegeben.

Schritt 4: So verwenden Sie das Gerät

So verwenden Sie das Gerät
So verwenden Sie das Gerät
So verwenden Sie das Gerät
So verwenden Sie das Gerät
So verwenden Sie das Gerät
So verwenden Sie das Gerät

Firmware

Laden Sie die Firmware auf den PIC hoch. Ich benutze den PICkit 3 Programmierer.

Hardware

Installieren Sie das IR-Empfängermodul wie in den Bildern zu sehen:

  1. Verbinden Sie den USB-Header entweder mit einem geeigneten 4-adrigen Kabel mit dem internen USB-Steckplatz des Motherboards im Inneren des PC-Gehäuses oder extern mit dem Standard-USB-Kabel mit dem USB-Steckplatz. Im zweiten Fall muss man sich irgendwie selbst helfen, z. B. wie im 3. Bild zur Inspiration zu sehen.
  2. Verbinden Sie das 5-V-Stromkabel von der Stromquelle im PC-Gehäuse mit dem 4-Pin-Header. Oder versorgen Sie das Modul bei externer Verwendung auf andere Weise.

Schlagen Sie die Beschreibung der USB-Buchsenpins des Motherboards nach. Ich bin mir nicht sicher, ob die Verkabelung einer Art Standard entspricht, daher ist es besser, sicherzustellen. In meinem Fall gibt es zwei Pinreihen mit 5 Pins in der oberen Reihe und 4 Pins in der unteren. Von links nach rechts sind die Pins + 5 V, D-, D+, Gnd. Der 5. Pin in der ersten Reihe ist nicht angeschlossen. Ich habe das Kabel wie im zweiten Bild zu sehen angeschlossen.

Software

Führen Sie das Programm im Terminal aus. Wenn alles richtig läuft, lautet die letzte Meldung des Programms "warte auf Daten…". Wenn Sie nun die Taste auf der Fernbedienung drücken, wird der empfangene Code im Terminal angezeigt. Auf diese Weise wissen Sie, welche Schaltfläche welchen Code ausgibt.

Jetzt wartet ein paar Programmierkram auf Sie, aber keine Sorge. Es müssen nur wenige Dinge im Quellcode des Programms geändert werden, damit das Programm auf Ihre Fernbedienung reagiert. Öffnen Sie die Datei remotePC.c im Texteditor oder in einer IDE, wenn Sie möchten, und ersetzen Sie meine Codes durch Ihre. Drücken Sie einfach die Tasten, die Sie für jede Aktion verwenden möchten, nacheinander. Kopieren Sie einfach die Codes, die im Terminal angezeigt werden, und fügen Sie sie in den Quellcode an der Stelle mit entsprechender Aktion ein.

Wenn Sie fertig sind, beenden Sie das Programm und kompilieren Sie den Code mit dem Befehl gcc -o remotePC remotePC.c neu. Führen Sie das Programm erneut aus und es reagiert von nun an auf Ihre Fernbedienung.

Ich nutze diesen Weg bei hartcodierten Aktionen im Programm, da ich es sinnlos finde, meine Zeit mit der Weiterentwicklung des Projekts zu verschwenden, um zum Beispiel Codes/Aktionen in der benutzerfreundlichen Grafikumgebung hinzuzufügen/zu ändern. Aber wenn Sie dies oder noch mehr tun möchten, können Sie dies tun.

Empfohlen: