Vorstellung des TV Devil, eine einfache Fernbedienung für den Arduino-Streich
Verstecken Sie dies in Ihrem Wohnzimmer und lachen Sie, während die TiVo-Box scheinbar von einem Dämon besessen ist, der käsige Einkaufskanäle sehen will. Unabhängig davon, ob es Ihr Ziel ist, jeden Fernseher in der Nachbarschaft auszuschalten oder eine universelle Siri-Fernbedienung zu bauen, dieses Projekt ist ein guter Ausgangspunkt, um die Grundlagen der IR-Steuerung und der Empfänger zu erlernen.
In diesem “Streich”, Wir werden ein Gerät erstellen, das eine Reihe von IR-Fernbefehlen aufzeichnet und dann wiedergibt. Es funktioniert mit jedem Gerät, das eine IR-Fernbedienung verwendet, oder sogar einer Kombination von Geräten gleichzeitig - es können bis zu 10 Tastendrücke aufgezeichnet werden.
Komponenten
Hier ist eine Liste der Dinge, die Sie für dieses Projekt benötigen:
- Arduino und Patch Drähte
- IR-Empfänger wie TSOP382 - Sie sollten jedoch in der alten Elektronik einen kompatiblen Empfänger finden. Ich zog meinen aus einem freien RGB-Beleuchtungscontroller heraus. Sie haben normalerweise drei Beine und sind schwarz, wobei eine Seite wie eine LED aussieht, die in zwei Hälften geschnitten wurde und angeklebt ist. Ich bin sicher, dass es dafür ein technisches Wort gibt.
- IR-Sender-LED wie TIL38 - wieder sind diese ziemlich üblich, aber ich habe eine neue Hochleistungs-LED von Maplin gekauft; Sie sehen genauso aus wie jede andere LED. Achten Sie darauf, dass diese nicht in Ihrem Elektronik-Kit verwechselt werden!
- Geeigneter Widerstand für Ihre IR-LED - Verwenden Sie diesen LED-Rechner mit der Versorgungsspannung (5 V vom Arduino) und der Durchlassspannung und dem Strom aus dem LED-Datenblatt (normalerweise um 1,2 V bei 20 mA). In meinem Fall waren dies 220 Ohm.
- Pushbutton und 10k Pulldown und 100 Ohm Widerstände.
- Laden Sie die IR - Fernbedienungsbibliothek von Ken Shirriff von Github herunter und platzieren Sie sie in Ihrem Arduino / Bibliotheken Mappe. Es gibt auch einen Beispielcode, den wir verwenden sollten und der dann vom Arduino aus zugänglich sein sollte Öffnen -> Bibliotheken Speisekarte.
Verdrahtung
Packen Sie diese Schaltung in drei Teilen an - der Schalter ist etwas fummelig, aber alles andere ist einfach. Denken Sie daran, dass der kurze Schenkel der LED mit der flachen Seite die Kathode ist (Minus oder Masse). das lange Bein ist die Anode (positiv).
Signale empfangen
Mach weiter und öffne die Bibliotheken / IRremote / IRrecvDemo Beispielcode. Stellen Sie sicher, dass RECV_Pin richtig eingestellt ist, kompilieren und hochladen und dann die serielle Konsole bei 9600 Baud öffnen. Schnappen Sie sich eine beliebige Fernbedienung, richten Sie sie auf Ihren Empfänger und drücken Sie die Tasten. Verschiedene Tasten erzeugen unterschiedliche Codes. Einige zeigen dann ein langes Drücken mit dem ursprünglichen Code an FFFFFF, Während andere Fernbedienungen den Code möglicherweise einfach wiederholen.
Eine detailliertere Ansicht der empfangenen Daten finden Sie in der IRrecvDump Beispiel stattdessen, was sowohl den Typ des empfangenen Signals (in diesem Fall 32-Bit-NEC) als auch die Rohwerte angibt. Gut zu wissen, aber in den meisten Fällen möchten Sie nur die dekodierten Werte.
Signal wiederholen
Wir werden unseren Streich heute nicht von Grund auf schreiben, also schauen Sie sich das an IRrecord Beispiel. Die Codekomplexität nimmt hier stark zu, aber es ist meistens alles, um mit verschiedenen Arten von IR-Codes zurechtzukommen - im Wesentlichen ist das, was in der Schleife passiert:
- Überprüfen Sie, ob eine Taste gedrückt wird, geben Sie das aktuell gespeicherte Signal wieder und wiederholen Sie es alle 50 ms, bis Sie es drücken.
- Wenn nicht gedrückt wird und ein Signal erkannt wird, nehmen Sie das auf.
Die größte Einschränkung dieses Beispiels ist, dass es jeweils nur mit einem Code arbeitet. Wenn Sie eine andere Fernbedienungstaste drücken, wird der letzte Code dadurch überschrieben. Die Taste gibt einfach das zuletzt empfangene Signal wieder. Kompilieren Sie den Code und führen Sie ihn aus, damit Sie mit diesem grundlegenden Signalverstärker arbeiten können. Für die Wiedergabe eines einzelnen Signals funktioniert es gut, aber das ist in einem Streich oder auf andere Weise wenig sinnvoll.
Der Streich!
Lassen Sie uns etwas modifizieren, um 10 oder mehr schelmische Signale aufzunehmen. Den vollständigen modifizierten Code finden Sie hier, aber hier ein Überblick über die Änderungen, die ich vorgenommen habe, falls Sie dies selbst programmieren möchten:
- Definieren Sie 3 neue Arrays der Größe 10, um jedes Mal, wenn eines erkannt wird, einen Satz von Signalen zu speichern, und eine Ganzzahl, um die Größe dieser Arrays zu speichern.
- Speichern Sie einen Index, an dem wir uns aktuell in diesem Array befinden. Erhöhen Sie den Index jedes Mal, wenn ein Signal erkannt wird. Erhöhen Sie ihn jedoch nicht, wenn das Signal ein Wiederholungscode ist.
- Ein boolescher Wert, der nach dem Erreichen des Maximums keine weitere Aufzeichnung mehr aufnimmt.
- Ein boolescher Wert, um anzuzeigen, ob wir im Wiedergabemodus sind oder nicht, anstatt die Taste gedrückt zu halten. Außerdem wurde die Tastenlogik geändert, um dies zu ändern.
Beachten Sie, dass die Anzeige-LED am Arduino (Pin 13) aktiviert wird, sobald der Speicher voll ist. Im Moment müssen Sie 10 Tastendrücke aufzeichnen - nicht weniger -, und der Wiedergabemodus wartet 1 Sekunde zwischen jeder Tastenwiedergabe. Hier ist es in Aktion:
Sie können entweder mit mehr IR-Streichern spielen oder dies als einen guten Start in ein epischeres Hausautomationsprojekt betrachten. Anleitung zur Hausautomation mit Raspberry Pi und Arduino Hausautomation zur Anleitung mit Raspberry Pi und Arduino miteinander inkompatibel und teuer zu installieren. Wenn Sie einen Raspberry Pi und einen Arduino haben, können Sie im Grunde dasselbe bei… Read More; Vergessen Sie nicht, alle anderen Arduino-Projekte zu überprüfen. 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
Mehr über: Arduino, Fernsehen.