Судя по работоспособности команд формата Samsung на технике. 4 октября в 1310 Samsung получит с продаж iPhone X больше денег, чем с Galaxy S8. Драйвер для телефона Samsung SGH Z105, Установка USB драйвера для телефонов Samsung SGH Z105 Скачиваем файл к себе на. IR транскодер на Arduino Geektimes. Устройства с управлением от инфракрасного пульта тесно вошли в нашу жизнь. Иногда пульт от телевизора или древней аудиосистемы теряется, а купить новый за давностью лет уже невозможно. Заказать новый пульт не всегда возможно, изготовить клон тоже, но обладая донором или информацией о нм можно изготовить конвертер. Такой транскодер будет принимать команды одного пульта и транслировать их в формат другого. Для Arduino существует прекрасная библиотека IRemote которая делает построение разнообразных ИК систем управления очень простым. Но при решении даже такой простой задачи как транскодер обязательно находятся проблемы которые интересно решать. Итак для начала нам необходим интегральный ИК примник типа TSOP3. Arduino. Не стоит забывать что ИК примников существует очень много и цоколвка у них меняется случайным образом. Например я использовал некий безымянный элемент по цоколвке совпадающий с TSOP3. Собранная схема нужна нам для получения кодов команд от обеих пультов, к несчастью снять команды с устройства для которого пульт утерян несколько сложнее. Вы можете вс таки найти пульт донор, воспользоваться универсальным пультом подобрав код а зачем тогда вам тогда транскодер, раз уж пульт подошл или попытавшись воспользоваться данными из интернет баз по IR кодам. Самым простым для меня оказалось воспользоваться приложением под андроид, эмулирующий нужный мне пульт. Для чтения данных используем пример IRrecv. Последний раз видел в Самсунг Ноут. Ну и в своей Sony PSP. Значит, быстрые IrDAконтроллеры есть давнымдавно и это. Управление Samsung SGHE710. Помогите, как скачать мелодии на мой мобильник Samsung 710. С выпуском Galaxy S7 edge компания Samsung сделала большой шаг. Интерфейсный разъем, USB 2. 0 microUSB. Dump. V2 из поставки IRremote, если ваш пульт относится к распознаваемым библиотекой то сырой результат сканирования вам не понадобится, хотя например пульт от LG у меня ложно распознавался как Samsung и не заработал при попытке отправлять команды через send. LG. Пример полученных данных под спойлером Encoding SAMSUNGCode 3. Timing. Edit IRremote. Int. h and increase RAWLEN библиотеку придтся немного исправить увеличив размер буфера для команд. Для пульта которым планируется управлять достаточно знать 3. Такие кнопки потребуют двух значений. Сводим полученные коды в удобную для вас таблицу. В ту же таблицу сохраняем коды для пульта донора в сыром виде. Резистор на 8. 2 выбран из соображений того что валялось под рукой. Для встраиваемого устройства его можно смело увеличивать до 2. Ом а если передатчик должен быть дальнобойным то придтся дополнить его нехитрым транзисторным каскадом, иначе тока от Arduino обязательно не хватит. Как ни странно после запуска одна команда проходит, после чего все последующие устройством игнорируются. Чтобы не связываться с отладкой добавляем в цикл мигалку на 1. Что же, значит не вс так гладко в одновременном использовании передачи и прима ИК сигнала в одном проекте. Немного покопавшись в используемых таймерах выясняется что так как и отправка и прим использует общий таймер то после начала отправки код должен подождать пока отправка не закончится. Можно эмпирически добавить задержку в пол секунды delay5. В модуле Irsend есть даже подходящая функция custom. Но не тут то было. Коды raw. Data записываются в виде массива int а у нас платформа на микроконтроллере. Память для переменных будет съедена уже пятью командами длиной по 1. А ведь на пультах бывает и по 2. В библиотеке уже реализованы пульты известных производителей, но с ходу разобраться с моим пультом у меня не получилось. Поэтому переходим к более примитивным способам экономии памяти которые помогут тем у кого пульты совсем уж нестандартные. Все значения в этом массиве это результат чтения ИК сигнала таймером с периодом 5. Верхний предел будет ограничен значением 5. Морзе если такая необходимость возникнет. Нам необходимо больше памяти. И эту память мы извлечм из сегмента команд. Достаточно зарезервировать один массив достаточного размера и набивать его перед отправкой чередой присваиваний. Итого из кодового сегмента на одну команду будет тратиться около 1. Так что на средний пульт со ста кнопками нам уже хватит. Pull request на добавление примеров в общую ветку пока никто не принял поэтому скачать модифицированную библиотеку можно с форка. Питание я взял с панели управления. Сигнал со встроенного примника был подключен к Arduino а параллельно ему был напаян ещ один ИК примник, расположенный с противоположной стороны от первого. Тем же навесным монтажом на него был напаян ИК светодиод. В принципе этого повторения можно было бы избежать но сигнал с ИК примника инвертирован поэтому напрямую завести ТТЛ сигнал на устройство не получится а городить инвертор на логике или транзисторе я уже не стал. Несмотря на то, что в мом случае сырые данные отлично работали, эксперименты с остальным домашним оборудованием показали что далеко не все захваченные сигналы корректно работали при попытке управления конкретным устройством. Команда включения кондиционера так и не заработала, хотя если он был уже включн смена режимов работала корректно. Колонка от LG тоже отказалась воспринимать сырые команды, но отлично реагировала на отправку кодов через send. Samsung. При этом пять собранных по знакомых телевизора отлично реагировали на сырые данные. Вариант с разной частотой сигнала я опробовал это никак не помогло. Возможно проблема лежит в частоте дискретизации сигнала в 5. Судя по работоспособности команд формата Samsung на технике LG, протокол стоит формализовать в виде отдельного модуль по аналогии с ir. Наверное разбор написания такого протокола послужит неплохой темой для статьи. Ну и в дополнение, вторая большая ИК библиотека для Arduino это IRLib. Она обладает схожим функционалом, в ней есть даже готовый модуль для разбора ИК протоколов для десктопа. Был проведн быстрый сравнительный тест чтения сырых данных который не выявил разницы в отсчтах по сравнению с IRemote. Из плюсов, в IRLib уже есть пример определения на какой частоте работает ИК передатчик. Пример Samsung. 36 фактически реализует разбор протокола по данным из сети интернет. Кроме того, документация отлично расписывает подключение ИК примников с каскадированием и много чего ещ. Хотя на мой взгляд, IRemote гораздо проще в понимании и использовании.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |