Introduktion till TV Devil, en enkel fjärrkontroll Arduino Prank

Introduktion till TV Devil, en enkel fjärrkontroll Arduino Prank / DIY

Dölj detta i ditt vardagsrum och skratta eftersom TiVo-lådan är uppenbarligen besatt av en demon som kräver att titta på ostiga shoppingkanaler. Oavsett om ditt yttersta mål är att stänga av varje TV i grannskapet eller bygga en universell Siri-kontrollerad fjärrkontroll, fungerar detta projekt som en bra utgångspunkt för att lära dig grunderna för IR-kontroll och mottagare.

I denna “upptåg”, vi ska göra en enhet som spelar in, sedan spelar upp en serie IR-fjärrkommandon. Det kommer att fungera med alla enheter som använder en IR-fjärrkontroll, eller till och med en mix av enheter på en gång - inspelning upp till 10 tangenttryck.

Komponenter

Här är en lista över de saker du behöver för det här projektet:

  • Arduino och patch trådar
  • IR-mottagare, som TSOP382 - men du borde kunna hitta en kompatibel i gammal elektronik. Jag drog min ut ur en extra RGB-ljusstyrning. De har vanligtvis 3 ben och är svarta, med ena sidan som en LED som har huggats i halva och fast på. Jag är säker på att det finns ett tekniskt ord för det.
  • IR-sändarlampa, till exempel TIL38 - igen, dessa är ganska vanliga, men jag köpte en ny high power-en från Maplin; De ser identiska ut med någon annan LED, så var noga med att inte få dem blandade i ditt elektronikpaket!
  • Lämpligt motstånd för din IR-LED - använd denna LED-kalkylator med tanke på spänningen (5 V från Arduino) och framspänningen och strömmen från LED-databladet (vanligtvis runt 1,2 V @ 20 mA). Detta kom ut som 220 ohm i mitt fall.
  • Tryckknapp, och 10k pulldown och 100 ohm motstånd.
  • Ladda ner IR-fjärrbiblioteket av Ken Shirriff från Github och placera i din Arduino / Bibliotek mapp. Det finns också några exempelkod som vi ska använda som då ska vara tillgängliga från Arduino Öppna -> Bibliotek meny.

ledningar

Tack vare denna krets i tre delar - strömbrytaren är lite fiddly, men allting är enkelt. Kom ihåg det korta benet på LED-lampan med det platta ansiktet är katoden (negativ eller jordad); det långa benet är anoden (positiv).

Mottagande signaler

Gå vidare och öppna upp bibliotek / IRremote / IRrecvDemo exempelkod. Se till att RECV_Pin är korrekt inställd, kompilera och ladda upp, öppna sedan seriekonsolen vid 9600 baud. Ta tag på vilken fjärrkontroll du behöver, rikta den till din mottagare och börja trycka på knappar. Olika knappar kommer att producera olika koder; vissa kommer att indikera en lång tryckning med den ursprungliga koden då FFFFFF, medan olika fjärrkontroller helt enkelt kan upprepa koden igen.

För en mer detaljerad bild av data som tas emot, ta en titt på IRrecvDump Exempel istället, vilket kommer att indikera både den mottagna typen av signal (32-bitars NEC i det här fallet) och de råa värdena. Bra att veta, men i de flesta fall behöver du bara de avkodade värdena.

Upprepa en signal

Vi kommer inte skriva vår prank idag från början, så fortsätt och kolla in IRrecord exempel. Kodkomplexiteten ökar starkt här, men det handlar mest om att hantera olika typer av IR-koder - i grunden här är det som händer inom slingan:

  • Kontrollera att knappen trycks in, spela upp den nuvarande sparade signalen om den är och upprepa var 50: e sekund tills den är nedtryckt.
  • Om du inte trycker på och en signal detekteras, registrerar du det.

Den största begränsningen i det här exemplet är att den bara fungerar med en kod i taget, så om du trycker på en annan fjärrknapp kommer den att skriva över den sista. Knappen replikerar helt enkelt den sista senast mottagna signalen. Kompilera och kör koden så att du kan gå med denna grundläggande signal repeater. För att spela upp en enda signal fungerar det bra, men det är av liten praktisk användning i en prank eller på annat sätt.

Pranken!

Låt oss modifiera det något för att spela in 10 eller fler skrämmande signaler. Du kan hitta den fullständiga ändrade koden här, men här är en översikt över de ändringar som jag gjorde om du skulle vilja ha en programmering för dig själv:

  • Definiera 3 nya arrayer med storlek 10 för att lagra en uppsättning signaler varje gång en detekteras och ett heltal för att lagra storleken på dessa arrayer.
  • Förvara ett index över var vi för tillfället befinner oss i. Öka index varje gång en signal detekteras - men öka inte om signalen är en repetitions kod.
  • Ett booleskt värde som slutar att registreras när vi har nått det maximala.
  • En booleska för att indikera om vi är i uppspelningsläge eller inte, snarare än att hålla ner knappen. har också ändrat knapplogiken för att växla om detta.

Observera att indikatorlampan på Arduino (stift 13) aktiveras när minnet är fullt. Just nu måste du spela in 10 knapptryck - inte mindre - och återspelningsläget väntar 1 sekund mellan varje knappspelning. Här är det i aktion:

Du kan antingen spela med att göra fler IR-prankar eller betrakta det här som en bra start på ett mer episkt hemautomatiseringsarbete. Hemautomatiseringsguide Med Raspberry Pi och Arduino Hemautomatiseringsguide Med Raspberry Pi och Arduino Hemautomatiseringsmarknaden översvämmas med dyra konsumentsystem, inkompatibla med varandra och kostsamt att installera. Om du har en Raspberry Pi och en Arduino, kan du i princip uppnå samma sak på ... Läs mer; och glöm inte att kolla alla andra Arduino-projekt. Dela dina skapelser (eller problem) i kommentarerna och var vänlig visa din uppskattning för den här artikeln genom att dela den på dina sociala nätverk!

Bildkredit: DaGoaty

Utforska mer om: Arduino, Television.