Introduktion til TV Devil, en nem fjernbetjening Arduino Prank

Reklame

Reklame
Reklame

Skjul dette i din stue og grine da TiVo-boksen tilsyneladende er besat af en dæmon, der kræver at se ostehandlende shoppingkanaler. Uanset om dit ultimative mål er at slukke for hvert fjernsyn i nabolaget eller opbygge en universel Siri-styret fjernbetjening, tjener dette projekt som et godt udgangspunkt for at lære det grundlæggende i IR-kontrol og modtagere.

I denne "prank" vil vi lave en enhed, der registrerer, så afspilles en række IR-fjernkommandoer. Det vil fungere med enhver enhed, der bruger en IR-fjernbetjening eller endda en blanding af enheder på én gang - optagelse op til 10 nøglepresser.

komponenter

Her er en liste over de ting, du har brug for til dette projekt:

  • Arduino og patch ledninger
  • IR-modtager, såsom TSOP382 - men du skal kunne finde en kompatibel enhed i den gamle elektronik. Jeg tog min ud af en ekstra RGB lysstyring. De har typisk 3 ben og er sorte, og den ene side ligner en LED, der er hakket i halve og sidder fast. Jeg er sikker på, at der er et teknisk ord til det.
  • IR sender LED, som TIL38 - igen, disse er ret almindelige, men jeg købte en ny high power en fra Maplin; de ser identisk ud med andre LED'er, så sørg for ikke at få dem blandet i dit elektronik kit!
  • Passende modstand til din IR LED - brug denne LED-kalkulator givet forsyningsspændingen (5 V fra Arduino) og fremspænding og strøm fra LED-databladet (normalt omkring 1, 2 V @ 20 mA). Dette kom ud som 220 ohm i mit tilfælde.
  • Trykknap og 10k pulldown og 100 ohm modstande.
  • Download IR-fjernbiblioteket af Ken Shirriff fra Github og læg i din Arduino / Biblioteker- mappe. Der er også nogle eksempler, som vi skal bruge, som skal være tilgængelige fra Arduino Open -> Biblioteker menuen.

komponenter

Ledninger

Takket være dette kredsløb i tre dele - kontakten er lidt fiddly, men alt andet er let. Husk det korte ben af ​​LED'en med det flade ansigt er katoden (negativ eller jordet); det lange ben er anoden (positiv).

kredsløb-diagram-ir-sjov

Modtagelse af signaler

Gå videre og åbn biblioteker / IRremote / IRrecvDemo eksempelkode. Sørg for, at RECV_Pin er indstillet korrekt, kompilér og upload, og åbner derefter seriekonsollen ved 9600 baud. Tag enhver fjernbetjening, du skal hånd, mål den på din modtager og begynd at trykke på knapper. Forskellige knapper vil producere forskellige koder; nogle vil indikere en lang tryk med den oprindelige kode derefter FFFFFF, mens forskellige fjernbetjeninger simpelthen kan gentage koden igen.

irrecv

For en mere detaljeret oversigt over de data, der modtages, skal du tage et kig på IRrecvDump- eksemplet i stedet, hvilket vil indikere både den type signal, der er modtaget (32-bit NEC i dette tilfælde) og de rå værdier. Godt at vide, men i de fleste tilfælde vil du bare have de afkodede værdier.

irdump

Gentagelse af et signal

Vi vil ikke skrive vores prank i dag fra bunden, så fortsæt og tjek IRrecord eksempelet. Kodekompleksiteten stiger meget her, men det er stort set alt for at klare håndtere forskellige typer IR-koder - grundlæggende er her, hvad der foregår indeni løkken:

  • Kontroller, at knappen trykkes, afspil det aktuelt lagrede signal, hvis det er, og gentag hver 50 ms, indtil det er trykket ned.
  • Hvis du ikke trykker på og et signal registreres, skal du registrere det.

Den største begrænsning i dette eksempel er, at den kun virker med en kode ad gangen, så hvis du trykker på en anden fjernbetjeningsknapp, overskriver den den sidste. Knappen gentager simpelthen det sidste signal, den modtog. Kompilér og kør koden, så du kan tage en tur med denne grundlæggende signal repeater. Til afspilning af et enkelt signal virker det fint, men det er af lille praktisk brug i en prank eller på anden måde.

Pranken!

Lad os ændre det lidt for at optage 10 eller flere onde signaler. Du kan finde den fulde ændrede kode her, men her er en oversigt over de ændringer, jeg lavede, hvis du gerne vil have en god programmering til dig selv:

  • Definer 3 nye arrayer af størrelse 10 til lagring af et sæt af signaler hver gang en detekteres, og et helt tal for at gemme størrelsen af ​​disse arrayer.
  • Opbevar et indeks for hvor vi i øjeblikket er i det array. Forøg indekset hver gang et signal detekteres - men øges ikke, hvis signalet er en gentagelseskode.
  • En booleske værdi, der stopper mere, bliver optaget, når vi har nået det maksimale.
  • En boolsk til at indikere, om vi er i afspilningstilstand eller ej, snarere end at holde knappen nede også ændret knaplogikken for at skifte dette.

Bemærk, at indikatorlampen på Arduino (pin 13) aktiveres, når hukommelsen er fuld. Lige nu skal du optage 10 knapper - ikke mindre - og afspilningstilstanden venter 1 sekund mellem hver knapafspilning. Her er det i aktion:

Du kan enten spille med at gøre flere IR pranks eller overveje dette en god start på et mere episk hjemmeautomatiseringsprojekt. Home Automation Guide Med Hindbær Pi og Arduino Home Automation Guide Med Hindbær Pi og Arduino Hjemmautomatiseringsmarkedet oversvømmes med dyre forbrugersystemer, uforenelig med hinanden og dyr at installere. Hvis du har en Raspberry Pi og en Arduino, kan du stort set opnå det samme ved ... Læs mere; og glem ikke at tjekke alle de øvrige Arduino-projekter. Del dine kreationer (eller problemer) i kommentarerne, og vær venlig at vise din forståelse for denne artikel ved at dele den på dine foretrukne sociale netværk!

Billedkredit: DaGoaty

In this article