Снятие протокола инфракрасного пульта ДУ

Опубликовано в рубрике "Технологии", 23 ноября, 2009.

Вчера ко мне обратился знакомый, который собирается сделать игрушку, управляемую обычным телевизионным ИК пультом. Сам пульт у него уже был. Осталось подобрать нужную микросхему из семейства tsop48xx (как известно, они отличаются частотой модуляции принимаемого сигнала) и узнать, какую последовательность предает пульт. Сказано-сделано.

pult

Для такого кустарного “реверс-инжиниринга”, я подпаял делитель из резисторов 1к и 10к к светодиоду, воткнул проводок в звуковушку.

А звуковушка у меня знатная – E-MU0202 USB. Она умеет сэмплировать сигнал с частотой 192кГц поэтому, весь возможный диапазон модулируемых сигналов через нее пролезет без проблем.

Запускаем Adobe Audition, и записываем сигнал. Пульт передает такую вот пачку.

pult_signal

Сама модуляция выглядит вот так:

pult_signal1

Видим, как авторы Adobe audition превосходно реализовали теорему Котельникова. Сигнал аппроксимируется функцией sin(x)/x, как и должно быть. Но сейчас – не об этом.

Большой кусок в начале – это стартовый байт. Выделяем его и запускаем Window->Frequency analysis. Настраиваем, как на картинке:

pult_signal2

 

Так как сигнал несимметричен, то вылазит очень большая вторая гармоника, что ожидаемо. Нас-же интересует первая. Измеряем ее частоту. У меня получилось 38120Гц. Тоесть, для приема сигнала от такого пульта подойдет микросхема tsop4838.

Теперь смотрим на сигнал. Отчетливо видно, что за стартовой последовательностью (8 единичек и 8 нулей) идет собственно код посылки. Тут придется поковыряться и записать его побитово.

Все, пульт можно использовать в своих грязных целях. Алгоритм приема может быть очень простым – ждем единицы с tsop’а, измеряем его продолжительность, делим на 8 и получаем интервал сэмплирования сигнала. Далее, через эти интервалы, записываем битики, и сравниваем с нашим шаблоном.

Можно сделать устройство обучаемым – сначала (к примеру, если нажата кнопка) оно записывает что передает пульт после стартовой последовательности, а потом (когда кнопка отпущена), сравнивает принятые сигналы с записанным и выполняет какие-то действия.




Комментарии
  1. Moshka написал(а) 28 ноября, 2009 в 17:38

    Кажется я знаю, о чем ВЫ=)

    BSVi Reply:

    МЫ тоже знаем, что вы знаете ))

  2. tipok написал(а) 12 декабря, 2009 в 18:29

    По-моему здесь уместнее использовать LIRC, он выдаёт уже готовую последовательность байт, и используемый протокол (RC6 например)

    BSVi Reply:

    Для того, чтобы пользоваться LIRC, нужен фотоприемник. На какую частоту модуляции нужен фотоприемник позволяет выяснить описанный метод.

  3. Rom-Zecs написал(а) 22 января, 2013 в 23:17

    все понятно, кроме одного, кварц на частоту около полумегагерца, задает только тактовую частоту контролера?

    BSVi Reply:

    Какой кварц?

    Rom-Zecs Reply:

    Вот такой http://remstartex.ru/wp-content/uploads/2011/04/quartz.jpg

Создать новую ветку комментариев


Вы должны войти или зарегистрироваться чтобы оставить комментарий.