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

В этих статьях — Часть1, Часть 2, Часть 3 и Часть 4 я рассматривал голосовое управление приборами X10 через ROS. Добавим к данной системе будильник с голосовым оповещением.

Задача ставилась следующая — для каждой записи будильника установить:

время срабатывания
количество повторений срабатывания и интервал
дни недели для данного будильника
действия по срабатыванию будильника, пока такие:
голосовое оповещение
запуск короткого музыкального файла (рингтона)
отправка команд для управления приборами x10


( Читать дальше )

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

Продолжение. Начало — Часть1, Часть 2 и Часть 3

В этой части составим пошаговое руководство по запуску системы в ROS



( Читать дальше )

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

Продолжение. Начало — Часть1 и Часть 2

Далее необходимо наладить передачу между компьютером и платой Arduino через ROS.
Библиотека rosserial устанавливает соединение точка-точка (point-to-point connection) через последовательный порт с недорогими контроллерами (типа Arduino) так, что вы можно посылать сообщения ROS туда и обратно.



( Читать дальше )

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

Продолжение. Начало — Часть1

Преобразование голоса в текст

Для преобразования голоса в текст будем использовать сервис Google Speech, который предоставляет API, позволяющее использовать сервис в своих приложениях.



( Читать дальше )

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

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

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

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



( Читать дальше )

Bubot: Scout — машинка с управлением через веб интерфейс без строчки кода

Давно хотел сделать машинку с камерой, управляемую через веб-интерфейс. Предлагаю вашему вниманию видео о том, как запрограммировать такую машинку, не написав при этом ни строчки кода.



Видео сделано в продолжение обзорной статьи по фреймворку для робототехники и домашней автоматизации.

( Читать дальше )

Bubot — очень легкий фреймворк на Python 3 для программирования роботов и домашней автоматизации

Предыстория


Хотелось создать своего робота, а так же автоматизировать управление светом и климатом дома. С этой целью начал изучать имеющиеся возможности. Для себя я разделил все решения на две группы: системы в которых код на контроллере выполняется в одном главном цикле (arduino, lego и т.п.) и системы состоящие из параллельно работающих процессов обменивающихся между собой сообщениями.
Интуитивно выбрал вторую группу, так как хотелось найти максимально простое решение с дружественным пользовательским интерфейсом. Из наиболее популярных представителей этого «семейства» очень понравились Microsoft Robotics Studio и ROS. Но к сожалению, на текущий момент, привязать их к конкретному железу весьма не просто, да и разобраться в них с нуля так же весьма не тривиальная задача. В итоге принял решение писать сам, но «кодить» на C очень не хотелось, Душа просила чего-нибудь попроще и полегче. В итоге выбрал Python. А учитывая, что по мимо робота и «умного дома» в голову начало лезть куча других идей, то решил сразу сделать небольшой фреймворк, в котором основной упор был бы сделан на простоту разработки.

Концепция


Концептуально фреймворк представляет собой набор поддерживаемых пользователем модулей реализующих различные функции робототехники. При работе Bubot строит сеть из процессов, которые могут асинхронно получать и отправлять сообщения между собой. Так же вы можете построить сеть из роботов, которые будут общаться между собой.

Bubot - Схема

Сеть процессов строится на базе стандартного Python модуля multiprocessing. Система обмена сообщениями и разделяемая память реализованы при помощи Redis.

Каждый Bubot имеет встроенный веб-сервер веб-сервер Tornado, который позволяет контролировать состояние, управлять роботом, на ходу менять параметры (калибровать) робота, а также закладывается возможность обмена данными между роботами.
Bubot не является системой реального времени, хотя Bubot возможно интегрировать с кодом реального времени.


( Читать дальше )

Не дай себе засохнуть (неожиданное продолжение)... или о том, как программист создавал первое в своей жизни устройство на базе Arduino

Ранее в сериале:
Тут я рассказал, как создавал два, взаимодействующих между собой, электронных модуля, для обеспечения системы автоматического полива.
Тут я раскрыл тайны их внутреннего мира, т.е. программного обеспечения.
Тут я описал один из вариантов связи моей системы с внешним миром.

Все, в принципе, хорошо и работает, но, как всегда хочется чего то ещё большего и нового. И тут, я, задумался, как это не редко случается. А не замахнуться ли мне на самого, не побоюсь этого слова, Android-а. Т.е. поручить управление системой полива аппликации написанной под, опять же не побоюсь этого слова, Android. Да! Я даже сам себя уважать стал больше. Только вот одно «НО», как в том анекдоте: «На краю пропасти, стояла конница Будёного. И всё бы было хорошо, если бы не одно „НО!“». За всё время моей программистской практики, я, несколько раз пытался освоить программирование под этого причудливого зелёного человечка по имени Android, но, то ли Eclipse был не той системы, то ли не та библиотека использовалась в этой попытке, то ли само Android устройство не соответствовало каким то новым правилам, одним словом — полный, мягко говоря и научно выражаясь — конус.


( Читать дальше )

Робот управляемый нейронной сетью


Предисловие:
Привет всем тем, кто это читает. Я хотел бы рассказать Вам об одном своем эксперименте. Собственно описанная ниже идея не нова и наверняка приходила в голову многим людям, увлекающимся данной темой. На самом деле от простых размышлений до практической реализации прошло достаточно много времени. Начать работу мешало абсолютная уверенность в том, что в голове все работает, и вроде как реализовывать все в железе не имеет смысла. Но набравшись «смелости» и приступив к делу, все оказалось намного сложнее. На пути к достижению к цели пришлось немного повозиться. Об этом и история…


Цели эксперимента:

1) Установить возможность запуска нейронной сети на контроллере Arduino.
2) Установить пригодность ее работы в поставленных условиях.
3) Определить наилучшую топологию сети.

Для решения поставленной задачи были выбраны следующие комплектующие:

( Читать дальше )

Valli - шасси с камерой


Начну с небольшой предыстории:
Работа у меня связана с частыми командировками по России матушке и чтобы, постоянно не просить родственников посмотреть за квартирой, был сконструирован данный робот.
На данный момент реализовано управление и просмотр видео через браузер с любого устройства по средствам Internet.
Что планируется доделать в ближайшем будущем:
— получать данные с гироскопа MPU-6050 о положение робота в пространстве;
— записывать на внешний накопитель фото и видео;
— подключить 3G модем, чтоб была постоянная связь с Internetом;
— настроить библиотека компьютерного зрения OpenCV для распознавания лиц и предмеров;
— сам перемещаться по площади (квартире и тд) используя датчик Ultrasonic HC-SR04 для обьезда препядствий;
— снимать через определенное время фото (видео кадр) снимок и отправлять его на яндекс или гугл диск;
— сам подьезжать на базу для подзарядки используя ИК-локатор.

Итак, что нужно нам для сборки?

( Читать дальше )