Комментарии 46
О, ностальгия. Я таким в детстве игрался, только без ардуин и логических анализаторов, на голом "Спектруме". Даже ИК-приемника у меня не было - подпаивал проводки к самому пульту. Тогда еще телевизоры, из которых можно было выломать такой приемник, не валялись на помойках, а продавались в "коммерческих магазинах" за "условные единицы".
Приемник, если правильно помню, можно было сделать из транзистора МП3х или МП4х, с которого снят колпачок. Далеко он не работал, но впритык отлично.
Приемник, если правильно помню, можно было сделать из транзистора МП3х или МП4х, с которого снят колпачок.
Ага, был такой лайфхак в старых книжках для юных радиолюбителей - выпилить в корпусе транзистора дырку и использовать в качестве фотодатчика. Или еще круче - снять часть корпуса с сотни-другой мощных выпрямительных диодов и собрать из них солнечную батарею.
ИК-приемник на СОМ-порт из TSOP1736 и WinLirc в свое время заменяли всю недешевую кучу оборудования выше )
И зря не упомянули о коде повтора последней посылки (удержание кнопки)
Как здорово, что кто-то еще это помнит.
ИК-приемник на СОМ-порт из TSOP1736 и WinLirc в свое время заменяли всю недешевую кучу оборудования выше
WinLIRC и Girder - это в свое время была потрясающая комбинация, предшественник всяких "умных домов" и "Алиса, включи музыку".
Я был мажором. Я собирал IgorPlug: http://www.irlink.ru/products/irlinkSoft/igorplug.jsp Между прочим, прорадитель программного vUSB для AVR. До него наигрался с WinLirc на COM порту и это ни в какие ворота, просто, стабильность нулевая на слабом или загруженном процессоре. ИгорьПлаг решал все эти проблемы кардинально.
Ком-порты сейчас есть далеко не везде. И есть сомнения, что малина и анализатор стоит дороже, чем тот ваш компьютер. Если рассматирваете только стоимость чего-то подключаемого к компьютеру, так элементарно можно сделать с помощью одной очень недорогой платки с микроконтроллером.
преобразователи RS-232–USB вроде копейки должны стоить
Только вот битбанг у них медленный и зависит от стэка USB. Поэтому, далеко не факт что будет работать вообще или хотя-бы прогнозируемо стабильно.
Наверно не очень выразился. Малина это уже компьютер, на котором это всё можно делать не подключая к другому компьютеру и писать "тссоп на компорт заменяли всю недешевую кучу оборудования выше" это мягко говоря не корректно - малина и анализатор стоят не запредельно и скорей всего сильно подешевле, чем у него тогда был компьютер.
Анализатор тоже совершенно не обязателен, просто что было в наличии и посчитал более удобным (в программах для анализаторов изучать различные интерфейсы иногда очень удобно), то человек и использовал. Некоторые для эксперементов с пультами ещё на аудиовход сигнал подавали. Использование звуковой карты одно время вообще очень популярно было. Крмое управления с ИК-пульта, делали передачу данных между смартфонами и платками с мк. Простеньке осцилографы и т.д.
Да, недорогие, можно и usb-uart взять. Платки с микроконтроллерами, у которых есть usb-uart тоже могут стоить очень недорого. Ещё есть с блютузом и вайфаем. Что использовать и как делать, это вопрос, что есть в наличии и что человек посчитает нужным взять для решения конкретной задачи.
дело в том что не ПК покупался под это дело, а это дело делалось потому, что был ПК в наличии (иначе применялся бы какой-нибудь иной метод)
Для протокола NEC передача идет "младший бит вперед". Это означает, что принятую Вами последовательность нужно зареверсить, тогда получится не 0xE0E040BF, а 0xFD020707. При этом, биты [7:0] задают адрес устройства (0x07 - это TV), биты [23:16] - команда (0x2 - нажата кнопка "2" ?). Биты [15:8] - повтор адреса, а биты [31:24] - повтор команды в инверсном формате. Повтор необходим для проверки правильности декодирования на принимающей стороне.
PS: Сейчас со студентами занимаюсь этой же темой. :)
Достаточно звуковой карты для записи сигнала с фотодиода и COM-порта для воспроизведения. LIRC умеет обучаться напрямую с аудиовхода.
Боже какой пушной зверёк . Вы серьёзно ? Логический анализатор и распбери ? А АРДУИНА с библиотекой ir уже не комильфо ? Не православно ? Картинка логического анализатора в чайна стиле фуфуфу , даже смотреть больно .
На анализаторе иногда вполне удобно начинать изучать какие-то интерфейсы. Они для анализа всяких интерфейсов и предназначены. А в общем да, особенно с ИК-пультом вообще никаких проблем и сложностей, если делать на платке с микроконтроллером. Библиотеки появились очень давно и никаких проблем с ними не припомню, да и без них всё не сложно было сделать. Единственная проблема с которой сталкивался в самом начале - это то, что у tsop и пультов разные частоты бывает и просто нужно взять подходящий tsop. На одноплатнике тоже можно ногодрыганьем заниматься, а если смысл в каждом конкретном случае, это другой вопрос. Просто посмотреть ради интереса или базу пультов пополнить, вполне можно. Если для управления, иногда такие вещи лучше через МК делать. А так это ещё вопрос, что у человека в наличии было и что на тот момент более удобным посчитал.
С пультами от телевизоров всё довольно просто ещё. Куда интереснее имхо пульты от кондиционеров. Отличаются они тем, что имеют состояние и отпрвляют целиком его при нажатии. Соответственно, надо вычислить, как кодируется режим работы, температура, скорость вентилятора и прочее. Реверсил не так давно такой при помощи Flipper Zero и Excel, собрав в итоге под первый отдельное приложение. Забавное занятие вышло, однако.
Сгенерировал конфиг для управления стереосистемой, содержащий все 256 возможных кнопок. Какие-то даже заработали. Увы, отдельных команд на включение и на выключение не нашлось.
Да, пульты от кондиционеров в этом плане достаточно уникальны. В моделях Funai, например, для каждого состояния используется отдельный код, зависящий от «начальной» точки. Постарались по максимуму собрать эти коды, насколько хватило сил. Результаты можно найти ветке Funai на Git.
Поделюсь тогда и своими результатами по Midea, модель пульта RG10B(B)/BGEF
. Из интересного: для выключения нужно отправить специальную комбинацию параметров, а не просто поменять определенный бит, как может показаться. Также для кодирования некоторых параметров используется кастомный код Грея. Зачем такие заморочки, не очень понятно.
Пульты кондиционера часто снабжены небольшим дисплеем, где отображаются текущие настройки. Если данные передаются лишь в одну сторону - от пульта к кондиционеру как в телевизорах - то вполне логично на каждый чих передавать все состояние. Иначе легко получить ситуацию когда пульт показывает одни настройки, а кондиционер использует другие.
Вообще под ведроид существует несколько разных программ, которые позволяют управлять бытовой техникой через встроенный в смарт ИК-передатчик (и вроде даже есть такие, что позволяют это делать через передатчик подключаемый в гнездо наушников).
Может быть даже можно посмотреть что у них в базах имеется (а там имеется довольно много чего). Разве что нужно будет ещё разобраться с чтением их БД для приложения.
Кстати, обратил внимание, что у Вас в PulseView отсутствует кнопка "Decode". Скорее всего Вам необходимо доустановить библиотеку libsigrokdecode. Тогда PulseView с декодером ИК сигнала будет выглядеть вот так:

Как пример работы с логическим анализатором для начинающих сгодится.
Странно, что Вы ничего не нашли про самсунговский протокол, когда он поддержан в очень распространённой ардуиновской библиотеке IRremote (в ней есть десятка два протоколов плюс работа с сырыми данными).
Ну и вместо термина "хакинг" стоило употребить, например, "реверс инжиниринг". Звучит не менее красиво, но более точно отражает суть работы.
Идея центральной биботеки пультов, на самом деле, здравая, при условии что всё будет нормализовано к протоколу. Т.е. если у сони, например, сигнал идёт LSB-first, то и в репозитории он будет так указан. А преобразование под конкретную ардуйню, которая его криво принимает, уже головная боль того, кто её такой написал :-) Ну и до кучи сырые тайминги в форматах LIRC и Pronto. Тогда можно будет воссоздавать утерянные пульты, а то их порой хрен найдёшь — для своего BD рекордера панасоник искал пару лет точно, и лишь на днях наткнулся в комиссионке.
Но вот реализация прям да, в самом деле — из микроскопа по воробьям, особенно распберри в роли переходника для кабеля питания %) Да и странно, что у вас Sigrok не находит эту китайскую фишку автоматически — у меня на винде он при запуске сразу её выбирает по умолчанию, если она подключена (и вечно окисляющийся китайский miniUSB нормально контачит).
Фоточки с микроскопа в репозитории тоже лучше бы из PNG пережать во что-то покомпактнее, наверное.
Идея библиотеки пультов выглядит в первую очередь как "ещё один велосипед". Что бы было иначе, нужно цель сформулировать, изучить, что уже существует и чем оно не устраивает и т.д. К примеру, если в итоге задача это универсальный пульт сделать, так давно есть готовые решения, допустим для адроида. В программах и база приличная по различым пультам может быть и возможность новый пульт добавить. Есть не мало очень разных готовых универсальных пультов, в навороченых графический экран, немалые базы и возможность новые пульты добавлять. И т.д.
ЗЫ. Я тут недавно сталкивался с подбором пульта к кондиционеру, и по старой памяти пытался найти прогу умеющую это определять, лет 20 назад на КПК на Винде у меня была такая, и так ни одной проги в инете и не нашёл, сидел по итогу перебирал ручками в программе ( у меня тел хайоми в нём есть ИК). Почему сейчас нет таких прог? Так было удобно когда то.
А встречал ли кто годную программу для Android, которая бы позволял с помощью втроенного в смартфон ИК порта считывать сигналы с другого устройства, а потом их воспроизводить или экспортировать для изменения/анализа?
так он вроде только передавать умеет у всех
В некоторых не очень новых смартфонах аппаратно такая возможность есть, но софта я не встричал (Huawei Mate 20 Pro, Xiaomi Mi 9, Samsung Galaxy S4/S5, Sony Xperia Z2/Z3, HTC One (M7/M8)
У меня все смарты на ведроиде, что я покупал, имеют ИК-порт (LG G3, Xiaomi Redmi Note 4 на снэпе 625, Xiaomi Redmi Note 5 на снэпе 636 и Poco F5 aka Redmi Note 12 Turbo).
Но что-то не помню новостей что этот порт мог работать как приёмник в смартах. Можно для ознакомления ссыль на то, где про такое говориться?
И как только в прошлом веке писали/читали архивы на видеокассеты, управляя видеомагнитофоном с ПК по ИК безо всех этих цифровых осциллографов, анализаторов и прочих Adruiono ;(
А теперь додумались, что целый ПК для этого не нужен ;)
Так то конечно и осциллограф с анализатором не особо необходим, протоколы работы пультов за последние 40 лет неплохо исследованы. Можно взять готовую либу, с вероятностью 99% всё там есть. Вы тоже с вашим winlirc не очень хакер ;)
А в чем взлом-то? Вот если б в инфракрасном пакете обнаружилось переполнение буфера, которым можно хакнуть телек - другое дело
Вот если б в инфракрасном пакете обнаружилось переполнение буфера
Да я бы не удивился. Программисты даже в библиотеке для декодирования штрих-кодов могут делать переполнения буфера и утечки памяти.
Использовать RPi как блок питания - это мощно :)
Что-то я не понял, зачем использовать одновременно и ардуину и малинку? Ардуино точно так же могла бы запитать датчик.
один момент упущен :
ИК-приёмники рассчитаны на модуляцию определённой частоты и на выходе имеют не "сырой" сигнал с пульта, а уже сами передаваемые данные, и, если, например, пульт модулирует на 56 КГц, а приёмник рассчитан на 36, то на выходе будет мусор. Так же как в случае, если не будет совпадать битрейт UART-передатчика и приёмника. Поэтому приёмник нужно выбирать тот, который выдаёт именно "сырые" данные.
если, например, пульт модулирует на 56 КГц, а приёмник рассчитан на 36, то на выходе будет мусор
Насколько я понимаю, нет - на выходе будут точно такие же правильные данные. Только чувствительность приемника ухудшится. Он же ничего с этими данными не делает, только демодулирует их, как обычный аналоговый радиоприемник прямого усиления. Фильтр в нем широкополосный и в основном отсеивает мерцание осветительных ламп и тому подобные помехи.
Инфракрасный хакинг: взламываем пульт от телевизора Samsung