Inhaltsverzeichnis:
- Schritt 1: PCB herstellen
- Schritt 2: Verbinden Sie sich mit dem AIY Hat
- Schritt 3: Installieren Sie LIRC
- Schritt 4: Abrufen oder Erstellen von LIRC-Dateien für Ihre Geräte
- Schritt 5: Code AIY zur Steuerung Ihrer Geräte
Video: AIY Universal-IR-Fernbedienung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Diese Anleitung beschreibt, wie man eine AIY Universal-Infrarot-Fernbedienung herstellt. Damit können Sie jeden Fernseher, jede Soundbar, jede Digibox, Ihren DVD- oder Bluray-Player mit Ihrer Stimme steuern.
Ich nenne es universell, da es einen IR-Empfänger enthält, mit dem das Infrarotsignal von jeder Fernbedienung aufgenommen werden kann.
Das AIY-Projekt verwendet das LIRC-Programm, um das IR-Signal aufzuzeichnen und zu übertragen.
Schritt 1: PCB herstellen
Liste der Einzelteile:
Zwei 940 nm 5 mm Infrarot-LED-Strahler
Ein Infrarot-Empfänger TSOP38238
Ein 2n3904 Transistor
Ein 10 Ohm Widerstand
Ein Veroboard
Vier Einzelstecker (optional - ich schneide einen sechspoligen Stecker in einzelne Stecker)
Kabel zum Anschluss an den AIY Hut.
Stellen Sie sicher, dass die IR-LEDs das lange Bein in der ersten Reihe und das kurze Bein in der zweiten haben. Zweite LED mit langem Bein in der zweiten Reihe und kurzem Bein in der dritten.
Der Transistor sollte am dritten die Basis, am vierten den Kollektor und am fünften den Emitter haben. Stellen Sie sicher, dass die flache Seite des Widerstands zum Anschluss zeigt.
Der Widerstand geht zwischen Reihe fünf und Reihe acht.
Verwenden Sie ein kurzes Stück Draht, um Reihe eins mit Reihe sieben zu verbinden.
Schließen Sie den IR-Empfänger an Reihe sieben, acht und neun an.
Fügen Sie die Konnektoren zu den Zeilen eins, vier, acht und neun hinzu.
Anschlüsse sind:
Reihe eins - +5V Leistung
Reihe vier - Sendersignal
Reihe acht - Boden
Reihe neun - Empfängersignal
Schritt 2: Verbinden Sie sich mit dem AIY Hat
Ich habe Header-Pins an meinem AIY angelötet, um das Anschließen zu erleichtern.
Die verwendeten Pins sind Servo 0 (GPIO 26) und Servo 5 (GPIO 24) für das Signal. Ich habe auch + 5 V vom horizontalen Pin über den Servo-Pins verwendet. Ich habe die Masse von GND neben Servo 0 genommen, aber Sie können jede beliebige Masse verwenden.
Mit den entsprechenden Kabeln habe ich den AIY-Hut wie folgt mit dem Board verbunden:
+5V zu Reihe eins
Servo 0 (GPIO 26) bis Reihe vier
GND zu Reihe 8
Servo 5 (GPIO 24) in Reihe neun.
Schritt 3: Installieren Sie LIRC
Vorausgesetzt, Sie haben AIY bereits eingerichtet und getestet:
Wir müssen LIRC installieren. Folgen Sie dieser wertvollen Anleitung von Mirza Irwan Osman:
www.instructables.com/id/Install-Linux-Infrared-Remote-Control-LIRC-Package
ODER eine alternative Anleitung finden Sie hier von Alex Bane:
alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/
HINWEIS: Für mein Setup musste ich sicherstellen, dass die Datei /boot/config.txt Folgendes enthält:
dtoverlay=lirc-rpi, gpio_in_pin=24, gpio_out_pin=26
Schritt 4: Abrufen oder Erstellen von LIRC-Dateien für Ihre Geräte
In diesem nächsten Schritt wird die Datei lircd.conf erstellt, die die Details zur Fernbedienung für die Geräte enthält, die Sie verwenden möchten.
Es gibt zwei Möglichkeiten, diese Datei zu erstellen:
1. Wenn Sie Glück haben, finden Sie auf den LIRC-Seiten eine vorhandene Datei für Ihr Gerät
2. Wenn Sie es nicht finden können, müssen Sie eine Datei mit dem IR-Empfänger und Ihrer Fernbedienung aufnehmen.
Gehen Sie für Schritt 1 zur LIRC-Homepage und sehen Sie sich die Liste der unterstützten Geräte an:
www.lirc.org/
Wenn Sie die Datei für das Gerät finden, müssen Sie die Informationen in der Datei in die Datei lircd.conf /etc/lirc. übertragen
Da mein AIY headerlos ist, verwende ich WINScP, um die Änderungen an der lirc.conf vorzunehmen.
Die benötigten Informationen beginnen mit "begin remote" und enden mit "end remote"
HINWEIS: Wenn Sie mehr als ein Gerät steuern möchten, fügen Sie einfach den zusätzlichen Fernbedienungscode in dieselbe Datei nach der vorhandenen "End-Fernbedienung" ein. Stellen Sie sicher, dass jede Fernbedienung einen eindeutigen Namen hat. Ich verwende "mytv" für meinen Fernseher und "sky" für meine Sky-Digibox usw.
Wenn Sie den Code für Ihr Gerät nicht finden können, müssen Sie ihn aufzeichnen.
Befolgen Sie diese Anleitung, um zu erfahren, wie Sie jede Fernbedienung mit LIRC aufnehmen:
www.instructables.com/id/Record-Infrared-Codes-of-Any-Remote-Control-Unit-f/
Nachdem Sie die erste Fernbedienung aufgenommen haben, wiederholen Sie den Vorgang, bis Sie alle Fernbedienungen aufgenommen haben. Anschließend können Sie die Datei lirc.conf mit allen aufgezeichneten Codes aktualisieren. Ich musste dies für meine Soundbar tun.
Schritt 5: Code AIY zur Steuerung Ihrer Geräte
Um den IR-Sender von AIY aus zu steuern, nehmen Sie die erforderlichen Änderungen in der Datei "assistant_library_with_local_commands_demo.py" vor.
Sie können "assistant_library_with_local_commands_demo.py" vom Start Dev Terminal aus ausführen, um zu sehen, ob Ihr Code funktioniert.
Ich lasse meinen AIY beim Booten automatisch starten, indem ich den Anweisungen hier folge:
aiyprojects.withgoogle.com/voice/#makers-guide-3-4--run-your-app-automatisch
Beachten Sie, dass Sie die Ausführung von AIY stoppen und dann erneut starten müssen, wenn Sie Ihren Code ändern möchten:
sudo service my_assistant stop
sudo service my_assistant start
Der angehängte Code enthält mein aktuelles Arbeitsprogramm.
(Beachten Sie, dass dieser Code auch zusätzliche Funktionen wie Internetradio enthält).
Der Code verwendet Variationen beim Senden der LIRC send_start und send_stop, um das erforderliche IR-Signal zu senden. Ich habe festgestellt, dass es notwendig ist, eine Pause zwischen dem Starten und Stoppen des Signals einzuführen, und dies kann je nach Gerät variieren (mein Panasonic-Fernseher benötigt ein längeres Signal als die Sky-Box). Also zum Beispiel:
subprocess.call('irsend SEND_START mytv KEY_POWER', shell=True)
time.sleep(0.5)
subprocess.call('irsend SEND_STOP mytv KEY_POWER', shell=True)
Um Kombinationen von Signalen zu senden, zum Beispiel den Sky-TV-Kanal, habe ich eine Liste erstellt, die einem Kanalcode eine Phrase zuordnet. Beachten Sie, dass der AIY manchmal nicht immer das richtige Wort hört, daher habe ich auch Variationen der Phrase hinzugefügt (wie bbc 1 und bbc one oder das Wort 'guide' sowie 'dave', da AIY das immer zurückgegeben hat, wenn ich sagte 'Dave' - es muss mein Akzent sein!). Ich habe dann eine Routine verwendet, die den dreistelligen Code aus der Liste aufnimmt und jede Nummer überträgt (siehe Modul ##Sky-Kanalwechselroutine##)
Es ist auch möglich, Kombinationen von Signalen an mehrere Geräte zu senden. So habe ich zum Beispiel eine "System on"-Routine, die den Fernseher einschaltet, die Soundbar einschaltet, die Skybox startet und auf BBC 1 umschaltet.
Sobald der IR-Sender mit AIY arbeitet, können Sie sich alle möglichen Kombinationen ausdenken, um ihn zu verwenden. Zum Beispiel kann ich einen Zeitbefehl senden, um die Lautstärke an der Soundbar anzupassen.
Viel Spaß bei der AIY IR-Fernbedienung!