Introductie van de TV Devil, An Easy Remote Control Arduino Prank

Advertentie

Advertentie
Advertentie

Verberg dit in je woonkamer en lach omdat de TiVo-box schijnbaar bezeten is door een demon die op zoek is naar goedkope winkelkanalen. Of het nu uw uiteindelijke doel is om elke tv in de buurt uit te schakelen of een universele door Siri bestuurde afstandsbediening te bouwen, dit project dient als een goed startpunt om de basisprincipes van IR-bediening en -ontvangers te leren.

In deze 'grap' zullen we een apparaat maken dat een reeks IR-afstandsbedieningen registreert en vervolgens weergeeft. Het werkt met elk apparaat dat gebruikmaakt van een IR-afstandsbediening of zelfs een combinatie van apparaten tegelijk - tot tien keer indrukken van een toets.

Components

Hier is een lijst met de dingen die je nodig hebt voor dit project:

  • Arduino en patch-draden
  • IR-ontvanger, zoals TSOP382 - maar je zou in oudere elektronica wel een compatibele kunnen vinden. Ik heb de mijne uit een reserve RGB-verlichtingscontroller gehaald. Ze hebben meestal 3 poten en zijn zwart, met aan één kant een LED die in twee is gehakt en die vastzit. Ik weet zeker dat daar een technisch woord voor is.
  • IR-zender LED, zoals TIL38 - nogmaals, deze zijn vrij gebruikelijk, maar ik heb een nieuwe krachtige versie gekocht van Maplin; ze zien er identiek uit voor elke andere LED, dus zorg ervoor dat ze niet door elkaar worden gehaald in uw elektronicakit!
  • Geschikte weerstand voor uw IR-LED - gebruik deze LED-calculator gezien de voedingsspanning (5 V van de Arduino) en de voorwaartse spanning en stroom van het gegevensblad van de LED (meestal rond 1, 2 V @ 20 mA). Dit kwam uit als 220 ohm in mijn geval.
  • Drukknop en 10k pulldown en 100 ohm weerstanden.
  • Download de IR remote library van Ken Shirriff uit Github en plaats deze in je map Arduino / Libraries . Er is ook een voorbeeldcode die we zullen gebruiken en die vervolgens toegankelijk moeten zijn vanuit het Arduino Open -> Bibliotheken- menu.

componenten

bedrading

Pak dit circuit in drie delen aan - de schakelaar is een beetje lastig, maar al het andere is eenvoudig. Denk aan het korte been van de LED met het platte vlak de kathode (negatief of geslepen); het lange been is de anode (positief).

schakelschema-ir-streek

Signalen ontvangen

Ga je gang en open de bibliotheken / IRremote / IRrecvDemo voorbeeldcode. Zorg ervoor dat de RECV_Pin correct is ingesteld, gecompileerd en geüpload en open vervolgens de seriële console op 9600 baud. Pak elke afstandsbediening die je bij de hand hebt, richt hem op je ontvanger en druk op de knoppen. Verschillende knoppen produceren verschillende codes; sommige geven een lange druk aan met de initiële code dan FFFFFF, terwijl verschillende afstandsbedieningen de code eenvoudigweg opnieuw kunnen herhalen.

irrecv

Voor een meer gedetailleerd overzicht van de gegevens die worden ontvangen, bekijkt u in plaats hiervan het voorbeeld IRrecvDump, dat zowel het type ontvangen signaal (32-bits NEC in dit geval) als de onbewerkte waarden aangeeft. Goed om te weten, maar in de meeste gevallen wil je gewoon de gedecodeerde waarden.

irdump

Een signaal herhalen

We zullen onze grap niet helemaal vanaf het begin schrijven, dus ga je gang en bekijk het IRrecord- voorbeeld. De codecomplexiteit neemt hier enorm toe, maar het is meestal allemaal mogelijk om met verschillende soorten IR-codes om te gaan - fundamenteel, hier is wat er gebeurt binnen de lus:

  • Controleer op de knop die wordt ingedrukt, speel het huidige opgeslagen signaal opnieuw af en herhaal dit elke 50 ms tot het wordt ingedrukt.
  • Als u niet wordt ingedrukt en een signaal wordt gedetecteerd, noteert u dat.

De grootste beperking van dit voorbeeld is dat het slechts met één code tegelijk werkt, dus als u op een andere knop op de afstandsbediening drukt, wordt de laatste overschreven. De knop herhaalt eenvoudigweg het allerlaatste signaal dat het heeft ontvangen. Compileer en voer de code uit zodat u aan de slag kunt met deze basis-signaalversterker. Voor het afspelen van een enkel signaal werkt het prima, maar dat is van weinig praktisch nut bij een grap of anderszins.

The Prank!

Laten we het enigszins aanpassen om 10 of meer ondeugende signalen op te nemen. Je kunt de volledige aangepaste code hier vinden, maar hier is een overzicht van de wijzigingen die ik heb aangebracht voor het geval je dit zelf zou willen programmeren:

  • Definieer 3 nieuwe arrays van grootte 10 voor het opslaan van een reeks signalen telkens wanneer er een wordt gedetecteerd, en een geheel getal om de grootte van die arrays op te slaan.
  • Sla een index op van waar we momenteel in die array zijn. Verhoog index telkens wanneer een signaal wordt gedetecteerd - maar verhoog niet als het signaal een herhalingscode is.
  • Een Booleaanse waarde die voorkomt dat meer wordt opgenomen zodra we het maximum hebben bereikt.
  • Een boolean om aan te geven of we in de afspeelmodus staan ​​of niet, in plaats van de knop ingedrukt te houden; heeft ook de knoplogica aangepast om dit te schakelen.

Merk op dat de indicator-LED op de Arduino (pin 13) zal worden geactiveerd zodra het geheugen vol is. Op dit moment moet je 10 drukknoppen op de knop opnemen - niet minder - en de afspeelmodus zal 1 seconde wachten tussen elke herhaling van de knop. Hier is het in actie:

Je kunt spelen met meer IR-streken maken, of dit als een goed begin beschouwen in een meer episch huisautomatiseringsproject. Home Automation Guide met Raspberry Pi en Arduino Home Automation Guide met Raspberry Pi en Arduino De huisautomatiseringsmarkt wordt overspoeld met dure consumentensystemen, onverenigbaar met elkaar en kostbaar om te installeren. Als je een Raspberry Pi en een Arduino hebt, kun je in principe hetzelfde bereiken op ... Lees meer; en vergeet niet om alle andere Arduino-projecten te bekijken. Deel uw creaties (of problemen) in de opmerkingen en laat uw waardering voor dit artikel zien door het te delen op uw favoriete sociale netwerken!

Afbeelding tegoed: DaGoaty

In this article