EasyVR Shield 3.0 управление реле голосом
- Войдите на сайт для отправки комментариев
Нароод помогите не много разобраться написал скетч для голосового управления реле
Управляется через Word а не Group тоесть команда записанна через QuikT2SI
на слово "Резо" стоит на испанском там полностью созвучное слово определятеся все нормально!
у меня 2 вопроса:
правильно ли вообще написан скетч потому что иногда он включается на другиие слова(РЕДКО), просто мало ли что то не так прописал! просто информации в инете русскоязычной очень мало а в нглийском я не бум бум
и второй вопрос как правильно прописать чтобы распознавание голоса работало только после нажатие кнопки
точнее так ! нажал кнопку распознавание после нажатия включается через 10 секунд, и само распознование работает 5 секунд и выключается пока опять не нажал кнопку!
помогите знающие люди пожалуцйста в инете реально инфы почти нету, а то что есть не к теме тоесть там через группы работает(а мне нужно чтобы любой человек мог говорить)!
вот скетч
#include <EasyVR.h>
EasyVR easyvr(Serial);
int LED = 10;
enum
{
Word_MAIN = 5,
};
enum
{
W1_RESO = 0,
};
enum
{
LED_RESO,
};
void setup(void)
{
pinMode(10, OUTPUT);
Serial.begin(9600);
while(!easyvr.detect()) delay(1000);
easyvr.setTimeout(5);
easyvr.setLanguage(EasyVR::ITALIAN);
}
void action(int8_t group, int8_t idx)
{
switch (group)
{
case Word_MAIN:
switch (idx)
{
case W1_RESO:
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
}
}
}
void loop(void)
{
int8_t idx;
// Запускаем процедуру распознавания
easyvr.recognizeWord(5);
// Ожидаем окончание процесса
while(!easyvr.hasFinished());
delay(500);
// Получаем код распознанной команды
idx = easyvr.getWord();
if(idx >= 0)
{
// Выполним действие по команде
action(Word_MAIN, idx);
}
else
{
// Ошибка распознавания или таймаут
}
}
Если можно помогите впринцепе разобраться в коде
может его как то упростить для такой задачи просто блин реально инфы в инете мало я если честно даже по командам не все сам понимаю что написал!