Go Down

Topic: arduino + wifi shield + easyVR shield? (Read 1 time) previous topic - next topic

necc

Hi guys,
couldn't find anything related to that on the web.

It seems that if I plug the easyVR shield on top of my WiFi shield, the latter isn't visible.
Assuming they're using the same pins for communication?
Any solution to get both running?

I'm using it to control my raspberry pi - based home automation and was planning to call the web services via wifi, without that I would have to pull a usb cable from rPi to arduino which is not great.

Any suggestions highly appreciated.

PaulS

Quote
It seems that if I plug the easyVR shield on top of my WiFi shield, the latter isn't visible.

The WiFi shield, if you are referring to the Arduino one, uses a known set of pins. The easyVR shield uses? A link would be useful.

Quote
Any solution to get both running?

Pin bending.

necc

Tried changing:
Code: [Select]
SoftwareSerial port(12,13);
to
Code: [Select]
SoftwareSerial port(2,3);
and connected the easyVR shield to the relevant pins on the arduino and still getting "EasyVR not detected!"

These do not seem to be used by the WiFi shield. What is it then?

Docs, fyi:
http://arduino.cc/en/Main/ArduinoWiFiShield
http://www.robotshop.com/content/PDF/easyvr-user-manual-vrb-001.pdf [page 11]

PaulS

A picture showing the connections might be useful. Some code, too.

necc

Hi, first of all thanks a lot for looking into this.

Code snippet:
Code: [Select]
#include "Arduino.h"
#include "SoftwareSerial.h"
SoftwareSerial port(2,3);
#include "EasyVR.h"

EasyVR easyvr(port);

int8_t set = 0;
int8_t group = 1;
uint32_t mask = 0; 
uint8_t train = 0;
char name[32];
  String cmd;
bool debug = true;

void log(String s)
{
  if (debug)
    Serial.println("== " + s);
}

void out(String s)
{
  Serial.println(s);
}

void setup()
{
  Serial.begin(9600);
  port.begin(9600);

  if (!easyvr.detect())
  {
    log("EasyVR not detected!");
    for (;;);
  }

  easyvr.setPinOutput(EasyVR::IO1, LOW);
  log("EasyVR detected!");
  easyvr.setTimeout(3);
  easyvr.setLanguage(EasyVR::ENGLISH);
  easyvr.setKnob(1);
  easyvr.setLevel(1);
}


Photo:
http://imageshack.us/photo/my-images/33/img0527pv.jpg/

The same wiring works when I remove the wifi shield and wire easyvr directly to arduino.



PaulS

Is the shield that is shown in the pdf file the one that you are using? If so, what position is the jumper in?

The shield uses pins 12 and 13 when the jumper is in the SW position. Those are two of the SPI pins that the WiFi shield uses to communicate with the Arduino, so that position can not be used.

The alternatives use the hardware serial port to communicate with the EasyVR chip, which is not exactly an improvement.

I see some pin bending in your future.

mariocarta

#6
Jan 21, 2013, 05:59 pm Last Edit: Jan 21, 2013, 06:18 pm by mariocarta Reason: 1
I had a similar issue with the EasyVR Shield and Arduino Leonardo. And changed the pins to 8/9 but the shield isn't on top of the Leonardo, but sideways, and  jumperwired the 8/9 of the Arduino to the 12/13 (change the code too). And remember to jumpwire the 5V, GND and Reset between the board and shield also. It will make impossible to use EasyVR Commander or update the soundtable, this last via PC mode.

The problem is reported here.

This manual is outdated. The latest can be found here:
http://www.veear.eu/downloads/

Be sure to download the latest EasyVR's Arduino library either...

And I didn't see the Brige being used on your code. It should look like this:
Code: [Select]
#include "Arduino.h"
 #include "SoftwareSerial.h"
 SoftwareSerial port(8,9);

#include "EasyVR.h"

EasyVR easyvr(port);

EasyVRBridge bridge;

void setup()
{
 // bridge mode?
 if (bridge.check())
 {
   cli();
   bridge.loop(0, 1, 8, 9);
 }
 // 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);




If anyone could help me too, would be grateful!

necc

That's the one PaulS, the jumper is in the SW position, I've connected the 12,13 pins on the EasyVR to 2,3 on Arduino so in theory that should work, right?
I'm really happy to bend the sh*t out of these pins if it helps ;]

necc

When I connect it the same way without the wifi shield it works fine... any ideas?

PaulS

Quote
I've connected the 12,13 pins on the EasyVR to 2,3 on Arduino so in theory that should work, right?

Did you bend those pins, though, so that they don't engage the slots on the Arduino or WiFi shield?

Which shield is on top?

necc

I didn't actually bend them out, will try that. The VR shield is on top.

PaulS

Quote
The VR shield is on top.

So the VR shield is still trying to use the Arduino pins 12 and 13. Those are the SPI pins that the WiFi shield uses.

Go Up