reklama
Skrýt to ve svém obývacím pokoji a smát se, protože TiVo box je zdánlivě posedlý démonem, který požaduje sledovat sýrové nákupní kanály. Ať už je vaším konečným cílem vypnout všechny televizory v sousedství nebo vybudovat univerzální televizi Dálkově ovládaný dálkový ovladač, tento projekt slouží jako skvělý výchozí bod pro naučení se základům IR ovládání a přijímače.
V tomto „žertu“ vytvoříme zařízení, které zaznamenává a poté přehrává řadu IR dálkových příkazů. Bude fungovat s jakýmkoli zařízením, které používá IR dálkové ovládání, nebo dokonce se směsí zařízení najednou - zaznamenává až 10 stisknutí tlačítek.
Komponenty
Zde je seznam věcí, které pro tento projekt potřebujete:
- Arduino a propojovací dráty
- IR přijímač, jako je TSOP382 - ale měli byste být schopni najít kompatibilní ve staré elektronice. Vytáhl jsem důl z náhradního kontroléru osvětlení RGB. Obvykle mají 3 nohy a jsou černé, přičemž jedna strana vypadá jako LED, která byla nasekaná na polovinu a přilepená. Jsem si jist, že na to existuje technické slovo.
- IR vysílač LED, jako je TIL38 - znovu, jsou to docela běžné, ale koupil jsem si novou vysoce výkonnou od společnosti Maplin; vypadají stejně jako u jiných LED, takže je nezapomeňte přimíchat do vaší elektroniky!
- Vhodný odpor pro vaši IR LED - použijte toto LED kalkulačka vzhledem k napájecímu napětí (5 V od Arduino) a dopřednému napětí a proudu z datového listu LED (obvykle kolem 1,2 V @ 20 mA). V mém případě to vyšlo jako 220 ohmů.
- Tlačítko a 10k pulldown a 100 ohmové rezistory.
- Stáhněte si IR vzdálená knihovna Ken Shirriff z Githubu a vložte do svého Arduino / Knihovny složku. K dispozici je také příklad kódu, který použijeme a který by pak měl být přístupný z Arduina Otevřete -> Knihovny Jídelní lístek.
Elektrické vedení
Řešit tento obvod ve třech částech - spínač je trochu chmurný, ale všechno ostatní je snadné. Pamatujte, že krátká noha LED s plochou plochou je katoda (záporná nebo zemní); dlouhá noha je anoda (pozitivní).
Příjem signálů
Jděte do toho a otevřete knihovny / IRremote / IRrecvDemo příklad kódu. Ujistěte se, že RECV_Pin je správně nastaven, kompilovat a nahrávat a poté otevřít sériovou konzoli při 9600 baudech. Popadněte jakékoli dálkové ovládání, které musíte po ruce, namiřte na přijímač a začněte stisknout tlačítka. Různá tlačítka vytvoří různé kódy; někteří označí dlouhý stisk s počátečním kódem FFFFFF, zatímco různé dálkové ovladače mohou kód jednoduše opakovat.
Pro podrobnější pohled na přijímaná data se podívejte na IRrecvDump příklad místo toho, který bude označovat jak typ přijímaného signálu (v tomto případě 32bitový NEC), tak i hrubé hodnoty. Je dobré vědět, ale ve většině případů budete chtít pouze dekódované hodnoty.
Opakování signálu
Dnes nebudeme psát náš žert od nuly, tak jděte do toho a podívejte se IRrecord příklad. Složitost kódu se zde značně zvyšuje, ale většinou se musí vypořádat s různými typy IR kódů - v zásadě jde o to, co se děje uvnitř smyčky:
- Zkontrolujte, zda není stisknuto tlačítko, přehrajte aktuálně uložený signál, pokud je, a opakujte každých 50 ms, dokud není stisknuto.
- Pokud není stisknuto a je detekován signál, zaznamenejte to.
Největším omezením tohoto příkladu je to, že funguje pouze s jedním kódem najednou, takže pokud stisknete jiné dálkové tlačítko, přepíše poslední. Tlačítko jednoduše nahradí poslední přijatý signál. Zkompilujte a spusťte kód, abyste mohli jít s tímto základním opakovačem signálu. Pro přehrávání jednoho signálu to funguje dobře, ale to je jen málo praktické použití v žartu nebo jinak.
Žert!
Upravme to mírně tak, aby bylo možné zaznamenat 10 nebo více škodlivých signálů. Můžete najít plný upravený kód zde, ale zde je přehled změn, které jsem provedl pro případ, že byste si to nechali naplánovat sami:
- Definujte 3 nová pole velikosti 10 pro uložení sady signálů pokaždé, když je jeden detekován, a celé číslo pro uložení velikosti těchto polí.
- Uložte index, kde se momentálně nacházíme v tomto poli. Zvyšte index vždy, když je detekován signál - ale nezvyšujte, pokud je signál opakovacím kódem.
- Booleovská hodnota, která zastaví další zaznamenávání, jakmile dosáhneme maxima.
- Boolean, který označuje, zda jsme v režimu přehrávání nebo ne, namísto toho, abychom museli držet stisknuté tlačítko; také upravil logiku tlačítka tak, aby to přepínal.
Mějte na paměti, že kontrolka LED na Arduino (pin 13) se aktivuje, jakmile je paměť plná. Právě teď musíte zaznamenat 10 stisknutí tlačítka - neméně - a režim přehrávání bude čekat 1 sekundu mezi přehráváním každého tlačítka. Tady to je v akci:
Můžete si hrát s vyděláváním více IR žertů, nebo to považovat za dobrý začátek epického světa projekt domácí automatizace Průvodce domácí automatizací s Raspberry Pi a ArduinoTrh domácí automatizace je zaplaven drahými spotřebitelskými systémy, nekompatibilními navzájem a nákladnou instalací. Pokud máte Raspberry Pi a Arduino, můžete v podstatě dosáhnout totéž na ... Přečtěte si více ; a nezapomeňte se podívat na všechny ostatní Projekty Arduino. Podělte se o své výtvory (nebo problémy) v komentářích a ukažte své uznání za tento článek jeho sdílením ve svých oblíbených sociálních sítích!
Obrazový kredit: DaGoaty
James má bakalářský titul v oboru umělé inteligence a je držitelem certifikátu CompTIA A + a Network +. Je hlavním vývojářem MakeUseOf a tráví svůj volný čas hraním VR paintballu a deskových her. Staví počítače od dětství.