Inhaltsverzeichnis:
- Schritt 1: Die Fernbedienung
- Schritt 2: Software
- Schritt 3: IR-Empfängermodul
- Schritt 4: So verwenden Sie das Gerät
Video: Die IR-Fernbedienung des Computers - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
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:
- Fernbedienung
- PC-Software
- IR-Empfängermodul
Schritt 1: 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
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
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:
- 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.
- 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:
Entwicklung des Drivemall-Boards: 5 Schritte
Entwicklung des Drivemall Boards: In diesem Tutorial sehen wir die grundlegenden Schritte zum Erstellen eines benutzerdefinierten Arduino-Boards. Die verwendete Software ist KiCad für das Boarddesign und die Arduino IDE für das Erstellen und Laden der Firmware für das Board
Installieren des Windows-Subsystems für Linux (WSL): 3 Schritte
Installieren des Windows-Subsystems für Linux (WSL): Diese Anleitung soll Benutzern helfen, das Windows-Subsystem für Linux auf ihrem Windows 10-Computer zu installieren. Die spezifische Linux-Distribution, die dieser Befehlssatz verwendet, heißt Ubuntu. Schauen Sie hier für eine Übersicht über die verschiedenen Linux
Navigieren Sie durch die Software des Raspberry Pi: Teil 2: 10 Schritte
Navigieren Sie durch die Software des Raspberry Pi: Teil 2: Diese Lektion ist eine Fortsetzung Ihrer Befehlszeilenausbildung. Während Sie mit dem Raspberry Pi arbeiten, installieren Sie zweifellos neue Software zum Lernen, Ausprobieren und Erstellen. In dieser Lektion erfahren Sie, wie Sie Softwarepakete installieren und
So verbinden Sie die Android-Anwendung mit AWS IOT und verstehen die Spracherkennungs-API: 3 Schritte
So verbinden Sie die Android-Anwendung mit AWS IOT und verstehen die Spracherkennungs-API: In diesem Tutorial erfahren Sie, wie Sie die Android-Anwendung mit dem AWS IOT-Server verbinden und die Spracherkennungs-API verstehen, die eine Kaffeemaschine steuert. Die Anwendung steuert die Kaffeemaschine über Alexa Sprachdienst, die c
So bauen Sie eine Uhr, die die Zeit an die Wand projiziert – wikiHow
So bauen Sie eine Uhr, die Zeit an die Wand projiziert: Dieses Instructable zeigt Ihnen, wie Sie eine Projektoruhr bauen. Mit diesem Gerät können Sie die Zeit an die Wand projizieren. Basierend auf einem kleinen LCD-Wecker (nicht zu klein, sondern kann nicht projiziert und bearbeitet werden) ist dies eine gute Möglichkeit