Андрей Смирнов
Время чтения: ~20 мин.
Просмотров: 0

Обзор приложений для удаленного управления arduino

Шаг 2. Отметить и просверлить отверстия

После того как трубы отрезаны, отметьте по 3 см с каждого конца, где нужно сверлить отверстия. Убедитесь, что ваши отметки совпадают друг с другом, чтобы отверстия (и винты) проходили прямо, перпендикулярно поверхности вашего монтажного материала. Сделайте пометки или насечки на трубах, куда ставить сверло.

Просверлите отверстия, достаточно большие, чтобы туда вошли винты и втулки. Втулки на 0,95 см лучше всего подходят для этих винтов, поэтому используйте сверло такого размера. Внутренний диаметр прокладок составляет 0,63 см, они плотно прилегают к винтам. Отверстия должны проходить через переднюю и заднюю часть сверху и снизу каждой трубы.

очень классная песенка – и такое бывает

Характеристики

  • Модуль: ESP-12 (ESP8266)
  • Тактовая частота: 80 МГц, 160 МГц
  • Объём Flash-памяти: 2 МБ
  • Беспроводной интерфейс: Wi-Fi 802.11 b/g/n 2,4 ГГц
  • Режимы работы:
    • Клиент (STA)
    • Точка доступа (AP)
    • Клиент + Точка доступа (STA + AP)
  • Портов ввода-вывода всего: 10
  • Портов с АЦП: 8
  • Разрядность АЦП: 10 бит
  • Портов с ШИМ (Программный): 10
  • Разрядность ШИМ: по умолчанию 10 бит
  • Аппаратных интерфейсов SPI: 1
  • Программных интерфейсов I²C / TWI: 1
  • Аппаратных интерфейсов UART / Serial: 2
  • Номинальное рабочее напряжение: 3,3 В
  • Максимальный ток с шины 3.3V: 1 А (включая питание микроконтроллера)
  • Максимальный ток с пина или на пин: 12 мА
  • Габариты: 50,8×50,8 мм

Видео мастер-класс: как сделать свадебную арку своими руками

Оформление этого атрибута торжественного мероприятия своими руками – интересное и приятное занятие. Вы можете использовать варианты украшения, представленные выше, или взять интересные идеи из видео-материалов. Смотрите два великолепных способа декорирования арки для молодоженов своими руками:

Управление устройствами с помощью хлопков

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

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

Схема соединений

Схема соединений в этом проекте очень проста.

Предупреждение:
Данная схема взаимодействует с ВЫСОКИМ переменным напряжением сети 220 В. Неправильное подключение или использование может привести к серьезным травмам или смерти. Поэтому данный проект предназначен для людей, имеющих опыт работы и знающих о мерах техники безопасности при работе с высоким переменным напряжением.

Сначала необходимо подать питание на датчик и модуль реле. Подключите их выводы VCC к выводу 5V на Arduino, и выводы GND к выводу GND на Arduino.

Затем подключите выходной вывод (OUT) звукового датчика к цифровому выводу 7 на Arduino, а управляющий вывод (IN) на модуле реле к цифровому выводу 8 Arduino.

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

Схема соединений показана на следующем рисунке.

Рисунок 7 – Схема подключения датчика звука и модуля реле к плате Arduino

Код Arduino

Ниже приведен скетч для управления устройствами с помощью хлопков.

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

Объяснение

Если вы сравните этот скетч с предыдущим, вы заметите много общего, кроме нескольких вещей.

В начале мы объявляем вывод Arduino, к которому подключен вывод управления реле (IN). Мы также определили новую переменную для хранения состояния реле.

В функции мы настраиваем вывод как выходной.

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

Шаг 5: Код

Код для нашего проекта ниже.

#include 'SoftwareSerial.h' //Replace (' ') with (< >)
SoftwareSerial BLU(0,1);
String voice;
int Green = 4; //Connect To Pin #4
int Yellow = 2; //Connect To Pin #2
int Red = 3; //Connect To Pin #3
void allon()
{
digitalWrite(Red, HIGH);
digitalWrite(Yellow, HIGH);
digitalWrite(Green, HIGH);
}
void alloff()
{
digitalWrite(Red, LOW);
digitalWrite(Yellow, LOW);
digitalWrite(Green, LOW);
}
void setup() 
{
Serial.begin(9600);
BLU.begin(9600);
pinMode(Red, OUTPUT);
pinMode(Yellow, OUTPUT);
pinMode(Green, OUTPUT);
}
void loop() 
{
while (Serial.available()) //Check if there is an available byte to read
{ delay(10); //Delay added to make thing stable
char c = Serial.read(); //Conduct a serial read
if (c == '#')
{
break; //Exit the loop when the # is detected after the word
}
voice += c;
}
if (voice.length() > 0)
{
if(voice == "*turn on all LED")
{
allon();
}
else if(voice == "*turn off all LED")
{
alloff();
}
else if(voice == "*switch on red")
{
digitalWrite(Red,HIGH);
}
else if(voice == "*switch on yellow")
{
digitalWrite(Yellow,HIGH);
}
else if(voice == "*switch on green")
{
digitalWrite(Green,HIGH);
}
else if(voice == "*switch off red")
{
digitalWrite(Red,LOW);
}
else if(voice == "*switch off yellow")
{
digitalWrite(Yellow,LOW);
}
else if(voice == "*switch off green")
{
digitalWrite(Green,LOW);
}
voice=""; //Reset variable
}
}

Ресурсы

  • Wi-Fi Slot в магазине.
  • Методы и функции на языке JavaScript через Espruino IDE (Rus)

  • Datasheet на плату-модуль ESP-12

  • Datasheet на чип ESP8266EX

  • Datasheet на USB-UART преобразователь

  • Datasheet на понижающий DC-DC преобразователь

  • Datasheet на аналоговый мультиплексор

  • Datasheet на селектор выбора канала АЦП

  • Программа для перепрошивки модуля ESP-12

  • Архив для Arduino IDE

  • Прошивка Espruino v2.01 для WiFi Slot

Преимущества и недостатки

Управление голосом имеет следующие преимущества:

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

Amazon Echo — система голосового управления для Умного дома

Комплекс с голосовым управлением имеет и недостатки, среди которых:

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

Ардуино и Андроид

Кто не хочет избавиться от этих громоздких кнопок и запутанных проводов во время работы над проектами?

Удаленное управление платами Arduino через приложение Android возможно благодаря графическому интерфейсу пользователя (GUI).

Созданная в 2003 году платформа Arduino быстро попала на глаза сообществам с открытым исходным кодом и любителям радиоэлектроники из-за её низкой цены, тонн онлайн-учебников и многомиллионного поддерживающего сообщества.

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

Следующим шагом стало развитие контроля плат из любой точки Мира.

Смотрите также

  • Балафон
  • Глокеншпиль
  • Джал таранг
  • Колинтанг
  • Ламеллофон
  • Литофон
  • Маримба
  • Паттала
  • Металлофон
  • Музыкальные камни Скиддо
  • Тонгофон
  • Вибрафон
  • Музыка Мозамбика
  • Музыка Замбии
  • Музыка Бурунди

Преимущества и недостатки

Все в нашем мире имеет свои плюсы и минусы, и датчики имеют свои преимущества и недостатки. К положительным качествам можно отнести:

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

Также свет выключается не сразу, а через определенный промежуток времени. Это позволяет пройти нужные комнаты и не оказаться в полной темноте.

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

Шаг 6. Приложение для Андроид-устройств

В этом уроке мы не будем касаться создания приложений для устройств на основе Андроида. Вы можете скачать приложение на GitHub.

Как использовать приложение?

После того как мы подключились через Bluetooth — нам нужно скачать и установить приложение, которое при помощи смартфона будет управлять нашим светодиодом на расстоянии. Скачать приложение вы можете бесплатно на сайте Амазон.ком. Подсоединяем смартфон к модулю Bluetooth HC 05/06:

  1. Включите модуль HC 05/0
  2. Ищем устройство
  3. Соединяемся с HC 05/06 введя дефолтный пароль «1234» или «0000» (четыре нуля).

После этого мы устанавливаем приложение на наш смартфон. Открываем его. Выбираем устройство — выбираем модуль Bluetooth  из списка (HC 05/06). После успешного подключения нажмите кнопку ON для включения светодиода и кнопку OFF, чтобы выключить светодиод. Потом уже можно нажать кнопку «Отключить», чтобы отключиться от модуля Bluetooth.

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

Шаг 3. Подключаем и настраиваем шаговый мотор

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

Первая кнопка справа активирует двигатель для вращения в определенном направлении (вы можете изменить это в коде ниже). Нажмите кнопку 4 раза и она вернется в исходное положение, так как она будет вращаться на 90 градусов во время каждого нажатия. Средняя кнопка блокирует цепь так, чтобы первая кнопка не могла активировать двигатель.

Светодиод включается, когда двигатель заблокирован. Последняя кнопка вернет двигатель в исходное положение независимо от того, где он находится, в момент нажатия.

Вакансии

Программирование аппаратно-программных средств arduino, разработка чертежей в SolidWorks.

int pin={2,3,4,5,6,7,8,9};
int steps[] = 
{
{HIGH,HIGH,LOW,LOW},
{HIGH,LOW,LOW,HIGH},
{LOW,LOW,HIGH,HIGH},
{LOW,HIGH,HIGH,LOW},
} ;

int numofroun=1; //Change accordingly to your needs

int current=1;
int type=3;
int place=0;

int lastLockState = LOW;   
long lastLockTime = 0;
int LockState;
int Lockreading;
bool lock=true;

int lastPauseState = LOW;   
long lastPauseTime = 0;
int PauseState;
int Pausereading;
bool Pauseled=false;
bool pause=false;

int lastReturnState = LOW;   
long lastReturnTime = 0;
int ReturnState;
int Returnreading;

void setup() {
for (int num=0; num<5; num++) pinMode(pin,OUTPUT);
for (int num=5; num<8; num++) pinMode(pin,INPUT);
}

void reset(){
for(int num=0;num<4;num++) digitalWrite(pin,LOW);
}

void stepper()
{
for (int num=0; num<4;num++) { digitalWrite(pin,steps);} if(type==0) {++place;} if(type==3) {--place;} delay(2); } void button1() { Lockreading = digitalRead(pin); if (Lockreading != lastLockState) { lastLockTime = millis(); } if ((millis() - lastLockTime) > 50)
{
if (Lockreading != LockState) {
LockState = Lockreading;
if (LockState == HIGH) {
lock=false;        
if ((place!=1536*numofroun)&&(place!=1024*numofroun)&&(place!=512*numofroun)) {type=abs(type-3);}
}
}
}
lastLockState = Lockreading;
}

void button2()
{
Pausereading = digitalRead(pin);
if (Pausereading != lastPauseState) 
{
lastPauseTime = millis();
}
if ((millis() - lastPauseTime) > 50)
{
if (Pausereading != PauseState) {
PauseState = Pausereading;
if (PauseState == HIGH) {
Pauseled=!Pauseled;
pause=!pause;
if (Pauseled) {digitalWrite(pin,HIGH);}
if (!Pauseled) {digitalWrite(pin,LOW);}
}
}
}
lastPauseState = Pausereading;
}

void button3()
{
Returnreading = digitalRead(pin);
if (Returnreading != lastReturnState) 
{
lastReturnTime = millis();
}
if ((millis() - lastReturnTime) > 50)
{
if (Returnreading != ReturnState) {
ReturnState = Returnreading;
if (ReturnState == HIGH) {
type=3;
while (place>0)
{
for (int num=0; num<4;num++) { 
digitalWrite(pin,steps);}
--place;
if (current==3) {current=0;}
else ++current;
delay(2);
}
reset();
}
}
}
lastReturnState = Returnreading;
}

void loop() {
if (lock==true) {button2();button3();}
if (!pause)
{
if (lock==true) {button1();}
if (lock==false) {stepper();}
if ((place==2048)or(place==0)or(((place==1536*numofroun)or(place==1024*numofroun)or(place==512*numofroun))&&(type==3)))
{lock=true;reset();}
if (current==3) {current=0;}
else ++current;
}
}

Аппаратная и программная часть

Для того, чтобы собрать умный дом своими руками, мы будет использовать Wi-Fi модуль ESP8266. Процесс разработки на нём почти не отличается от традиционной разработки на Arduino.

Для начала нужно скачать приложение Blynk из GooglePlay или AppStore и зарегистрироваться в нём. После этого нужно создать новый проект и выбрать соответствующий микроконтроллер. Перед вами появится пустая панель, на которой можно размещать элементы управления. Это могут быть кнопки, иконки, слайдеры, индикаторы, выпадающие списки и многое другое.

После создания проекта на вашу почту придёт токен доступа. Его нужно будет указать в скетче и веб-хуках.

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

Примечание Виртуальные порты в Blynk можно представить как переменные, которые синхронизируются между устройством и сервером.

Для этого скетча в панели управления Blynk нужно добавить элемент «Button». В его настройках OUTPUT выставить V0, а режим работы переключить в Switch.

Теперь к указанному порту можно подключать реле. Если всё правильно, то при нажатии на кнопку в панели управления реле будет открываться и закрываться.

Голосовое управление светом не мешает управлению им аппаратно. К микроконтроллеру можно подключить физическую кнопку или выключатель, которые тоже будут включать и выключать свет. Если это необходимо, то изменять состояние виртуального порта можно методом . Тогда изменения будут отображаться и на панели управления.

Примечание При работе с механическими кнопками и выключателями не забывайте про дребезг контактов.

Всё работает? Тогда можете переходить к следующему этапу.

ИСТОРИЯ

Ноты детских песен: Ноты для металлофона (ксилофона, детского пианино)

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

Строй от самой низкой ноты (левая, самая большая пластинка) до самой высокой:

1 C до

2 D ре

3 E ми

4 F фа

5 G соль

6 A ля

7 H си

8 C+ до

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

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

Продолжение тут http://www.baby.ru/blogs/post/465092697-460977193/

Happy birthday to you (изменена)

112 1 4 3 112 1 5 4

118 6 443 2 776 4 5 4

CCD C F E CCD C G F

CCC+ A FFE D HHA F G F

Are you sleeping (изменена)

1 2 3 1 1 2 3 1 3 4 5 3 4 5

56543 1 56543 1 1 5 1 1 5 1

C D E C C D E C E F G E F G

GAGFE C GAGFE C C G C C G C

Jingle bells

333 333 35123

4444433 32212 5

EEE EEE EGCDE

FFFFFEE EDDCD G

Весёлые гуси

43215 5 43215 5

4664355323421 1

466435535 4321 1

FEDCG G FEDCG G

FAAFEGGEDEFDC C

FAAFEGGEG FEDC C

Во поле берёза стояла (изменена)

66665 443 2 668655443 2

3 45 443 2 3 455443 2

AAAAG FFE D AAC+AGGFFE D

E FG FFE D E FGGFFE D

Антошка

655 644 65 5316 4

655 644 65 6543 2 1 146

6765 5654 67654354 67654354

65 3 4 65 3 4 65 8 4

AGG AFF AG GECA F

AGG AFF AG AGFE D C CFA

AHAG GAGF AHAGFEGF AHAGFEGF

AG E F AG E F AG C+ F

имперский марш из звёздных войн

3 3 3 1 53 1 53

7 7 7 8 53 1 53

E E E C GE C GE

H H H C+ GE C GE

산토끼 (горный заяц)

5 33531 2 32135

8 58 5853 5 24321

G EEGEC D EDCEG

C+ GC+ GC+GE G DFEDC

곰세마리 (три медведя)

1 111 1 3 553 1

553 553 1 1 1

5 5 3 1 5 5 5

5 5 3 1 5 5 5

5 5 3 1 55565

8 5 8 5 321

C CCC C E GGE C

GGE GGE C C C

G G E C G G G

G G E C G G G

G G E C GGGAG

C+G C+G EDC

타요 opening (Тайо — начальная заставка, изменена)

115 3 115 3 6 54 3 2 3 4 2

1 5 3 1 5 3 65432 1

6 6 5 5 4 4 3 4 5 6 7 8

CCG E CCG E A GF E D E G D

C G E C G E AGFED C

A A G G F F E F G A H C+

Ёлочка (маленькой ёлочке холодно зимой)

5 335 3354321

6 865 3354321 — 2 раза

G EEG EEGFEDC

A C+AG EEGFEDC — 2 раза

Ёлочка (в лесу родилась ёлочка — изменена)

16656411166758

82277654166564

CAAGAFCCCAAHGC+

C+DDHHAGFCAAGAF

Свинка Пеппа — заставка

8 645 1 13576 4

8 645 1 13576 4

8 645 1 13574

C+ AFG C CEGHA F

C+ AFG C CEGHA F

C+ AFG C CEGHF

Каравай — краткая версия

114466551144665

552 553 552 553

114 665 5524321

CCFFAAGGCCFFAAG

GGD GGE GGD GGE

CCF AAG GGDFEDC

Каравай — полная версия (https://www.youtube.com/watch?v=34MPAkZ1Uco)

114466551144665

552 553 552 553

114 332 114 332

114 665 1144665

4411442 4424321

CCFFAAGGCCFFAAG

GGD GGE GGD GGE

CCF EED CCF EED

CCF AAG CCFFAAG

FFCCFFD FFDFEDC

Чижик-пыжик

6 4 6 4 7 6 5 1 1 1 234 4 4

6 4 6 4 7 6 5 1 1 1 234 4 4

A F A F H A G C C C DEF F F

A F A F H A G C C C DEF F F

Паровоз

1234555 1234555

444 333 2222111

444 333 2222111

5333533365433222

4222422 5432311

CDEFGGG CDEFGGG

FFF EEE DDDDCCC

FFF EEE DDDDCCC

GEEEGEEEAGFEEDDD

FDDDFDD GFEDECC

Пусть всегда будет солнце!

114 5654

114 5665

115 6785

567 456

114 5654

114 5665

115 6785

567 654

CCF GAGF

CCF GAAG

CCG AHC+G

GAH FGA

CCF GAGF

CCF GAAG

CCG AHC+G

GAH AGF

Кузнечик (изменена)

Текст: http://deti-online.com/pesni/pesni-dlya-malyshey/v-trave-sidel-kuznechik/

4 1 4 1 4 3 3 3 1 3 1 3 4 4

4 1 4 1 4 3 3 3 1 3 1 3 4

4 5 555 5 6 666 6 6 5 4 3 4 4

4 5 555 5 6 666 6 6 5 4 3 4

F C F C F E E E C E C E F F

F C F C F E E E C E C E F

F G GGG G A AAA A A G F E F F

F G GGG G A AAA A A G F E F

Чунга-чанга

1 3 5 5 5 45 6 5

8 3 2 2 2 34 5 3

1 3 5 5 5 45 6 5

8 3 2 2 2 34 5 1

5 8 7 65 6 7 6

5 6 6 55 6 6 5

5 6 6 55 6 6 5

6 7 6 765

5 8 7 65 6 7 6

5 6 6 55 6 6 5

5 6 6 55 6 6 5

4 3 2 1 1

C E G G G FG A G

C+ E D D D EF G E

C E G G G FG A G

C+ E D D D EF G C

G C+ H AG A H A

G A A GG A A G

G A A GG A A G

A H A HAG

G C+ H AG A H A

G A A GG A A G

G A A GG A A G

F E D C C

Спи, моя радость, усни

3432121 1444565

2122124 3334345

6666568 5555358

4543452 3432121

35 434 2 1

EFEDCDC CFFFGAG

DCDDCDF EEEFEFG

AAAAGAC+ GGGGEGC+

FGFEFGD EFEDCDC

EG FEF D C

Калинка

6 8 7 654 1 6 8 7 654 1

2 2354321 1 1

6 8 7 654 1 6 8 7 654 1

2 235432 8 7 6

6 5 345 345 432

665 4345 345 432

6 5 345 345 432

665 4345 345 432

A C+ HAGF C A C+ HAGF C

D DEGFEDC C C

A C+ HAGF C A C+ HAGF C

D DEGFEDC+ H A

A G EFG EFG FED

AAG FEFG EFG FED

A G EFG EFG FED

AAG FEFG EFG FED

Шаг 1. Комплектующие

Этот проект Ардуино жалюзей позволит вам автоматизировать открывание и закрывание шторок, используя только Arduino и шаговый двигатель. Благодаря этому проекту вы сможете сэкономить время на процессе открывания или закрывания жалюзей, а также сможете произвести впечатление на окружающих. Для этого урока нам понадобятся следующие детали:

1xАрдуино (использовали в уроке Arduino Nano из-за экономии места)
1xЗвуковой сенсор от Adafruit (по желанию)
1xШаговый двигатель + драйвер (сборка) Дарлингтона
3xКнопки
1xСветодиод
Провода/перемычки
1xМакетная плата

Дизайн этой системы автоматических жалюзей Ардуино довольно прост и в нём два способа активировать занавески:

  • Используя звуковой датчик (микрофон), чтобы управлять им, используя хлопки в ладоши;
  • Использование кнопок для открывания/закрывания шторок.

Как работает голосовой контроль списка холодильника

Сценарий Python начинается с импорта модуля распознавания речи, который используется для преобразования устных слов в строку. Когда модуль был импортирован, мы создаем объект «r», который является объектом распознавания речи и используется для записи звука с микрофона, а затем запрашивает преобразование. После определения объекта распознавания речи мы также определяем наши переменные, включая список элементов, команду, текущий элемент и массив, в котором содержатся анализируемые команды.

Вакансии

Программирование аппаратно-программных средств arduino, разработка чертежей в SolidWorks.

import speech_recognition as sr

r = sr.Recognizer()
items = dict()
command = ""
item = ""

При первоначальной конфигурации следующий кусок кода, который должен быть выполнен, является основным циклом. Первая задача в цикле состоит в том, чтобы сообщить пользователю говорить, напечатав слово «Speak», а затем создайте аудио-объект под названием «audio», который будет содержать наш поток с микрофона.

while(1):
    with sr.Microphone() as source:                                            
        print("Speak:")
        audio = r.listen(source)

Когда микрофон обнаружил звук и закончил запись (запись прекращается, когда уровень звука падает ниже порогового значения), он передает записанный звук в наш объект распознавателя. Поступая таким образом, r будет использовать службы Google, чтобы попытаться преобразовать аудио в предложение, которое затем передается переменной, называемой speechString. Весь этот код выполняется в блоке try/except, если звук не был понят или если услуга недоступна. Полученная строка также анализируется на prasedCommands, где разделителем является пробел. Так что, если слова «добавить бекон» будут сказаны, результатом будет то, что parsedCommands будет «добавить», а parsedCommands будет «беконом».

try:
        speechString =r.recognize_google(audio)
        parsedCommands = speechString.split(" ")
    except sr.UnknownValueError:
        print("Could not understand audio")
    except sr.RequestError as e:
        print("Could not request results; {0}".format(e))
    
if(len(parsedCommands) > 0):  
        command = parsedCommands

    if(len(parsedCommands) > 1):  
        item = parsedCommands

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

  • Если элемент уже существует и добавляется, то затем увеличиваем значение элемента
  • Если элемент не существует и добавлен, добавить элемент в список
  • Если элемент уже существует и удаляется, то вычитать 1, если сумма больше 1
  • Если элемент уже существует, указание удалить, и если остается только один элемент, удалить элемент
  • Если элемент не существует, игнорировать команду
if(command == "add"):
        if item in items:
            items = str(int(items) + 1)
        else:
            items = str(1)

        print(item + " added")

    if(command == "remove"):
        if item in items:
            if(int(items) > 1):
                items = str(int(items) - 1)
            else:
                try:
                    items.pop(item, None)
                except:
                    pass
        print(item + " removed")

Последняя команда в этом простом скрипте — это «display», который печатает содержимое элемента переменной на дисплее.

if(command == "display"):
        print(items)

SparkFun EasyVR Shield

Плата обработки голосовых команд EasyVR Shield создана для того, чтобы использовать ее в любом приложении, разработанном на платформе Arduino.

Распознавание работает без подключения к Интернет. Библиотека распознавания умеет выполнять два принципиально разных метода распознавания: T2SI (text-to-speaker-independent, «человеко-независимый», говорить текст может любой человек, любым голосом) и SD (speaker-dependent, распознается голос того, кто обучал). Можно самостоятельно запрограммировать до 32 собственных команд. Также можно реализовать авторизацию по голосовому паролю. Кроме того, можно настроить GPIO контакты модуля для управления устройствами. Для доступа ко всем функциям EasyVR Shield с Arduino можно использовать простой и надежный последовательный протокол (9600 8-N-1 по умолчанию). Модуль EasyVR может быть использован с любым интерфейсом UART при работе с напряжением 3.3 – 5 В.

Плата имеет выход на динамик и стандартный Jack 3.5″ для выхода на наушники. Через них можно настроить воспроизведение заранее записанных звуков. Плата также имеет два светодиода, один из которых программируемый. Светодиод D6 подключен к IO1. Перемычками на плате можно выбрать режим работы EasyVR модуля с Arduino Uno или Arduino Mega.

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

Особенности:

  • Множество встроенных команд, языки: Английский (США), Японский, Итальянский, Немецкий, Испанский, Французский
  • Поддержка до 32 пользовательских записанных команд (SD), триггеры (на любом языке)
  • Поддержка голосового пароля для биометрического распознавания речи
  • 3 GPIO линии, которыми можно управлять по протоколу новых команд
  • PWM аудио выход, поддерживающий 8 Ом динамик
  • Разъем для наушников
  • Программируемый LED, для отображения обратной связи
  • Звуковая функция воспроизведения
  • Интуитивное ПО для записи команд
  • Arduino библиотеки предоставляются

Комплектация:

  • EasyVR Shield
  • Микрофон

Идеи использования:

  • Голосовой контроль доступа
  • Управление выключателями
  • Замена пультов ДУ
  • Многое другое…

Как работать с платой EasyVR Sheild:

  1. Скетч, который работает на видео
  2. Коммандер для работы с EasyVR
  3. Библиотека для Arduino
  4. Руководство пользователя

Видео, показывающее функционал:

T-electronРоссия и страны СНГEASYVR3PLUSSHIELDFORARDUINO382 083 ₽Купить
ВартаРоссияEasyVR Shield — Voice Recognition ShieldSparkFunпо запросуКупить
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.

Публикации по теме

  • Новости Rohm выпускает Arduino-совместимый шилд для управления шаговыми двигателями
  • Форум микросхемы распознавания голоса,и голосовой идентификации
  • Новости LG анонсировала телефон с функцией распознавания голоса mVoice — LP5200
  • Форум Побайтовый обмен с Arduino через шилд на базе ENC28j60
  • Схемы RFID плата расширения для Arduino

Код

Скачать или скопировать код проекта вы можете ниже.

#include <avr/delay.h>
/* servo libs - Библиотека серво-привода */
#include "_Servo.h"
/* WiFi libs - Библиотека WiFi */
#include "CC3000.h"
#include "CC3000_Client.h"
#include "common.h"

Servo servo_x;
Servo servo_y;

void setup()
{
	/* код настройки */
	ConnectionInfo connection_info;
	
	// Инициализация CC3000 (конфигурируем SPI соединение)
	#ifdef CC3000_DEBUG
		Serial.begin(115200);
	#endif
	
	// Инициализация CC3000 (конфигурируем SPI соединение)
	if(!wifi.init(9)) {
		#ifdef CC3000_DEBUG
		DEBUGPRINTLN(PSTR("Initialize CC3000 FAIL! ОШИБКА!"));
		#endif
		return;
	}

	else {
		//FreeRam();
		#ifdef CC3000_DEBUG
			DEBUGPRINTLN(PSTR("Initialize CC3000 OK!"));
		#endif
	}

	if(!wifi.connect(ap_ssid, ap_security, ap_password, timeout)) 
	{
		#ifdef CC3000_DEBUG
			DEBUGPRINTLN(PSTR("Error: Could not connect to AP!"));
		#endif
	}
	
	
	// Собираем сведения о соединении и печатаем IP-адрес
	if(!wifi.getConnectionInfo(connection_info) )
	{
		#ifdef CC3000_DEBUG
		DEBUGPRINTLN(PSTR("Error: Could not obtain connection details"));
		#endif
		return;
	}
	
	else
	{
		#ifdef CC3000_DEBUG
		DEBUGPRINT(PSTR("IP Address: "));
		printIPAddr(connection_info.ip_address);
		#endif
	}

	pin_mode(SERVO_PIN_X, OUTPUT);    // declare the LED's pin as output
	pin_mode(SERVO_PIN_Y, OUTPUT);    // declare the LED's pin as output

	servo_x.attach(SERVO_PIN_X);
	servo_y.attach(SERVO_PIN_Y);

	// center servos
	servo_x.write(SERVO_CENTER_X);
	servo_y.write(SERVO_CENTER_Y);

	_delay_ms(200);
}

void loop()
{	
}
Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации