Reklame

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

I denne "prank" fremstiller vi en enhed, der optager og derefter afspiller en række IR-fjernkommandoer. Det fungerer med enhver enhed, der bruger en IR-fjernbetjening eller endda en blanding af enheder på én gang - optagelse af op til 10 tastetryk.

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 skulle være i stand til at finde en kompatibel inden for gammel elektronik. Jeg trak min ud af en ekstra RGB-lysregulator. De har typisk 3 ben og er sorte, med den ene side ligesom en LED, der er hakket i to og fastgjort på. Jeg er sikker på, at der er et teknisk ord til det.
  • instagram viewer
  • IR-transmitter-LED, som TIL38 - igen, disse er ret almindelige, men jeg købte en ny højeffekt fra Maplin; de ser identiske med enhver anden LED, så sørg for ikke at blande dem i dit elektronik sæt!
  • Egnet modstand til din IR LED - brug denne LED-lommeregner givet forsyningsspændingen (5 V fra Arduino) og fremadspændingen og strømmen fra LED-databladet (normalt omkring 1,2 V ved 20 mA). Dette kom ud som 220 ohm i min sag.
  • Drejeknap, og 10k pulldown og 100 ohm modstande.
  • Download IR-fjernbibliotek af Ken Shirriff fra Github og placer i din Arduino / Biblioteker folder. Der er også et eksempel på en kode, vi bruger, som derefter skal være tilgængelig fra Arduino Åben -> Biblioteker menu.
komponenter

Ledninger

Tag fat i dette kredsløb i tre dele - kontakten er lidt fiddly, men alt andet er let. Husk, at det korte ben på 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 åbne biblioteker / IRremote / IRrecvDemo eksempel kode. Sørg for, at RECV_Pin er indstillet korrekt, kompiler og upload, og åbn derefter seriekonsollen på 9600 baud. Grib enhver fjernbetjening, du skal levere, mål den mod din modtager og start med at trykke på knapper. Forskellige knapper giver forskellige koder; nogle vil indikere et langt tryk med den oprindelige kode derefter FFFFFF, mens forskellige fjernbetjeninger muligvis simpelthen gentager koden igen.

irrecv

For at få et mere detaljeret overblik over de data, der modtages, se på IRrecvDump eksempel i stedet, der angiver både den type signal, der er modtaget (32-bit NEC i dette tilfælde), og råværdierne. Godt at vide, men i de fleste tilfælde vil du bare have de afkodede værdier.

irdump

Gentagelse af et signal

Vi skriver ikke vores prank i dag fra bunden, så gå videre og tjek irrecord eksempel. Kodekompleksiteten øges meget her, men det er mest at håndtere forskellige typer IR-koder - grundlæggende, her er hvad der sker inden i løkken:

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

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

Prank!

Lad os ændre det lidt for at optage 10 eller flere onde signaler. Du kan finde fuld ændret kode her, men her er en oversigt over de ændringer, jeg har foretaget i tilfælde af, at du gerne vil have et program til at programmere dette for dig selv:

  • Definer 3 nye arrays i størrelse 10 til lagring af et sæt signaler, hver gang en detekteres, og et heltal til at gemme størrelsen på disse arrays.
  • Gem et indeks over hvor vi i øjeblikket er i den matrix. Forøg indeks hver gang et signal registreres - men øg ikke, hvis signalet er en gentagelseskode.
  • En boolsk værdi, der stopper mere med at blive optaget, når vi har nået det maksimale.
  • En boolsk, der angiver, om vi er i afspilningstilstand eller ikke, snarere end at skulle holde knappen nede. ændrede også 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 knaptryk - ikke mindre - og gentagelsestilstand venter 1 sekund mellem hver knap gentagelse. Her er det i aktion:

Du kan enten spille med at gøre flere IR pranks, eller betragte dette som en god start på et mere episk hjemmeautomatiseringsprojekt Hjemmeautomatiseringsvejledning med hindbærpi og ArduinoHjemmeautomatiseringsmarkedet er oversvømmet af dyre forbrugersystemer, uforenelige med hinanden og dyre at installere. Hvis du har en Raspberry Pi og en Arduino, kan du dybest set opnå det samme ved ... Læs mere ; og glem ikke at tjekke alle de andre Arduino-projekter. Del dine kreationer (eller problemer) i kommentarerne, og vis din taknemmelighed for denne artikel ved at dele den på dine foretrukne sociale netværk!

Billedkredit: DaGoaty

James har en BSc i kunstig intelligens og er CompTIA A + og Network + certificeret. Han er hovedudvikler af MakeUseOf og bruger sin fritid på at spille VR paintball og brætspil. Han har bygget pc'er siden han var barn.