Reklama
Skryte to vo svojej obývacej izbe a smejte sa, pretože v krabici TiVo je zdanlivo posadnutý démon, ktorý vyžaduje sledovanie nákupných kanálov so syrovými farbami. Či už je vaším hlavným cieľom vypnúť všetky televízory v okolí alebo vybudovať univerzálnu televíziu Diaľkovo ovládaný Siri, tento projekt slúži ako skvelý východiskový bod na naučenie sa základom IR riadenia a prijímače.
V tomto „žartu“ urobíme zariadenie, ktoré zaznamená, potom prehrá, sériu IR diaľkových príkazov. Bude to fungovať s akýmkoľvek zariadením, ktoré používa IR diaľkové ovládanie, alebo dokonca so zmesou zariadení naraz - zaznamenáva až 10 stlačení klávesov.
súčasti
Tu je zoznam vecí, ktoré potrebujete pre tento projekt:
- Arduino a patch káble
- Infračervený prijímač, napríklad TSOP382 - mali by ste však nájsť kompatibilný anténa v starej elektronike. Vytiahol som baňu z náhradného radiča osvetlenia RGB. Zvyčajne majú 3 nohy a sú čierne, pričom jedna strana vyzerá ako dióda LED, ktorá bola nasekaná na polovicu a prilepená. Som si istý, že na to existuje technické slovo.
- IR vysielač LED, ako je TIL38 - opäť, sú to celkom bežné, ale kúpil som si novú vysoko výkonnú od spoločnosti Maplin; vyzerajú rovnako ako akékoľvek iné kontrolky LED, takže ich nezabudnite zmiešať so súpravou elektroniky!
- Vhodný rezistor pre vašu IR LED - použite tento Kalkulačka LED vzhľadom na napájacie napätie (5 V od Arduino) a dopredné napätie a prúd z dátového listu LED (obvykle okolo 1,2 V @ 20 mA). V mojom prípade to vyšlo ako 220 ohmov.
- Tlačidlo a 10k pulldown a 100 ohmové rezistory.
- Stiahnite si IR vzdialená knižnica Ken Shirriff z Githubu a umiestnite ho do svojho Arduino / Knižnice zložky. Existuje aj ukážkový kód, ktorý použijeme a ktorý by potom mal byť prístupný z Arduina Otvorte -> Knižnice Ponuka.
Elektrické vedenie
Riešite tento obvod do troch častí - prepínač je trochu hlúpy, ale všetko ostatné je ľahké. Pamätajte, že krátka noha LED s plochou tvárou je katóda (záporná alebo uzemnená); dlhá noha je anóda (pozitívna).
Príjem signálov
Choďte do toho a otvorte Knižnice / IRremote / IRrecvDemo vzorový kód. Uistite sa, že RECV_Pin je správne nastavený, kompilujte a odovzdajte a potom otvorte sériovú konzolu pri rýchlosti 9600 baudov. Popadnite všetky diaľkové ovládače, ktoré potrebujete, namierte na prijímač a začnite stláčať tlačidlá. Rôzne tlačidlá vytvoria rôzne kódy; niektoré naznačujú dlhé stlačenie s pôvodným kódom FFFFFF, zatiaľ čo rôzne ovládače môžu kód jednoducho opakovať.
Ak chcete získať podrobnejší prehľad o prijímaných údajoch, pozrite sa na IRrecvDump namiesto toho príklad, ktorý bude označovať typ prijatého signálu (v tomto prípade 32-bit NEC) a prvotné hodnoty. Je dobré vedieť, ale vo väčšine prípadov budete chcieť iba dekódované hodnoty.
Opakovanie signálu
Dnes nebudeme písať náš žart od nuly, tak choďte do toho a pozrite sa IRrecord príkladom. Zložitosť kódu sa tu značne zvyšuje, ale väčšinou sa musí vysporiadať s rôznymi typmi IR kódov - v zásade sa tu deje vo vnútri slučky:
- Skontrolujte, či nie je stlačené tlačidlo, prehrajte aktuálne uložený signál, ak je, a opakujte každých 50 ms, kým sa nestlačí.
- Ak sa nestlačí a zistí sa signál, zaznamenajte to.
Najväčším obmedzením tohto príkladu je to, že funguje naraz iba s jedným kódom, takže ak stlačíte iné diaľkové tlačidlo, prepíše posledné. Tlačidlo jednoducho nahradí posledný prijatý signál. Kompilujte a spustite kód, aby ste sa mohli vyraziť so základným zosilňovačom signálu. Pre prehrávanie jedného signálu to funguje dobre, ale má to praktické využitie v žartu alebo inak.
Žart!
Poďme to mierne upraviť tak, aby sme zaznamenali 10 alebo viac škodlivých signálov. Nájdete kompletne upravený kód tu, ale tu je prehľad zmien, ktoré som urobil pre prípad, že by ste si to chceli sami naplánovať:
- Definujte 3 nové polia s veľkosťou 10 na uloženie sady signálov zakaždým, keď sa jeden zistí, a celé číslo na uloženie veľkosti týchto polí.
- Uložte si index aktuálneho umiestnenia v tomto poli. Zvýšte index zakaždým, keď sa zistí signál - nezvyšujte ho, ak je to signál opakovaného kódu.
- Booleovská hodnota, ktorá po dosiahnutí maxima zastaví ďalšie zaznamenávanie.
- Boolean, ktorý označuje, či sme v režime prehrávania alebo nie, namiesto toho, aby ste museli držať stlačené tlačidlo; tiež zmenil logiku tlačidiel tak, aby to prepínal.
Pamätajte, že kontrolka LED na Arduino (pin 13) sa aktivuje, keď je pamäť plná. Práve teraz musíte zaznamenať 10 stlačení tlačidla - nič menej - a režim prehrávania bude počkať 1 sekundu medzi každým prehrávaním tlačidla. Tu je to v akcii:
Môžete si zahrať s tým, že budete robiť viac IR žartov, alebo to považujte za dobrý štart v epickejšej podobe projekt automatizácie domácnosti Sprievodca domácou automatizáciou s Raspberry Pi a ArduinoTrh domácej automatizácie je zaplavený drahými spotrebiteľskými systémami, navzájom nekompatibilnými a nákladnou inštaláciou. Ak máte Raspberry Pi a Arduino, môžete v podstate dosiahnuť to isté pri ... Čítaj viac ; a nezabudnite sa pozrieť na všetky ostatné Projekty Arduino. Podeľte sa o svoje výtvory (alebo problémy) v komentároch a preukážte svoje ocenenie tomuto článku zdieľaním vo vašich obľúbených sociálnych sieťach!
Obrázkový kredit: Dago
James má bakalárske štúdium v oblasti umelej inteligencie a je držiteľom certifikátu CompTIA A + a Network +. Je popredným vývojárom MakeUseOf a trávi svoj voľný čas hraním VR paintballu a spoločenských hier. Staval počítače od malička.