Читаем сигнал пульта управления

Сигнал с пульта будем записывать с ее помощью звуковой карты компьютера! Для этого достаточно использовать обычный вход для наушников (aux вход). И так как на этот вход можно подавать внешний сигнал до 2 В, то нужно собрать простой провод с делителем напряжения. Как его сделать писал в одной из своей предыдущей записи – “Как сделать из своего ПК – осциллограф” – “микроник.рус/5903/”.

—————————
Есть простой способ превращения компьютера в осциллограф – в любом ПК есть уже собственный АЦП и ЦАП – звуковая карта. Используя её можно компьютер преобразовать в простой низкочастотный осциллограф (до 20 кГц и до 2 В входящий сигнал). Более подробно здесь – “микроник.рус/5903/”.
————————–

Вот так выглядит провод с делителем напряжения, который я собрал для данной записи:

Под рукой были только зелёный и жёлтый светодиоды – их и использовал (в оригинале используются красные, так как они загораются уже при 1,6 В – чтобы было видно опасное для звуковой карты напряжение):

Также мультиметром всегда смотрю, чтобы на штекере не было напряжение выше 2 В (может испортится звуковая карта). Если больше 2 В, то использую дополнительные резисторы (деля напряжение):

Записывать сигнал будем в программе – Wavosaur.1.0.5.0en (бесплатная портативная программа – запускается на Windows XP и выше, а также на Linux через Wine) – скачать можно с моего сайта:

– скачать Wavosaur.1.0.5.0en

Теперь берём пульт – я взял от ТВ тюнера (можно от ТВ или любой другой), разбираем его и подключаемся к инфракрасному светодиоду (IR), (подключался GND к минусу инфракрасного светодиода, но разницы особой нет…):

Далее нажимаем на кнопку на пульте, например на кнопку “ОК” (батарейки должны быть вставлены или соединены), а также нажимаем на кнопку записи в программе Wavosaur.1.0.5.0en. Кнопку на пульте лучше нажать несколько раз.

Сохраняем запись сигнал в программе Wavosaur.1.0.5.0en в формате wav и отрываем его в программе Audacity – бесплатная программа для редактирования звука на Linux Rosa Fresh стоит по умолчанию, но также можно поставить и на Windows.

Получится что-то вроде этого (окно программы Audacity и ниже тоже в ней):

Увеличиваем при помощи кнопки в виде лупы:

Увеличиваем пока не увидим следующее:

Нашёл в интернете вот такую картинку – тоже от пульта управления:

Сравнил со своим сигналом от кнопки “ОК”:

По картинке видны все временные интервалы, можно даже вычислить адрес пульта и код команды кнопки – все наглядно и понятно.

Код сигнала кнопки “ОК” получился следующий: 00000000 11111111 01011000 10100111
Видно код команды 01011000, и его перевернутый код, который идёт после 10100111

При этом код команды “ОК” и “Меню” отличается только на один символ 01011000 (ОК) и 01011010 (Меню).

Всё отлично читается!

Понажимал на другие кнопки на пульте, записал сигналы – адрес пульта у всех кнопок одинаковый, команды разные:

Вот кнопка “Меню”:

Код сигнала получился следующий: 00000000 11111111 01011010 10100101

А вот кнопка “Переключить канал (ch+)”:

Код сигнала получился следующий: 00000000 11111111 01101000 10010111

——————————————————————————–

Примечание:

———————————————-

В пересылке сигнала между пультом и приёмником используется коды вроде FF58A7, например, это видно в Ардуино – “микроник.рус/8046/” (IR (инфракрасный сигнал): Читаем данные с пульта и передаём их)

кнопка ок – FF58A7
кнопка ок – 00FF58A7

В шестнадцатеричной системе используются символы от 0 до 9 и буквы от A до F (или a до f) для обозначения значений от 0 до 15. Например:

0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
7 = 0111
8 = 1000
9 = 1001
A = 1010
B = 1011
C = 1100
D = 1101
E = 1110
F = 1111

Каждый символ соответствует четырём битам (полубайту или нибблу). Например, 0 = 0000, 1 = 0001, A = 1010.

Давайте попробуем расшифровать

кнопка ок – FF58A7
кнопка ок – 00FF58A7

0000 0000 1111 1111 0101 1000 1010 0111

1111 1111 0101 1000 1010 0111

0 0 F F 5 8 A 7

00000000111111110101100010100111

—————————————————————–

И ещё один код с другого пульта

кнопка ок – 4FB52AD
кнопка ок – 04 FB 52AD

0000 0100 1111 1011 0101 0010 1010 1101

Также с помощью python можно преобразовать 16-ую систему в 2-ую:

a = "FF58A7"
binary_value = format(int(a, 16), 'b')  # '110100011'
print(binary_value)

111111110101100010100111

————————————-

Примечание 2:

Запись сигналов IR-пульта на звуковую карту – “микроник.рус/7989/”

Добавить комментарий