|
21.02.2014, 14:03 | #1 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Голосовое управление нагрузками
Теперь в сгенерированом скетче вставляем свой код, который должен исполняться, вставлять туда где выделил красным
Для начала вставьте digitalWrite(13, ххх); case G1_COMRUTER: // write your action code here // group = GROUP_X; <-- or jump to another group X for composite commands break; } break; case GROUP_2: switch (idx) { case G2_ON: // write your action code here // group = GROUP_X; <-- or jump to another group X for composite commands break; case G2_OFF: // write your action code here // group = GROUP_X; <-- or jump to another group X for composite commands break; } Вот Вам готовый пример который должен включать и выключать светодиод D13 По команде G2_ON включит и выключит по команде G2_OFF Код:
#if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #include "SoftwareSerial.h" SoftwareSerial port(12,13); #else // Arduino 0022 - use modified NewSoftSerial #include "WProgram.h" #include "NewSoftSerial.h" NewSoftSerial port(12,13); #endif #include "EasyVR.h" EasyVR easyvr(port); //Groups and Commands enum Groups { GROUP_1 = 1, GROUP_2 = 2, GROUP_3 = 3, }; enum Group1 { G1_COMRUTER = 0, }; enum Group2 { G2_ON = 0, G2_OFF = 1, }; enum Group3 { G3_LIGHT = 0, }; EasyVRBridge bridge; int8_t group, idx; void setup() { pinMode(13, OUTPUT); // bridge mode? if (bridge.check()) { cli(); bridge.loop(0, 1, 12, 13); } // run normally Serial.begin(9600); port.begin(9600); if (!easyvr.detect()) { Serial.println("EasyVR not detected!"); for (;;); } easyvr.setPinOutput(EasyVR::IO1, LOW); Serial.println("EasyVR detected!"); easyvr.setTimeout(5); easyvr.setLanguage(0); group = EasyVR::TRIGGER; //<-- start group (customize) } void action(); void loop() { easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening) Serial.print("Say a command in Group "); Serial.println(group); easyvr.recognizeCommand(group); do { // can do some processing while waiting for a spoken command } while (!easyvr.hasFinished()); easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off idx = easyvr.getWord(); if (idx >= 0) { // built-in trigger (ROBOT) // group = GROUP_X; <-- jump to another group X return; } idx = easyvr.getCommand(); if (idx >= 0) { // print debug message uint8_t train = 0; char name[32]; Serial.print("Command: "); Serial.print(idx); if (easyvr.dumpCommand(group, idx, name, train)) { Serial.print(" = "); Serial.println(name); } else Serial.println(); easyvr.playSound(0, EasyVR::VOL_FULL); // perform some action action(); } else // errors or timeout { if (easyvr.isTimeout()) Serial.println("Timed out, try again..."); int16_t err = easyvr.getError(); if (err >= 0) { Serial.print("Error "); Serial.println(err, HEX); } } } void action() { switch (group) { case GROUP_1: switch (idx) { case G1_COMRUTER: // write your action code here // group = GROUP_X; <-- or jump to another group X for composite commands break; } break; case GROUP_2: switch (idx) { case G2_ON: digitalWrite(13, HIGH); break; case G2_OFF: digitalWrite(13, LOW); break; } break; case GROUP_3: switch (idx) { case G3_LIGHT: // write your action code here // group = GROUP_X; <-- or jump to another group X for composite commands break; } break; } } |
21.02.2014, 14:48 | #2 |
Member
Регистрация: 19.02.2014
Сообщений: 40
Вес репутации: 0 |
Re: Голосовое управление нагрузками
Скажите а чтоб получать ответы на команды нужно в скетче прописывать или в командере можно както сгенерировать. Audio залиты с сылки.
|
21.02.2014, 15:29 | #3 |
Member
Регистрация: 19.02.2014
Сообщений: 40
Вес репутации: 0 |
Re: Голосовое управление нагрузками
Скажите а синий диод (L) должен постоянно гореть на плате после заливки скетча с вашим примером? Или чтото не так?
|
21.02.2014, 15:44 | #4 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Голосовое управление нагрузками
А если голосовые команды выполнять, он не выключается?
|
21.02.2014, 15:42 | #5 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Голосовое управление нагрузками
Цитата:
|
|
21.02.2014, 15:49 | #6 |
Member
Регистрация: 19.02.2014
Сообщений: 40
Вес репутации: 0 |
Re: Голосовое управление нагрузками
Нет
|
21.02.2014, 15:50 | #7 |
Member
Регистрация: 19.02.2014
Сообщений: 40
Вес репутации: 0 |
Re: Голосовое управление нагрузками
Саму плату не надо переводить. Я перемычку установил в штатноен место
|
21.02.2014, 15:52 | #8 |
Member
Регистрация: 19.02.2014
Сообщений: 40
Вес репутации: 0 |
Re: Голосовое управление нагрузками
Да, и диод переодически моргает сам по себе.
|
21.02.2014, 15:56 | #9 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Голосовое управление нагрузками
Что за перемычка?
|
21.02.2014, 16:00 | #10 |
Member
Регистрация: 19.02.2014
Сообщений: 40
Вес репутации: 0 |
Re: Голосовое управление нагрузками
Которая рядом с кнопкой reset carduino nano v7. Я ее убираю когда соединяюсь с easyvr. Потом ставлю обратно перед заливкой скетча.
|
Здесь присутствуют: 10 (пользователей: 0 , гостей: 10) | |
|
|