Annonse

Skjul dette i stuen din og le, mens TiVo-boksen tilsynelatende er besatt av en demon som krever å se på ostete shoppingkanaler. Enten det endelige målet ditt er å slå av hver TV i nabolaget eller bygge en universell Siri-kontrollert fjernkontroll, dette prosjektet fungerer som et flott utgangspunkt for å lære det grunnleggende om IR-kontroll og mottakere.

I denne "prank", lager vi en enhet som tar opp og spiller av, en serie IR-fjernkommandoer. Det vil fungere med alle enheter som bruker en IR-fjernkontroll, eller til og med en blanding av enheter samtidig - og spiller inn opptil 10 tastetrykk.

komponenter

Her er en liste over tingene du trenger for dette prosjektet:

  • Arduino- og lappetråder
  • IR-mottaker, for eksempel TSOP382 - men du bør kunne finne en kompatibel innen gammel elektronikk. Jeg trakk min ut av en ekstra RGB-lyskontroller. De har vanligvis tre ben og er svarte, med den ene siden som en LED som er hakket i to og satt fast på. Jeg er sikker på at det er et teknisk ord for det.
  • instagram viewer
  • IR-senders LED, som TIL38 - igjen, disse er ganske vanlige, men jeg kjøpte en ny høyeffekt fra Maplin; de ser identiske ut med andre LED-er, så husk å ikke blande dem sammen i elektronikkpakken!
  • Egnet motstand for din IR LED - bruk denne LED-kalkulator gitt forsyningsspenningen (5 V fra Arduino), og forspenningen og strømmen fra LED-databladet (vanligvis rundt 1,2 V ved 20 mA). Dette kom ut som 220 ohm i mitt tilfelle.
  • Trykknapp og 10k motstands- og 100 ohm-motstand.
  • Last ned IR fjernbibliotek av Ken Shirriff fra Github og plasser i ditt Arduino / Libraries mappe. Det er også noen eksempler som vi bruker, som deretter skal være tilgjengelige fra Arduino Åpent -> Biblioteker Meny.
komponenter

kabling

Takle denne kretsen i tre deler - bryteren er litt fiddly, men alt annet er enkelt. Husk at det korte benet til LED med det flate ansiktet er katoden (negativ eller bakken); det lange benet er anoden (positiv).

kretsdiagram-ir-prank

Motta signaler

Gå videre og åpne opp bibliotek / IRremote / IRrecvDemo eksempel kode. Forsikre deg om at RECV_Pin er satt riktig, kompilere og laste opp, og åpne deretter Seriekonsollen på 9600 baud. Ta tak i enhver fjernkontroll du må levere, sikt den mot mottakeren og begynn å trykke på knappene. Ulike knapper vil produsere forskjellige koder; noen vil indikere et langt trykk med startkoden da FFFFFF, mens forskjellige fjernkontroller ganske enkelt kan gjenta koden igjen.

irrecv

For en mer detaljert oversikt over dataene som mottas, ta en titt på IRrecvDump eksempel i stedet, som vil indikere både typen signal mottatt (32-bit NEC i dette tilfellet), og råverdiene. Greit å vite, men i de fleste tilfeller vil du bare ha avkodede verdier.

irdump

Gjenta et signal

Vi skriver ikke prank i dag fra bunnen av, så fortsett og sjekk ut IRrecord eksempel. Kodekompleksiteten øker veldig her, men det er stort sett alt for å takle forskjellige typer IR-koder - grunnleggende, det er dette som skjer inne i løkken:

  • Kontroller om knappen blir trykket, spill av det lagrede signalet hvis det er, og gjenta hver 50 ms til deprimert.
  • Hvis du ikke trykker på og det oppdages et signal, må du registrere det.

Den største begrensningen i dette eksemplet er at det bare fungerer med én kode om gangen, så hvis du trykker på en annen fjernkontrollknapp, vil den overskrive den siste. Knappen erstatter ganske enkelt det aller siste signalet den mottok. Sett sammen og kjør koden slik at du kan gå med denne grunnleggende signalrepeateren. For å spille av et enkelt signal fungerer det bra, men det er lite praktisk bruk i en prank eller på annen måte.

Prank!

La oss endre det litt for å spille inn 10 eller flere rampete signaler. Du kan finne full endret kode her, men her er en oversikt over endringene jeg gjorde i tilfelle du vil gå igjennom å programmere dette selv:

  • Definer 3 nye matriser i størrelse 10 for lagring av et sett med signaler hver gang en blir oppdaget, og et heltall for å lagre størrelsen på disse matriser.
  • Lagre en indeks over hvor vi for øyeblikket er i den arrayen. Øk indeksen hver gang et signal blir oppdaget - men ikke øke hvis signalet er en gjenta kode.
  • En boolsk verdi som slutter å registrere mer når vi har nådd maksimum.
  • En boolsk som indikerer om vi er i avspillingsmodus eller ikke, i stedet for å måtte holde knappen nede; endret også knappelogikken for å veksle dette.

Merk at indikatorlampen på Arduino (pinne 13) vil aktiveres når minnet er fullt. Akkurat nå må du ta opp 10 knappetrykk - ikke mindre - og avspillingsmodus vil vente 1 sekund mellom hver knappavspilling. Her er det i aksjon:

Du kan enten spille med å lage flere IR-pranks, eller vurdere dette som en god start på et mer episk hjemme-automatiseringsprosjekt Hjemmeautomatiseringsguide med bringebær Pi og ArduinoHjemmeautomatiseringsmarkedet er oversvømmet av dyre forbrukssystemer, uforenlige med hverandre og kostbare å installere. Hvis du har en Raspberry Pi og en Arduino, kan du i utgangspunktet oppnå det samme ved ... Les mer ; og ikke glem å sjekke ut alt det andre Arduino prosjekter. Del kreasjonene dine (eller problemene) i kommentarfeltet, og vis din takknemlighet for denne artikkelen ved å dele den på dine favoritt sosiale nettverk!

Bildekreditt: DaGoaty

James har en BSc i kunstig intelligens, og er CompTIA A + og Network + sertifisert. Han er hovedutvikler av MakeUseOf, og bruker fritiden sin på å spille VR paintball og brettspill. Han har bygd pc-er siden han var liten.