Дистанционное управление компьютером на ОУ.

Описываемый простой приемник ИК излучения и небольшая программа-драйвер позволяют компьютеру "понимать" команды, подаваемые с пульта дистанционного управления (ПДУ) от обычного телевизора. Как использовать эту возможность, предоставляем решить читателю. Это может быть дистанционное управление программой проигрывателя музыкальных компакт-дисков, беспроводный джойстик для компьютерных игр и многое другое. Принципиальная схема встраиваемого в компьютер приемника ИК сигналов дистанционного управления приведена на рис. 1. Принятые фотодиодом VD1 импульсы поступают на вход микросхемы DA1, которая фильтрует их и усиливает. Выходной сигнал через инвертор DD1.1 поступает на вход IRQ10 шины ISA компьютера. Каждый его нарастающий фронт компьютер воспринимает как запрос прерывания и обрабатывает его, вызывая процедуру, находящуюся по адресу, указанному в векторе прерывания 72Н. Длительность импульсов, посылаемых ПДУ, достаточна для реакции процессора на прерывание и дополнительно "растягивать" их не требуется.

Приемник смонтирован на двух печатных платах. На первой (рис. 2) установлены фотодиод VD1, микросхема DA1, конденсаторы С1—С4 и резистор R1. Ее размещают на лицевой панели внутри системного блока компьютера (способ крепления значения не имеет), закрыв металлическим экраном, соединенным с общим проводом. Напротив фотодиода VD1 в корпусе компьютера сверлят отверстие для прохода И К лучей, которое можно закрыть светофильтром из красного органического стекла.

На второй плате (рис.3) монтируют микросхему DD1 и конденсаторы С5, С6. Необходимо как можно точнее выдержать длину платы (48 мм) и указанные на рисунке расстояния контактных площадок от ее левого края. Это обеспечит надежное соединение приемника с компьютером. Плату вставляют в дополнительную (короткую) часть любого свободного ISA-слота таким образом, чтобы стрелка на ней была направлена в сторону лицевой панели. Одноименные контактные площадки 1—3 обеих плат соединяют между собой ленточным кабелем или жгутом из трех обычных проводов.
Платы рассчитаны на установку оксидных конденсаторов К50-35, К50-16, керамических К10-17 или любых других малогабаритных, резистора МЛТ-0,125. Микросхему К1056УП1 (DA1) можно заменить на КР1084УИ1 или импортную ТВА2800 (с учетом различий в цоколевке). В качестве элемента DD1.1 пригоден любой инвертор с открытым коллектором. Налаживания приемник не требует, но иногда бывает полезно подобрать конденсатор С3, добиваясь максимальной дальности действия.
В    таблице    приведен    исходный текст программы RCU.COM — драйвера ПДУ на микросхеме КР1506ХЛ1 для телевизоров ЗУСЦТ, описанного в книге Ельяшкевича С. А. "Цветные стационарные телевизоры и их ремонт" (М.: Радио и связь, 1980). При нажатии любой кнопки пульт передает серию из 14 ИК-импульсов, длительностями интервалов между которыми закодирована посылаемая команда. Приемник может работать и с другими, в том числе импортными ПДУ, но для них придется написать соответствующий драйвер.
RCU.COM работает с операционной системой MS DOS и загружается в память компьютера резидентно, позволяя прикладным программам получать и выполнять команды, посылаемые с пульта. Программа состоит из трех частей. Первая, начинающаяся меткой init, выводит на экран сообщение о загрузке драйвера, инициализирует обработчики прерываний и оставляет их резидентными в памяти. Вторая часть — обработчик аппаратного прерывания IRQ10, которому соответствует вектор 72Н. Компьютер выполняет ее после приема от ПДУ каждого импульса, заполняет буфер but последовательностью значений длительности интервалов между импульсами и считает их. Приняв всю серию, обработчик выставляет в ячейке ре флаг готовности кода.
Для того чтобы получить принятую команду, прикладная программа должна вызвать программное прерывание 2FH. Именно его обрабатывает третья часть рассматриваемого драйвера. В зависимости от кода, загруженного в регистр АХ перед вызовом, она работает по разному.
Свою основную функцию это прерывание выполняет при вызове с кодом 0Е401Н. В регистре DX оно возвращает прикладной программе принятый код, а в АХ — флаг его готовности. Нулевое значение флага готовности говорит о том, что с момента последнего вызова прерывания новой команды принято не было и кодом в DX пользоваться нельзя. Флаг, равный 1, свидетельствует о приеме команды и необходимости прочитать из DX и сохранить ее код. Сделать это нужно обязательно, так как до следующего вызова код может измениться.
Вызов с кодом 0Е400Н служит для проверки, загружен ли в ОЗУ драйвер ПДУ. Если да, в регистре АХ будет возвращен код 0E4FFH. Вызов прерывания 2FH с другими кодами приводит к исполнению "старого" обработчика, действовавшего до загрузки программы RCU.COM.

Радио 8, 1999 С. КУЛЕШОВ, г. Курган

Назад