Съдържание:

Инфрачервен предавател и приемник USB NEC: 4 стъпки (със снимки)
Инфрачервен предавател и приемник USB NEC: 4 стъпки (със снимки)

Видео: Инфрачервен предавател и приемник USB NEC: 4 стъпки (със снимки)

Видео: Инфрачервен предавател и приемник USB NEC: 4 стъпки (със снимки)
Видео: CS50 Live, серия 009 2024, Септември
Anonim
Инфрачервен предавател и приемник USB NEC
Инфрачервен предавател и приемник USB NEC

Този проект е отделяне на друг проект, върху който работя и тъй като има конкурс за дистанционно управление 2017 на Instructables, мислех, че публикувам този проект. Така че, ако този проект ви харесва, моля, гласувайте за него. Благодаря.

Както може би знаете, аз съм голям фен на 8-битовите PIC контролери на Microchip, вижте:

Използвам езика за програмиране JAL, тъй като прилича на Pascal (който също ми харесва). Компилаторът 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 Infra-Red Remote Control. Проектът декодира и превежда инфрачервени съобщения в байт за адрес и байт на команда или в повторно съобщение. Адресът, разбира се, се използва за адресиране на определено устройство като телевизор или радио, където командният байт показва функцията, която трябва да се изпълни като увеличаване на звука, намаляване на звука. Освен декодирането на тези съобщения, те могат да се предават и чрез Infra-Red с помощта на това устройство.

Стъпка 1: Малко информация за инфрачервения протокол на NEC

Малко информация за инфрачервения протокол на NEC
Малко информация за инфрачервения протокол на NEC

Кратко въведение в този протокол. Инфрачервеният протокол за дистанционно управление NEC се използва в много устройства и дистанционни управления, които можете да закупите. Той модулира инфрачервен сигнал на носител от 38 kHz и използва импулсно кодиране на разстоянието за кодиране на логическо „1“и логическо „0“. Протоколът използва проста проверка, за да види дали съобщението е наред, като изпраща както адреса, така и командния байт и обърната версия и на едно и също съобщение и проверява дали те са еднакви след получаване. Когато бутонът е натиснат на дистанционното управление, той изпраща еднократно инфрачервено съобщение с адрес и команда веднъж. Задържането на бутона натиснато ще доведе до изпращане на по -кратко повторно съобщение без информация за адрес и команда. Времето за повторение на изпратените съобщения, като държите бутона натиснат, е фиксирано.

Повече информация за протокола NEC Infra Red може да се намери например на:

Стъпка 2: Необходими компоненти

Задължителни компоненти
Задължителни компоненти
Задължителни компоненти
Задължителни компоненти

Трябва да имате следните компоненти за този проект:

  • PIC микроконтролер PIC18F14K50, вижте:
  • Кристал 12 MHz
  • Керамичен кондензатор: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Електролитен кондензатор 47 uF/16V
  • Инфрачервен приемник TSOP4838, вижте:
  • Резистори: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • Светодиоди: 2 * инфрачервено, 1 кехлибарено, 1 зелено, 1 червено
  • Транзистор BC640, вижте:
  • Джъмпер (по избор)
  • USB конектор

Вижте схематичната диаграма за това как да свържете компонентите. Използвах макет за този проект, както можете да видите на снимката и във видеото. Схемата получава захранването си от USB порта на компютъра.

Стъпка 3: Софтуерът и работата на устройството

Както вече споменахме, софтуерът е написан за PIC18F14K50. Написано е в JAL. Прикачен е файлът Intel Hex за програмиране на вашия PIC. Софтуерът изпълнява следните функции:

  • Декодиране на NEC Infra-Red съобщения и изпращането им до компютъра чрез USB. Съобщението се декодира от битовия поток, който се генерира от Infra-Red приемника и се превежда в адрес + съобщение за команда или повторно съобщение.
  • Изпращане на съобщения от NEC Infra Red, получени от компютъра чрез USB. Имайте предвид, че софтуерът също така създава 38 kHz носеща честота, която директно задвижва инфрачервените светодиоди. Паралелно с инфрачервения светодиод е свързан жълт светодиод, за да стане видимо предаването на съобщение.

По подразбиране тази схема ще заглуши инфрачервения приемник по време на предаване на инфрачервено съобщение. Ако джъмпер е поставен на позиция „Включване на звука“, той ще деактивира тази функция за заглушаване. В този случай предаденото инфрачервено съобщение също ще бъде декодирано успоредно с предаването и след пълно приемане се изпраща като получено инфрачервено съобщение до компютъра. Ако се получи валидно инфрачервено съобщение на NEC, червеният светодиод „IR OK“ще светне.

За да работите с това устройство, трябва да имате програма за терминален емулатор на вашия компютър. Използвах „Термит“за тази цел. Когато устройството е свързано към компютъра, то автоматично ще бъде разпознато като допълнителен COM порт от Windows 10, тъй като изглежда, че има предварително инсталиран драйвер за микрочип за това устройство в 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“означава, че предаването на Infra-Red все още е било заето, когато е дадена командата.
  • ? “Означава, че устройството е очаквало„! “, Но е получило нещо друго.

Стъпка 4:

Направих кратко видео на устройството в действие. За това видео използвах търговска LED лампа с нейното дистанционно управление, за да видя, че както предаването, така и приемането работят. Видеото показва следното:

  • Конфигуриране на USB устройството от програмата Terminal Emulation. Когато устройството е конфигурирано, то отговаря със съобщението „USB NEC Инфрачервен предавател и приемник“. На устройството свети зеленият светодиод, показващ, че устройството е конфигурирано от компютъра.
  • Лампата се включва с дистанционното управление. За това дистанционното управление използва адрес 0x00 и команда 0x07, която се декодира от устройството и се показва на компютъра.
  • Лампата се изключва с дистанционното управление. За това дистанционното управление използва адрес 0x00 и команда 0x06, която се декодира от устройството и се показва на компютъра.
  • Лампата се включва чрез въвеждане на същата команда за дистанционно управление на компютъра с повторна стойност 0 (без повторение), така че чрез въвеждане на „! 000700#“. Лампата се включва.
  • Промяна на цвета на лампата в син чрез използване на адрес 0x00 и команда 0x0A и използване на 0x30 повторения. Жълтият светодиод, който е свързан паралелно с инфрачервените светодиоди, мига, показвайки предаването на повторно съобщение чрез инфрачервено. Въведеното съобщение е „! 000A30#“.

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

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

Препоръчано: