Первый вопрос - зачем нам нужно что-либо, имеющее отношение к инфракрасным кодам?
Домашняя аппаратура - телевизоры, музыкальные центры и т.п. - управляется с помощью пультов дистанционного управления, излучающих команды в ИК-диапазоне. Чтобы управлять аппаратурой с компьютера (программно), нам потребуется излучатель ИК-кодов - модуль, который по команде компьютера будет излучать необходимые ИК-команды. Для работы этого модуля нам потребуется еще и считыватель ИК-кодов. Кроме того, пора подумать об устройствах управления в системе, причем хотелось бы иметь нечто достаточно дешевое.
Одним из устройств управления, как мы решили, станет компьютер. Можно подумать о создании устройства управле¬ния с использованием клавиатуры: нажатие клавиши отправ¬ляет в системную сеть команду управления.
Но и у компьютера, и у клавишного модуля есть небольшой недостаток: их удобно держать на стене или на столе, но не на кресле, где мы проводим достаточно много времени. Вопрос о клавишном модуле управления пока отложим и рассмотрим возможность управления с помощью старого пульта от видеомагнитофона или телевизора, которые давно отправились бы на свалку, если бы не завалялись на полке. В этом случае нам нужен модуль приема инфракрасных кодов.
Что собой представляют инфракрасные коды, излучаемые пультами управления?
Не вдаваясь в теоретические тонкости, можно сказать так: когда на пульте управления, положим, телевизором нажимается клавиша, установленный в нем светодиод (ИК-диапазо-на) начинает мигать. При этом он воспроизводит последовательность вспышек с некоторой частотой (от 20 до 400 кГц) и пауз, которые в совокупности и есть код управления. Каждая клавиша имеет свой набор вспышек и пауз. Клавиши разных пультов излучают разные коды управления, частота (несущая частота) вспышек также может различаться.
Пришло время поделиться впечатлениями.
Подсчитав свои финансовые возможности, я отказался от некоторых запланированных покупок и решил упростить программатор, поскольку в настоящий момент собираюсь работать только с контроллером PIC16F628A. Я убрал из схемы программатора внешнее питание, из схемы адаптера к программатору - все панельки, кроме 18-ножечной, и использовал батарейку «Крона» в качестве внутреннего источника питания (для высоковольтного режима программирования).
На макетной плате я тоже установил панельку под микросхему, с тем, чтобы проверить все схемы на одной макетной плате.
К схеме конвертера я добавил стабилизатор на 5 В. Кабель от разъема DB9 конвертера RS232-RS485 я распаял на плате конвертера, хотя вначале собирался использовать разъем. После исправления нескольких монтажных ошибок (и эти «грабли» имели место) я решил проверить программатор, поскольку не в полной мере был уверен, что правильно разобрался со схемой.
С программой MPLAB программатор, естественно, не работает. В Интернете есть схемы программаторов, работающих с MPLAB. Они не настолько сложны, чтобы их не использовать, но я решил, что лучше воспользоваться программой PonyProg2000, схему программатора к которой собрал. Приходится скачивать последнюю версию программы, поскольку в предыдущей нет контроллера PIC16F628A.
После загрузки программы появляется рабочее окно. Вид программы обычен для Windows и, думаю, не требует особых пояснений.
Мы создадим новый проект в основном меню Project New (Проект Новый). Задаем название relay проекту в папке Relay, которую я советую создать в основном разделе диска в папке MPLAB. Неоднократно я сталкивался с проблемой, которая не всегда очевидна. Многие программы, да это и удобно, предлагают хранить проект в папке Мои документы. Проблемы не возникает, если вы пользуетесь англоязычной версией Windows или русскоязычной версией программы. Но многие специализированные англоязычные программы начинают вытворять чудеса, если вы работаете в русскоязычной версии операционной системы. Впервые я столкнулся с этим, когда одна из сред программирования при компиляции программы стала выдавать ошибку в строке -1. Что она имела в виду под строкой с отрицательным номером, я не знаю. Но отыскать ошибку в правильно написанной программе оказалось не так просто. Ошибка крылась в том, что программа, предлагая сохранить проект в папке Мои документы, при компиляции эту папку распознать не могла.
В первую очередь, определим, нужен ли нам режим «SLEEP», который переводит контроллер в состояние с уменьшенным энергопотреблением. Режим очень удобен и важен в тех случаях, когда контроллер используется в условиях батарейного питания. Переход в режим «SLEEP» продлевает срок службы батарей или время работы без подзарядки аккумулятора. В нашем случае нет необходимости в поддержании этого режима, поскольку модуль получает питание от блока питания.
Часть конфигурирования необходимо выполнить при программировании контроллера. Это относится к слову конфигурации по адресу 2007h. Здесь h после цифр означает HEX, hexadecimal (шестнадцатеричное число). В слове конфигурации устанавливаются (или не устанавливаются) биты защиты, выбирается режим работы тактового генератора и некоторые параметры, относящиеся к режиму питания конт-роллера.
Вот первый вариант слова конфигурации для тактовой частоты 16-20 МГц:
Бит 13 устанавливаем в «1» - выключаем защиту кода.
Бит 8 устанавливаем в «1» - выключаем защиту EEPROM.
Бит 7 устанавливаем в «0» - вывод RB4 работает как цифровой канал ввода-вывода.
Бит 6 устанавливаем в «0» - запрещаем сброс по снижению напряжения питания.
Функциональная схема модуля состоит из интерфейса, кон¬троллера и адресного селектора, образующих базу для пост¬роения остальных модулей, а отличительной особенностью данного модуля является использование реле (рис. 1.33). Реле я включил через транзисторный ключ. В зависимости от кон¬кретного реле, которое вы выберете, транзисторный ключ может оказаться лишним.Я не стал устанавливать реле на макетной плате. Реле - элемент достаточно дорогой, и нет нужды покупать его без твердого намерения использовать. Вместо него к выходам микроконтроллера были подключены красные светодиоды АЛ307. Как выяснилось позже, получилось очень полезное решение при наладке и разработке других модулей.Ориентировочная стоимость элементов - 558 руб В целях экономии я отказался от установки на макетную плату реле и переключателя для организации адресного селектора, распаяв соответствующие выводы, чтобы получить один адрес. На схеме показано одно реле, но их количество можно увеличить до 7-8, используя все свободные выводы портов А и В. Это определяется конкретными соображениями по применению модуля. Например, если вы планируете использовать релейный модуль в своей комнате для включения торшера или настольной лампы, достаточно одного реле. Для безопасного включения лампы я советую использовать закрытую розетку со стандартным сетевым проводом. Одна из жил этого провода должна разрываться контактами реле. Настольная лампа включается в розетку, которая, в свою очередь, подсоединяется к сети -220В. При замыкании контактов реле напряжение подается на лампу. Поскольку неизвестно, какой из проводов вы коммутируете: нулевой или фазный, все работы лучше производить без напряжения.
Релейный модуль. Получая команды центрального управляющего устройства, он включает и выключает соответствующее реле. С помощью контактов реле можно включать и выключать настольную лампу, торшер (и свет в комнате, установив модуль на место обычного выключателя, но я не советую делать это, если вы не профессиональный электрик), телевизор или музыкальный центр. Контактами реле может включаться и выключаться электрический чайник и утюг (возможно, понадобится добавить более мощный контактор). С его же помощью можно «перемещать музыку», подключая к музыкальному центру громкоговорители, установленные в разных помещениях. Одним словом, с помощью контактов реле можно включать и выключать все, что можно включать и выключать в принципе.
Цель проекта - разработка любительской системы автоматизации жилья. За основу возьмем системы, о которых говорилось выше. Если не вдаваться в тонкости реализации разных концепций, на первом этапе будущую систему можно представить в виде центрального управляющего устройства и набора модулей, выполняющих разные функции, но подчиненных одной задаче - следить за состоянием датчиков и устройств управления, чтобы на основе их состояния включать, выключать и переключать бытовую технику.В качестве средств управления в системе промышленного производства используются сенсорные панели и универсальные ИК-пульты с запоминанием кодов.
Не готов утверждать, что любительская разработка подобного рода устройств управления столкнется с непреодолимыми трудностями, но если серийно производимое устройство оценивается в продаже в тысячу (и несколько тысяч) долларов, то и в любительской разработке оно может стоить не дешевле. По этой причине разработку средств управления подобного типа лучше пока оставить за профессионалами. Мы постараемся реализовать простую систему, в которой компьютер будет играть роль центрального управляющего устройства (и, в какой-то мере, устройства управления), и которая будет иметь несколько базовых модулей: релейный модуль, модуль приема системных ИК-команд, модуль излучения ИК-кодов и модуль цифровых вводов.
Практически все системы автоматизации жилья позволяют реализовать подсистему охраны. В отличие от специализированных систем охраны, основным достоинством которых кроме высокой надежности является возможность стандартного подключения к централизованным пультам охранных ведомств, системы автоматизации жилья позволяют создать эффект присутствия. Посмотрим, как может выглядеть сценарий подобного решения, например, на вашей даче зимой, когда вы там не живете.
Сценарий решения: рано утром на террасе включается свет, который спустя несколько минут гаснет. Следом включается свет в одной из комнат. Включается радиоприемник. Через полчаса он выключается. В комнате слышатся голоса, зажигается свет в другой комнате. Через час в доме наступает тишина. Но ненадолго. Через час или два в доме вновь слышны голоса. Включается и выключается свет. Включается и выключается радиоприемник.
Для реализации решения мне понадобится модифицированный релейный модуль. Я использую транзисторный радиоприемник и кассетный магнитофон с пленкой, на которой за¬писаны обычные домашние шумы и разговор. В данном случае сеть используется, если управление светом удобнее разнести по дому. В такой модификации один из релейных модулей будет модифицирован, остальные останутся универсальными.
Модификация релейного модуля №1 сведется к тому, что будут использованы таймеры для задания интервалов времени, которые становятся событиями системы, а отклик системы на события (сигналы таймеров) инициируется модифицированным релейным модулем, который отправляет команды включения и выключения релейным модулям №2 и №3. Контакты реле, конечно, разрывают питающее напряжение.
Сценарий решения: работая за компьютером дотемна, чтобы выйти в темный холл, не натыкаясь на мебель, я с компьютера включаю бра в холле.
Для реализации этого решения мне нужен релейный модуль, имеющий одно реле, и простая основная программа на компьютере, которая отправляет команды «включить свет» и «выключить свет», адресованные этому модулю.
Аналогичное решение можно применить с небольшой модификацией (можно и со значительной) и для случая, когда ночью приходится вставать, чтобы зайти на кухню попить или выйти в туалет. Ночной светильник в холле избавит вас от опасности споткнуться по дороге, но не будет резать глаза после темноты в спальне. Модификация в данном случае относится к тому, чтобы в программе, заложенной в контроллер релейного модуля, один из выводов порта предназначался к присоединению кнопки. Эту кнопку (клавишу, выключатель) вы можете расположить возле прикроватной тумбочки или на ней. Нажатием кнопки вы включаете и выключаете реле без участия компьютера. Кнопок можно сделать несколько, если вы в доме не один.
Когда я говорил о значительной модификации, то имел в виду, что кнопку возле кровати можно снабдить радиопередатчиком, а релейный модуль - радиоприемником. В этом случае вам не понадобится добавлять провода в квартире.
В принципе, любое электрическое или механическое устрой- Л ство, любая подсистема внутри или снаружи вашего дома может быть автоматизирована, хотя бы ненамного.
Поскольку количество устройств и подсистем, которые вы м злеете интегрировать с системой домашней автоматизации, огромно, важно выбрать систему достаточно гибкую, расширяемую, обновляемую и оптимальную по стоимости. Это должна быть система, которая легко устанавливается, программируется и имеет программный интерфейс, не требующий освоения новой техники программирования каждый раз, когда вы добавляете в систему новое устройство.
Корпорация PHAST развивает современную автоматизацию дома, которая полностью отвечает этим требованиям.