Универсальный обучаемый пульт собран!Текущий топик закрыт.
Полное описание и необходимые файлы находятся в статье:
Обсуждение устройства в новом топике:
или в статье.
Спасибо всем за участие!В данный момент начал новое устройство - универсальный обучаемый пульт для бытовой техники.
Выглядеть это будет следующим образом:
1 устройство будет иметь шесть сенсорных обучаемых клавиш и три клавиши для переключения типа устройств.
2 каждую из шести клавиш можно обучить любой команде любого пульта.
3 клавиши переключатели служат для возможности управлять одним пультом разной техникой (телевизор, усилитель, проигрыватель...)
4 устройство будет собрано на ATmega168 (в принципе будет достаточно ATmega88 или даже ATmega48 и возможно я наделаю прошивок на разные варианты контроллеров)
5 устройство конструктивно будет состоять из двух плат-частей базовой с микроконтроллером и сменной панели с сенсорами которую в последствии можно будет заменить на другую, с другим набором клавиш или периферии (типа как шилд для arduino)
6 кстати о arduino, так как микроконтроллер именно такой в ней и используется, то грех не сделать этот пульт (прошивку имеется в виду) совместимым. Поэтому планирую параллельно нарисовать плату-шилд для возможности сделать пульт и на для arduino (freeduino...)
7 может еще чего? походу добавлю.
Определился с логикой работы (и уже почти все реализовал в железе). Все легко меняется, поэтому любые пожелания приветствуются
Для лучшего понимания привожу картинку с названиями клавиш
3D-wiev-.jpg [ 47.43 КБ | Просмотров: 22740 ]
Клавиши и индикаторы:
- аппаратная (контактная) клавиша Set служит для различных целей но главные - переход из режимов, усыпление пульта и вывода его из сна;
- индикаторный Led служит для индикации различных режимов работы;
- сенсорные клавиши смены программ и изменения уровня имеют автоповтор (функции: громкость, переключение каналов, яркость, тембр, ...);
- сенсорные клавиши Power и Mute не имеют автоповтора (нужны для единичных действий: включить-выключить, открыть-закрыть, ...);
- сенсоры выбора группы команд делают активным один из трех возможных наборов (по 6 штук) команд-сенсоров (например: 1-телевизор, 2-усилитель, 3-свет) ;
- еще есть пьезоизлучатель Buzzer, он озвучивает нажатия клавиш и другие действия.
Алгоритм работы:
- При включении пульта (подаче питания), он переходит в режим воспроизведения команд из первой группы команд. Прозвучит длинный пииик и сразу за ним короткий (первый набор команд). Загорится Led. Если теперь нажимать сенсоры выбора группы команд то будет звучать длинный пииик и сразу за ним в зависимости от номера группы количество коротких. Переключатели групп команд во всех режимах работают одинаково.
- При нажатии в режиме воспроизведения сенсоров команд, будет издаваться короткий звуковой сигнал (пик) и выдаваться IR-команда.
- Если пульт не трогать 10 секунд он перейдет в режим сна (может подольше его не ложить спать?). В режим сна можно ввести пульт принудительно нажав кратковременно Set. Кратковременное нажатие на Set в режиме сна просыпает пульт и он просигналит номер активной группы команд (что-бы лишний раз не ворушить пальцем
).
- Если в режиме воспроизведения длительно зажать Set, то пульт перейдет в режим обучения, издав два коротких сигнала, и Led начнет постоянно моргать. Если теперь нажать любой сенсор - светодиод погаснет прозвучит длительный сигнал и пульт будет ждать IR-посылки от оригинального пульта. Если посылка получена, прозвучит длинный сигнал и пульт запомнит команду и вернется в режим обучения. Если посылки долго нет - прозвучит короткий сигнал и пульт перейдет в режим обучения. Еще, ожидание IR-посылки можно отменить кратковременным нажатием Set. В режиме ожидания IR-посылки оригинального пульта можно выбирать другие сенсоры или группы. Действия сенсоров селекторов аналогично режиму воспроизведения.
- Возвратится назад в режим воспроизведения можно длительно зажав Set (последуют два коротких сигнала) или спустя 10 бездействия пульт сам перейдет в режим воспроизведения.
Возникшие проблемы по ходу разработки (для себя, чтоб не забыть)
- ошибся в печатке клавиш, Задействовал вывод используемый для IR LED (+исправлено).
- так как планирую переводить микроконтроллер в режим сна, то нужно сделать питание TSOP от ножки микроконтроллера (сейчас сидит на + питания), чтоб не кушал тока (или перемычку сделать? обучил и отключил вообще??) (+ исправлено)
Схема:
Схема пульта уже, наверное, меняться не будет.
remote-base.spl7 [69.93 КБ]
Скачиваний: 1565
Устройство разделено на две части - базовую и сенсорную плату пульта.
Базовая часть по выводам совместима с Arduino, Freeduino и им подобным. Поэтому у кого такие есть в наличии можно просо развести для нее шилд пульта (до момента написании статьи я такую разводку сделаю сам). На схеме указаны наименование выводов Arduino.
Базовую часть планируется задействовать в других устройствах. Будет меняться только верхняя плата-шилд которая "сидится" на разъемы основной платы.
Печатка:
Это обычный вариант (вытравленные сенсорные площадки находятся вверху)
pult4.lay [79.97 КБ]
Скачиваний: 1567
А это вариант пульта у которого сенсорные площадки располагаются ЗА текстолитом (с обратной стороны). Кроме того, предусмотрено крепление батарейки и подсветка сенсоров пульта.
pult6.lay [110.9 КБ]
Скачиваний: 1569
Прошивка ATmega168:
Еще не окончательный, но уже вполне работоспособный вариант.
Main.hex [7.17 КБ]
Скачиваний: 1567
Фьюзы ATmega168:
Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
fusebits.png [ 5.17 КБ | Просмотров: 22712 ]
Прошивка ATmega88:
ULRemote.hex [7.46 КБ]
Скачиваний: 1536
Вариант последней разводки с сенсорами ЗА платой. Инициализация сенсоров происходит в момент включения питания с задержкой (чтобы успеть убрать пальцы с сенсоров).
Фьюзы ATmega88:
Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
fusebits88.png [ 5.16 КБ | Просмотров: 22570 ]
Исходник:
GCn Remote 2.zip [58.3 КБ]
Скачиваний: 1062
UPD:
Пульт научился спать
Потребление тока падает до 16 мкА, это дает возможность, питаясь от 3х вольтовой батарейки-монетки в режиме ожидания, работать целый год
Еще:
- Размер прошивки 1272 слов, что дает возможность делать пульт на ATmega48 (2048 слов), а это дешевле!
- Планирую (позже) сделать программку для формирования BIN-файла, для прошивки EEPROM, с кодами команд для произвольного пульта из
Это на случай если оригинального пульта нет (например, потерялся), а нужно настроить наш пульт только по названию.