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

Annons

Annons
Annons

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 utmärkt utgångspunkt för att lära dig grunderna för IR-kontroll och mottagare.

I den här "pranken" kommer vi att 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å se till att de inte blir blandade i din elektronik kit!
  • 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 mappen Arduino / Libraries . Det finns också några exempelkod som vi ska använda som ska vara tillgängliga från Arduino Open -> Library menyn.

komponenter

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

kretsschema-ir-ofog

Mottagande signaler

Fortsätt och öppna bibliotek / IRremote / IRrecvDemo exempelkod. Kontrollera att RECV_Pin är korrekt inställd, kompilera och ladda upp, och öppna sedan seriekonsolen vid 9600 baud. Ta tag i 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 enkelt kan upprepa koden igen.

irrecv

För en mer detaljerad bild av data som tas emot, ta en titt på IRrecvDump- exemplet istället, vilket kommer att indikera både typen av mottagen 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.

irdump

Upprepa en signal

Vi kommer inte skriva vår prank idag från början, så fortsätt och kolla in IRrecord- exemplet. 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 arrays.
  • 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 vänligen visa din uppskattning för den här artikeln genom att dela den på dina favorit sociala nätverk!

Bildkredit: DaGoaty

In this article