Имея устройство IR-to-UART, которое выдает по UART код нажатой на IR-пульте клавиши , совсем не сложно сделать прошивку для прямого дрыганья ногами микроконтроллера. Единственная проблема в том, что заранее неизвестно какой пульт мы будем использовать или какую клавишу задействуем. Придется приделать к программе кусок, позволяющий изучать нужные кнопки. Этим мы сейчас и займемся!
Согласитесь, очень удобно когда, не вставая с кресла, можно одним пультом управлять, кроме телевизора, еще и освещением, вентилятором или другими бытовыми приборами в комнате. А если к устройству трудно (или вообще невозможно) добраться? Или нужен пульт для управления Вашей моделью. Именно для таких целей и предназначено это устройство. Для управления нагрузками подойдет любой, выбранный Вами пульт, на котором можно выбрать любые клавиши. И если вдруг Вы не сможете быстро отыскать, где-то оставленный Вами пульт, Вы сможете использовать любой другой попавшийся под руку пульт, пройдя несложную процедуру его изучения. В общем, это нужное устройство. Будем собирать!
Сборка устройства.
Для устройства управления нагрузками возьмем, ранее сделанную нами, плату IR-драйвера. Переделывать ничего не нужно – все, что нам понадобиться уже есть на плате.
Ножки Load A, Load B, Load C предназначены для управлением нагрузками (как подключить нагрузку к микроконтроллеру – читаем здесь >>). Индикаторный светодиод будет отображать действия устройства.
Прошивка.
Для прошивки микроконтроллера на плате выведены все необходимые сигналы. Подключаем программатор и заливаем прошивку.
076-T13-IR-to-Pin1.zip (11674 Загрузки)
sshot-11.png (18903 Загрузки)
Как правильно прошить AVR фьюзы
Работа устройства.
Работает устройство очень просто. Перед тем как использовать выбранный пульт необходимо пройти процедуру его изучения. Нажимая на изученные кнопки пульта можно управлять нагрузками: включать/отключать их как по отдельности, так и все вместе; запоминать и восстанавливать текущее состояние.
Процедура изучения клавиш пульта:
— включаем устройство;
— в течении около 10 секунд удерживаем нажатой любую клавишу пульта (для разных пультов время удержания разное, так как замеряется не время удержания, а количество автоповторов команды кнопки);
— по истечении 10 секунд замерцает индикаторный светодиод – устройство перешло в режим изучения;
— далее последовательно нажимаем клавиши пульта в порядке следования функций устройства. После каждой нажатой клавиши устройство будет подтверждать запоминание кнопки мерцанием;
— после последней изученной кнопки устройство подтвердит окончание изучения пульта длительным мерцанием и перейдет в режим управления нагрузкой.
Изучение команд клавиш пульта можно производить сколько угодно раз. Изученные кнопки записываются в энергонезависимую память, поэтому устройство их будет «помнить» даже после обесточивания устройства.
Последовательность изучения кнопок пульта:
1 включение/отключение нагрузки A (Load A)
2 включение/отключение нагрузки B (Load B)
3 включение/отключение нагрузки C (Load C)
4 выключить все нагрузки
5 включить все нагрузки
6 сохранить состояние нагрузок в энергонезависимую память
7 восстановить из энергонезависимой памяти состояние нагрузок
Всего 7 команд.
Если у Вас нет нужного количества свободных кнопок на Вашем пульте, или Вам не нужны некоторые функции – просто нажмите на ненужной функции уже изученную клавишу и эта функция не будет задействована.
Видео, о том как это все выглядит на самом деле:
Файлы:
076-T13-IR-to-Pin1.zip (11674 Загрузки)
sshot-11.png (18903 Загрузки)
076-source-T13-IR-to-PIN1.zip (8032 Загрузки)
Ссылки:
069-Универсальная плата-IR Driver на ATtiny13.
P.S. Данный вариант обработки IR-сигнала и изучения пультов почти без изменений войдет в 1W-IR сеть, т.е. каждое устройство в сети (если это для него нужно) сможет принимать кроме сообщений сети еще и команды с IR-пультов. Алгоритм еще будет дорабатываться, так как он еще не оптимален и не отлажен.
МОДИФИКАЦИИ.
(Изменение некоторых аспектов работы устройства. Общая логика работы остается прежней)
Больше модификаций можно посмотреть в разделе форума. Там-же можно показать свои модификации.
Модификация №1.
— Убрано: запуск процедуры обучения пульта при длительном нажатии на любую клавишу пульта.
+ Добавлено: запуск процедуры обучения пульта при условии закорачивания ножки кристалла 6 (PB1) (или штырька платы Out) на «землю» при подаче питания. После перехода в режим обучения (индикаторный светодиод помигает) ножку нужно «отпустить».
076-T13-IR-to-Pin-Mod1.zip (4788 Загрузок)
sshot-11.png (18903 Загрузки)
Как правильно прошить AVR фьюзы
076-source-T13-IR-to-PIN-mod1.zip (4476 Загрузок)
Модификация может пригодиться в тех условиях, где присутствуют сильные длительные помехи или есть вероятность длительного удержания кнопки пульта при работе с какой либо бытовой техникой (короче, там где ошибочно запускается режим обучения).
Модификация №2.
+ Добавлено: запуск процедуры обучения пульта при БОЛЕЕ длительном нажатии на любую клавишу пульта.
076-T13-IR-to-Pin-Mod2.zip (4896 Загрузок)
sshot-11.png (18903 Загрузки)
Как правильно прошить AVR фьюзы
076-source-T13-IR-to-PIN-mod2.zip (4497 Загрузок)
Модификация может пригодиться в тех условиях, где присутствуют сильные длительные помехи из-за которых есть вероятность ошибочного включения режима обучения.
Гарно дякую! Буду розбиратись!
🙂
Привіт!
AvrDude Prog ніколи не користувався, але він працює з фьюзами як PonyProg, а значіть фьюзи в ньому виставляються навпаки тим, що у мене.
Привіт GetChiper! Зібрав Вашу схему ніби все прошилось але чомусь не працює, якщо Вам не важко зробіть скрін з виставленими фюзами в програмі AverDude prog 3.3, грішу на фюзи, дякую!!!
Может причина в TSOP?
Питание без помех?
Добрый день! Подскажите в чем может быть дело. Собрал устройство, прошил, модификация моя 6 команд, разные команды на включение и выключение каждого реле. Все работало где то дня 4, но тут что то случилось и на любую команду из этих 6 срабатывает первое реле и все, никакой реакции пока не скинешь питание, скинул и опять тоже самое, на другие команды ничего не происходит. Запрограммировал по новой, такая же ситуация, перепрошил, то же самое. Умер контроллер? Есть несколько таких же платок, все работает, подскажите в чем может быть дело.
Это случится точно не в ближайшее время…
В модификациях к сожалению не нашел именно того что мне надо. Может если появится время поможете мне? Заранее спасибо.
Привет!
Сейчас не смогу этим заняться.
Может что подходящее найдется в модификациях?
http://www.forum.getchip.net/viewforum.php?f=24&sid=d22205b58357d9cb88e1650d55638211
Здравствуйте. Возможно ли изменить прошивку так чтобы алгоритм работы Модификация №1 был таков — при подаче питания на устройство сразу включался канал А (тоесть как бы инвертировать канал А)
И так же если есть возможность сделать эту прошивку под ATtiny15L заранее спасибо.
Огромное спасибо за помощь и сайт!!!!!
Это пустой файл. в нем находится только разметка hex.
Для проекта он не нужен.
Евгений, спасибо за ответы!
А что представляет из себя содержимое файла hex для EEPROM, созданного на этапе компиляции?:
:03000000FFFFFF00
:00000001FF
Возможно восстанавливаются уровни с EEPROM.
Все равно не понятно. Я писал, что в подпрограмме обработки кнопок у меня выставлены команды на формирование импульсов, а не высокого уровня.
Суть в том, что этот флаг взводится в прерывании и это прерывание работает и во время изучения кнопок. Кнопки только обучились а флаг уже стоит и происходит вход в подпрограмму обработки кнопок.
Евгений, спасибо! Сработало.
Только не могу понять принцип решения.
В бесконечном цикле главной программы идет анализ бита F_Data_Out, и если он =1, то выполняем _Key_Work.
Пусть мы не вписывали 0->F_Data_Out в конец подпрограммы обучения (но эта строчка есть в начале этой подпрограммы), тогда считаем, что этот бит был=1 и мы в цикле перешли в обработку _Key_Work, где описаны импульсы…
Есть возможность описать как это сработало?
Благодарю!
OK. Спасибо огромное. Вечером попробую 🙂
В конце подпрограммы обучения поставьте
0 -> F_Data_Out
Евгений, с иголочками я сам разобрался и после выполнения любой первой команды я могу пультом на выводе сформировать необходимый мне импульс. На исполнительном устройстве должен быть импульс определенной длительности, иначе оно сгорит. В исходнике 076-T13-IR-to-Pin.hex v2.0 после прохождения обучения устанавливается лог.1 в порту (на всех выводах). Я не могу найти как сбросить порт в 0 .
Вписывание команд 0->Port_LA,… в конец функции _Study_Pult не решили проблему.
Помогите пожалуйста.
Может в разделе модификаций что-то есть уже готовое? Что-то с иголками вроде было.
http://www.forum.getchip.net/viewforum.php?f=24
Евгений, добрый день!
Меня бы устроило 076-T13-IR-to-Pin.hex v2.0 — Прошивка устройства управления нагрузками :).
Но есть одно непонимание мной как и где можно подправить, чтобы после процедуры изучения пульта выводы порта были отключены (лог. ноль)? После обучения на всех выводах высокий уровень, а я планирую управлять импульсом…
Заранее благодарю!
Вот в этой штуке
http://algrom.net/russian.html
В какой программе можно просмотреть исходник(в чём писали)?
Проект собран под тини13. врядли мк настолько похожи чтоб прям прошивки были идентичны.
Почему?
Не выйдет.
Подскажите можно ли вместо tiny13 использовать tiny25 или tiny45(они есть в наличии)?
Когда-то пополнил TSOP4836. Линза у них овальная, подумал — разработчик улучшает характеристики. Теперь дошло до их применения.
В данном проекте не запустились, не реагирует устройство проблесковым заячком светодиода на пульты от телевизора. Эти TSOP проверялись на работающей схеме и проверенных пультах.
В проекте 094_Датчик приближения вроде как работают.
Что за TSOP мне подсунули?
https://yadi.sk/i/dzBLSMeG3EhcfB
Спасибо за ссылку, там действительно есть то мне нужно
А в разделе модификаций нет такого устройства? http://www.forum.getchip.net/viewforum.php?f=24
Насколько я помню там что-то подобное есть.
Уважаемый GetChiper, можно ли сделать модификацию, чтобы канал A (ну или любой другой) можно было включать не только пультом, но и кнопкой? Заодно на эту кнопку можно будет сделать переход в режим программирования при длительном нажатии. Если можно, буду очень благодарен если вы сделаете такую версию.
Ай спасибо! Нижайше кланяюсь за Ваши труды и за то, что делитесь плодами сих трудов. Очень полезная приблуда. Вчера собрал, всё отлично работает. Хочу приспособить в активную АС, чтоб включалась и выключалась вместе с телевизором. Воистину, лень-двигатель прогресса). Спасибо огромное и успехов Вам в ваших начинаниях.
Все исходники есть в статье.
Можете ли вы дать программу первый прошивки?
Если не запрограммировать фьюз-биты устройство не будет нормально работать.
Про фьюзы у меня есть статья http://www.getchip.net/posts/068-kak-pravilno-proshit-avr-fyuzy-fuse-bit/
Привет Я начинаюшии радиолюбители , и я хочу знать, что будет если не програмированы Fusebit. И как могут быть запрограммированы с использованием AVRDUDE. Спосибо заранее.
Спасибо, все заработало 🙂
Практически полностью повторил Ваше устройство только немного модифицировав платку — добавил SMD кнопку для режима обучения и выводной электролит.
Спасибо что есть в Сети ваш сайт 🙂
Мастеркит в качестве программы для программирования предлагает Ponyprog http://www.lancos.com/prog.html
Нужно его скачать и пробовать залить прошивку
Статей как пользоваться Ponyprog на русском хватает — проблем не должно возникнуть.
Простите великовозрастного чайника 🙂 за дилетантский вопрос.
В программировании и контроллерах соображаю мало, все больше 155 серия и лампочки :))) но очень хочется собрать Ваше устройство залив готовую прошивку в контроллер. Есть в наличии мастеркитовский компортовый программатор http://masterkit.ru/shop/laboratory/pro … rs/1349063 и к нему платка адаптер для атмеловских чипов http://masterkit.ru/shop/laboratory/pro … rs/1313497. Можно ли и если можно то как подключить к этому хозяйству Attiny 13?
Заранее признателен.
Если появится свободное время — постараюсь сделать
Здравствуйте. Можно ли сделать прошивку, чтобы после нажатия включения нагрузки «А», она через секунду автоматически выключалась?
Так же и для нагрузки «В», только через 5 секунд? Нагрузку «С» оставить как есть.
Сделайте, пожалуйста, такую прошивку… Думаю она может много кому пригодиться…
Стало еще хуже… Отписался в теме.
Готово http://www.forum.getchip.net/viewtopic.php?f=24&t=678
Пробуй и отписывайся на форуме, если что.
Да, пойдет.
Понятно.
Вариант с новой прошивкой пойдет под модификацию?
Не могу понять, как сюда нормально ссылки вставлять…
Вот еще раз ссылка на осциллограммы: http://img.radiokot.ru/files/40185/sb6id5nm1.png
[url=http://img.radiokot.ru/files/40185/sb6id5nm1.png][img]http://img.radiokot.ru/files/40185/thumbnail/sb6id5nm1.png[/img][/url]
Вот два последовательных нажатия на одну и туже кнопку. По спецификации RC5 всегда перекидывается 3-й бит. Это служит для определения удерживается ли кнопка или есть повторное нажатие.
Меня интересует какой именно бит перекидывается в посылках от одной кнопки
Могу записать осциллографом. Что именно записать: пакет данных от любой кнопки, или конкретно от тех, что планируются использоваться?