Go Down

Topic: problema con easyvr shield e newsoftserial.... (Read 1 time) previous topic - next topic

pelletta

Prova a mettere un condensatore da 1uF tra i pin reset e gnd, mi raccomando il negativo del condensatore su gnd e il positivo sul pin reset.

nytro81

ok, stasera/stanotte proverò, dici ci possono essere problemi con il reset? Lunedì avrò cmq modo di provare con un altra arduino, adesso ho una vecchia 2009, lunedì mi faccio prestare una uno...

nytro81

Provato col condensatore, nulla.... ma con il condensatore messo tra reset e massa non è che è come se fosse sempre abilitato il reset? xchè quando apro il monitor seriale con il condensatore inserito non mi da neanche il messaggio not detect!

pelletta

Proviamo a fregarlo, carica questo sketch.... in pratica ho commentato il controllo.
Una volta caricato prova a dire il comando PROVA e guarda cosa ti dice nel serial monitor.
Se non accade nulla resetta l'arduino e vediamo che succede

Code: [Select]
#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_PROVA = 0,
};

enum Group1
{
  G1_PROVA = 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(1);

  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_0:
      switch (idx)
      {
      case G0_PROVA:
        // write your action code here

                                                                              Serial.println("hai detto PROVA");

        // group = GROUP_X; <-- or jump to another group X for composite commands
        break;
      }
      break;
    case GROUP_1:
      switch (idx)
      {
      case G1_PROVA:
        // write your action code here
                                                                              Serial.println("hai ridetto PROVA");
        // group = GROUP_X; <-- or jump to another group X for composite commands
        break;
      }
      break;
    }
}

nytro81

Nulla!!!!! Cioè, ovvimamente non da + il messaggio ma "EasyVR detected!
Say a command in Group 0", il led verde rimane fisso acceso ma parlando non succede proprio nulla.... pare proprio che non riesce a comunicare in seriale con il modulo... ho l'impressione che sia un problema di ide/librerie... ricapitolando, adesso sto facendo le prove con la ide 0022, ho copiato le librerie adatte... poi ho provato anche con la ide 1.0 e le rispettive librerie, ma nulla... quasi quasi te la spedisco a casa e me la provi!!!!  :smiley-mr-green:

pelletta


nytro81

x l'orario dici!?!?! Mah senti, in teoria sarei sposato ed in dolce attesa, quindi quasi tutte le sere lei mi collassa a letto ad una certa e li do libero sfogo ai miei hobby!!! ;-)

nytro81

arrivato a questo punto credo sia un problema di comunicazione con le librerie newsoftserial.... credo di aver provato tutto... ricapitolando, lo shield con il commander funziona, quindi i terminali dello shield e quelli di arduino sono correttamente in comunicazione, altrimenti anche dal commander avrei avuto problemi no? Ulteriore prova, i pin 12 e 13 di arduino, utilizzati dallo shield, li ho provati (anche se solo come uscita) facendo lampeggiare un led collegato ai suddetti pin... che altro posso provare?!?!!?! vi pregoooo!!!! :-(

Ciao.. Io ho il tuo stesso problema con la EasyVR shield e arduino uno R3.
Tu come hai risolto il tuo problema?

Go Up