Возвращаем пульт к "жизни"
Всем привет. История такова: в 2014 году купили телевизор, уже через 2 года пульт перестал работать. Разобрал, почистил, собрал - результата 0. Еще попробовал найти пульт в приложении Mi Remote, но увы - его там не было. Отложил до лучших времен - и вот, время настало. С помощью камеры смартфона увидел, что при нажатии любой кнопки пульта ИК светодиод загорается и горит все время. Решил проверить какие посылки отправляет пульт при этом. Результат удивил - команд куча, все разные, при чем даже адрес разный. Большинство пультов работает на NEC протоколе, как оказалось и этот тоже. Мне очень повезло(как я сперва подумал), так как на обратной стороне платы пульта были расписаны коды каждой кнопки (в шестнадцатеричном формате) и даже сам адрес - фото ниже.
Нашел программу для смартфона, куда можно импортировать свои команды (irplus remote).
Затем нашел инструкцию как это сделать: https://irplus-remote.github.io/#learning
Нам понадобится пример LIRC файла с командами и временными интервалами отсюда: http://lirc.sourceforge.net/remotes/
Пример файла для пульта от телевизора LG:
name LG_AKB69680403
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 9044 4436
one 606 1632
zero 606 517
ptrail 598
repeat 9029 2210
pre_data_bits 16
pre_data 0x20DF
gap 107878
toggle_bit_mask 0x0
begin codes
input 0xD02F
energy_saving 0xA956
KEY_POWER 0x10EF
tvradio 0x0FF0
av_mode 0x0CF3
pre_data - это адрес, для моего пульта он будет таким: 0x00BF (как я думал).
Затем переходим по ссылке, где расположен удобный конвертер, который преобразует LIRC в выходной xml файл для приложения: https://irplus-remote.github.io/converter/lirc.html
Команда включения - выключения на моем пульте имеет формат 03 в шестнадцатеричном виде (см. фото выше). Но как можно увидеть выше, количество битов, передающихся после адреса равно 16 (вторая строка примера LIRC файла). В описании NEC протокола указано, что после передачи команды (8 бит) за ней должна идти та же команда, но полностью инверсная, получаем команду вида 0x03FC. Выходит сначала передаем 16 бит адреса, затем 16 бит команды.
Попробовал прописать кнопку включения, конвертировал LIRC в xml, вот что получилось:
<irplus>
<device manufacturer="MANUFACTURER" model="MODEL" columns="12" format="WINLIRC_SPACEENC" bits="16" pre-bits="16" toggle-bit-pos="0" gap-pulse="598" gap-space="107878" one-pulse="606" one-space="1632" zero-pulse="606" zero-space="517" header-pulse="9044" header-space="4436">
<button label="" alt="POWER" span="4">0x00BF 0x03FC</button>
</device>
</irplus>
Сохранил на компьютере с расширением .xml , скормил файл приложению. Попробовал включить телевизор - но эффекта 0. Полез искать даташит на микруху, которая стоит на плате пульта. Нашел, но только на китайском. Нашел аналог моего пульта в интернет магазине, в описании была указана другая микруха, но адрес и команда включения совпадали. Нашел даташит на эту микруху, давай читать. Обратил внимание всего на одну строчку: Codes are transmitted from the LSB - передача начинается с МЛАДШЕГО бита. Значит нашу команду в двоичном виде нужно перевернуть вверх ногами. 03 - 00000011 в двоичном виде, первые 4 нуля - это старшие биты, то есть после переворачивания должно получится 11000000 - 0xC0. Добавим еще инверсную часть команды и получим 0xC03F. Данную процедуру проделываем для остальных команд аналогично. Тоже самое проделываем с адресом - получаем адрес 0x00FD.
После того, как все команды записаны, конвертируем LIRC в XML и кормим xml приложению. Проверил - все кнопки рабочие. Результат:
Почему не работает пульт? - он сам сломался!
Пульт от телевизора перестал работать. Спрашиваю подругу: - как случилось? Она: - ничего не делала сам помер.
Хм... разбираем... сам сломался? точно?
Только когда смотрел на плату понял, что пластик на пульте слегка деформирован. Т.е. сам пульт внешне целый, пластик нигде не поломанный, есть только малозаметные следы деформации. Ну вот могут же когда захотят!
Плату склеил суперклеем. Запаял где-то 25 дорожек. Пульт работает. Подруга довольна. Правда не знаю как надолго? хотя при такой поломке ... и такой результат радует. Всем добра и удачных ремонтов!
Всё новое - это хорошо забытое старое
Сегодня увидел, как женщина пользуется смартфоном, который завернут в пакет. Прямо как со старыми пультами! На удивление всё работает)) (хоть и тормозит). Прогресс прогрессом, а народная мудрость вечна.
Преемственность поколений
Когда я был маленький, то выполнял функцию пульта и бегал переключать каналы, теперь мои дети выполняют некую функцию пульта, только не переключают каналы, а бегают "пропускать" рекламу на Ютуб :)
Пульт для деда
Дед у меня любитель понастраивать каналы на телевизоре. Да так понастраивать, что приходится пару раз в неделю приезжать и устранять "да че то короче каналы не показывают".
Может вы что-то посоветуете? Как с таким бороться?)
За качество фото извините. Фоткал не я))