Несколько статей назад я описывал конструкцию преобразователя IR-to-UART на универсальной плате для IR устройств. Универсальная плата драйвера получилась компактной и удобной. Я уверен — на ней мы соберем еще много интересных устройств!
В этой статье я покажу как сделать такое-же устройство, но на микроконтроллере ATtiny2313 и с применением платы для сенсорных устройств. Я и дальше буду дублировать устройства на разных микроконтроллерах, так как часто для сборки устройства не находиться нужного микроконтроллера или применение его не целесообразно.
Как работает устройство, я повторно описывать не буду — читайте статью преобразователя IR-to-UART на ATtiny13, там все расписано. Отличий в работе нет — устройство принимает команду от бытового IR пульта и после обработки выдает ее код по UART.
Сборка преобразователя.
Как я уже писал, преобразователь будет собран на платы для сенсорных устройств. Необходима лишь небольшая доделка:
074-Tiny2313-IR-to-UART-schem.zip (2526 Загрузок)
Как видно из схемы нужно, всего лишь, добавить TSOP . TSOP может быть любым на 36 или 38 кГц. Главное не перепутайте вывода — они у всех расположены по разному (читайте даташит на свой TSOP!). IR-светодиод пока не нужен, я его нарисовал для следующих устройств.
Как Вы понимаете, устройство можно собрать и на своей плате — развести ее не составит труда.
Параметры UART:
— скорость 9600;
— размер посылки 8бит;
— 1 стоп бит;
— без бита четности.
Как и в варианте на ATtiny13, я сделал два варианта прошивки.
Первый вариант – простой. По UART выдается код нажатой клавиши пульта в виде одного байта. В виду того, что нажатой клавише соответствует только один байт, на принимающей стороне (Ваш электронный проект) очень легко будет обрабатывать посылки. Но с другой стороны при однобайтном отображении нажатой клавиши пульта возможны ситуации, когда две разные клавиши пульта (или разных пультов) выдадут одинаковой код.
Для устранения этого недостатка я сделал второй вариант прошивки — она выдает на каждую нажатую клавишу двух байтовый код (слово). Причем, перед каждым кодом посылается символ «*» — это должно помочь при приеме сообщения на принимающей стороне. Общий вид сообщения передаваемого по UART при приеме очередного кода будет следующим: «*хх», где хх-двухбайтовый код нажатой клавиши.
Обе прошивки при подаче питания на устройство выдают по UART строку «OK!» и издают звук (или мерцают светодиодом, в зависимости что Вы там установили) . При приеме IR сигнала (любого) схема реагирует звуком (светом).
Простой вариант прошивки — однобайтовый:
074-T2313-IR-to-UART-1B.zip (2317 Загрузок)
074-T2313-IR-to-UART-FuseBits.png (2910 Загрузок)
Как правильно прошить AVR фьюзы
Расширенный вариант прошивки – трехбайтовый(«*хх»):
074-T2313-IR-to-UART-3B.zip (2408 Загрузок)
074-T2313-IR-to-UART-FuseBits.png (2910 Загрузок)
Как правильно прошить AVR фьюзы
Файлы:
074-source-T2313-IR-to-UART-1B.zip (2646 Загрузок)
074-source-T2313-IR-to-UART-3B.zip (2544 Загрузки)
Ссылки:
060-Драйвер сенсорной клавиатуры «Touch Me» на ATtiny2313.
Всем привет.
Я тут только одно не понял, как мне прочитать тот коды с uart ?
В этой статье http://www.getchip.net/posts/077-zapis-signalov-ir-pulta-na-zvukovuyu-kartu/ есть программ которые помогут записать и проанализировать всю посылку от пульта.
ТО есть єтотдевайсне поможет мне узнать код клавиши пульта!???
Посоветуйте декодер или что-то ище, что сможет сказать мне код кнопки от самсунг!!! Может ссилку или совет!!!! Нужен маленький пульт на 4-команди для телика =))) Благодарю!!!!
По чужому устройству я не подскажу, что куда там писать. И еще, этот преобразователь не выдает посылку ИК-пульта как таковую. Преобразователь выдает некоторое значение, которое является упрощенным описанием принятой команды.
Здравствуйте гетчип! Собрал переобразователь, подключил в ком порту через макс 232 , как бы все работает, но :
кнопка виключения пульта самсунг видает код 40 или 01000000 , как понять , ето РС-4 или НЕК протокол??
Я делаю пульт на 4 кнопки http://radiohlam.ru/control/ikpult_ATtiny13.htm
Там есть исходник на РС-5 http://radiohlam.ru/program/ikpult_tiny13_prg_rc5.htm
И на НЕК протокол http://radiohlam.ru/program/ikpult_tiny13_prg_nec.htm
Куда мне записать етот код для выключение ТЕЛЕВИЗОРА! ????
В некоторых протоколах четные и не четные посылки отличаются.
Я имею ввиду, что принимаемые коды от одной и той же кнопки например; A1E3 A3E3 A1E1 A3E1. Один бит «гуляет» С чем это связано может быть?
Чегото не понял вопроса… что там с тетрадами не так?
Наконец-то разобрался. Недосмотрел. На 9 ножке-то IR светодиод. А я впаял туда обычный. Кстати, принимаемые коды меняются 1 на 3 во второй тетраде байта или наоборот 3 на 1.
Евгений! Проверил устройство http://www.getchip.net/posts/099-rasshirennoe-upravlenie-nagruzkami-pri-pomoshhi-ik-pulta-na-attiny2313/ При вхождении в режим обучения держу более 10 сек, светодиод и не моргнет. Сетодиод целый, на выходе 9 контроллера лог 0. Менял TSOP на датчик с китайского RGB контроллера, то же самое. В трех соснах заблудился. Совсем уже ничего не пойму.
А как себя ведет подобное устройство?
http://www.getchip.net/posts/099-rasshirennoe-upravlenie-nagruzkami-pri-pomoshhi-ik-pulta-na-attiny2313/
Евгений, спаял IR to UART на AtTiny2313. Почему-то не работает. USB to UART проверено — работает. Эхо есть. Настройки такие как указано. Ставил уже два контроллера. Использовал обе прошивки. Фьюзы как указаны. Датчик TSOP 1736. Распаяно все верно. Зашел в тупик. При включении ОК не выходит. С пульта на ножку контроллера сигнал идет. Реакции никакой. Даже светодиод не моргнет. Светодиод-то должен засветится. TSOP проверен на проекте 085. Не могу справиться. По-мо-ги-и!!! Чем можешь.
Если вместо TSOP поставить радиомодуль ничего не выйдет. Программа работает только с протоколом ИК-пультов
вопрос если вместо IR радио модуль работать будет ?
Нет, оно там не нужно.
А сопротивлении на 1Мом обязательно если я хочу использовать, только IR ??
Спасибо,за ответ,уважаемый,а то-валяется без дела…
Можно.
что-то на мой вопрос ответа нет…
Подскажите,пожалуйста,можно в этом девайсе использовать ATTINY2313V-10PU?
Странно… ну да ладно, если работает…
переключил с ASCII на HEX и галки в Bin,Hex,Dec теперь ваще отлично
поставил скорость 19200 теперь показывает нормально
Может скорость не та? Обе разновидности прошивки такое выдают?
собрал вроде работает.только скажите как посмотреть сигнал с пульта смотрю через терминал одна и та же кнопка все время разные крякозябры показывает
Обязательно такое сделаем.
понял, спасибо. Не планируете прошивку, которая будет и сенсоры обрабатывать, и IR? чтоб данные гнать по одной линии UART?
В однобайтовой прошивке просто код кнопки и шлется.
Эти прошивки ничего не делают с сенсорными линиями, т.е. сенсоров тут нет. Если говорить о сенсорных линиях без сенсоров, то нужно программно их исключать, любой другой вариант (кроме сенсорной площадки) будет давать ошибки.
прошу прощения, сразу не вьехал, думал эта платка будет и сенсоры обрабатывать и IR, как раз думаю такое устройство будет самым оптимальным/универсальным. Обрабатывать IR и посылать в одном виде в UART , например 42/xxx или 42/xxx/xxx, а при обработке сенсоров, пихать только номер кнопки, такие данные довольно просто потом обработать.
В таком виде устройство и интересно, т.е. и IR приемник и сенсорная клава, хочу сделать сенсорный выключатель с управлением с помощью пульта, встроить это в какой-то корпус, и по UART передавать сигнал, а в силовой части буду обрабатовать UART команды, сделал на тини2313 приемник UART, отлично работает, испытал на вашем «071-Преобразователь IR-сигналов от пультов в UART», мой вопрос заключается в том, что сенсорных кнопок мне надо будет 4-6шт, а в устройстве 12сенсоров. Так вот, как себя будет вести устройство, если я задейтвую 4 кнопки, а остальные ножки МК оставлю в воздухе, или их в воздухе оствлять с резисторами? Боюсь, что будет не надежно работать, или будет по UART сыпатся мусор от незадействованых кнопок, поскольку а вас реализована автокалибровка, то не подкалибруется ли оно под висящие в воздухе пины, и таким образом площадки с сенсорами будут работать не правильно?
И вопрос по формату данных в трех байтовой прошивке, если нажать кнопку на пульте, то в UART пойдет: 42/xxx/xxx? А при нажатии сенсорной кнопки пойдет ххх(номер кнопки) правильно я понимаю?
Это устройство — заготовка. Оно принимает IR сигнал и выдает его по UART и ничего не делает с ногами. Сигналы на ноги нужно или приделать самому (исходники на алгоритм билдере внизу статьи), или дождаться пока я не выложу более расширенную версию (она почти готова) с задействованными ногами шимом и т.д.
с резисторами или просто в воздухе?
Может стоит сделать какуюто предустановку для универсальности, например в нулевую ячейку епрома при прошивке нужно вписать число, например если вписать туда 3, то будет использоватся только три входа для сенсора, 4 — 4входа и т.д.
и еще такой вопрос, не хотите ли сделать вариант устройства с внешним кварцевым резонатором, когда проверял на разных контроллерах uart, на некоторых очень не стабильно работает, ввиду разброса внутренего RC генератора. нет ли у вас исходника в ассемблере? в авр студио понемногу разбираюсь
Ножки, если не используются, пусть болтаются в воздухе.
Подскажите, а если не нужно столько каналов на кнопки, то что сделать с ненужными входами контроллера, посадить их на плюс или на минус, или их обизательно надо все использовать?
Только так как я описал — иначе никак.
Просто понимаете у нас городишко маленькое и магазинов радиодеталей нет приходится заказывать вот я и спросил вдруг можна чё нить придумать или нет
Объясните мне 13-ти летнему тупому мальчику если я чего то не понимаю
И кстати этот пульт работает без дров и программы
А отвязать его не получиться?
Жалко
Скорей всего Ваш приемник USB имеет привязку к конкретному пульту, кроме того имеет свой интерфейс общения с управляющей программой в компе. Поэтому единственный вариант — это использовать мое устройство и Ваш пульт. Наоборот не получиться.
Мост USB-UART пока не планирую встраивать, тому есть ряд причин — большой размер в кристалле, большое потребление микроконтроллерного времени, ну и еще ряд причин.
Просто хотелось чтоб одним устройством управлялось и при помощи вашей замечательной программы.
Или применить от него только приёмник usb, а пульт использовать свой.
У меня есть пульт usb специальный. Можно ли использовать его а то там только определённые функции, а хочется выбора. Если надо могу выложить фото.
Можно, конечно, но это себя не оправдает. Есть для таких вещей IgorPlug — лучше просто не сделаешь.
Здравствуйте. а можно совместить uart и эту схему, чтобы не изпользовать два устройства, а сразу в usb порт?
гонял тини45 на отладочной плате, с подключенным к порту TSOP напрямую без токоограничителя. На другом порту кнопка делает тоже самое. На выходе на двух портах светодиодики — перемигиваются при каждом последующем нажитии либо при посылке с пульта. Прошивка личного исполнения. Порт замыкаешь на короткое время на корпус — работает с пульта, нажмешь на кнопку — от пульта перестает, пока не замкнешь. Но почему-то умерла тинька. Может ли, из-за того, что без токоограничителя замыкал на корпус? Порт то на вход.
Ждёмс, с нетерпением. Сам ковыряю контролеры уже давно, а писать прог для них только начинаю
Конечно подскажу! Скоро выложу статью с таким устройством (устройство уже готово и работает).
А как ножками контролера подрыгать с пульта,подскажите. А?