Компания "Услуги Марата Дружинина" осуществляет связь между теми, кто ищет услуги в Интернете Израиля, и теми, кто качественно эти услуги выполняет по реальным ценам. Тем, кто ищет услуги в Интернете, компания помогает бесплатно.
חברת "שרותי מארט דרוזינין" מעניקה קשר איכותי בין האנשים אשר
מחפשים שרותים באינטרנט לבין האנשים אשר מעניקים שרותים אלו ברמה הגבוהה
ובמחיר סביר. אלה המחפשים שירותים באינטרנט החברה
מעניקה שירותים בחינם.
Лечить детей. Лечить от кашля. Лечить кашель и острый бронхит у детей.
Хотелось
бы сразу сказать, что мы отличаемся от "Шакалов пера", пишущих "по
материалам". Источник нашего вдохновения - собственные шишки и душевные
травмы. Поскольку большинство людей считает, что читать инструкцию по
эксплуатации только что купленного дивайса - последнее дело, наша
статья для этого большинства и предназначена. Ведь мы так обычно и
поступаем - иначе откуда нам знать, какие вопросы и чувства, не говоря
уже о словах в адрес производителя и в наш адрес, возникнут у счастливых
обладателей контроллера Ocelot. Слова счастливых обладателей
контроллера Leopard будут в два раза крепче - прибор посложнее, да и
стоит он подороже. Вот тут и пригодится наша статейка.
Обладатели
домашних театров являются одновременно и обладателями дюжины (хорошо,
если не чертовой) пультов - управлять нужно DVD, LD/CD,
видеомагнитофоном, спутниковым ресивером, да добавим контроллер,
плазменную панель (или проектор с экраном), видеокамеру - тоже надо
посмотреть.
Сразу о трудностях, с которыми придется столкнуться. К
несчастью, у большинства аппаратуры выключатель питания представляет
собой двоичный ключ - нажал - включено, нажал еще раз - выключено. Это
не очень важно, когда техника хорошая - а вот с ресивером Xsat (обычно
комплектуется НТВ+) проблемы. С пультом проблема решается просто - надо
жать Power пока ресивер не включится. C контроллером не так просто -
нужно или заводить обратную связь (об этом будет отдельная статья), или
экспериментально подбирать - сколько раз нужно послать ИК сигнал. Мой
опыт показал, что достаточно три раза подряд посылать сигнал для
включения, и два раза для выключения. Сопротивление, так сказать,
материала. Еще проблема - контроллер Ocelot запоминает 500 ИК -
сигналов, но распознает только 80. Чего обычно хватает, но может не
хватить, если в каждом компоненте есть цифровые клавиши. Тогда чем - то
придется пожертвовать. Kevin Barret из Applied Digital ответил мне еще в
ноябре, что ограничение это будет устранено в новой версии софта, но в
только что (20.02.2001) вышедшей версии (V161E1-V285) проблема эта еще
не решена.
Для управления мы используем (и Вам рекомендуем)
универсальный программируемый пульт Sony RM-AV2000. Он программируется
для управления 12 различными аудио - видео компонентами. Есть жесткие
(также программируемые) клавиши - выбор компонента, управление
громкостью, переключение каналов и mute. Кнопки выбора компонентов
домашнего театра мы запрограммировали так, чтобы при их нажатии
посылался код выбора источника. Нажал кнопку Sat - сразу идет сигнал (не
обрабатываемый контроллером Ocelot) включения режима Sat на блоке
управления домашним театром.
Переменные контроллера, показывающие
статус компонентов домашнего театра, должны обнуляться при пропадании
питания - ведь если выключить из розетки современный телевизор, а потом
включить, он будет в режиме ожидания. Обидно, что в контроллере Ocelot
нет флагов - для статуса приходится использовать целое. Ну да ладно,
переменных (128) хватит. Логика простая - переменная 15 (v15)
равна нулю, если видеомагнитофон выключен, и единице, если включен.
Вот и фрагментик кода, ИК - код 54 соответствует кнопке VCR Power на
универсальном пульте, а переменная 6 (v6) описывает режим блока управления домашним театром, проще говоря - какой вход включен:
Операторы
Комментарии
IF Receive IR54
Если пришел сигнал VCR Power
 THEN Xmit Local IR500
Послать сигнал Power на видеомагнитофон
IF v15 = 1
Если видеомагнитофон включен
 AND Receive IR54
И пришел сигнал VCR Power
 THEN v15=2
Установить статус видеомагнитофона Off
Здесь
небольшое примечание. Если написать в программе - установить статус Off
если был статус On и наоборот, то программа может выполнить обе
директивы, так что временно присвоим переменной v15
(статус видеомагнитофона) значение 2 и тут же значение 0. Это связано с
тем, что контроллер обновляет все параметры и флаги после прохода всей
петли программы, и на протяжении этой петли будет считать, что ИК-
команда только что получена.
IF v15 = 2
Если нужно установить статус видеомагнитофона Off
 THEN v15=0
Статус видеомагнитофона Off
IF v15 = 0
Если видеомагнитофон выключен
 AND Receive IR54
И пришел сигнал VCR Power
 THEN v15=1
Статус видеомагнитофона On
IF v15 Becomes = 1
Если видеомагнитофон только что включили
 THEN Xmit Local IR412
Сигнал на блок управления - режим VCR
 THEN v6=15
Блок управления в режиме VCR
Точно
так же включаются и другие источники сигнала - LD, камера, DVD и
прочая. Сложнее с проектором (или плазменной панелью), экраном, жалюзи и
освещением. Неплохо бы, чтобы все само включалось, выключалось,
опускалось и затемнялось. Это не отменяет и ручного управления, при
желании. Вот на примере проектора - он должен быть включен, если включен
хотя бы один источник видеосигнала. В этом фрагменте программы
переменные v13 - v18 соответствуют статусу разных источников видеосигнала:
IF v13 = 0
Если DVD выключен
 AND v14 = 0
И телевизор выключен
 AND v15 = 0
И видеомагнитофон выключен
 AND v17 = 0
И спутниковый ресивер выключен
 AND v18 = 0
И проигрыватель лазерных дисков выключе
 THEN v11=0
Тогда статус проектора - Off
 ELSE v11=1
В противном случае статус проектора - On
А где же v16 - спросите Вы? У нас переменная v16 отвечает за статус проигрывателя компакт - дисков, строку с v16
нужно будет добавить при определении статуса усилителя. Если Вы только
что включили один из видео - компонентов, тогда надо включить и
проектор, теоретически это выглядит так:
IF v11 Becomes = 1
Если один из источников видеосигнала только что включили
 THEN Xmit Local IR380
Включить проектор
К
практическому варианту мы вернемся после сюжета с выключением. Весь
проектор и лампа в нем - вещи недешевые, а лампы, как известно, обычно
перегорают при переходных процессах включения / отключения. Поэтому
после ИК - сигнала "выключить проектор" он запрашивает подтверждения,
нужно послать еще один сигнал "выключить проектор". Учтем также
человеческий фактор - если фильм на DVD что - то разонравился, да и
подходит время новостей - возможна ситуация, когда DVD уже выключили, а
телевизор еще не включили, но собираются. Не запускать же в этом случае
всю махину - поднятие экрана, включение света, подъем жалюзи? Поэтому мы
ввели задержку 10 секунд, и только тогда, когда в течении 10 секунд ни
один источник видеосигнала не включен, проектор выключается. Если все
источники видеосигнала выключены, запускается таймер отсчета задержки
выключения проектора. Уф, 4 родительных падежа подряд. Но видели бы Вы,
как это предложение пишется по - немецки! Но лирику в сторону. Задержку у
нас будет считать таймер 11:
IF v11 Becomes = 0
Если выключен последний источник видеосигнала
THEN Timer11=1
Запустить таймер задержки Timer11
А по прошествии 10 секунд проектор все же будет выключен:
IF Timer11 Becomes > 10
Если таймер насчитал 10 секунд
 THEN Xmit Local IR381
Послать ИК - сигнал "выключить проектор"
А поскольку проектор запросит подтверждения, то через секунду и подтвердить:
IF Timer11 Becomes > 11
Если таймер насчитал 11 секунд
 THEN Xmit Local IR381
Окончательно выключить проектор ИК - сигналом
 THEN Timer11=0
Обнулит таймер задержки
Однако
в течение этих 10 секунд раздумий контроллера человек может и
передумать - ах, а ведь сейчас очередная серия - и щелк кнопкой
включения телевизора! Тогда у нас переменная v11 (статус проектора) станет равной 1, и выключение проектора надо будет отменить:
IF v11 Becomes = 1
Если включили источник видеосигнала
 THEN Timer11=0
Обнулить таймер задержки выключения проектора
А
вот сигнала на включение проектора посылать уже не надо - ведь он уже
включен. Тогда во фрагмент включения программы добавится одна строка (в
серединку) , и выглядеть он (то есть фрагмент) будет так:
IF v11 Becomes = 1
Если один из источников видеосигнала только что включили
 AND Timer 0 = 0
И таймер задержки выключен
 THEN Xmit Local IR380
Послать ИК - сигнал "включить проектор"
Точно
также надо поступать и с усилителем (усилителями), экраном (если он
поднимается), жалюзи и прочими аксессуарами домашнего театра.
С
включением / выключением покончено - с остальными сигналами попроще
будет. Для жалюзи достаточно использовать любые кнопки универсального
пульта. Вот для примера сигнал "Все жалюзи поднимать" - при получении
сигнала с пульта контроллер посылает сигнал на приемник управления
жалюзи.
IF Receive IR5
Если получен сигнал "Все жалюзи вверх"
 THEN Xmit Local IR391
Послать сигнал управления жалюзи "Все жалюзи вверх"
Можно
сигнал управления жалюзи и не обрабатывать контроллером, а просто
запрограммировать этот сигнал в универсальный пульт. Но лучше все -
таки, чтобы сигналы управления жалюзи с пульта и с контроллера
различались - меньше путаницы. С кнопками 0 - 9 проблем нет - их можно
запрограммировать прямо в пульт, чтобы сигналы прямого включения каналов
не обрабатывались контроллером. Если же управление компонентами
домашнего театра производится с нескольких мест - придется управлять
выбором канала через контроллер, да это и не сложно:
IF Receive IR9
Если на пульте нажато "VCR 3"
 THEN Xmit Local IR309
Послать ИК - команду "3" на видеомагнитофон
Немного
сложнее с кнопками вперед - назад. Обычно однократное нажатие включает
перемотку из режима Стоп и ускоренный просмотр вперед и назад, а при
нажатых кнопках видеомагнитофон сам выходит из режима ускоренного
просмотра в режим Воспроизведение. Самый простой выход -
запрограммировать команды на кнопки пульта для прямого, помимо
контроллера управления. А вот при программировании такого режима в
контроллере могут возникнуть проблемы - петля программы выполняется за
время 0.3- 0.8 секунд, и такого периода может не хватать для некоторых
аппаратов. Тогда придется некоторым удобством и пожертвовать.
В
заключение немного о проблемах, реальных и потенциальных. Для большей
надежности конечно нужно включать обратную связь - датчики состояния,
показывающие, включен или выключен конкретный прибор. Хотя проблемы с
включением / выключением были у нас только с Xsat (НТВ+ ресивер),
потенциальный источник проблем - ИК- излучатель или датчик можно
случайно закрыть. Встретили мы также и проблему другого рода -
невозможно зарегистрировать ИК - сигналы пульта Somfy (управление
экраном). Похожие проблемы были у нас с кондиционерами Дайкин. А
подключение к контроллеру датчиков освещенности позволит выставить
необходимую освещенность независимо от времени суток и состояния
атмосферы автоматически - включил DVD - жалюзи закрылись, а если за
окном темно - включилась подсветка, да так что освещенность стала
оптимальной. Ну а о технических деталях мы еще напишем.