Introduktion af TV Devil, en let fjernbetjening Arduino Prank

  • Michael Fisher
  • 0
  • 2136
  • 57
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 bygge en universel Siri-kontrolleret fjernbetjening, fungerer dette projekt som et godt udgangspunkt for at lære det grundlæggende om IR-kontrol og -modtagere.

I denne “prank”, laver 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 skal 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 ligne en LED, der er hakket i to og fastgjort på. Jeg er sikker på, at der er et teknisk ord til det.
  • IR-transmitter-LED, såsom TIL38 - igen, disse er ret almindelige, men jeg købte en ny højeffekt fra Maplin; de ser identiske ud med enhver anden LED, så sørg for ikke at blande dem sammen i dit elektronikkit!
  • Egnet modstand til din IR-LED - brug denne LED-regnemaskine i lyset af forsyningsspændingen (5 V fra Arduino) og forspændingen og strømmen fra LED-databladet (normalt omkring 1,2 V ved 20 mA). Dette kom ud som 220 ohm i mit tilfælde.
  • Drejeknap og 10k pulldown og 100 ohm modstande.
  • Download IR-fjernbiblioteket af Ken Shirriff fra Github og placer det i dit 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.

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

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 blot gentager koden igen.

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.

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, om 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 den fulde ændrede kode her, men her er en oversigt over de ændringer, jeg har foretaget, hvis 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 stig 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 lege med at gøre flere IR-pranks, eller betragte dette som en god start på et mere episk hjemmeautomatiseringsprojekt Hjemmeautomatiseringsvejledning med Raspberry Pi og Arduino Hjemmeautomatiseringsvejledning med Raspberry Pi og Arduino Hjemme-automatiseringsmarkedet er oversvømmet med 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 ...; 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




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.