Оглавление:

Инфракрасный передатчик и приемник USB NEC: 4 шага (с изображениями)
Инфракрасный передатчик и приемник USB NEC: 4 шага (с изображениями)

Видео: Инфракрасный передатчик и приемник USB NEC: 4 шага (с изображениями)

Видео: Инфракрасный передатчик и приемник USB NEC: 4 шага (с изображениями)
Видео: Внешний ИК приемник в тюнере 2024, Сентябрь
Anonim
Инфракрасный передатчик и приемник USB NEC
Инфракрасный передатчик и приемник USB NEC

Этот проект является побочным продуктом другого проекта, над которым я работаю, и, поскольку на Instructables проводится конкурс Remote Control 2017, я подумал, что опубликую этот проект. Так что если вам понравился этот проект, проголосуйте за него. Спасибо.

Как вы, возможно, знаете, я большой поклонник 8-битных PIC-контроллеров Microchip, см.

Я использую язык программирования JAL, поскольку он похож на Паскаль (что мне тоже нравится). Компилятор JAL и библиотеки можно загрузить по адресу: https://www.justanotherlanguage.org/downloads (прокрутите вниз, чтобы увидеть последнюю выпущенную версию).

Обычно я пишу весь код сам, чтобы полностью понять, что я делаю, но для этого проекта мне нужно было подключить PIC к USB-порту ПК, поэтому мне нужен последовательный драйвер JAL USB для этого контроллера PIC. Я использовал драйвер последовательного порта USB в пакете загрузки JAL, который, похоже, работает нормально. Поскольку этот драйвер последовательного порта USB был написан для одного конкретного PIC, я использовал тот PIC, который является PIC18F14K50. Этот контроллер имеет гораздо больше функций, чем мне нужно для этого проекта, поэтому в настоящее время я пытаюсь заставить этот USB-драйвер работать с более простой версией PIC, PIC16F1455, которая также дешевле.

Так что же это за проект? С помощью устройства, упомянутого в этой инструкции, вы можете отправлять и получать команды инфракрасного дистанционного управления от вашего ПК и на него через порт USB, используя популярный протокол NEC Infra-Red. Таким образом, вы можете контролировать инфракрасные команды и управлять любым устройством, использующим протокол инфракрасного дистанционного управления NEC. Проект декодирует и переводит инфракрасные сообщения в байт адреса и командный байт или в повторяющееся сообщение. Адрес, конечно же, используется для адресации определенного устройства, такого как телевизор или радио, где байт команды указывает функцию, которую необходимо выполнить, например, увеличение или уменьшение громкости. Помимо декодирования этих сообщений, они также могут быть переданы через инфракрасный порт с помощью этого устройства.

Шаг 1: некоторая информация об инфракрасном протоколе NEC

Некоторая информация об инфракрасном протоколе NEC
Некоторая информация об инфракрасном протоколе NEC

Краткое введение в этот протокол. Протокол NEC Infra Red Remote Control используется во многих устройствах и пультах дистанционного управления, которые вы можете купить. Он модулирует инфракрасный сигнал на несущей 38 кГц и использует дистанционное кодирование импульсов для кодирования логической «1» и логического «0». Протокол использует простую проверку, чтобы убедиться, что сообщение в порядке, отправляя адрес и командный байт, а также инвертированную версию обоих в одном и том же сообщении и проверяя, совпадают ли они после приема. При нажатии кнопки на пульте дистанционного управления он один раз отправляет полное инфракрасное сообщение с адресом и командой. Если удерживать кнопку нажатой, будет отправлено более короткое повторное сообщение без информации об адресе и команде. Время повторения передаваемых сообщений при нажатой кнопке фиксировано.

Более подробную информацию о протоколе NEC Infra Red можно, например, найти по адресу:

Шаг 2: Необходимые компоненты

Обязательные компоненты
Обязательные компоненты
Обязательные компоненты
Обязательные компоненты

Для этого проекта вам понадобятся следующие компоненты:

  • PIC микроконтроллер PIC18F14K50, см.:
  • Кристалл 12 МГц
  • Керамический конденсатор: 2 * 100 нФ, 1 * 220 нФ, 2 * 18 пФ
  • Конденсатор электролитический 47 мкФ / 16В
  • Инфракрасный приемник TSOP4838, см.:
  • Резисторы: 2 * 33к, 1 * 4к7, 1 * 1к, 3 * 330 Ом, 1 * 22 Ом
  • Светодиоды: 2 * инфракрасных, 1 желтый, 1 зеленый, 1 красный
  • Транзистор BC640, см.:
  • Джемпер (по желанию)
  • Разъем USB

См. Схему подключения компонентов. Я использовал макетную плату для этого проекта, как вы можете видеть на картинке и в видео. Схема получает питание от USB-порта ПК.

Шаг 3: Программное обеспечение и работа устройства

Как уже было сказано, программное обеспечение написано для PIC18F14K50. Это было написано на JAL. Файл Intel Hex для программирования PIC прилагается. Программа выполняет следующие функции:

  • Расшифровка сообщений NEC Infra-Red и отправка их на ПК через USB. Сообщение декодируется из потока битов, который генерируется инфракрасным приемником, и преобразуется в сообщение адрес + команда или сообщение повторения.
  • Отправка сообщений NEC Infra Red, полученных с ПК через USB. Обратите внимание, что программное обеспечение также создает несущую частоту 38 кГц, которая напрямую управляет инфракрасными светодиодами. Параллельно с инфракрасным светодиодом подключен желтый светодиод, чтобы сделать передачу сообщения видимой.

По умолчанию эта схема отключает инфракрасный приемник во время передачи инфракрасного сообщения. Если установить перемычку в положение «Включить звук», она отключит эту функцию отключения звука. В этом случае переданное инфракрасное сообщение также будет декодировано параллельно с передачей, и после полного приема оно будет отправлено как полученное инфракрасное сообщение на ПК. Если получено действительное сообщение NEC Infra-Red, загорится красный светодиод «IR OK».

Для работы с этим устройством на вашем ПК должна быть установлена программа Terminal Emulator. Для этого я использовал «Термит». Когда устройство подключено к ПК, оно автоматически распознается как дополнительный COM-порт в Windows 10, поскольку, похоже, драйвер Microchip для этого устройства предустановлен в Windows 10. Настройка для этого COM-порта должна быть: 19200 бод, 8 бит, 1 стоповый бит, без контроля четности и с использованием управления потоком RTS / CTS. При необходимости скорость передачи данных может быть установлена на любое другое значение, поэтому скорость передачи данных 115200 также будет работать. После настройки устройства через порт USB путем подключения к нему через программу эмулятора терминала загорится зеленый светодиод «Настроено».

Получение инфракрасных сообщений

При получении инфракрасного сообщения в программе эмулятора терминала будет отображаться следующее:

  • ‘A: xx C: xx’ в случае полного сообщения, где xx - шестнадцатеричное число адреса (A) и команды (C). Значения для обоих могут варьироваться от 0x00 (0) до 0xFF (255).
  • «Повторить» в случае повторения сообщения.

Отправка инфракрасных сообщений

Для этого мне нужно было определить протокол, который сообщает устройству, что делать. Поскольку мы используем эмулятор терминала, я использовал символы ASCII для определения сообщения. Протокол для отправки команды устройству использует следующий формат: ‘! AACCRR #’, где (все символы нечувствительны к регистру):

  • «!» Обозначает начало сообщения.
  • «AA» - это значение адреса в шестнадцатеричной системе счисления, т.е. от «0» до «9» и «A» до «F»,
  • «CC» - это значение команды в шестнадцатеричной системе счисления, поэтому от «0» до «9» и от «A» до «F».
  • «RR» - это количество повторных сообщений, которые необходимо передать в шестнадцатеричной системе счисления, от «0» до «9» и «A» до «F». Значение «00» означает, что повторное сообщение не отправляется.

Пример сообщения с адресом 0x07, командой 0x05 и 3 повторами следует набрать в программе эмулятора терминала следующим образом:! 070503 #

Устройство реагирует по-разному после отправки команды с ПК:

  • «Y» означает, что сообщение было передано. Обратите внимание, что этот ответ дается после того, как все сообщения, включая все повторы, переданы, поэтому может пройти некоторое время, прежде чем этот ответ будет дан, когда необходимо передать много повторяющихся сообщений.
  • «N» означает, что в сообщении, отправленном на ПК, был недопустимый символ.
  • «B» означает, что инфракрасная передача все еще была занята, когда была дана команда.
  • ? »Означает, что устройство ожидало«! », Но получило что-то еще.

Шаг 4:

Я снял небольшое видео, как устройство работает. Для этого видео я использовал коммерческую светодиодную лампу с дистанционным управлением, чтобы убедиться, что работают и передача, и прием. На видео показано следующее:

  • Настройка USB-устройства из программы эмуляции терминала. Когда устройство настроено, оно отвечает сообщением «Инфракрасный передатчик и приемник USB NEC». На устройстве горит зеленый светодиод, показывая, что устройство было настроено на ПК.
  • Лампа включается с помощью пульта дистанционного управления. Для этого пульт дистанционного управления использует адрес 0x00 и команду 0x07, которая декодируется устройством и отображается на ПК.
  • Лампа выключается с помощью пульта дистанционного управления. Для этого пульт дистанционного управления использует адрес 0x00 и команду 0x06, которая декодируется устройством и отображается на ПК.
  • Лампа включается путем ввода той же команды дистанционного управления на ПК со значением повторения 0 (без повторения), т.е. путем ввода «! 000700 #». Лампа загорится.
  • Изменение цвета лампы на синий, используя адрес 0x00 и команду 0x0A и используя 0x30 повторов. Желтый светодиод, подключенный параллельно с инфракрасными светодиодами, мигает, показывая, что повторное сообщение передается через инфракрасный порт. Напечатанное сообщение: «! 000A30 #».

Обратите внимание, что во время записи этого видео перемычка «Включить звук» была активна, поэтому вы также могли видеть переданное сообщение «! 000700 #», полученное как «A: 00 C: 07» в программе эмуляции терминала. В демонстрации синего цвета лампы вы также можете увидеть, что красный светодиод горит, пока передаются действительные сообщения с повторением, поскольку они принимаются и декодируются параллельно с передачей сообщений с повторением.

Получайте удовольствие, создавая свой собственный проект и с нетерпением жду вашей реакции. Не забудьте проголосовать за этот проект в конкурсе Remote Control 2017, если он вам понравился. Спасибо еще раз.

Рекомендуемые: