Oglas

Skrijte to v svoji dnevni sobi in se nasmejte, ko bo navidezno škatlo TiVo obsedel demon, ki mora gledati smešne nakupovalne kanale. Naj bo vaš končni cilj izklopiti vsak televizor v soseski ali zgraditi univerzalni Ta daljinsko vodeni daljinski projekt služi kot odlično izhodišče za učenje osnov IR nadzora in sprejemniki.

V tej "potegavščini" bomo naredili napravo, ki snema in nato predvaja vrsto IR oddaljenih ukazov. Deluje s katero koli napravo, ki uporablja IR daljinski upravljalnik ali celo z mešanico naprav hkrati - snema do 10 pritiskov tipk.

Komponente

Tu je seznam stvari, ki jih boste potrebovali za ta projekt:

  • Arduino in patch žice
  • IR sprejemnik, kot je TSOP382 - vendar bi morali najti združljivega v stari elektroniki. Mojega sem potegnil iz rezervnega regulatorja RGB razsvetljave. Običajno imajo 3 noge in so črne, z eno stranjo je videti kot LED, ki je prepolovljen in nalepljen. Prepričan sem, da obstaja tehnična beseda za to.
  • LED oddajnik IR, kot je TIL38 - spet so to precej pogosti, vendar sem kupil novega velike moči z Maplinom; izgledajo enako kot druge LED, zato se prepričajte, da jih ne boste pomešali v svoj elektronski komplet!
  • Primeren upor za vaš IR LED - uporabite to LED kalkulator glede na napajalno napetost (5 V od Arduino-ja) ter sprednjo napetost in tok iz podatkovnega lista LED (ponavadi približno 1,2 V @ 20 mA). V mojem primeru je prišlo do 220 ohmov.
  • Tipkalo, uporovni 10k in 100 ohm uporov.
  • Prenesite IR oddaljena knjižnica Kena Shirriffa iz Githuba in postavite v svoje Arduino / Knjižnice mapo. Na voljo je tudi nekaj vzorčnih kod, ki bi morale biti dostopne pri Arduinu Odpri -> Knjižnice meni.
sestavni deli

Ožičenje

Temu vezju se lotite v treh delih - stikalo je nekoliko popadljivo, vse drugo pa je enostavno. Ne pozabite, da je kratka noga LED z ravnim obrazom katoda (negativna ali ozemljena); dolga noga je anoda (pozitivna).

diagram vezja-ir-potegavščina

Sprejem signalov

Pojdi naprej in odprite knjižnice / IRremote / IRrecvDemo Primer kode. Prepričajte se RECV_Pin je pravilno nastavljen, zbrati in naložiti, nato pa odpreti serijsko konzolo pri 9600 baud. Zgrabite kateri koli daljinski upravljalnik, usmerite ga v sprejemnik in začnite pritiskati gumbe. Različni gumbi bodo ustvarili različne kode; nekateri nato označijo dolg pritisk z začetno kodo FFFFFF, medtem ko lahko različni oddaljeni preprosto ponovno ponovijo kodo.

nepr

Za podrobnejši prikaz prejetih podatkov si oglejte stran IRrecvDump na primer, ki bo prikazal tako vrsto prejetega signala (32-bitni NEC v tem primeru), kot tudi surove vrednosti. Dobro je vedeti, vendar boste v večini primerov želeli le dekodirane vrednosti.

irdump

Ponavljanje signala

Danes ne bomo pisali ničesar od nič, zato pojdite naprej in preverite IRrecord primer. Kompleksnost kode se tukaj močno povečuje, vendar se večinoma vsi spopadajo z različnimi vrstami IR kod - v bistvu je tukaj, kaj se dogaja znotraj zanke:

  • Preverite, ali je gumb pritisnjen, če je trenutno shranjen signal, ga ponavljajte in ponavljajte vsakih 50 ms, dokler ga ne pritisnete.
  • Če ne pritisnete in je zaznan signal, zabeležite to.

Največja omejitev tega primera je, da deluje samo z eno kodo naenkrat, tako da, če pritisnete drugo tipko na daljavo, bo prepisala zadnjo. Gumb preprosto predvaja zadnji signal, ki ga je prejel. Sestavite in zaženite kodo, da boste lahko s tem osnovnim repetitorjem signala šli. Za predvajanje enega samega signala deluje v redu, vendar je to malo praktične uporabe v potegavščinah ali kako drugače.

Potegavščina!

Naj ga nekoliko spremenimo, da posname 10 ali več nagajivih signalov. Lahko najdete polno spremenjeno kodo tukaj, ampak tukaj je oris sprememb, ki sem jih vnesel v primeru, da želite to programirati zase:

  • Določite 3 nove matrike velikosti 10 za shranjevanje niza signalov vsakič, ko jih zaznate, in celo število za shranjevanje velikosti teh nizov.
  • Shranite indeks, kje smo trenutno v tem nizu. Vsakič, ko je signal zaznan, povečajte indeks, vendar ne povečajte, če je signal ponovljena koda.
  • Boolova vrednost, ki ustavi več snemanja, ko dosežemo največjo vrednost.
  • Boolean, ki označuje, ali smo v načinu predvajanja ali ne, namesto da bi morali pritisniti gumb; spremenili so tudi logiko gumba, da bi to preklopili.

Upoštevajte, da se bo indikator LED na Arduino (pin 13) aktiviral, ko je pomnilnik poln. Trenutno morate posneti 10 pritisk gumbov - nič manj - in način predvajanja bo med predvajanjem vsakega gumba počakal 1 sekundo. Tukaj je v akciji:

Lahko se igrate z več IR-potezami ali pa to smatrate kot dober začetek na bolj epski projekt avtomatizacije doma Vodnik za domačo avtomatizacijo z malino Pi in ArduinoTrg domače avtomatizacije je preplavljen z dragimi potrošniškimi sistemi, ki so med seboj nezdružljivi in ​​drage za namestitev. Če imate malino Pi in Arduino, lahko v bistvu dosežete isto na ... Preberi več ; in ne pozabite preveriti vseh ostalih Arduino projekti. V komentarjih delite svoje stvaritve (ali težave) in prosimo, da pokažete svojo pripadnost temu članku, tako da ga delite na svojih najljubših družbenih omrežjih!

Kreditna slika: DaGoaty

James ima doktorat iz področja umetne inteligence in ima certifikat CompTIA A + in Network +. Je glavni razvijalec MakeUseOf in svoj prosti čas preživlja z igranjem VR paintball in družabnih iger. Z računalniki gradi že od malih nog.