
Harry James
0
4930
1327
Спрячь это в своей гостиной и смейся, поскольку коробка TiVo, похоже, одержима демоном, который требует смотреть нечистые каналы покупок. Независимо от того, является ли ваша конечная цель выключить каждый соседний телевизор или построить универсальный пульт дистанционного управления, управляемый Siri, этот проект послужит отличной отправной точкой для изучения основ ИК-управления и приемников..
В этом “шалость”, мы создадим устройство, которое записывает, а затем воспроизводит серию ИК-команд дистанционного управления. Он будет работать с любым устройством, которое использует ИК-пульт дистанционного управления или даже одновременно несколько устройств - запись до 10 нажатий клавиш.
Компоненты
Вот список вещей, которые вам понадобятся для этого проекта:
- Ардуино и патч проводов
- ИК-приемник, такой как TSOP382, но вы должны найти совместимый в старой электронике. Я вытащил свой из запасного контроллера освещения RGB. Как правило, они имеют 3 ноги и черные, с одной стороны выглядят как светодиод, который был разрезан пополам и закреплен. Я уверен, что есть техническое слово для этого.
- Светодиоды ИК-передатчика, такие как TIL38 - опять же, они довольно распространены, но я купил новый мощный от Maplin; они выглядят так же, как и любые другие светодиоды, поэтому не допускайте их попадания в ваш комплект электроники!
- Подходящий резистор для вашего инфракрасного светодиода - используйте этот светодиодный калькулятор с учетом напряжения питания (5 В от Arduino), а также прямого напряжения и тока из таблицы данных светодиодов (обычно около 1,2 В при 20 мА). Это получилось как 220 Ом в моем случае.
- Кнопка и резисторы 10 кОм и резисторы 100 Ом.
- Загрузите ИК-библиотеку Кена Ширриффа с Github и поместите в свой Arduino / Библиотеки папка. Есть также пример кода, который мы будем использовать, который затем будет доступен из Arduino. Открыть -> Библиотеки меню.
электропроводка
Решить эту схему в трех частях - переключатель немного неудобно, но все остальное легко. Помните, что короткая ножка светодиода с плоской поверхностью является катодом (отрицательным или заземленным); длинная нога - анод (положительный).
Получение сигналов
Идите вперед и откройте библиотеки / IRremote / IRrecvDemo пример кода. Убедитесь, что RECV_Pin настроен правильно, скомпилируйте и загрузите, затем откройте последовательную консоль на скорости 9600 бод. Возьмите любой пульт, который вам нужно, наведите его на приемник и начните нажимать кнопки. Разные кнопки будут выдавать разные коды; некоторые укажут долгое нажатие с исходным кодом FFFFFF, в то время как различные пульты могут просто повторить код снова.
Для более детального просмотра полученных данных, посмотрите на IRrecvDump пример, который будет указывать как тип полученного сигнала (32-битный NEC в этом случае), так и необработанные значения. Полезно знать, но в большинстве случаев вам просто нужны декодированные значения.
Повторение сигнала
Мы не будем писать нашу шутку сегодня с нуля, так что давай проверим IRrecord пример. Сложность кода здесь значительно возрастает, но в основном это все для того, чтобы справиться с различными типами ИК-кодов - в основном, вот что происходит внутри цикла:
- Проверьте, нажата ли кнопка, воспроизведите текущий сохраненный сигнал, если он есть, и повторяйте каждые 50 мс, пока не будет нажата.
- Если не нажата и обнаружен сигнал, запишите, что.
Основным ограничением этого примера является то, что он работает только с одним кодом за раз, поэтому, если вы нажмете другую кнопку на пульте дистанционного управления, он перезапишет последний. Кнопка просто воспроизводит самый последний полученный сигнал. Скомпилируйте и запустите код, чтобы вы могли использовать этот базовый повторитель сигнала. Для воспроизведения одиночного сигнала, он работает нормально, но это мало практического использования в шутку или иначе.
Шутка!
Давайте немного изменим его, чтобы записать 10 или более вредных сигналов. Вы можете найти полный измененный код здесь, но вот краткий обзор изменений, которые я сделал на случай, если вы захотите начать программировать это для себя:
- Определите 3 новых массива размером 10 для хранения набора сигналов при каждом его обнаружении и целое число для хранения размера этих массивов..
- Сохраните индекс того, где мы сейчас находимся в этом массиве. Увеличивайте индекс каждый раз при обнаружении сигнала, но не увеличивайте, если сигнал является повторяющимся кодом.
- Логическое значение, которое останавливает больше записи, когда мы достигли максимума.
- Логическое значение, указывающее, находимся ли мы в режиме воспроизведения или нет, вместо необходимости удерживать нажатой кнопку; также изменил логику кнопки, чтобы переключить это.
Обратите внимание, что светодиодный индикатор на Arduino (контакт 13) будет активирован после заполнения памяти. Прямо сейчас вы должны записать 10 нажатий кнопок - не меньше - и режим воспроизведения будет ждать 1 секунду между повторными нажатиями кнопок. Вот оно в действии:
Вы можете поиграть в шутки над IR или считать это хорошим началом для более эпического проекта домашней автоматизации. Руководство по домашней автоматизации с Raspberry Pi и Arduino. Руководство по домашней автоматизации с Raspberry Pi и Arduino. Рынок домашней автоматизации наводнен дорогими потребительскими системами, несовместимы друг с другом и дороги в установке. Если у вас есть Raspberry Pi и Arduino, вы можете достичь того же в ...; и не забудьте проверить все другие проекты Arduino. Поделитесь своими творениями (или проблемами) в комментариях и, пожалуйста, покажите свою оценку этой статье, поделившись ею в своих любимых социальных сетях.!
Изображение предоставлено: DaGoaty