EasyVR Shield 3.0 управление реле голосом

layonel
Offline
Зарегистрирован: 29.01.2016

Нароод помогите не много разобраться написал скетч для голосового управления реле

Управляется через 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
    {
        // Ошибка распознавания или таймаут
    }
}

 

layonel
Offline
Зарегистрирован: 29.01.2016

Если можно помогите впринцепе разобраться в коде 

может его как то упростить для такой задачи просто блин реально инфы в инете мало я если честно даже по командам не все сам понимаю что написал!