Wir stellen den TV Devil vor, einen einfachen Arduino Prank mit Fernbedienung

Werbung

Werbung
Werbung

Verstecken Sie das in Ihrem Wohnzimmer und lachen Sie, als die TiVo-Box von einem Dämon besessen ist, der kitschige Einkaufskanäle sehen möchte. Ob Ihr ultimatives Ziel ist, jedes Fernsehgerät in der Nachbarschaft auszuschalten oder eine universelle Siri-gesteuerte Fernbedienung zu bauen, dieses Projekt dient als ein guter Ausgangspunkt, um die Grundlagen der IR-Steuerung und -Empfänger zu erlernen.

In diesem "Streich" machen wir ein Gerät, das eine Reihe von IR-Fernbedienungsbefehlen aufzeichnet und dann wiedergibt. Es funktioniert mit jedem Gerät, das eine IR-Fernbedienung oder sogar eine Mischung von Geräten gleichzeitig verwendet - Aufzeichnung von bis zu 10 Tastendrücken.

Komponenten

Hier ist eine Liste der Dinge, die Sie für dieses Projekt benötigen:

  • Arduino und Patchdrähte
  • IR-Empfänger, wie TSOP382 - aber Sie sollten einen kompatiblen in alter Elektronik finden können. Ich zog meinen aus einem Ersatz-RGB-Controller. Sie haben typischerweise 3 Beine und sind schwarz, mit einer Seite, die aussieht wie eine LED, die halbiert und festgeklebt wurde. Ich bin sicher, dass es dafür ein technisches Wort gibt.
  • IR-Sender LED, wie TIL38 - wieder, das sind ziemlich häufig, aber ich kaufte eine neue High-Power-Karte von Maplin; Sie sehen genauso aus wie jede andere LED, also achten Sie darauf, sie nicht in Ihrem Elektronik-Kit zu verwechseln!
  • Geeigneter Widerstand für Ihre IR-LED - verwenden Sie diesen LED-Rechner bei der Versorgungsspannung (5 V vom Arduino) und der Vorwärtsspannung und -stromstärke vom LED-Datenblatt (normalerweise ca. 1, 2 V bei 20 mA). Das kam in meinem Fall als 220 Ohm heraus.
  • Drucktaster und 10k Pulldown und 100 Ohm Widerstände.
  • Laden Sie die IR-Remote-Bibliothek von Ken Shirriff von Github herunter und platzieren Sie sie in Ihrem Arduino / Libraries- Ordner. Es wird auch ein Beispielcode verwendet, auf den dann über das Menü Arduino Öffnen -> Bibliotheken zugegriffen werden kann.

Komponenten

Verdrahtung

Tackle diese Schaltung in drei Teile - der Schalter ist ein wenig fummelig, aber alles andere ist einfach. Denken Sie daran, dass der kurze Schenkel der LED mit der flachen Seite die Kathode (negativ oder Masse) ist; das lange Bein ist die Anode (positiv).

Schaltplan-Ir-Streich

Signale empfangen

Öffnen Sie den Beispielcode für Bibliotheken / IRremote / IRrecvDemo . Stellen Sie sicher, dass RECV_Pin korrekt eingestellt ist, kompilieren und hochladen und öffnen Sie dann die serielle Konsole mit 9600 Baud. Greifen Sie jede Fernbedienung, die Sie haben müssen, zielen Sie auf Ihren Empfänger und beginnen Sie mit dem Drücken der Tasten. Verschiedene Tasten erzeugen unterschiedliche Codes. einige zeigen einen langen Druck mit dem Anfangscode an, dann FFFFFF, während andere Fernbedienungen den Code einfach noch einmal wiederholen.

irrecv

Für eine detailliertere Ansicht der empfangenen Daten sehen Sie sich stattdessen das IRrecvDump- Beispiel an, das sowohl den Typ des empfangenen Signals (32-Bit-NEC in diesem Fall) als auch die Rohwerte angibt. Gut zu wissen, aber in den meisten Fällen wollen Sie nur die dekodierten Werte.

irdump

Ein Signal wiederholen

Wir werden unseren Streich heute nicht von Grund auf neu schreiben, also schauen Sie sich das Beispiel IRrecord an . Die Codekomplexität nimmt hier stark zu, aber es ist meist alles, um mit verschiedenen Arten von IR-Codes umzugehen - im Grunde geht es darum, was in der Schleife passiert:

  • Prüfen Sie, ob die Taste gedrückt ist, wiederholen Sie das aktuell gespeicherte Signal und wiederholen Sie alle 50 ms, bis Sie gedrückt wird.
  • Wenn nicht gedrückt wird und ein Signal erkannt wird, notieren Sie dies.

Die größte Einschränkung dieses Beispiels besteht darin, dass es nur mit jeweils einem Code funktioniert. Wenn Sie also eine andere Fernbedienungstaste drücken, wird die letzte überschrieben. Der Knopf wiederholt einfach das allerletzte Signal, das empfangen wurde. Kompilieren Sie den Code, und führen Sie ihn aus, damit Sie mit diesem grundlegenden Signalverstärker arbeiten können. Um ein einzelnes Signal wiederzugeben, funktioniert es gut, aber das ist bei Streich oder anderem wenig praktisch.

Der Streich!

Lassen Sie es leicht ändern, um 10 oder mehr schelmische Signale aufzuzeichnen. Sie können den vollständigen modifizierten Code hier finden, aber hier ist ein Überblick über die Änderungen, die ich gemacht habe, falls Sie dies selbst programmieren möchten:

  • Definieren Sie 3 neue Arrays der Größe 10 zum Speichern einer Gruppe von Signalen bei jeder Erkennung und eine Ganzzahl zum Speichern der Größe dieser Arrays.
  • Speichere einen Index, wo wir uns gerade in diesem Array befinden. Erhöhen Sie den Index jedes Mal, wenn ein Signal erkannt wird - aber erhöhen Sie nicht, wenn das Signal ein Wiederholungscode ist.
  • Ein boolescher Wert, bei dem mehr aufgezeichnet wird, wenn das Maximum erreicht ist.
  • Ein boolescher Wert, der angibt, ob wir uns im Wiedergabemodus befinden oder nicht, anstatt die Taste gedrückt halten zu müssen. änderte auch die Tastenlogik, um dies umzuschalten.

Beachten Sie, dass die Indikator-LED am Arduino (Pin 13) aktiviert wird, sobald der Speicher voll ist. Momentan müssen Sie 10 Tastendrücke aufzeichnen - nicht weniger - und der Wiedergabemodus wartet 1 Sekunde zwischen den einzelnen Tastenwiedergaben. Hier ist es in Aktion:

Sie können entweder mit mehr IR-Streiche spielen, oder betrachten dies als einen guten Start in ein epischer home-Automation-Projekt Home Automation Guide Mit Raspberry Pi und Arduino Home Automation Guide Mit Raspberry Pi und Arduino Der Home Automation-Markt ist überflutet mit teuren Verbrauchersystemen, inkompatibel und kostspielig zu installieren. Wenn Sie einen Raspberry Pi und einen Arduino haben, können Sie im Grunde das Gleiche erreichen ... Lesen Sie mehr; und vergiss nicht, dir alle anderen Arduino-Projekte anzusehen. Teilen Sie Ihre Kreationen (oder Probleme) in den Kommentaren und zeigen Sie Ihre Wertschätzung für diesen Artikel, indem Sie ihn in Ihren bevorzugten sozialen Netzwerken teilen!

Bildnachweis: DaGoaty

In this article