Самодельный тестер ИК-сигналов
Поскольку планшет, имеющий канал ИК, служит телевизионным ПДУ, то на приемной стороне для декодирования сигналов логично применить телевизионные радиодетали. В качестве фотоприемника можно использовать интегральный ИК-модуль, настроенный на частоту 36 или 38 кГц, например, TSOP1736, TSOP1738 или их аналоги ILOP1836, ILOP1838 белорусского производства.
Современные ИК-модули (рис.23) имеют высокую чувствительность, что позволяет им успешно принимать сигналы на расстоянии до 35м. Широкая колоколообразная частотная характеристика (рис.24) снимает проблему унификации. В частности, прибор, рассчитанный на частоту 38 кГц , уверенно принимает сигналы с частотой 36 и 40 кГц на расстоянии в несколько метров.Для подключения ИК-модуля к МК требуется всего лишь одна цифровая линия порта Arduino (рис.25). Резистор R1 совместно с конденсатором С1 служит фильтром по питанию. При его отсутствии затягиваются фронты выходных сигналов фотомодуля А1, из-за чего могут появляться ошибки в декодировании.
Порядок действий.
- Установить в компьютере программную среду Arduino-1.0.5-r2 http://arduino.cc/en/Main/Software/. Подключить Arduino к компьютеру.
- Зайти на страницу https://github.com/shirriff/Arduino-IRremote/ . В нижней правой части экрана найти кнопку «DownloadZIP» и скачать архивный файл «Arduino-IRremote-master.zip» (34 кбайта, автор Ken Shirriff). Распаковать папку, содержащуюся в этом архиве, по пути: C:/Program Files/Arduino/Iibraries/ и обязательно переименовать ее «IRrmote».
- Загрузить тестовый скетч из новой библиотеки: «Файл-Примеры- IRremote-IRrecvDump». Закомментировать в нем строки 64,67,77, как показано в табл.8. Это позволит избавиться от вывода на экран компьютера ненужной информации.
- Запрограммировать МК: «Файл-Загрузить». Теперь Arduino превращается в тестер ПДУ следующих форматов: NEC, Sony, RC-5, RC-6, Panasonic, JVC. Протоколы Sanyo и Mitsubishi формально тоже поддерживаются, но на проверку они выдают ошибки.
- Зайти в терминал Arduino: «Сервис-Монитор порта». Запустить на планшете приложение «IR Universal Remote», выбрать в нем тип телевизора, например, LG (см. PA6/2014). Поднести к фотомодулю A1 на близкое расстояние ИК-окошко планшета и понажимать сенсорные кнопки ПДУ. Для разных телевизоров и разных кнопок будут наблюдаться разные отклики в окне терминала (рис.26).
Главной информацией здесь является тип протокола («Decoded NEC, SONY, PANASONIC, JVC, RC5») и 16-ричные цифры сигнатуры («20DF8877, 110, 9006861, C0A4, 20, C»). Эти данные пригодятся при составлении своей собственной управляющей программы.
Передача Ик-сигналов из планшета МК
В общем виде задача управления портами МК от удаленного планшета формулируется некоторое приложение, в котором отображается стилизованная картинка ПДУ с кнопками. При нажатии на них формируется ИК-сигнал, который дистанционно посылается в устройство, содержащее МК. Сигнал принимается интегральным фотодатчиком и расшифровывается на предмет того, какой протокол используется и какая кнопка на пульте была нажата.
Здесь и далее будет рассматриваться простой случай, когда в планшетном приложении задействуются только две кнопки. При нажатии на одну из них светодиод, подключенный к выбранному порту МК, зажигается, а при нажатии на другую кнопку – гаснет. Можно утверждать, что, освоив такую методику на программном и аппаратном уровне, пользователь сможет в дальнейшем организовать любое многокнопочное управление в системе «Планшет – МК».
Имитировать пульт, как и прежде, будет программа «IR universal Remote». Управляющий протокол следует выбрать таким, чтобы он не пересекался с уже имеющимся в квартире. Например, если «настоящий» телевизионный ПДУ имеет код RC-5, то «виртуальный» ПДУ в планшете должен быть другим – NEC, Sony, Panasonic, JVC.
В листинге 1 показан скетч, согласно которому при нажатии в планшете кнопки «1» зажигается внутренний светодиод Arduino с маркировкой «L», а при нажатии кнопки «2» этот светодиод гаснет. Электрическая схема аналогична рис.25, компьютер подключать не обязательно.
Строки 3-6,43,46-48. Стандартный блок операторов, использующих библиотеку ИК-функций «IRremote».
Строки 10-31. Идентификация кнопок «1» и «2» по пяти протоколам. Это зависит от марки телевизора, который выбирается в головном меню приложения «IR Universal Remote». Реальные цифры сигнатур, которыми сравнивается переменная «r» в строках 11-14,17,18 и т.д., были получены ранее в экспериментах с самодельным тестером ИК-сигналов по образу и подобию рис.26.
Следует учитывать, что цифры сигнатур для кнопок «1» и «2» значительно отличаются между собой не только от протокола к протоколу, но даже внутри одного протокола для разных моделей телевизоров, что хорошо видно в строках 10-15 на примере NEC.
Программа специально сделана универсальной, однако если какой-либо из протоколов уже используется в квартире, то его легко удалить, закомментировать соответствующие строки.
Строки 32-37. Протоколы телевизоров Mitsubishi, Samsung и Sharp формально не поддерживаются библиотекой функций «IRremote», но, благодаря их уникальным сигнатурам, успешно распознаются и идентифицируются программно.
Строки 38,42. Канал UART задействуется для вывода на экран компьютера отладочной информации. Это помогает контролировать ход выполнения программы чтобы понимать, правильно ли функционирует аппаратная часть устройства.
Строка 41. К линии порта D13 подключается светодиод желтого цвета «L», встроенный в Arduino. В принципе, здесь можно указать любой другой порт с нагрузкой в виде реального исполнительного устройства – реле, транзистор, оптопара, тиристор и т.д.
Передача ИК-сигналов из МК в планшет
Казалось бы, обратная задача, т.е. прием ИК-сигналов в планшет, обречена на провал, ввиду отсутствия приемного узла в последнем. Но, на помощь приходит… видеокамера планшета, которая, как оказывается, без труда визуализирует невидимое глазом ИК-излучение. Физика процесса простая – матрица стандартной видеокамеры имеет достаточно широкий диапазон приема, захватывая «ближний инфрасвет».
Предложим, что от МК передается изменяющаяся во времени информация о некотором параметре (напряжение, ток, частота, число нажатий на кнопку и т.д.), а планшет ее должен зафиксировать, расшифровать и выдать на экран. То есть, покрутил ручку переменного резистора, подключенного к порту МК, или нажал несколько раз кнопку на оценочной плате, — и на планшете тут же отобразится внятный результат.
На рис.27 показана схема для экспериментов. Переменный резистор R1 служит имитатором аналогового датчика, например, температуры, влажности, освещенности. При вращении движка резистора R1 напряжение на его центральном выводе будет изменяться от 0 до 5В.Излучающий диод VD1 от любого телевизионного ПДУ. Резистором R2 устанавливается прямой ток – чем он больше, тем больше дальность действия.
MK Arduino измеряет напряжение от датчика R1 через канал АЦП порта А5. Если напряжение меньше одной трети питания, то светодиод HL1в Arduino и ИК-диод VD1 будут мигать только один раз. Если напряжение находятся между 1/3…2/3 питания, то 2 раза, если больше двух третей, то 3 раза. Измерение производится через регулируемую паузу и повторяется снова и снова.
На приемной стороне планшет переводится в режим фотокамеры иди видеосъемки. Далее экран планшета наводится на объект, содержащий ИК-диод VD1. Если расстояние большое, то используется программный зум. Без планшета кажется, что ИК-диод все время погашен. Но на экране работающего планшета вспышки ИК-диода проявляются в виде ярких белых точек.
Важный нюанс – чтобы повысить контрастность изображения, надо сзади ИК-диода разместить лист темной бумаги, чтобы вспышки хорошо различались на дальнем расстоянии.
Пояснение к листингу 2.
Строка 4. К порту D2 подключается ИК-диод VD1. Допустимый ток через него в импульсе не более 40мА.
Строка 5. К порту D13 в Arduino подключается светодиод «L». В некоторых схемах он соединяется с порто через резистор, а в Arduino-UNO – через дополнительный ОУ, что не принципиально. Светодиод нужен пользователю, чтобы знать, когда излучаются вспышки.Строка 11. Перевод оцифрованных показаний канала АЦП в милливольты. Число 5000 означает напряжение питания 5 В.
Строки 12-14. В качестве порогов напряжения 1/3 и 2/3 выбраны уровни 1,666 и 3,333В.
Строки 15-20. Мигание HL1 и VD1 происходит синхронно с паузой 200 мс. Более короткий промежуток времени устанавливать не рекомендуется, поскольку на экране планшета вспышки могут сливаться друг с другом из-за инерционности фотокамеры.
Строка 23. Пауза длительностью 6 с выбрана произвольно, чтобы не так долго было ждать очередного «сеанса связи».
Совместный прием и передача ИК-сигналов
Если объединить электрические схемы, изображенные на рис.25 и 27, а также творчески переработать скетчи листингов 1 и 2, то получится устройство, которое измеряет некоторый аналоговый параметр и по запросу от планшета (нажатие определенной сенсорной кнопки в приложении «IR Universal Remote») через ИК-порт выдает одну, две или три вспышки, регистрируемые фотокамерой планшета. Таким образом, пользователь может дистанционно получать информацию о контролируемом параметре и даже записать весь процесс на видео с автоматической простановкой даты и времени замеров.
Здесь интересен сам принцип организации скрытой диагностики состояния объекта по ИК-каналу. Это может пригодиться, если объект располагается в труднодоступном месте или на большой высоте. Непосвященный пользователь не видит вспышек ИК-диода и не может расшифровать передаваемую информацию. Но для человека, вооруженного планшетом и знающим, на какую часть устройства направить объектив, все становится предельно ясным.
Архив к проекту (Скачать)
Автор: Сергей Рюмик, г. Чернигов
Источник: Радиоаматор №7-8, 2014