074-Преобразователь IR-to-UART на ATtiny2313.

Автор: | 31.05.2011

Несколько статей назад я описывал конструкцию преобразователя IR-to-UART на универсальной плате для IR устройств.  Универсальная плата драйвера получилась компактной и удобной. Я уверен — на ней мы соберем еще много интересных устройств!

В этой статье я покажу как сделать такое-же устройство, но на микроконтроллере ATtiny2313 и с применением  платы для сенсорных устройств. Я и дальше буду дублировать устройства на разных микроконтроллерах, так как часто для сборки устройства не находиться нужного микроконтроллера или применение его не целесообразно.

Как работает устройство, я повторно описывать не буду — читайте статью преобразователя IR-to-UART на ATtiny13, там все расписано. Отличий в работе нет — устройство принимает команду от бытового IR пульта и после обработки выдает ее код по UART.

Сборка преобразователя.
Как я уже писал, преобразователь будет собран на платы для сенсорных устройств. Необходима лишь небольшая доделка:

Схема преобразователя IR-to-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.

 

 

(Visited 5 709 times, 2 visits today)

074-Преобразователь IR-to-UART на ATtiny2313.: 54 комментария

  1. peits

    Всем привет.
    Я тут только одно не понял, как мне прочитать тот коды с uart ?

  2. xedory

    GetChiper :
    По чужому устройству я не подскажу, что куда там писать. И еще, этот преобразователь не выдает посылку ИК-пульта как таковую. Преобразователь выдает некоторое значение, которое является упрощенным описанием принятой команды.

    ТО есть єтотдевайсне поможет мне узнать код клавиши пульта!???
    Посоветуйте декодер или что-то ище, что сможет сказать мне код кнопки от самсунг!!! Может ссилку или совет!!!! Нужен маленький пульт на 4-команди для телика =))) Благодарю!!!!

  3. GetChiper Автор записи

    По чужому устройству я не подскажу, что куда там писать. И еще, этот преобразователь не выдает посылку ИК-пульта как таковую. Преобразователь выдает некоторое значение, которое является упрощенным описанием принятой команды.

  4. xedory

    Здравствуйте гетчип! Собрал переобразователь, подключил в ком порту через макс 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
    Куда мне записать етот код для выключение ТЕЛЕВИЗОРА! ????

  5. GetChiper Автор записи

    В некоторых протоколах четные и не четные посылки отличаются.

  6. ppwwdd

    Я имею ввиду, что принимаемые коды от одной и той же кнопки например; A1E3 A3E3 A1E1 A3E1. Один бит «гуляет» С чем это связано может быть?

  7. GetChiper Автор записи

    Чегото не понял вопроса… что там с тетрадами не так?

  8. ppwwdd

    Наконец-то разобрался. Недосмотрел. На 9 ножке-то IR светодиод. А я впаял туда обычный. Кстати, принимаемые коды меняются 1 на 3 во второй тетраде байта или наоборот 3 на 1.

  9. ppwwdd

    Евгений! Проверил устройство http://www.getchip.net/posts/099-rasshirennoe-upravlenie-nagruzkami-pri-pomoshhi-ik-pulta-na-attiny2313/ При вхождении в режим обучения держу более 10 сек, светодиод и не моргнет. Сетодиод целый, на выходе 9 контроллера лог 0. Менял TSOP на датчик с китайского RGB контроллера, то же самое. В трех соснах заблудился. Совсем уже ничего не пойму.

  10. ppwwdd

    Евгений, спаял IR to UART на AtTiny2313. Почему-то не работает. USB to UART проверено — работает. Эхо есть. Настройки такие как указано. Ставил уже два контроллера. Использовал обе прошивки. Фьюзы как указаны. Датчик TSOP 1736. Распаяно все верно. Зашел в тупик. При включении ОК не выходит. С пульта на ножку контроллера сигнал идет. Реакции никакой. Даже светодиод не моргнет. Светодиод-то должен засветится. TSOP проверен на проекте 085. Не могу справиться. По-мо-ги-и!!! Чем можешь.

  11. GetChiper Автор записи

    Если вместо TSOP поставить радиомодуль ничего не выйдет. Программа работает только с протоколом ИК-пультов

  12. SERGEY003

    вопрос если вместо IR радио модуль работать будет ?

  13. GetChiper Автор записи

    Нет, оно там не нужно.

  14. pino24

    А сопротивлении на 1Мом обязательно если я хочу использовать, только IR ??

  15. miklmakl

    Спасибо,за ответ,уважаемый,а то-валяется без дела…

  16. GetChiper Автор записи

    Можно.

  17. miklmakl

    что-то на мой вопрос ответа нет…

  18. miklmakl

    Подскажите,пожалуйста,можно в этом девайсе использовать ATTINY2313V-10PU?

  19. GetChiper Автор записи

    boggi :

    поставил скорость 19200 теперь показывает нормально

    Странно… ну да ладно, если работает…

  20. boggi

    переключил с ASCII на HEX и галки в Bin,Hex,Dec теперь ваще отлично

  21. boggi

    поставил скорость 19200 теперь показывает нормально

  22. GetChiper Автор записи

    Может скорость не та? Обе разновидности прошивки такое выдают?

  23. boggi

    собрал вроде работает.только скажите как посмотреть сигнал с пульта смотрю через терминал одна и та же кнопка все время разные крякозябры показывает

  24. GetChiper Автор записи

    Обязательно такое сделаем.

  25. yuzd

    GetChiper :
    Если говорить о сенсорных линиях без сенсоров, то нужно программно их исключать, любой другой вариант (кроме сенсорной площадки) будет давать ошибки.

    понял, спасибо. Не планируете прошивку, которая будет и сенсоры обрабатывать, и IR? чтоб данные гнать по одной линии UART?

  26. GetChiper Автор записи

    В однобайтовой прошивке просто код кнопки и шлется.
    Эти прошивки ничего не делают с сенсорными линиями, т.е. сенсоров тут нет. Если говорить о сенсорных линиях без сенсоров, то нужно программно их исключать, любой другой вариант (кроме сенсорной площадки) будет давать ошибки.

  27. yuzd

    GetChiper :
    Это устройство – заготовка. .

    прошу прощения, сразу не вьехал, думал эта платка будет и сенсоры обрабатывать и IR, как раз думаю такое устройство будет самым оптимальным/универсальным. Обрабатывать IR и посылать в одном виде в UART , например 42/xxx или 42/xxx/xxx, а при обработке сенсоров, пихать только номер кнопки, такие данные довольно просто потом обработать.

  28. yuzd

    В таком виде устройство и интересно, т.е. и IR приемник и сенсорная клава, хочу сделать сенсорный выключатель с управлением с помощью пульта, встроить это в какой-то корпус, и по UART передавать сигнал, а в силовой части буду обрабатовать UART команды, сделал на тини2313 приемник UART, отлично работает, испытал на вашем «071-Преобразователь IR-сигналов от пультов в UART», мой вопрос заключается в том, что сенсорных кнопок мне надо будет 4-6шт, а в устройстве 12сенсоров. Так вот, как себя будет вести устройство, если я задейтвую 4 кнопки, а остальные ножки МК оставлю в воздухе, или их в воздухе оствлять с резисторами? Боюсь, что будет не надежно работать, или будет по UART сыпатся мусор от незадействованых кнопок, поскольку а вас реализована автокалибровка, то не подкалибруется ли оно под висящие в воздухе пины, и таким образом площадки с сенсорами будут работать не правильно?

    И вопрос по формату данных в трех байтовой прошивке, если нажать кнопку на пульте, то в UART пойдет: 42/xxx/xxx? А при нажатии сенсорной кнопки пойдет ххх(номер кнопки) правильно я понимаю?

  29. GetChiper Автор записи

    Это устройство — заготовка. Оно принимает IR сигнал и выдает его по UART и ничего не делает с ногами. Сигналы на ноги нужно или приделать самому (исходники на алгоритм билдере внизу статьи), или дождаться пока я не выложу более расширенную версию (она почти готова) с задействованными ногами шимом и т.д.

  30. yuzd

    GetChiper :
    Ножки, если не используются, пусть болтаются в воздухе.

    с резисторами или просто в воздухе?
    Может стоит сделать какуюто предустановку для универсальности, например в нулевую ячейку епрома при прошивке нужно вписать число, например если вписать туда 3, то будет использоватся только три входа для сенсора, 4 — 4входа и т.д.
    и еще такой вопрос, не хотите ли сделать вариант устройства с внешним кварцевым резонатором, когда проверял на разных контроллерах uart, на некоторых очень не стабильно работает, ввиду разброса внутренего RC генератора. нет ли у вас исходника в ассемблере? в авр студио понемногу разбираюсь

  31. GetChiper Автор записи

    Ножки, если не используются, пусть болтаются в воздухе.

  32. yuzd

    Подскажите, а если не нужно столько каналов на кнопки, то что сделать с ненужными входами контроллера, посадить их на плюс или на минус, или их обизательно надо все использовать?

  33. GetChiper Автор записи

    Только так как я описал — иначе никак.

  34. Andrey

    Просто понимаете у нас городишко маленькое и магазинов радиодеталей нет приходится заказывать вот я и спросил вдруг можна чё нить придумать или нет

  35. Andrey

    Объясните мне 13-ти летнему тупому мальчику если я чего то не понимаю

  36. Andrey

    И кстати этот пульт работает без дров и программы

  37. Andrey

    А отвязать его не получиться?

  38. GetChiper Автор записи

    Скорей всего Ваш приемник USB имеет привязку к конкретному пульту, кроме того имеет свой интерфейс общения с управляющей программой в компе. Поэтому единственный вариант — это использовать мое устройство и Ваш пульт. Наоборот не получиться.
    Мост USB-UART пока не планирую встраивать, тому есть ряд причин — большой размер в кристалле, большое потребление микроконтроллерного времени, ну и еще ряд причин.

  39. Andrey

    GetChiper :
    Можно, конечно, но это себя не оправдает. Есть для таких вещей IgorPlug – лучше просто не сделаешь.

    Просто хотелось чтоб одним устройством управлялось и при помощи вашей замечательной программы.

  40. Andrey

    Или применить от него только приёмник usb, а пульт использовать свой.

  41. Andrey

    У меня есть пульт usb специальный. Можно ли использовать его а то там только определённые функции, а хочется выбора. Если надо могу выложить фото.

  42. GetChiper Автор записи

    Можно, конечно, но это себя не оправдает. Есть для таких вещей IgorPlug — лучше просто не сделаешь.

  43. Andrey

    Здравствуйте. а можно совместить uart и эту схему, чтобы не изпользовать два устройства, а сразу в usb порт?

  44. ec

    гонял тини45 на отладочной плате, с подключенным к порту TSOP напрямую без токоограничителя. На другом порту кнопка делает тоже самое. На выходе на двух портах светодиодики — перемигиваются при каждом последующем нажитии либо при посылке с пульта. Прошивка личного исполнения. Порт замыкаешь на короткое время на корпус — работает с пульта, нажмешь на кнопку — от пульта перестает, пока не замкнешь. Но почему-то умерла тинька. Может ли, из-за того, что без токоограничителя замыкал на корпус? Порт то на вход.

  45. mallsa

    Ждёмс, с нетерпением. Сам ковыряю контролеры уже давно, а писать прог для них только начинаю

  46. GetChiper Автор записи

    Конечно подскажу! Скоро выложу статью с таким устройством (устройство уже готово и работает).

  47. mallsa

    А как ножками контролера подрыгать с пульта,подскажите. А?

Добавить комментарий