pcbway

easyVR with arduino, Interfacing of EasyVR Shield with Arduino UNO,easyvr code for arduino,arduino code for easyvr

Hello friends, I hope you all are fine and having fun with your lives. In today’s post we are gonna see Interfacing of EasyVR with Arduino UNO. In the previous post, we have seen Getting Started with EasyVR Commander. It was quite simple and if you follow the steps carefully you wont stuck anywhere but still if you into some trouble i am here.

Now this tutorial is quite a quick and important one as it contains the real code using which we will control our robot. After adding the voice commands, now close the EasyVR Commander and open the Arduino Software. Connect the arduino board with computer and double check that your jumper J12 in on position SW. You should also read Training Error: Recognition Failed in EasyVR, if you got such error while working on EasyVR. So, let’s get started with Interfacing of EasyVR with Arduino UNO.

Interfacing of EasyVR with Arduino UNO

  • First of all, download the Arduino Libraries for EasyVR Shield, you can easily find them from the official website of EasyVR.
  • Simply connect your Arduino UNO with computer.
  • Open the Arduino Software and copy paste the below code into it.
  • Burn your code in the Arduino Board.
  • Now open your Serial Monitor of ARduino UNO, and you will first see the message saying EasyVR Detected.
  • Now speak any of the command you saved in the board on mic and you will see when the command match the serial terminal will send a specific character.
  • You can change this character if you want to by make a simple change in the code.

#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_0  = 0,
GROUP_1  = 1,
};

enum Group0
{
G0_ARDUINO = 0,
};

enum Group1
{
G1_FORWARD = 0,
G1_REVERSE = 1,
G1_LEFT = 2,
G1_RIGHT = 3,
G1_STOP = 4,

};

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(EasyVR::ENGLISH);

group = EasyVR::TRIGGER; //<– start group (customize)

pinMode(2, OUTPUT);
digitalWrite(2, LOW);    // set the LED off
pinMode(3, OUTPUT);
digitalWrite(3, LOW);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
pinMode(5, OUTPUT);
digitalWrite(5, LOW);
pinMode(6, OUTPUT);
digitalWrite(6, LOW);

}

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);
}

group = GROUP_1;
}
}

void action()
{
switch (group)
{
// case GROUP_0:
// switch (idx)
//  {
//  case G0_ARDUINO:
// write your action code here
//      group = GROUP_1; //<– or jump to another group X for composite commands
//    break;
//  }
//  break;
case GROUP_1:
switch (idx)
{
case G1_FORWARD:
Serial.print(“9”);
digitalWrite(2, HIGH);
break;
case G1_REVERSE:
Serial.print(“Q”);
digitalWrite(3,HIGH);
break;
case G1_LEFT:
Serial.print(“X”);
digitalWrite(4,HIGH);
break;
case G1_RIGHT:
Serial.print(“Y”);
digitalWrite(5,HIGH);
break;
case G1_STOP:
Serial.print(“Z”);
digitalWrite(6,HIGH);
break;
}
break;
}
}

So, that’s all for today. I hope now you can easily Interface EasyVR with Arduino UNO. Have fun and take care !!! 🙂

40 Comments

  1. Hello
    I am developing a project and need to send data EasyVR for Website, I’m using an Arduino Ethernet shield for that, you have some knowledge on this board? Can you help me?

    grateful
    Thassilo Jahn

  2. Hi,
    After following your tutorial this is what I get after uploading the sketch ( your sketch..) into the Arduino board.
    Upload perfect but serial monitor give: EasyVr not detected.. See the attache file.
    The jumper is on SW.
    Very very strange.
    Firmware is 2.0 and libraries are the most updated..
    Best Regards.
    Arnaldo

    • Your EasyVR shield is not working fine, try it again with EasyVR Commander, if its giving error with EasyVR Commander too then you need to buy a new shield but if its working fine with EasyVR Commander then there’s some problem in connection of EasyVR shield with Arduino UNO.

  3. Hey,
    there are some problem in software program code when i write my code for voice servo control by EasyVr, but i can’t detect what is the error, please any suggestion for help me what is the problem, thanks and with all my respect
    here is my code:
    #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
    #include “EasyVR.h”
    EasyVR easyvr(port);

    //Groups and Commands
    enum Groups
    {
    GROUP_0 = 0,
    GROUP_1 = 1,
    };

    enum Group0
    {
    G0_ARDUINO = 0,
    };

    enum Group1
    {

    G1_LEFT = 0,
    G1_RIGHT = 1,

    };

    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; //= 0)
    {
    // built-in trigger (ROBOT)
    // group = GROUP_X; = 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_0:
    switch (idx)
    {
    case G0_ARDUINO:
    // write your action code here
    group = GROUP_1;// <– or jump to another group X for composite commands
    break;
    }
    break;
    case GROUP_1:
    switch (idx)
    {
    // write your action code here
    // group = GROUP_X; =1; pos-=1) // goes from 180 degrees to 0 degrees
    {
    myservo.write(pos); // tell servo to go to position in variable ‘pos’
    delay(15); // waits 15ms for the servo to reach the position
    } // waits 15ms for the servo to reach the position
    }

    group = GROUP_0;

    // group = GROUP_X; <– or jump to another group X for composite commands
    break;
    case G1_RIGHT:
    // write your action code here

    //forward

    Servo myservo; // create servo object to control a servo
    // a maximum of eight servo objects can be created

    int pos = 0; // variable to store the servo position

    void setup()
    {
    myservo.attach(9); // attaches the servo on pin 9 to the servo object
    }

    void loop()
    {
    for(pos = 0; pos < 90; pos += 1) // goes from 0 degrees to 180 degrees
    { // in steps of 1 degree
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    delay(15); // waits 15ms for the servo to reach the position
    }

    }

    group = GROUP_0;

    // group = GROUP_X; <– or jump to another group X for composite commands
    break;

    }
    break;
    }
    }

    • Hi,

      Whats the problem you are facing in your project ??? Moreover, first of all try simple code of EasyVR given in the Arduino library example to test that EasyVR is working fine, then take it step by step to higher levels. If you need complete assistance on this project then add me on skype and share your project details.

      Thanks.

  4. i sir…

    i’m making project for a college assignment, and my project already done, but my lecturers asked me to make the easyvr just using the arduino uno board as Hardware serial mode.. now i just can make my project use Software serial mode, can u help me. i using arduino uno r3 and the software arduino 1.0.5.-r2, easyvr 1.0, just easyvr without sheild, i also read this:
    o HW – Hardware serial mode
    Use it for controlling the EasyVR module from your Arduino sketch through the hardware serial port
    (using pins 0-1).
    o SW – Software serial mode
    Use it for controlling the EasyVR module from your Arduino sketch through a software serial port
    (using pins 12-13). You can also connect the EasyVR Commander in this mode, provided that the
    running sketch implements bridge mode (see libraries).
    this is my arduino sketch, and work correctly… thanks

    #if defined(ARDUINO) && ARDUINO >= 100
    #include “Arduino.h”
    #include “SoftwareSerial.h”
    SoftwareSerial port(12,13);
    #endif

    #include “EasyVR.h”
    EasyVR easyvr(port);
    int a=2;
    int b=3;
    int c=4;
    int d=5;
    int aa=6;
    int bb=7;
    int cc=8;
    int dd=9;
    int ee=10;
    boolean e,f,g,h,pil=false;
    //Groups and Commands
    enum Groups
    {
    GROUP_0 = 0,
    GROUP_1 = 1,
    GROUP_2 = 2,
    };

    enum Group0
    {
    G0_AKTIFKAN = 0,
    };

    enum Group1
    {
    G1_NYALA = 0,
    G1_OFF = 1,
    };

    enum Group2
    {
    G2_TV = 0,
    G2_LAMPU = 1,
    G2_KULKAS = 2,
    G2_KIPAS = 3,
    G2_SEMUA = 4,
    };

    EasyVRBridge bridge;

    int8_t group, idx;

    void setup()
    {
    pinMode(a,OUTPUT);
    pinMode(b,OUTPUT);
    pinMode(c,OUTPUT);
    pinMode(d,OUTPUT);
    pinMode(aa,OUTPUT);
    pinMode(bb,OUTPUT);
    pinMode(cc,OUTPUT);
    pinMode(dd,OUTPUT);
    pinMode(ee,OUTPUT);
    digitalWrite(a,LOW);
    digitalWrite(b,LOW);
    digitalWrite(c,LOW);
    digitalWrite(d,LOW);
    digitalWrite(aa,LOW);
    digitalWrite(bb,LOW);
    digitalWrite(cc,LOW);
    digitalWrite(dd,LOW);
    digitalWrite(ee,LOW);

    // 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; //= 0)
    {
    // built-in trigger (ROBOT)
    // group = GROUP_X; = 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_0:

    switch (idx)
    {
    case G0_AKTIFKAN:
    // write your action code here
    digitalWrite(aa,HIGH);
    digitalWrite(bb,LOW);
    digitalWrite(cc,LOW);
    digitalWrite(dd,LOW);
    digitalWrite(ee,LOW);
    group = GROUP_2; //<– or jump to another group X for composite commands
    break;
    }
    break;
    case GROUP_1:
    switch (idx)
    {
    case G1_NYALA:
    if(e)
    {
    digitalWrite(a,HIGH);
    e=false;
    }
    if(f)
    {
    digitalWrite(b,HIGH);
    f=false;
    }
    if(g)
    {
    digitalWrite(c,HIGH);

    g=false;
    }
    if(h)
    {
    digitalWrite(d,HIGH);
    h=false;
    }
    digitalWrite(aa,LOW);
    // write your action code here
    group = GROUP_0; //<– or jump to another group X for composite commands
    break;
    case G1_OFF:
    if(e)
    {
    digitalWrite(a,LOW);
    e=false;

    }
    if(f)
    {
    digitalWrite(b,LOW);
    f=false;

    }
    if(g)
    {
    digitalWrite(c,LOW);
    g=false;

    }
    if(h)
    {
    digitalWrite(d,LOW);
    h=false;

    }
    digitalWrite(aa,LOW);
    digitalWrite(bb,LOW);
    digitalWrite(cc,LOW);
    digitalWrite(dd,LOW);
    digitalWrite(ee,LOW);

    // write your action code here
    group = GROUP_0;// <– or jump to another group X for composite commands
    break;
    }
    break;
    case GROUP_2:

    switch (idx)
    {
    case G2_TV:
    digitalWrite(bb,HIGH);

    e=true;
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;
    case G2_LAMPU:
    digitalWrite(cc,HIGH);

    f=true;
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;
    case G2_KULKAS:
    digitalWrite(dd,HIGH);

    g=true;
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;

    case G2_KIPAS:
    digitalWrite(ee,HIGH);
    h=true;
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;

    case G2_SEMUA:
    e=true;
    f=true;
    g=true;
    h=true;
    digitalWrite(bb,HIGH);
    digitalWrite(cc,HIGH);
    digitalWrite(dd,HIGH);
    digitalWrite(ee,HIGH);
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;
    }
    break;
    }
    }

    • Hi,

      Yeah its not much difficult to use hardware serial instead of software serial, I haven’t used EasyVR with hardware serial before but I dont think its much difficult. Software serial you are using in your code is named as port and you have made a loop between hardware serial and software serial, so what you need to do is to remove the sftware serial library and code and also remove this looping thing and it should work.

      If you still get into some trouble then add me on Skype “theenggprojects” and I will resolve it.

      Thanks.

  5. hi sir

    I already editing my arduino sketch, and following your instruction.. but it still using software serial at all, and i dunno whats i have to change in sketch, i already add your skype.. this my new sketch sir

    #if defined(ARDUINO) && ARDUINO >= 100
    #include “Arduino.h”
    #include “SoftwareSerial.h”
    SoftwareSerial port(12,13);
    #endif

    #include “EasyVR.h”
    EasyVR easyvr(port);
    int a=2;
    int b=3;
    int c=4;
    int d=5;
    int aa=6;
    int bb=7;
    int cc=8;
    int dd=9;
    int ee=10;
    boolean e,f,g,h,pil=false;
    //Groups and Commands
    enum Groups
    {
    GROUP_0 = 0,
    GROUP_1 = 1,
    GROUP_2 = 2,
    };

    enum Group0
    {
    G0_AKTIFKAN = 0,
    };

    enum Group1
    {
    G1_NYALA = 0,
    G1_OFF = 1,
    };

    enum Group2
    {
    G2_TV = 0,
    G2_LAMPU = 1,
    G2_KULKAS = 2,
    G2_KIPAS = 3,
    G2_SEMUA = 4,
    };

    EasyVRBridge bridge;

    int8_t group, idx;

    void setup()
    {
    pinMode(a,OUTPUT);
    pinMode(b,OUTPUT);
    pinMode(c,OUTPUT);
    pinMode(d,OUTPUT);
    pinMode(aa,OUTPUT);
    pinMode(bb,OUTPUT);
    pinMode(cc,OUTPUT);
    pinMode(dd,OUTPUT);
    pinMode(ee,OUTPUT);
    digitalWrite(a,LOW);
    digitalWrite(b,LOW);
    digitalWrite(c,LOW);
    digitalWrite(d,LOW);
    digitalWrite(aa,LOW);
    digitalWrite(bb,LOW);
    digitalWrite(cc,LOW);
    digitalWrite(dd,LOW);
    digitalWrite(ee,LOW);

    // bridge mode?
    if (bridge.check())
    {
    cli();
    bridge.loop(0, 1, 12, 13);
    }
    // run normally

    port.begin(9600);

    if (!easyvr.detect())
    {

    for (;;);
    }

    easyvr.setPinOutput(EasyVR::IO1, LOW);

    easyvr.setTimeout(5);
    easyvr.setLanguage(0);

    group = EasyVR::TRIGGER; //= 0)
    {
    // built-in trigger (ROBOT)
    // group = GROUP_X; = 0)
    {
    // print debug message
    uint8_t train = 0;
    char name[32];

    if (easyvr.dumpCommand(group, idx, name, train))
    {

    }
    else

    easyvr.playSound(0, EasyVR::VOL_FULL);
    // perform some action
    action();
    }
    else // errors or timeout
    {
    if (easyvr.isTimeout())

    int16_t err = easyvr.getError();

    }
    }

    void action()
    {
    switch (group)
    {
    case GROUP_0:

    switch (idx)
    {
    case G0_AKTIFKAN:
    // write your action code here
    digitalWrite(aa,HIGH);
    digitalWrite(bb,LOW);
    digitalWrite(cc,LOW);
    digitalWrite(dd,LOW);
    digitalWrite(ee,LOW);
    group = GROUP_2; //<– or jump to another group X for composite commands
    break;
    }
    break;
    case GROUP_1:
    switch (idx)
    {
    case G1_NYALA:
    if(e)
    {
    digitalWrite(a,HIGH);
    e=false;
    }
    if(f)
    {
    digitalWrite(b,HIGH);
    f=false;
    }
    if(g)
    {
    digitalWrite(c,HIGH);

    g=false;
    }
    if(h)
    {
    digitalWrite(d,HIGH);
    h=false;
    }
    digitalWrite(aa,LOW);
    // write your action code here
    group = GROUP_0; //<– or jump to another group X for composite commands
    break;
    case G1_OFF:
    if(e)
    {
    digitalWrite(a,LOW);
    e=false;

    }
    if(f)
    {
    digitalWrite(b,LOW);
    f=false;

    }
    if(g)
    {
    digitalWrite(c,LOW);
    g=false;

    }
    if(h)
    {
    digitalWrite(d,LOW);
    h=false;

    }
    digitalWrite(aa,LOW);
    digitalWrite(bb,LOW);
    digitalWrite(cc,LOW);
    digitalWrite(dd,LOW);
    digitalWrite(ee,LOW);

    // write your action code here
    group = GROUP_0;// <– or jump to another group X for composite commands
    break;
    }
    break;
    case GROUP_2:

    switch (idx)
    {
    case G2_TV:
    digitalWrite(bb,HIGH);

    e=true;
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;
    case G2_LAMPU:
    digitalWrite(cc,HIGH);

    f=true;
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;
    case G2_KULKAS:
    digitalWrite(dd,HIGH);

    g=true;
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;

    case G2_KIPAS:
    digitalWrite(ee,HIGH);
    h=true;
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;

    case G2_SEMUA:
    e=true;
    f=true;
    g=true;
    h=true;
    digitalWrite(bb,HIGH);
    digitalWrite(cc,HIGH);
    digitalWrite(dd,HIGH);
    digitalWrite(ee,HIGH);
    // write your action code here
    group = GROUP_1; //<– or jump to another group X for composite commands
    break;
    }
    break;
    }
    }

  6. HI~ i have tested with the code that i found in the site arduino, but it doesn’t work in my board, the part in void setup()
    {
    myservo.attach(9); // attaches the servo on pin 9 to the servo object
    }
    While compiling, it showed: Servo1_easyvr:209: error: expected `}’ at end of input

    Could you please help me? THX! here is the code:

    #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
    #include “EasyVR.h”
    EasyVR easyvr(port);

    //Groups and Commands
    enum Groups
    {
    GROUP_0 = 0,
    GROUP_1 = 1,
    };

    enum Group0
    {
    G0_ARDUINO = 0,
    };

    enum Group1
    {

    G1_LEFT = 0,
    G1_RIGHT = 1,

    };

    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; //= 0)
    {
    // built-in trigger (ROBOT)
    // group = GROUP_X; = 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_0:
    switch (idx)
    {
    case G0_ARDUINO:
    // write your action code here
    group = GROUP_1;// <– or jump to another group X for composite commands
    break;
    }
    break;
    case GROUP_1:
    switch (idx)
    {
    // write your action code here
    // group = GROUP_X; =1; pos-=1) // goes from 180 degrees to 0 degrees
    {
    myservo.write(pos); // tell servo to go to position in variable ‘pos’
    delay(15); // waits 15ms for the servo to reach the position
    } // waits 15ms for the servo to reach the position
    }

    group = GROUP_0;

    // group = GROUP_X; <– or jump to another group X for composite commands
    break;
    case G1_RIGHT:
    // write your action code here

    //forward

    Servo myservo; // create servo object to control a servo
    // a maximum of eight servo objects can be created

    int pos = 0; // variable to store the servo position

    void setup()
    {
    myservo.attach(9); // attaches the servo on pin 9 to the servo object
    }

    void loop()
    {
    for(pos = 0; pos < 90; pos += 1) // goes from 0 degrees to 180 degrees
    { // in steps of 1 degree
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    delay(15); // waits 15ms for the servo to reach the position
    }

    }

    group = GROUP_0;

    // group = GROUP_X; <– or jump to another group X for composite commands
    break;

    }
    break;
    }
    }

    • Hi,

      The code looks fine, may be you haven’t installed the library correctly. Anyways contact us on Skype or via email provided below and we will resolve it.

      Thanks.

  7. Hi, we tried out the same steps for arduino UNO with Easy VR , for voice recognition , but the struggle facing is in the step of
    ” interfacing EasyVR shield with arduino UNO…. the verification command we received as “Easy VR not detected” after placing the code in the arduino . kindly tell us the steps to follow for this query

  8. I copied your code and pasted in the IDE 1.0.5 . Now when I verify it , it has got errors. Is there something wrong with the IDE or I am making a mistake. Please reply me I need your help.

    • Actually when you copied the code then these characters ” ” got changed. So simply erase them and write them again where required.

  9. I copied the code and burn it without connecting the easyvr and got the message easyvr not detected and when I connected it I got w and I don’t now what is the problem please help me solve it

    • Hi,

      It means that your code is working fine, Its just you are not getting what you are trying to do, first understand the code what it is doing then do it. Check from where this w is coming. If the problem still remains then let me know and we will sort it out.

      Thanks.

  10. yes the code is fine .. I tried the example and I also get the w in serial monitor when I connect the easy vr . the problem is where is this w comes from ??
    thank you ..

    • There’s no such library for PIC. If you wanna work it out with PIC then you need to understand the basics i.e. manually doing the serial communication of PIC with EasyVR. Thanks.

  11. Hello
    I’m facing the same problem as the guy above, it keeps saying bridge not started and easyvr not detected when the shiled is not connected to the arduino, as soon as I connect them, the serial monitor stops and nothing appears on it. what is the correct way to run the codes?, to burn it onto the arduino, I disconnect the shield coz if I didn’t it will say the port is used. then once its done, I open the serial monitor (and restart the arduino), it shows me that the bridge is not started and the easyvr is not detected. as soon as I connect it it shows nothing!. regarding the simpler examples to check if its working, which ones should I try and what output should I expect?(I also need to know the correct steps to run it first).
    thank you very much I your post is VERY helpful!!

    Isra

    • Oh its fine I got it fixed, it seems that the shield was not placed properly over the board (i had to push it deeper, but not too much). The new problem is that it keeps telling me timeout, try again even if I said a command. what to do now?

  12. Hey there. Your tutorial was great. But I need some help here.
    I’m trying to connect “Stand alone EasyVR” to Beaglebone black through RX and TX lines.
    Also, I have a script which reads data from the RX and TX lines and displays it on the console
    So, what would be the output if I do that.
    Will it be the keywords printing on the console or some characters and numbers???
    Thank you in advance.

    Sincerely,
    Suraj

    • Hi,

      It depends on the programming you are writing. First of all, you upload voices in the EasyVR shield and after that you put some checks in the beaglebone to detect whether your voices are getting detected or not. You have to do testing and its better if you try to find some EasyVR library for BeagleBone. If you still getting problem then add me on Skype and I will check it out.

      Thanks.

  13. Hi,

    I am having some trouble uploading the code onto the EasyVR shield 2.0. Can you help? The errors can be seen below. This is after I tried uploading the code that you provided on to the shield.

    Arduino: 1.6.1 (Windows 7), Board: “Arduino Uno”

    Build options changed, rebuilding all

    EasyVRTest.ino:56:1: error: stray ‘\’ in program

    EasyVRTest.ino:56:1: error: stray ‘\’ in program

    EasyVRTest.ino:61:1: error: stray ‘\’ in program

    EasyVRTest.ino:61:1: error: stray ‘\’ in program

    EasyVRTest.ino:86:1: error: stray ‘\’ in program

    EasyVRTest.ino:86:1: error: stray ‘\’ in program

    EasyVRTest.ino:111:1: error: stray ‘\’ in program

    EasyVRTest.ino:111:1: error: stray ‘\’ in program

    EasyVRTest.ino:115:1: error: stray ‘\’ in program

    EasyVRTest.ino:115:1: error: stray ‘\’ in program

    EasyVRTest.ino:127:1: error: stray ‘\’ in program

    EasyVRTest.ino:127:1: error: stray ‘\’ in program

    EasyVRTest.ino:127:1: error: stray ‘\’ in program

    EasyVRTest.ino:131:1: error: stray ‘\’ in program

    EasyVRTest.ino:131:1: error: stray ‘\’ in program

    EasyVRTest.ino:156:1: error: stray ‘\’ in program

    EasyVRTest.ino:156:1: error: stray ‘\’ in program

    EasyVRTest.ino:160:1: error: stray ‘\’ in program

    EasyVRTest.ino:160:1: error: stray ‘\’ in program

    EasyVRTest.ino:164:1: error: stray ‘\’ in program

    EasyVRTest.ino:164:1: error: stray ‘\’ in program

    EasyVRTest.ino:168:1: error: stray ‘\’ in program

    EasyVRTest.ino:168:1: error: stray ‘\’ in program

    EasyVRTest.ino:172:1: error: stray ‘\’ in program

    EasyVRTest.ino:172:1: error: stray ‘\’ in program

    EasyVRTest.ino: In function ‘void setup()’:

    EasyVRTest.ino:56:17: error: ‘u201cEasyVR’ was not declared in this scope

    EasyVRTest.ino:61:17: error: ‘u201cEasyVR’ was not declared in this scope

    EasyVRTest.ino: In function ‘void loop()’:

    EasyVRTest.ino:86:15: error: ‘u201cSay’ was not declared in this scope

    EasyVRTest.ino:111:27: error: found ‘:’ in nested-name-specifier, expected ‘::’

    EasyVRTest.ino:111:15: error: ‘u201cCommand’ has not been declared

    EasyVRTest.ino:115:15: error: ‘u201d’ was not declared in this scope

    EasyVRTest.ino:115:24: error: ‘u201c’ was not declared in this scope

    EasyVRTest.ino:127:17: error: ‘u201cTimed’ was not declared in this scope

    EasyVRTest.ino:127:33: error: expected primary-expression before ‘try’

    EasyVRTest.ino:131:15: error: ‘u201cError’ was not declared in this scope

    EasyVRTest.ino: In function ‘void action()’:

    EasyVRTest.ino:156:15: error: ‘u201c9’ was not declared in this scope

    EasyVRTest.ino:160:15: error: ‘u201cQ’ was not declared in this scope

    EasyVRTest.ino:164:15: error: ‘u201cX’ was not declared in this scope

    EasyVRTest.ino:168:15: error: ‘u201cY’ was not declared in this scope

    EasyVRTest.ino:172:15: error: ‘u201cZ’ was not declared in this scope

    Error compiling.

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.

  14. i’ve bought arduino mega2560 and i connect it with easyVr and i program my own code and it runs and i control leds , but now i can only upload any code in my arduino but when i connect it with easyVr shiled and try to upload the code this is the main error that I get ,The full list of errors is as follows:
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_getsync(): timeout communicating with programmer
    can you help me please

  15. Hello,

    I am pretty new to programming but, I do not see that your code factors in a motor driver anyware. Is this difficult to do? Could you show me how to modify the code to accomplish this?

    Thanks

  16. good morning mr Syed Zain Nasir, I am currently working on almost the same exact project you’re doing involving using the Easy VR shield with arduino. Im also making my robot move forward, reverse, left, right and stop. I did everything you mentioned in the post on the engineeringprojects website. Except when I copy and pasted the code there was an error saying this and im not sure why is this an error. Everything else is good.

    This is It “exit status 1 – EasyVrBridge does not name a type”

    I need your help because I am trying to finish up this project for my engineering course

    • Hi,

      Kindly add me on Skype and I will have a look at your project. My Skype id is theenggprojects.

      Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment