CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

Голосовое управление освещением X10 из ROS. Часть 1

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

Использовалось следующее оборудование:

Компьютер (нетбук ASUS Aspire One) с операционной системой Linux
Достаточно хороший микрофон (желательно направленный)
Микроконтроллер Arduino
Приборы X10
Прибор PSC05 (двусторонний модуль обмена данными между сетью X10 и другими системами)

Коротко системе домашней автоматизации X10

X10 является самой первой системой домашней автоматизации. X10 использует для передачи данных метод частотного уплотнения в обычной электросети квартиры. Плюсы данной технологии:

легка в установке;
никаких дополнительных проводов в квартире;
распространенный стандарт, много исполнительных элементов;
система может управляться дистанционно;
система может программироваться;
относительно низкая стоимость и простота компонентов;
не требует дополнительного электропитания.

В системе X10 есть два основных компонента:

модуль – принимает сигналы от X10 трансивера через электропроводку и управляет устройством, подключенным к нему;
контроллер – посылает сигналы модулям.

Модули бывают разными. Вот стандартный модуль для управления светом.




Модули также могут быть также вмонтированы в электропроводку или встроены в прибор.



Существует три типа контроллеров:

трансивер – подключается к розетке сети переменного тока, принимает сигналы от беспроводного пульта дистанционного управления и отправляет команды модулям.
настольные контроллеры – подключаются к настенной розетке сети переменного тока – посылает команды модулям по сети.
универсальный пульт дистанционного управления – способен посылать как обычные инфракрасные сигналы, так и беспрводные сигналы формата X10.





У каждого модуля есть два настроечных параметра: код группы (A-P) и код устройства (1-16). Существуют следующие правила конфигурации системы X10:
все модули, управляемые одним трансивером или контроллером, должны использовать одинаковый код группы, переключатель кода группы имеет позиции A – P;
трансивер или контроллер должны быть сконфигурированы так, чтобы использовать тот же самый код группы, что и модули, которыми они управляют;
пульт дистанционного управления должен использовать тот же самый код группы, который использует трансивер и модули;
каждый модуль, которым вы хотите управлять отдельно от остальных, должен иметь уникальный код устройства 1 – 16 (эти коды не обязательно должны быть последовательными).
Управлять системой X10 можно дистанционно, например с помощью телефонного контроллера или компьютерного интерфейса. Для объединения системы X10 c другими системами служит контроллеры TW523 или PSC05. Мы будем использовать для управления приборами X10 с помощью Arduino.

Двусторонний интерфейс PSC05

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



Подключение PSC05 к Arduino

Для взаимодействия Arduino и PSC05 будем использовать библиотеку arduino-X10, которая позволяет отправлять команды в сеть x10. На сайте arduino.cc предлагают эту библиотеку. Были проблемы, выдавались ошибки в тестовых примерах, но удалось победить. Подключение к модулю PSC05 по кабелю RJ11.



В библиотеке пока не реализована отправка сообщений из сети X10, один из средних выводов поэтому пока не используется. Паяем и подключаем к Arduino. Получилось так.



Схема



Скачиваем библиотеку, копируем в папку libraries, запускаем Arduino IDE. Выбираем пример X10_Multi, исправляем ошибки, немного модифицируем (делаем для приборов с кодами A2 и A4) переключение каждые 5 сек.
Вот код данного проверочного скетча.


// include the X10 library files:
#include "x10.h"
#include "x10constants.h"
 
 
#define zcPin 2 // the zero crossing detect pin
#define dataPin 4 // the X10 data out pin
#define repeatTimes 1 // how many times each X10 message should repeat
// in an electrically noisy environment, you can set this higher.
 
// set up a new x10 library instance:
x10 myHouse = x10(zcPin, dataPin);
 
void setup() {
  // begin serial:
  Serial.begin(dataRate);
  // Turn off all lights:
  myHouse.write(HOUSE_A, ALL_UNITS_OFF,repeatTimes);
}
 
void loop() {
  // Turn on first module:
  myHouse.write(HOUSE_A, UNIT_2,repeatTimes);
  myHouse.write(HOUSE_A, ON,repeatTimes);
  // Turn off second module:
  myHouse.write(HOUSE_A, UNIT_4,repeatTimes);
  myHouse.write(HOUSE_A, OFF,repeatTimes);
  delay(5000);
  // Turn off first module:
  myHouse.write(HOUSE_A, UNIT_2,repeatTimes);
  myHouse.write(HOUSE_A, OFF,repeatTimes);
  // turn on second module:
  myHouse.write(HOUSE_A, UNIT_4,repeatTimes);
  myHouse.write(HOUSE_A, ON,repeatTimes);
  delay(5000);
}


Во второй части — Преобразование голоса в текст

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.