Умный дом

Модуль считывания ИК-кодов WinLIRC

Будем работать в программе WinLIRC, доступной для свобод­ного использования, с соответствующим модулем в качестве считывающего устройства для предварительной подготовки ИК-кодов. Излучатель WinLIRC, возможно, используем для генерации системных ИК-кодов.

Схема фотосчитывателя и излучателя для работы с про­граммой WinLIRC показана на рис. 1.76. Программа доступна на сайте Http://winlirc. sourceforge. net.

Элементы, необходимые для сборки фотосчитывателя приведены в табл. 1.10.

DTR4

WinLIRC приемник-передатчик R2 M7^VD2 IC1TSOP 1738

DCD

1C278L05 oUt 2

Її ІС1

- GND =f=

R1

X1

5GNDI^I

Рис. 1.76. Схема приемника WinURC Таблица 1.10. Спецификация фотосчитывателя

Обозначение

Изделие

Кол-во

Цена (р.)

1

IC1

TS0P 1738

1

40

2

IC2

78L05

1

30

3

VD1, VD3

1N4148

5

4

VD2

АЛ144А

1

20

5

R1

4,7 кОм 0,25 Вт

1

1

6

R2

2 кОм 0,25 Вт

1

1

7

С1

4,7 мкФ 16 В

1

20

8

Х1

DB9 гнездо

1

10

Вид платы может быть таким, как показано на рис. 1.77.

Модуль считывания ИК-кодов WinLIRC

Рис. 1.77. Плата фотоприемника WinURC

Программа WinLIRC работает в двух режимах при прочи - тывании ИК-кодов. В первом режиме она определяет соот­ветствие кода стандарту и создает текстовый файл, в кото­ром записаны параметры кода. Во втором режиме она непосредственно выводит во встроенное окно времена посы­лок и пауз ИК команды (рис. 1.78).

Модуль считывания ИК-кодов WinLIRC

Рис. 1.78. Вид программы WinURC

Появление в правом углу панели значка Q означает, что программа работает. Правой клавишей мыши с помощью это­го значка можно вывести окно программы на экран. Кнопкой Browse задать файл конфигурации. А, щелкнув кнопку Raw Codes, прочитать ИК-команду.

Думаю, что для считывания команд мы используем второй метод, поскольку существует много кодов, не читаемых пер­вым. Файл, записанный с помощью программы WinLIRC, выг­лядит следующим образом:

Коды с пульта VCR Sony Прямое считывание, клавиша power

Outputting raw mode2 data.

Space 12856572

Pulse 2455

Space 532

Pulse 1291

Space 506

Pulse 664

Space 533

Pulse 1266

Space 533

Pulse 665

Space 591

Pulse 1211

Space 533

Pulse 685

Space 515

Pulse 693

Space 526

Pulse 1271

Space 506

Pulse 1265

Space 533

Pulse 666

Space 557

Pulse 1241

Space 533

Pulse 664

Space 24527

Pulse 2463

Space 579

Pulse 1219

Space 534

Pulse 664

Space 534

Pulse 1266

Space 534

Pulse 666

Space 531

Pulse 1266

Space 534

Pulse 663

Space 536

Pulse 662

Space 567

Реально эта запись получается еще длиннее, если пульт при нажатии клавиши постоянно воспроизводит одну коман­ду до тех пор, пока клавиша не будет отпущена (рис. 1.79).

Модуль считывания ИК-кодов WinLIRC

Рис. 1.79. Считывание ИК-кода программой WinURC

Собственно, команда, интересующая нас, содержится в следующей записи:

Outputting raw mode2 data.

Pulse 2455

Space 532

Pulse 1291

Space 506

Pulse 664

Space 533

Pulse 1266

Space 533

Pulse 665

Space 591

Pulse 1211

Space 533

Pulse 685 space 515 pulse 693 space 526 pulse 1271 space 506 pulse 1265 space 533 pulse 666 space 557 pulse 1241 space 533 pulse 664 space 24527

Здесь pulse - вспышка излучателя с частотой, положим, 36 кГц, a space - пауза между вспышками.

Раскрасим эту запись в соответствии с тем, что говорилось о кодах Sony выше:

Pulse

2455

Заголовс

Space

532

Pulse

1291

Единица

Space

506

Pulse

664

Ноль

Space

533

Pulse

1266

Единица

Space

533

Pulse

665

Ноль

Space

591

Pulse

1211

Единица

Space

533

Pulse

685

Ноль

Space

515

Pulse

693

Ноль

Space

526

Pulse

1271

Единица

Space

506

Pulse

1265

Р. дхттща

Space

533

Pulse

666

Ноль

Space

557

Pulse

1241

Единица

Space

533

Pulse 664

Space 24527 Пауза между командами

Числа здесь - времена в микросекундах. Код, если записать информационное представление, выглядит как 10101001101 в двоичном виде или 54D в шестнадцатеричном.

Конечно, хорошо бы хранить команду в информационном представлении, в виде двух байт. В этом случае в EEPROM можно было бы хранить до 64 команд. Но не все ИК-коды таковы. Некоторые имеют до 48 бит, то есть в информацион­ном представлении требуют 6 байт. Есть команды, состоящие из двух последовательно воспроизводимых команд и, вдоба­вок, длиннее 48 бит.

Можно придумать систему шифрования кодов (с целью их сжатия), но мне кажется, что пока лучше отказаться от идеи хранения кодов в модуле передатчика ИК-команд. До поры до времени будем хранить их на компьютере в файле данных, который будет прочитываться при работе основной програм­мы. При трансляции кода он будет передаваться по систем­ной линии, запоминаться модулем излучения ИК-команд и воспроизводиться им. В этом случае в модуле нам предстоит запомнить только одну команду, которая снимает ограниче­ния на общее количество команд и сложность их хранения в плане длинных кодов.

Итак, мы будем прочитывать ИК-коды с пультов устройств с помощью программы WinLIRC, обрабатывать вручную, за­писывать их в текстовый файл (или файлы) и воспроизводить по мере необходимости, передавая соответствующему моду­лю. В этом случае формат команды можно оставить таким, каким мы пользовались при работе с модулем трансляции.

На этом мы можем завершить первую версию в части ис­полняющих модулей. Пришло время создания основной про­граммы для управляющего компьютера.

Умный дом

Немного О программировании на С++

Поскольку при программировании микроконтроллера я ис­пользовал язык С, мне показалось уместным добавить хотя бы несколько слов о языке. Но я не сделаю это лучше, чем С. Липпман. Когда мне понадобилось …

Цоколевка контроллера PIC16F628A

—- RA1/AN1 ]—RAO/ANO ]—- RA7/OSC1 /CLKIN ]—RA6/SDC2/CLKOUT — VDD RB7A10SI/PGD — RB6A1 ОБОДІ CKI/PGC j—RB5 RB4/PGM PDIPSOIC О KJ 1 18 2 17 3 16 4 15 5 14 6 …

Как писать программы на С++

Положим, нам нужно написать простую программу, отправ­ляющую сообщение на терминал пользователя, которое про­сит ввести имя. Мы прочитываем введенное имя, сохраняем, чтобы использовать в дальнейшем, и, наконец, приветству­ем пользователя по имени. …

Как с нами связаться:

Украина:
г.Александрия
тел. +38 05235 7 41 13 Завод
тел./факс +38 05235  77193 Бухгалтерия
+38 067 561 22 71 — гл. менеджер (продажи всего оборудования)
+38 067 2650755 - продажа всего оборудования
+38 050 457 13 30 — Рашид - продажи всего оборудования
e-mail: msd@inbox.ru
msd@msd.com.ua
Скайп: msd-alexandriya

Схема проезда к производственному офису:
Схема проезда к МСД

Представительство МСД в Киеве: 044 228 67 86
Дистрибьютор в Турции
и странам Закавказья
линий по производству ПСВ,
термоблоков и легких бетонов
ооо "Компания Интер Кор" Тбилиси
+995 32 230 87 83
Теймураз Микадзе
+90 536 322 1424 Турция
info@intercor.co
+995(570) 10 87 83

Оперативная связь

Укажите свой телефон или адрес эл. почты — наш менеджер перезвонит Вам в удобное для Вас время.