Problème avec module EasyVR

Bonjour,

J'ai acheté une carte arduino mega 2560 et un module EasyVR pour la reconnaissance vocale. J'ai ensuite téléchargé le logiciel EasyVR commander afin de programmer la reconnaissance vocale, mais je n'arrive pas a connecter le module au PC (en passant par la carte), un message d’erreur disant que le bridge est manquant ou "outdated" apparaît. Donc j'ai essayer de résoudre ce problème en utilisant le code arduino EasyVRbridge.ino, mais je n'arrive pas a le téléverser, l'erreur timeout apparaît. J'ai bien placé les librairies et branché les broches (13 à 0 et 12 à 1).

Avez vous une solution afin de pouvoir configurer le module EasyVR (je ne passe pas par le shield).

bonjour, une petite recherche sur le forum ne ferait pas de mal ;) il faut changer un cavalier pour programmer le shield puis le chenger pour passer en prod :)

Justement, je n'utilise pas le shield, apparemment il est possible de configurer le module sans le shield en branchant directement sur la carte arduino.

Merci pour ta réponse je vais essayé :) et je posterais le résultat.

Merci, sinon comment puis-je résoudre l'erreur timeout lorsque je televerse ?

#include "EasyVR.h"

EasyVRBridge bridge;

void setup()
{
  // bridge mode?
  if (bridge.check())
  {
    cli();
    bridge.loop(0, 1, 12, 13);
  }
  // run normally
  Serial.begin(9600);
  Serial.println("Bridge not started!");
}

void loop()
{
}

Sinon j'ai essayé les même manipulations avec une UNO et tout marche parfaitement. Que dois-je faire avec une mega 2560?

dridri95: ```

include "EasyVR.h"

EasyVRBridge bridge;

void setup() {   // bridge mode?   if (bridge.check())   {     cli();     bridge.loop(0, 1, 12, 13);   }   // run normally   Serial.begin(9600);   Serial.println("Bridge not started!"); }

void loop() { }




Sinon j'ai essayé les même manipulations avec une UNO et tout marche parfaitement.
Que dois-je faire avec une mega 2560?

lorsque tu veux envoyer sur l'atmega, tu sélectionne bien la bonne carte, puis compile, puis envoie? ca ressebmle bien a une compile pour uno et envoie pour uno cette erreur ou alors ne connecte pas le shield, envoie le code, puis branche le shield après.

En fait lorsque j’utilise la mega, easyvr commander ne reconnait pas le module(avec les même branchement), les branchements sont t’ils différents ?
Actuellement broche 13(mega) à ERX(module) et 12(mega) à ETX(module).

EasyVR commander m’affiche

" A ‘AVR/.Arduino mega’ device has been found, but the bridge software is not responding or is oudating.
You need to manually download the updated bridge software to the device."

Comment télécharger ce programme “bridge” ?

dridri95: En fait lorsque j'utilise la mega, easyvr commander ne reconnait pas le module(avec les même branchement), les branchements sont t'ils différents ? Actuellement broche 13(mega) à ERX(module) et 12(mega) à ETX(module).

EasyVR commander m'affiche

" A 'AVR/.Arduino mega' device has been found, but the bridge software is not responding or is oudating. You need to manually download the updated bridge software to the device."

Comment télécharger ce programme "bridge" ?

change de pin rx/tx Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX)

Faut t'il que je change le code également ?

ben oui pour assigner les bonnes pins :)

Ca ne marche malheureusement pas. J'ai essayé avec plusieurs autres pins en changent le 12 et le 13 de ce code en fonction des pins utilisées bridge.loop(0, 1, 12, 13);

Il est possible que pour une arduino mega le shield (je n'ai que le module, ce qui marche très bien avec uno) soit obligatoire.

Sait tu ou on pourrais acheter le shield seul ( sans le module ) ?

ok je vais chercher XD et si tu trouve par hasard comment le module marche avec une maga post le ^^

comment faut’il faire alors pour les branchement et quel code bridge utiliser ?

Hum si je configure le module avec une autre carte(uno) et que je le branche a la mega, cela peut t'il marcher ou il faut obligatoirement la configurer avec la mega ?

J'ai plusieurs question: -pourquoi easyvr commander ne marche pas le message d'erreur est posté avant dans le topic. -comment programmer la reconnaissance vocale dans arduino (c'est a dire quelles commandes mettre dans le programme).

Bonjour, Pourrais tu verifier mon code (je ne post que ce qui a un rapport avec easyvr, le reste fonctionne).

au debut(avant setup)

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "EasyVR.h"
  
SoftwareSerial port(18,19);
EasyVR easyvr(port);


enum Groups
{  
GROUP_1 = 1,
};

enum Group_1
{
G1_ALARME = 0,
G1_HEURE = 1,
G1_MINUIT = 2,
G1_MINUITT = 3,
G1_UNE = 4,
G1_UNET = 5,
G1_DEUX = 6,
G1_DEUXT = 7,
G1_TROIS = 8,
G1_TROIST = 9,
G1_QUATRE = 10,
G1_QUATRET = 11,
G1_CINQ = 12,
G1_CINQT = 13,
G1_SIX = 14,
G1_SIXT = 15,
G1_SETH = 16,
G1_SETHT = 17,
G1_HUIT = 18,
G1_HUITT = 19,
G1_NEUF = 20,
G1_NEUFT = 21,
G1_DIX = 22,
G1_DIXT = 23,
G1_ONZE = 24,
G1_ONZET = 25,
G1_DOUZE = 26,
G1_DOUZET = 27,
G1_TREIZE = 28,
G1_TA_GEULE = 29,
G1_ARRET = 30,
};

EasyVRBridge bridge;
int8_t group, idx;

dans le setup

bridge.loop(0, 1, 18, 19);
        Serial.begin(9600);
        port.begin(9600);
        easyvr.setTimeout(5); 
        easyvr.setLanguage(5);
        group = GROUP_1;

au moment de parler

easyvr.recognizeCommand(group);
                idx = easyvr.getCommand(); 
                
                if(idx >= 0)
                {    
                  uint8_t train = 0;
    
                  char name[32];
                  Serial.print("Commande: ");
    
                  Serial.print(idx);
    
                  if(easyvr.dumpCommand(group, idx, name, train))
                  {
                    Serial.print(" = ");     
                    Serial.println(name);
                  }
                  else
                  {
                  Serial.println();
                  easyvr.playSound(0, EasyVR::VOL_FULL);
                  action(); 
                  }     
                }
  
                else
                {
                  if(easyvr.isTimeout())
                  { 
                    Serial.println("Temps d'attente max depasse, recommencez...");   
                    int16_t err = easyvr.getError();
    
                    if(err >= 0)
                      {
                        digitalWrite(erreur,HIGH);
                        Serial.print("Erreur ");
                        Serial.println(err, HEX);
                      }
                   }
                }

et fonction action

void action()
{
  switch(idx)
                {
                case 2:
                i=0;
                j=0;
                break;
                case 3:
                i=0;
                j=30;
                break;
                case 4:
                i=1;
                j=0;
                break;
                case 5:
                i=1;
                j=30;
                break;
                case 6:
                i=2;
                j=0;
                break;
                case 7:
                i=2;
                j=30;
                break;
                case 8:
                i=3;
                j=0;
                break;
                case 9:
                i=3;
                j=30;
                break;
                case 10:
                i=4;
                j=0;
                break;
                case 11:
                i=4;
                j=30;
                break;
                case 12:
                i=5;
                j=0;
                break;
                case 13:
                i=5;
                j=30;
                break;
                case 14:
                i=6;
                j=0;
                break;
                case 15:
                i=6;
                j=30;
                break;
                case 16:
                i=7;
                j=0;
                break;
                case 17:
                i=7;
                j=30;
                break;
                case 18:
                i=8;
                j=0;
                break;
                case 19:
                i=8;
                j=30;
                break;
                case 20:
                i=9;
                j=0;
                break;
                case 21:
                i=9;
                j=30;
                break;
                case 22:
                i=10;
                j=0;
                break;
                case 23:
                i=10;
                j=30;
                break;
                case 24:
                i=11;
                j=0;
                break;
                case 25:
                i=11;
                j=30;
                break;
                case 26:
                i=12;
                j=0;
                break;
                case 27:
                i=12;
                j=30;
                break;
                case 28:
                i=13;
                j=0;
                break;
                }
 }

AlienArea51:
Bonsoir dridri95

Pourrais tu verifier mon code (je ne post que ce qui a un rapport avec easyvr, le reste fonctionne).

En espérant que tu ne t’adresse pas à moi :smiley: , car hyper nul en debug , je pense que notre ami " infobarquee " ce fera un plaisir de le faire :wink: :grin: , désolé …
T’as vu comment faire ? infobarquee :wink: ,ça s’appelle déléguer un boulot que l’on aime pas faire :grin: :grin:

P.S: je me suis permis de te mettre un +1 dans le KARMA (dridri95) , car tu as franchement envie que ça fonctionne (motivé) donc voilà :wink:
@+
Will

ha ben me voila bien :grin:

ca m'a l'air bon, a vérifier à l'usage. une chose me gène sans être certain

Group_1

c'est pas

Group1

si ca fonctionne pas, met tout en Group0 et G0