Inhaltsverzeichnis:

AIY Universal-IR-Fernbedienung - Gunook
AIY Universal-IR-Fernbedienung - Gunook

Video: AIY Universal-IR-Fernbedienung - Gunook

Video: AIY Universal-IR-Fernbedienung - Gunook
Video: Setting Universal Remote Control AC Chunghop K 1028E setup first time 2024, Dezember
Anonim
AIY Universal-IR-Fernbedienung
AIY Universal-IR-Fernbedienung

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

PCB herstellen
PCB herstellen
PCB herstellen
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

Verbinden Sie sich mit dem AIY Hut
Verbinden Sie sich mit dem AIY Hut
Verbinden Sie sich mit dem AIY Hut
Verbinden Sie sich mit dem AIY Hut

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!