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 { // Ошибка распознавания или таймаут } }
Если можно помогите впринцепе разобраться в коде
может его как то упростить для такой задачи просто блин реально инфы в инете мало я если честно даже по командам не все сам понимаю что написал!