проект ПЕРПЕТУУМ галактика
  • Электроника, информатика, эволюционная информатика
  • Технические решения с использованием эволюционных процессов
  • Машинное моделирование элементов разумного поведения
планета


Простые решения для умного дома

2007 г., 2015 г.

Из года в год растет популярность систем управления домашним оборудованием, именуемых обычно "умный дом". Само по себе это очень широкое понятие, которое может означать как простейший комплекс устройств для управления, например, освещением, так и более сложные системы, управляющие сигнализацией, открыванием-закрыванием дверей и ворот, кондиционированием воздуха, вентиляцией, энергосбережением, отоплением - в общем, всем, что отвечает за безопасность, комфорт и уют в доме. Даже уход за домашними растениями и животными может входить в обязанности умного дома! Все это не так сложно, как может показаться. Нужны только фантазия и увлеченность, а самое сложное возьмет на себя программа "Перпетуум М". Сегодня даже школьник, увлекающийся электроникой, способен построить совсем не игрушечную систему управления домашним оборудованием. Причем систему, способную выполнять голосовые команды. Программа "Перпетуум М" предоставит для этого все необходимое: легкий в освоении и применении, но функционально богатый язык программирования (для создания алгоритма работы комплекса) и функции распознавания речи, не требующие подключения к интернету. Останется только изготовить и подключить к компьютеру исполнительные устройства и датчики.
      Если у вас есть ребенок школьного возраста, увлекающийся электроникой и/или программированием, если кто-нибудь из детей ваших знакомых этим увлечен, покажите им этот сайт. Учреждениям детского технического творчества также полезно обратить внимание на размещенную здесь информацию. Их должна заинтересовать и статья "Школьным кружкам робототехники на заметку". Но не подумайте, что информация здесь предназначена только для детей. Среди предлагаемых решений имеются вполне "взрослые" технологии, соответствующие профессиональному уровню. На их основе можно реализовывать достаточно сложные и ответственные проекты не только по обозначенной здесь теме, но и в других сферах, как, например, подключение торгового оборудования через конвертер USB-RS232TTL (сканеры штрих-кодов, принтеры чеков и т.п.).

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

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

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

3) Запуск других приложений.
      Язык сценариев имеет в своем составе функцию, позволяющую запускать другие программы с параметрами командной строки. Это, например, может быть программа, посылающая оборудованию команду, переданную в параметре. Не самый лучший способ построения программно-аппаратного комплекса, но такая возможность есть, и, в некоторых случаях, она может оказаться полезной.

4) Использование портов ввода-вывода.
      Этот способ следует рассматривать, как наиболее предпочтительный. Ниже ему будет уделено особое внимание. Через порты ввода-вывода можно подключить как промышленное оборудование, так и самодельное. В этом случае никакая промежуточная программа не нужна. Вся работа происходит под управлением сценария для "Перпетуум М".

5) Использование индикаторов клавиатуры.
      Если нет подходящего порта, но хочется реализовать непосредственное подключение к ПК, можно применить этот метод. Для серьезных проектов он, конечно, не годится, но в образовательных целях сойдет. Его суть состоит в том, чтобы управляя светодиодами клавиатуры, подавать команды на внешнее оборудование, подключенное к этим светодиодам. Для управления индикаторами состояния клавиатуры NumLock, CapsLock и ScrollLock язык сценариев имеет специальную функцию Sys.Indicators(). Нужно лишь вскрыть клавиатуру или ноутбук и аккуратно припаять три провода к светодиодам и один общий. Лучше, конечно, поставить разъем. Еще лучше - не портить ноутбук, а вынуть контроллер из старой износившейся USB-клавиатуры и использовать его в качестве контроллера самодельного устройства. Если трех логических сигналов не хватит, можно расширить разрядность управляющего слова введением сдвигового регистра. Информацию вводить в него последовательно. При этом один из светодиодов будет посылать данные, второй - синхроимпульсы для сдвига, третий - управлять записью в параллельный регистр, то есть "защелкиванием" информации по окончании наполнения сдвигового регистра. Все эти действия легко реализовать всего на одной микросхеме 74595, с которой можно снять уже не 3, а 8 логических сигналов, подобно тому, как сделано в устройстве для тестирования LCD c параллельным интерфейсом. Конечно, не следует забывать и о том, что индикаторы клавиатуры предназначены для другого. Их программное переключение из одного состояния в другое может происходить с задержкой. Чтобы в этом случае избежать сбоев в работе, можно в алгоритм вывода данных после каждого вызова функции Sys.Indicators() добавить функцию задержки Delay(). Время задержки подобрать экспериментально, сократив сначала его до минимума, при котором начинаются сбои, затем увеличив раза в два. Алгоритм вывода данных пишется на языке сценариев.

Несколько полезных советов для тех, кто любит все делать своими руками

По-настоящему увлеченный человек не станет покупать готовые блоки и собирать из них нечто стандартное. И у него, конечно же, не будет стандартной программы, предназначенной для управления оборудованием. Он посетит несколько сайтов, посмотрит множество схем устройств, подобных тому, что нужно, а затем набросает свою схему - лучше тех, что нашел. Потом спаяет собственное изделие и... И вот тут на помощь приходит программа "Перпетуум М" - благодаря ей не нужно тратить много времени на стыковку самоделки с компьютером!
      "Перпетуум М" позволяет сократить потери времени на связывание собственного изделия с компьютером. Теперь творчество в этой области стало доступно даже начинающим! В версии 4.01 программы "Перпетуум М" появились функции, предоставляющие доступ к портам ввода-вывода. Самодельное оборудование, подключенное таким способом, при условии качественной сборки и отладки, не уступает промышленному. Данный способ с применением программы "Перпетуум М" полезно взять на вооружение и школьным кружкам робототехники. В самом простом случае он избавляет даже от необходимости использовать контроллер периферийного устройства - логические уровни для управления оборудованием можно брать непосредственно с выходов порта и подавать вводимые сигналы на его входы. Речь здесь идет об использовании COM-портов. Конечно, можно использовать COM-порт и традиционно - как последовательный. В "Перпетуум М" и для этого есть необходимые функции. В случае отсутствия COM-порта на системном блоке или при использовании современного ноутбука задача легко решается с использованием конвертеров USB-RS232TTL. Такой вариант еще и лучше, потому что входы и выходы такого конвертера имеют ТТЛ-уровни (0...5В), что удобно для непосредственного подключения большинства микросхем. При использовании обычного COM-порта, учтите, что напряжение на его выходах имеет значения от -12В до +12В ! Не сожгите свою самоделку!
      Управляющая программа пишется на языке сценариев "Перпетуум М". При этом роль сценария вовсе не обязательно должна ограничиваться только передачей команды оборудованию. Возможности данного языка достаточно обширны, чтобы создавать с его помощью полноценные программы с богатыми функциями по автоматизации процессов, включая опрос датчиков, принятие решения, вывод сигналов управления и работу с файловой базой данных. Пользовательский интерфейс может быть не только речевым, но и традиционным - экранно-клавиатурным. Для этого язык сценариев имеет функции, с помощью которых можно создавать обычные окна с визуальными компонентами.

Фото конвертера USB-RS232TTL в виде шнура Теперь подробнее поговорим о конвертерах USB-RS232TTL. Через такой конвертер можно и самодельные конструкции подключать, и промышленное оборудование (если оно имеет интерфейс RS232 и допускает использование уровней ТТЛ, что сейчас не редкость). Для самых простых самоделок конвертер USB-RS232TTL способен предоставить возможность опроса четырёх независимых TTL-сигналов (это могут быть, например, сигналы от датчиков) и возможность вывода трёх независимых TTL-сигналов для управления исполнительными устройствами. Возможно и традиционное использование RS232 в качестве последовательного порта. Допускается подключать несколько конвертеров USB-RS232TTL и использовать их одновременно. При недостатке USB-портов можно использовать USB-HUB (разветвитель). Так что, не верьте, когда говорят о существовании проблемы отсутствия COM-портов в современных моделях ноутбуков и системных блоков. Цены за один конвертер в 2014г. в иностранных интернет-магазинах можно было встретить около 2-7 долларов, включая доставку обычной почтой. Автору данных строк довелось этим воспользоваться. Цена зависит от модели и совместимости с версиями Windows, а модели бывают разные: от шнура со стандартными разъёмами, до маленькой платки без корпуса. Был даже лот всего $1 за штуку с доставкой. При покупке конвертера не забудьте уточнить у продавца совместимость его драйвера с вашей версией Windows, а также поинтересуйтесь, поставляется ли драйвер в комплекте. Иногда (в основном при покупке в интернет-магазине) драйвер приходится скачивать самостоятельно с сайта, указанного продавцом или с сайта изготовителя микросхемы конвертера.

Большой популярностью пользуются конвертеры в виде шнура, на одном конце которого разъем USB, а на другом - стандартный девятиконтактный разъем COM-порта. Один из таких конвертеров вы можете видеть на фото.

Некоторые самые простые модели конвертеров имеют не весь набор входов и выходов стандартного COM-порта. Ниже на фото показана конструкция конвертера без шнура и без корпуса. Обратите внимание, что с платы конвертера выведено всего пять штырьков. Среди них только три относятся к стандартному набору: GND, TXD, RXD. Однако это вовсе не означает, что такой конвертер нельзя использовать полноценно. Важное свойство такой модели - открытая конструкция. Термоусадочную оболочку нетрудно вскрыть и добраться до микросхемы. После этого все недостающие входы и выходы можно получить, припаяв проводники непосредственно к выводам микросхемы. Конечно, этот метод подойдет не всем: у некоторых микросхем выводы расположены с очень маленьким шагом. Для пайки в этом случае потребуются паяльник с очень тонким жалом и хорошие навыки владения этим инструментом. Полезно при этом также применять оптику, пусть даже самую простую.

Фото1 конвертера USB-RS232TTL без корпуса
Фото2 конвертера USB-RS232TTL без корпуса

Следует учитывать, что некоторые микросхемы, используемые в конвертерах USB-RS232TTL, инвертируют сигналы. Это бывает актуально в основном для конструкций не имеющих стандартного девятиконтактного разъема COM-порта. В качестве справочной информации ниже приведена таблица с нумерацией и назначением некоторых выводов микросхемы PL-2303, которая часто применяется в подобных изделиях. Добавление "_N" означает инвертирование сигнала.
 
Вывод Сигнал Направление Назначение
1 TXD O Data output to Serial port
2 DTR_N O Data Terminal Ready, active low
3 RTS_N O Request To Send, active low
5 RXD I Data input from Serial Bus
6 RI_N I Ring Indicator, active low
7 GND P Ground
8 VDD P Power
9 DSR_N I Data Set Ready, active low
10 DCD_N I Data Carrier Detect, active low
11 CTS_N I Clear To Send, active low
20 VDD P Power
21 GND P Ground

Если вы используете обычный COM-порт или конвертер USB-RS232TTL, у которого имеется стандартный девятиконтактный разъем COM-порта, следующая информация будет полезной. Ниже показана нумерация штырьков разъема и таблица с подробным описанием каждого из них.
 
Нумерация выводов 9-контактного разъема
1 DCD <- вход Carrier Detect
2 RXD <- вход Receive Data
3 TXD -> выход Transmit Data
4 DTR -> выход Data Terminal Ready
5 GND == общий System Ground
6 DSR <- вход Data Set Ready
7 RTS -> выход Request to Send
8 CTS <- вход Clear to Send
9 RI <- вход Ring Indicator

Читайте описание ещё одного преобразователя USB-UART (на микросхеме CH340G) и о его доработке до полноценного USB-RS232TTL.

Во время тестирования новых функций языка сценариев версии 4.01 через переходник USB-RS232TTL был даже запрограммирован микроконтроллер ATtiny44. Никакого дополнительного оборудования (кроме четырех резисторов) не потребовалось. В результате появилась идея написать на языке сценариев "Перпетуум М" программатор для микроконтроллеров. Что из этого вышло, читайте в статье "Как прошить микроконтроллер ATtiny или ATmega без программатора". Это ещё одно применение "Перпетуум М" в связке с переходником USB-RS232TTL. В указанной статье вы найдете схемы подключения контроллеров для их программирования (к каждому случаю прилагается фото), сможете скачать сценарий-программатор для "Перпетуум М" и четыре прошивки (для разных МК) музыкальной шкатулки. Скрипт программатора является открытым исходником - любой желающий может его изучать и переделывать на свой вкус.

Микроконтроллеры, как и конвертеры USB-RS232TTL, удобно заказывать через интернет из Китая с доставкой обычной почтой. Оплата производится банковской карточкой в момент заказа. Тем, кто ни разу не покупал в иностранных интернет-магазинах, рекомендуется посетить сайты, где даются советы по этой теме. При грамотном подходе такие покупки выгодны и достаточно безопасны. Впрочем, сказать, что абсолютно безопасны, тоже нельзя. Основываясь на собственном опыте покупок и на публикациях в интернете должен заметить, что нередко наши китайские друзья продают отбраковку - продукцию, которая по результатам каких-то тестов оказалась зачисленной в "третий сорт". Вроде и не брак, но и не лучшее качество. Чаще всего это даже не создает существенных неудобств: дефекты либо незначительны, либо касаются практически неиспользуемых функций. Чтобы было понятно, о чем идет речь, приведу пример. Покупал два ЖК-дисплея (Подключение и тестирование LCD 240RGBx320 c параллельным интерфейсом) - никаких дефектов не обнаружил. После этого заказал еще три таких же, но у другого продавца. У этих оказались помятыми концы плоского кабеля с контактными площадками. При тестировании они тоже не обнаружили дефектов в работе, но помятость - это все же нехорошо. В то же время тестирование касается только самых необходимых функций и режимов, поэтому в данных дисплеях вполне могут быть скрытые дефекты: например, какой-то режим может не работать. При этом дисплей можно использовать и без этого режима. В интернете можно встретить описание случаев, когда из Китая приходят микроконтроллеры вроде бы и исправные, но с изъяном: дефектная ячейка памяти, неработающий таймер и т.п. Полностью протестировать столь сложное устройство почти невозможно. Поэтому полностью исключить риск не получится. А иногда попадаются и настоящие жулики среди продавцов. Они продают заведомо негодный товар - стопроцентный брак. На этот счет в сети можно встретить совет не покупать очень дешевый товар. Но от этого совета пользы мало. Да, для некоторых видов товара можно что-то понять по цене, но чаще всего цена не характеризует качество: можно купить отличный товар по смешной цене и сильно "проколоться" на цене выше среднего. Так что, главное правило - распаковывайте заказ только перед включенной видеокамерой, предварительно показав на камеру этикетку и повертев пакет, чтобы показать неповрежденность упаковки. Любые обнаруженные при распаковке дефекты показывайте крупно на камеру в этой же непрерывной записи. Пересчитывайте количество товара тоже во время видеозаписи. С такими доказательствами восстановить справедливость не составит большого труда (деньги не сразу перечисляются продавцу и могут быть возвращены). Еще одно главное правило: по возможности не закрывайте заказ на сайте торговой площадки, пока не проверите нормальное функционирование товара. Такую проверку обычно приходится проводить отдельно от распаковки, но если на этом этапе будут выявлены дефекты, тоже необходимо их документировать с помощью фото и видео. Это обычно помогает. Но учтите, что время на проверку ограничено - после получения на почте через некоторое время заказ может закрыться автоматически (приблизительно через трое суток). Сказанное относится прежде всего к площадке Алиэкспресс. В других местах могут быть свои вариации.

Современные микроконтроллеры - настоящее произведение искусства. В них всё делается для того, чтобы разработчик как можно меньше вынужден был использовать других деталей. Например, во многих схемах нет ни генератора тактовых импульсов, ни, даже, кварца - используется встроенный в микросхему собственный генератор. Зачастую кроме микроконтроллера требуется всего несколько деталей, чтобы получить прибор с богатым набором функций. Конечно, за эти "прелести" предусмотрена и "расплата" - все, что раньше полагалось собирать из отдельных компонентов, теперь приходится реализовывать в виде программы для микроконтроллера.

Если остались вопросы или появились идеи, оставляйте их в гостевой книге. Дополнительную информацию можно найти также в описании программы и в инструкции по разработке сценариев, которая находится в одном архиве с программой "Перпетуум М".

Кто-то может возразить: зачем, мол, огород городить? Жили как-то без умных домов, обходились, проживем и дальше. Согласен, прожить можно и без умного дома, но... Зачем столько всего открывается и изобретается, если без всего этого можно прожить? Довелось однажды мне где-то услышать одну историю. Как-то очень давно, в девятнадцатом веке, разговаривали священник и школьный учитель. Первый сетовал на то, что в школьной программе недостаточно часов отведено богословию и слишком много - изучению наук. На это учитель возражал, что изучение наук чрезвычайно полезно для молодого поколения. "Какая же от этого польза?" - не сдавался священник. Не долго думая, учитель ответил, что с помощью наук, например, человек может научиться летать. Святой отец, носивший фамилию Райт, пришел в негодование: "И как только можно было доверить обучение детей человеку, который говорит такую чепуху!" Но прошли годы и настал день, когда сыновья этого священника - братья Райт - подняли в воздух первый в мире самолет, который сами же и построили. Так в истории человечества началась эпоха авиации. Думаю, эта небольшая, но поучительная, история уменьшит количество скептиков.

Все новое, как правило, сначала выглядит нелепо и даже абсурдно. Но всегда находятся люди, которые несмотря ни на что берутся за реализацию дерзких планов и открывают новую страницу научно-технического прогресса. Проходит время, и вот уже то, что раньше казалось чем-то бессмысленным, становится привычным и необходимым.

Приглашаю всех электронщиков-энтузиастов принять участие в создании систем "умный дом" (и всевозможных роботов) с использованием программы "Перпетуум М". Рассказывайте о своих разработках в гостевой книге или пишите на почту mail.ru (ящик jkit).



Использование материалов данного сайта в публикациях допустимо только при условии сопровождения этих материалов ссылками на источник - сайт projectveka.ru с указанием автора: Е.А.Котов.   Авторские права защищены законами РФ. Евгений Котов. 2017г.
Яндекс.Метрика