Голосовое управление посредством Arduino

Голосовое управление посредством Arduino

Как иногда хочется, приходя домой с работы или магазина, усталому или попросту, если заняты руки, – скомандовать «Свет!» или «Включить чайник», ну или «Поставить музыку». И запрошенные действия выполнятся. Так как у среднего класса давно уже нет живых слуг, остается надеяться в подобных ситуациях только на технику. Можно использовать голосовое управление посредством Ардуино.

Как работает управление голосом?

Управление голосом с помощью смартфона
Управление голосом с помощью смартфона

Сама схема достаточно проста, ее основой служит микроконтроллер Arduino, который и будет обрабатывать сигнал от сенсора, производя в зависимости от поступившей команды, посредством исполняющей части, необходимое действие. Выбор именно его – ориентированность и модульность. Он наиболее полно вписывается в понятие «умный дом», позволяя расширять свои возможности практически безграничным количеством внешних модулей, удобной системой программирования и интерфейсным взаимодействием с компьютером.

С основой разобрались, осталось выбрать принцип функционирования самого распознавания голоса, а соответственно и вид сенсора. Их несколько:

  • использовать связь с online – службами обработки голоса, наподобие Google или Yandex, с последующей реакцией контроллера на переданные результаты, причем в таком случае будет использоваться более «умное» устройство – посредник, компьютер или смартфон;
    Пример взаимодействия с сервисом Google
    Пример взаимодействия с сервисом Google
  • распознавание голосовых фонем силами самого микроконтроллера;
  • обработка звуковых сигналов дополнительным модулем, подключаемым к Arduino.

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

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

Что такое Arduino и для чего оно нужно?

Немного о контроллере «Arduino». В своей основе это специализированный компьютер, размещенный на чипе, который в свою очередь смонтирован на плате с удобным подключением внешних устройств, сенсоров и интерфейсной части.

Основное предназначение Arduino — создание достаточно сложного высокоинтеллектуального оборудования силами непрофессионалов. Микроконтроллер в таких системах выполняет функцию обработки поступающих сигналов от сенсоров, разбор управляющих последовательностей, приходящих через интерфейсы и контролирующим узлом для подключаемых устройств.

Arduino UNO лицом
Arduino UNO лицом

Скорость работы процессора в такой системе относительно невелика, и редко в топовых модификациях превышает 16Мгц. Основное преимущество компоновки – на едином кристалле расположены все части полнофункционального компьютера: постоянная, перезаписываемая (flash) и оперативная память, контроллер ввода–вывода и сам процессор.

Инструкция по настройке голосового управления с помощью Arduino

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

Полностью схема в сборе
Полностью схема в сборе

Инструменты и материалы

Для сборки системы управления голосом необходимо следующее:

  • сама плата микроконтроллера Arduino UNO;
  • мини – схема HC-05, на которой разведен модуль связи bluetooth для ардуино;
  • три резистора на 300-350 Ом;
  • светодиоды разных цветов – 3 шт.;
  • смартфон.

Порядок подключения комплектующих

Вначале необходимо подключить модульную плату, обеспечивающую связь по bluetooth, к ардуино. Контакт RXD от HC-05 присоединяем к клемме TXD контроллера, аналогичную модуля, с RXD Arduino. То есть, производим перекрестное подключение разъемов. Питание +3.3В и GND на сборке bluetooth подводится к аналогичным на плате контроллера.

Схема подключения HC-05 к Arduino UNO
Схема подключения HC-05 к Arduino UNO

Далее, подключаем исполнительный блок, управление голосом которым и будет осуществляться через ардуино. Общий контакт «земли» (GND) диодов соединяем с таким же на центральной плате. Потом каждый из светодиодов, второй ножкой, через резистор на 330 Ом с выходными цифровыми каналами контроллера (2-4).

Присоединение светодиодов
Присоединение светодиодов

Настройка параметров

Следующий скетч, основу контролирующей системы, необходимо загрузить в сам микроконтроллер:

#INCLUDE ‘SoftwareSerial.h’ //возможно понадобится заменить одинарные кавычки ‘ на «<» и «>»

SOFTWARESERIAL BLU ( 0, 1 );

STRING VOICELONG;

INT GLED = 2; //Присоединен к контакту #2

INT YLED = 3; //Присоединен к контакту #3

INT RLED = 4; //Присоединен к контакту #4

VOID ALLON ( )

{

DIGITALWRITE ( RLED, HIGH );

DIGITALWRITE ( YLED, HIGH );

DIGITALWRITE ( GLED, HIGH );

}

VOID ALLOFF ( )

{

DIGITALWRITE ( RLED, LOW );

DIGITALWRITE ( YLED, LOW );

DIGITALWRITE ( GLED, LOW );

}

VOID SETUP ( )

{

SERIAL.BEGIN ( 9600 );

BLU.BEGIN ( 9600 );

PINMODE ( RLED, OUTPUT );

PINMODE ( YLED, OUTPUT );

PINMODE ( GLED, OUTPUT );

}

VOID LOOP ( )

{

WHILE ( SERIAL.AVAILABLE ( ) ) //Цикл чтения сигналов с bluetooth

{

DELAY ( 10 ); //Период ожидания чтения

CHAR A = SERIAL.READ ( ); //Читать из порта символ

IF ( A == ‘#’ )

{

BREAK; //Выйти из цикла, если обнаружено «#»

}

VOICELONG += A;

}

IF ( VOICELONG.LENGTH ( ) > 0 )

{

IF ( VOICE == «*POWER ON ALL LED» )

{

ALLON ( );

}

ELSE IF ( VOICE == «*POWER OFF ALL LED» )

{

ALLOFF ( );

}

ELSE IF ( VOICE == «*POWER ON RED» )

{

DIGITALWRITE ( RLED, HIGH );

}

ELSE IF ( VOICE == «*POWER ON YELLOW»)

{

DIGITALWRITE ( YLED, HIGH );

}

ELSE IF ( VOICE == «*POWER ON GREEN» )

{

DIGITALWRITE ( GLED, HIGH );

}

ELSE IF ( VOICE == «*POWER OFF RED» )

{

DIGITALWRITE ( RLED, LOW );

}

ELSE IF ( VOICE == «*POWER OFF YELLOW»)

{

DIGITALWRITE ( YLED, LOW );

}

ELSE IF ( VOICE == «*POWER OFF GREEN»)

{

DIGITALWRITE ( GLED, LOW );

}

VOICELONG=»»; //Сбросить переменную

          }

}
Сама диалоговая часть с пользователем – приложение на смартфоне. Его можно найти в гугл-маркет по «BT VOICE CONTROL для ARDUINO» (BT VOICE CONTROL FOR ARDUINO) от SIMPLELABSIN.

BT VOICE CONTROL для ARDUINO

Коммуникация сделанной схемы и смартфона производится при поданном на нее питании и выборе в меню программы BT Voice Control (верхний правый угол) «подключить робота». Откроется окно со списком коммуникационного оборудования – в нем нужно найти и выбрать HC-05.

Вот и все. Можно работать. Команды используются те, которые прописаны в коде скетча. К примеру, сказанное голосом «POWER ON GREEN» – включит зеленый светодиод.

Особенности настройки Arduino для голосового управления

Так как мы русскоязычные, команды, отдаваемые на иностранном языке – не очень хорошая идея, даже для демонстрации. Можно заменить их на латиницу, где русский звук пишется английскими литерами. К примеру, если строку скетча

Else if (voice == «*power on yellow»)

заменить на

Else if (voice == «*vkluchit geltuy»)

то можно будет использовать голосовую команду «включить желтый». К сожалению, звучание латинского алфавита немного отличается от русского, поэтому тут нужно поэкспериментировать.

Загрузка ...
future2day.ru