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

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

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

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

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

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

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

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

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

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

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

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

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

Далее, подключаем исполнительный блок, управление голосом которым и будет осуществляться через ардуино. Общий контакт «земли» (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 (верхний правый угол) «подключить робота». Откроется окно со списком коммуникационного оборудования – в нем нужно найти и выбрать HC-05.

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

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

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

Else if (voice == *power on yellow)

заменить на

Else if (voice == *vkluchit geltuy)

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

Оцените статью
Все о технологиях, мобильных приложениях и тарифах на связь