Давно хотел себе заиметь небольшой пульт для управления различной бытовой техникой. И вот, наконец, дошли руки, и хватило свободного времени для создания своего универсального пульта! Постарался сделать его поменьше, поудобней, покрасивей… в общем смотрите что получилось!
1 Принцип работы.
Универсальные пульты, имеющиеся я в продаже, в большинстве своем, работают по принципу предустановленных IR-команд. То есть в памяти пульта записана большая база протоколов различных пультов и для выбора нужного вбивается его код (книжечка с кодами прилагается к пульту). Плюсом такого подхода есть то, что для настройки всех клавиш пульта нужно набрать один код. Недостаток очевиден – пульт сможет работать только с той бытовой техникой, от которой у нее есть команды, записанные в память (для случая, если в книжечке не нашлось нужной модели бытовой техники, производитель универсального пульта рекомендует пробовать ближайшие подходящие по модели или вообще все подряд).
Я пошел по другому пути. Для того чтобы не создавать огромную базу команд различных пультов, я решил записывать IR-команды с оригинального пульта в память микроконтроллера и впоследствии их воспроизводить (своего рода диктофон для IR-команд). Обучаемому пульту нет разницы, по какому протоколу работает оригинальный пульт, нет разницы какого формата и длины IR-команда, он записывает всю передаваемую оригинальным пультом информацию в сыром (RAW) виде и точно так же воспроизводит.
Конечно, есть ограничения, и некоторые пульты не могут быть изучены по объективным причинам:
— обучаемый пульт воспринимает IR-посылки TSOPом работающем на частоте 36 или 38 кГц (подавляющее большинство пультов работает именно в этом диапазоне) — это не дает возможности воспринять посылку от пульта который работает на несущей сильно отличающейся от несущей TSOP (например, 30 или 56 кГц);
— протоколы пультов с обратной связью (например, как у кондиционеров), по понятным причинам, не могут быть воспроизведены;
— нестандартные протоколы, которые имеют специфическое построение IR-команды (например, команда разбита на несколько посылок).
2 Конструкция пульта.
Обучаемый пульт представляет из себя небольшую коробочку с сенсорным клавишами. Питается вся конструкция от трехвольтовой батарейки 2032 . На корпусе имеется 9 сенсорных клавиши, 6 из них служат для управления техникой (клавиши пульта) и оставшиеся 3 – для выбора набора команд (соответственно, можно записать и воспроизвести до 3х наборов команд по 6 команд). Еще есть тактовая кнопка для переходов между режимами работы. Конструктивно пульт состоит из двух плат:
— первая – плата управления – ;
— вторая – плата сенсоров (ее описание Вы найдете ниже по тексту).
Обе платы соединяются между собой при помощи разъемов, образуя цельную компактную конструкцию.

2 Схема пульта (шилда универсального пульта).

Схема универсального пульта
На рисунке показана схема универсальной платы вместе с шилдом обучаемого пульта. На базовой плате могут быть установлены разные микроконтроллеры из серии ATmega48/88/168. Компоненты схемы не критичны по номиналам и допускают небольшое варьирование. Наверное, придется подобрать гасящий резистор для IR-светодиода. Чем меньше значение этого резистора — тем мощнее сигнал пульта, но быстрей будет садится батарейка.
Изначально пульт планировалось питать от трех батареек размера ААА, которые располагались бы в батарейном отсеке, прикрепленному снизу пульта, но полевые испытания показали, что небольшой батарейки 2032 на 3 вольта, вполне достаточно для удовлетворительной работы. Конечно, несколько уменьшается мощность IR-сигнала, но остается в приделах комфортной работы. В связи с этим была немного изменена печатка платы сенсоров, куда было добавлено место для крепления батарейки 2032.
Но нужно учитывать, что не все TSOPы способны работать при напряжении питания 3в. Если Ваш TSOP не заработал от 3х вольт, или Вам нужен мощный IR-сигнал, способный работать на больших расстояниях, отражаясь от стен и потолка, то прикрепите батарейный отсек на три батарейки типа ААА к низу пульта (закрытый батарейный отсек даже не испортит внешнего вида) и Вы получите мощный пульт и продолжительную работу.
3 Печатная плата
Как собрать плату управления – Изготовление печатной платы шилда обучаемого пульта может представлять некоторую сложность по причине относительно тонких дорожек и больших полигонов сенсорных площадок. После протравки и лужения платы обязательно нужно просмотреть/прозвонить все дорожки на предмет обрывов и замыканий между собой.
Здесь оставляю разводку базовой платы и платы шилда пульта вместе с боковыми стенками в одном месте (для удобства изготовления всех плат за один раз).
Рисунок печатной платы пульта
4 Сборка конструкции
После того как Вы убедились в целостности дорожек шилда – запаеваем компоненты. Особо там паять нечего, но есть некоторые нюансы:
— индикаторные SMD светодиоды (их два в параллель) нужно паять боком, для того, чтобы их свечение было видно сквозь плату.
Изначально задумывалось, что эти светодиоды должны быть направлены внутрь корпуса и отраженным светом освещать всю плоскость сенсоров, но для экономии батарейки пришлось уменьшить ток светодиодов и подсветку стало плохо видно.
Кстати, светодиоды не обязательно должны быть SMD. Можно просверлить в удобном месте платы отверстие и установить туда обычный светодиод, проводами дотянув к нему питание.
— Еще один проблемный для монтажа элемент – пьезоизлучатель. Габариты пьезоизлучателя не позволяют его установить в каком либо определенном месте (он просто не помещается), поэтому к его установке придется подойти творчески. Я, например, обрезал ножницами стандартную пьезопластинку до удобных размеров и припаял пластинку в нижней части пульта.
Если с пьезоизлучателем ничего не получается, вместо него можно установить светодиод, не забыв последовательно с ним поставить гасящий резистор (300 – 1000 Ом).
— Плата сенсоров имеет три боковые стенки, припаиваемые перпендикулярно (четвертая торцевая стенка паяется к универсальной плате). При соединении универсальной платы и платы сенсоров боковые стенки не должны затирать или клинить друг между другом. Для этого необходима подгонка плат между собой — придется поработать напильником:).




5 Прошивка микроконтроллера
Прошивается базовая плата через стандартный разъем для программирования ISP-6 (он средний с боку базовой платы).
— Прошивка универсального пульта ATmega88
— Фьюзы универсального пульта ATmega88
Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
Как программировать микроконтроллеры читаем в
После того, как микроконтроллер прошит и проверена работоспособность пульта, приступаем к работе над внешним видом нашего устройства. Так как внешне путь представляет собой прямоугольную гладкую коробочку сложенную их печатных плат, декорирование не составит каких либо трудностей. Придать пульту «товарный вид» можно разными способами, например, покрасить краской из баллончика и после этого нанести рисунок клавиш или распечатать на бумаге картинку лицевой панели и приклеить и т.д.
Я выбрал способ, описанный в . Распечатал при помощи цветного лазерного принтера на самоклеющейся бумаге рисунки передней и задней панели пульта, приклеил рисунки на пульт и покрыл сверху защитным слоем (приклеил сверху широкий скотч).




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

Рисунки сенсорных панелей для пульта (DOC)
6 Работа обучаемого пульта
Пульт готов, теперь расскажу как с ним работать.
Для начала ознакомления с работой пульта — элементы управления:

— аппаратная (контактная) клавиша Set служит для различных целей, но главные — переход между режимами работы, усыпление пульта и вывод его из сна;
— индикаторные Led (на картинке он немного не на своем месте, но все течет, все меняется …) служит для индикации различных режимов работы + подсветка сенсоров;
— сенсорные клавиши смены программ и изменения уровня имеют автоповтор (функции: громкость, переключение каналов, яркость, тембр, …);
— сенсорные клавиши Power и Mute не имеют автоповтора (нужны для единичных действий: включить-выключить, открыть-закрыть, …);
— сенсоры выбора группы команд делают активным один из трех возможных наборов (по 6 штук) команд-сенсоров (например: 1-телевизор, 2-усилитель, 3-свет) ;
— еще есть пьезоизлучатель Buzzer (внутри корпуса) , он озвучивает нажатия клавиш и выполняет ряд других действий.
Вот теперь сам алгоритм работы: