![]() |
![]() |
#11 |
Junior Member
Регистрация: 04.03.2014
Сообщений: 23
Вес репутации: 0 ![]() |
![]()
А как ето?
Мжет у кого есть простой скетч для проверки спаривания етих двух плат ? Тоесть на одну команду. Ато както надо проверить почему EasyVR not detected! Может в скетче косяк. Он под Iteaduino V2.2 (ATmega 328) а у меня arduino mega 2560. #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" #define SND_AUDIO_1 1 #define SND_AUDIO_2 2 #define SND_AUDIO_3 3 #define SND_AUDIO_4 4 EasyVR easyvr(port); EasyVRBridge bridge; uint32_t mask = 0; int8_t group = 0; uint8_t train = 0; char name[32]; void setup() { // bridge mode? if (bridge.check()) { cli(); bridge.loop(0, 1, 12, 13); } Serial.begin(9600); port.begin(9600); pinMode(2, OUTPUT); if (!easyvr.detect()) { Serial.println("EasyVR not detected!"); for (; ![]() } easyvr.setPinOutput(EasyVR::IO1, LOW); Serial.println("EasyVR detected!"); easyvr.setTimeout(5); easyvr.setLanguage(EasyVR::ITALIAN); int16_t count = 0; if (easyvr.getGroupMask(mask)) // get trained user names and passwords { uint32_t msk = mask; for (group = 0; group <= EasyVR::PASSWORD; ++group, msk >>= 1) { if (!(msk & 1)) continue; if (group == EasyVR::TRIGGER) Serial.print("Trigger: "); else if (group == EasyVR::PASSWORD) Serial.print("Password: "); else { Serial.print("Group "); Serial.print(group); Serial.print(": "); } count = easyvr.getCommandCount(group); Serial.println(count); for (int8_t idx = 0; idx < count; ++idx) { if (easyvr.dumpCommand(group, idx, name, train)) { Serial.print(idx); Serial.print(" = "); Serial.print(name); Serial.print(", Trained "); Serial.print(train, DEC); if (!easyvr.isConflict()) Serial.println(" times, OK"); else { int8_t confl = easyvr.getWord(); if (confl >= 0) Serial.print(" times, Similar to Word "); else { confl = easyvr.getCommand(); Serial.print(" times, Similar to Command "); } Serial.println(confl); } } } } } easyvr.setLevel(EasyVR::HARDER); easyvr.playSound(SND_AUDIO_1, EasyVR::VOL_FULL); digitalWrite(2, LOW); } void loop() { int idx_cmd; int idx_cmd2; int idx_pwd; Serial.println("Say a name computer"); easyvr.recognizeCommand(1); // recognise command in group 1 while (!easyvr.hasFinished()); // wait for user name idx_cmd = easyvr.getCommand(); // get recognised user name if (idx_cmd >= 0) { Serial.print("Name: "); if (easyvr.dumpCommand(1, idx_cmd, name, train)) Serial.println(name); else Serial.println(); easyvr.playSound(SND_AUDIO_3 , EasyVR::VOL_FULL); // ask a command Serial.println("Say the command"); easyvr.recognizeCommand(2); // set group 2 while (!easyvr.hasFinished()); // wait command idx_cmd2 = easyvr.getCommand(); if (idx_cmd2 == 0) { Serial.println("On"); easyvr.recognizeCommand(3); // set group 3 while (!easyvr.hasFinished()); // wait command idx_pwd = easyvr.getCommand(); if (idx_pwd == 0) { Serial.println("Light"); easyvr.playSound(SND_AUDIO_4 , EasyVR::VOL_FULL); digitalWrite(2, HIGH); } else Serial.println(); } if (idx_cmd2 == 1) // { Serial.println("Off"); easyvr.recognizeCommand(3); // set group 3 while (!easyvr.hasFinished()); // wait command idx_pwd = easyvr.getCommand(); if (idx_pwd == 0) { Serial.println("Ligh off"); easyvr.playSound(SND_AUDIO_4 , EasyVR::VOL_FULL); digitalWrite(2, LOW); } } int16_t err = easyvr.getError(); if (easyvr.isTimeout() || (err >= 0)) // { Serial.println("Error, try again..."); easyvr.playSound(SND_AUDIO_2 , EasyVR::VOL_FULL); } else { if (easyvr.isTimeout()) Serial.println("Timed out, try again..."); int16_t err = easyvr.getError(); if (err >= 0) { Serial.print("Error "); Serial.println(err, HEX); } } } } Может у кого есть скетч под мою дуину...... буду благодарен. Последний раз редактировалось palagnyukvovan; 05.03.2014 в 16:20. |
![]() |
![]() |
![]() |
#12 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Ваш скетч можно сгенерировать в программе commander
|
![]() |
![]() |
![]() |
#13 |
Junior Member
Регистрация: 04.03.2014
Сообщений: 23
Вес репутации: 0 ![]() |
![]()
Сгенерировал!
Вот что получилось: Прикрепил файл. Что дальше #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_COMPUTER = 0, }; enum Group2 { G2_ON = 0, G2_OFF = 1, }; enum Group3 { G3_LIGHT = 0, }; EasyVRBridge bridge; int8_t group, idx; void setup() { // 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_COMPUTER: // 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; } 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; } } Последний раз редактировалось palagnyukvovan; 06.03.2014 в 10:30. |
![]() |
![]() |
![]() |
#14 |
Junior Member
Регистрация: 04.03.2014
Сообщений: 23
Вес репутации: 0 ![]() |
![]()
Скетч не подходит.
Опредтлил так: В коде удалил ! в строке if (!easyvr.detect()) на так if (easyvr.detect()) (весь код кидать нет смысла) После етого при включении произносит "Ева активирована" после чего в мониторе видает EasyVR detected! потом "Say a name computer" и стоит, на голос реакции нет. Помогите поправить скетч под мой камень ![]() |
![]() |
![]() |
![]() |
#15 |
Junior Member
Регистрация: 04.03.2014
Сообщений: 23
Вес репутации: 0 ![]() |
![]()
Вот моя EasyVR http://arduino-ua.com/prod343-EasyVR...navatel_golosa
http://arduino-ua.com/products_pictu...syVRshield.jpg Вот моя дуина http://arduino.cc/en/Main/ArduinoBoardMega2560 http://arduino.cc/en/uploads/Main/Ar..._R3_Fronte.jpg Последний раз редактировалось palagnyukvovan; 08.03.2014 в 23:51. |
![]() |
![]() |
![]() |
#16 |
Junior Member
Регистрация: 04.03.2014
Сообщений: 23
Вес репутации: 0 ![]() |
![]()
Может кто работал с таким шилдом. Подскажите.
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Регистрация: 25.11.2013
Сообщений: 116
Вес репутации: 0 ![]() |
![]()
Я работал.
Скетч созданный в программе у меня заработал сразу |
![]() |
![]() |
![]() |
#18 |
Junior Member
Регистрация: 04.03.2014
Сообщений: 23
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
Здесь присутствуют: 4 (пользователей: 0 , гостей: 4) | |
|
|