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

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

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 je 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 kennen.

In deze “streek”, we maken een apparaat 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 hetzelfde uit als elke andere LED, dus zorg ervoor dat ze niet door elkaar worden gehaald in uw elektronische kit!
  • 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-bibliotheek op afstand door Ken Shirriff van Github en plaats deze in uw bibliotheek Arduino / Bibliotheken map. Er is ook een voorbeeldcode die we zullen gebruiken en die vervolgens via de Arduino toegankelijk moeten zijn Open -> Bibliotheken menu.

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).

Signalen ontvangen

Ga je gang en open de libraries / irRemote / IRrecvDemo voorbeeldcode. Zorg ervoor dat de RECV_Pin is correct ingesteld, gecompileerd en geüpload en opent vervolgens de seriële console met 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 gewoon opnieuw kunnen herhalen.

Voor een meer gedetailleerd overzicht van de gegevens die worden ontvangen, bekijkt u de IRrecvDump voorbeeld in plaats daarvan, die 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.

Een signaal herhalen

We zullen onze grap niet helemaal vanaf het begin schrijven, dus ga je gang en bekijk de 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.

De grap!

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 matrices met afmeting 10 voor het opslaan van een reeks signalen telkens als er een wordt gedetecteerd, en een integer voor het opslaan van de grootte van die matrices.
  • 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

Ontdek meer over: Arduino, televisie.