реклама

Скрийте това във вашата всекидневна и се смейте, тъй като кутията TiVo изглежда е обладана от демон, който изисква да гледа канали за пазаруване. Независимо дали крайната ви цел е да изключите всеки телевизор в квартала или да изградите универсален Дистанционно управляван от Siri, този проект служи като чудесна отправна точка за усвояване на основите на IR контрола и приемници.

В тази „шега“ ще направим устройство, което записва, а след това възпроизвежда серия от IR дистанционни команди. Той ще работи с всяко устройство, което използва инфрачервено дистанционно управление или дори комбинация от устройства наведнъж - да записва до 10 натискания на клавиши.

елементи

Ето списък на нещата, които ще ви трябват за този проект:

  • Arduino и кръпка проводници
  • IR приемник, като TSOP382 - но трябва да можете да намерите съвместим такъв в старата електроника. Извадих мина от резервен RGB контролер за осветление. Обикновено имат 3 крака и са черни, като едната страна прилича на светодиод, който е нарязан наполовина и е залепен. Сигурен съм, че има техническа дума за това.
  • instagram viewer
  • Индикатор за инфрачервен предавател, като TIL38 - отново, те са доста често срещани, но купих нов с мощност от Maplin; те изглеждат идентични с всеки друг светодиод, така че не забравяйте да не ги смесвате във вашия електронен комплект!
  • Подходящ резистор за вашия IR LED - използвайте това LED калкулатор като се има предвид захранващото напрежение (5 V от Arduino) и напрежението на напрежението и тока от светодиодния информационен лист (обикновено около 1,2 V @ 20 mA). Това се получи като 220 ома в моя случай.
  • Бутони и 10k опадане и 100 ома резистори.
  • Изтеглете IR отдалечена библиотека от Ken Shirriff от Github и поставете във вашия Ардуино / Библиотеки папка. Има и някакъв примерен код, който ще използваме, който след това трябва да бъде достъпен от Arduino Отваряне -> Библиотеки меню.
елементи

Електрически инсталации

Решете тази верига в три части - превключвателят е малко причудлив, но всичко останало е лесно. Помнете късият крак на светодиода с плоското лице е катодът (отрицателен или заземен); дългият крак е анод (положителен).

схема-схема-IR-шега

Получаване на сигнали

Върви напред и отвори библиотеки / IRremote / IRrecvDemo примерен код. Уверете се, че RECV_Pin е настроен правилно, компилирайте и качете, след това отворете серийната конзола при 9600 бод. Вземете всяко дистанционно, което трябва да използвате, насочете го към вашия приемник и започнете да натискате бутони. Различните бутони ще генерират различни кодове; някои ще посочат продължително натискане с първоначалния код след това FFFFFF, докато различни дистанционни могат просто да повторят кода отново.

irrecv

За по-подробен изглед на получените данни, разгледайте IRrecvDump пример вместо това, който ще показва както вида на получения сигнал (32-битов NEC в този случай), така и суровите стойности. Добре е да знаете, но в повечето случаи просто искате декодираните стойности.

irdump

Повтарящ сигнал

Днес няма да пишем шегата си от нулата, така че продължете и разгледайте IRrecord пример. Сложността на кода се увеличава значително тук, но най-вече е всичко да се справи с различните видове IR кодове - по същество, ето какво се случва в цикъла:

  • Проверете дали бутонът е натиснат, възпроизвеждайте текущо запаметения сигнал, ако е и повтаряйте на всеки 50 ms до натискане.
  • Ако не се натисне и се установи сигнал, запишете го.

Най-голямото ограничение на този пример е, че той работи само с един код наведнъж, така че ако натиснете друг дистанционен бутон, той ще презапише последния. Бутонът просто възпроизвежда последния получен сигнал. Компилирайте и стартирайте кода, за да можете да отидете с този основен повторител на сигнал. За възпроизвеждане на един сигнал, той работи добре, но това е малко практична употреба в шега или по друг начин.

The Prank!

Нека го променим леко, за да запише 10 или повече злонамерени сигнала. Можете да намерите пълен модифициран код тук, но ето очертание на промените, които направих в случай, че искате да програмирате това за себе си:

  • Определете 3 нови масива с размер 10 за съхраняване на набор от сигнали всеки път, когато бъде открит един, и цяло число, което да съхранява размера на тези масиви.
  • Съхранявайте индекс за това къде се намираме в момента в този масив. Увеличете индекса всеки път, когато бъде открит сигнал - но не увеличавайте, ако сигналът е код с повторение.
  • Булева стойност, която спира да се записва повече, след като достигнем максимума.
  • Булева информация, която показва дали сме в режим на възпроизвеждане или не, вместо да се налага да задържаме бутона; също промени логиката на бутона, за да превключи това.

Обърнете внимание, че индикаторният индикатор на Arduino (пин 13) ще се активира, след като паметта се запълни. В момента трябва да запишете 10 натискания на бутони - не по-малко - и режимът на повторно възпроизвеждане ще изчака 1 секунда между всяко натискане на бутона. Ето го в действие:

Можете или да играете с правенето на повече IR шеги, или считате това за добро начало на по-епична проект за автоматизация на дома Ръководство за домашна автоматизация с Raspberry Pi и ArduinoПазарът на домашна автоматизация е залят от скъпи потребителски системи, несъвместими помежду си и скъпи за инсталиране. Ако имате Raspberry Pi и Arduino, можете основно да постигнете същото нещо при ... Прочетете още ; и не забравяйте да проверите всички останали Ардуино проекти. Споделете вашите творения (или проблеми) в коментарите и, моля, покажете своята благодарност за тази статия, като я споделите в любимите си социални мрежи!

Кредит за изображение: DaGoaty

Джеймс има бакалавърска степен по изкуствен интелект и е сертифициран като CompTIA A + и Network +. Той е водещ разработчик на MakeUseOf и прекарва свободното си време, играейки VR пейнтбол и настолни игри. Той изгражда компютри още от дете.