Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



problème servo + easyvr sur arduino uno


 
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions
Previous topic :: Next topic  
Author Message
patou43
Débutant

Offline

Joined: 23 Oct 2014
Posts: 5
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Thu 23 Oct - 17:57 (2014)    Post subject: problème servo + easyvr sur arduino uno Reply with quote

PublicitéSupprimer les publicités ?
Bonsoir,
je n'arrive pas a faire bouger un servo par le biais d'un module de reconnaissance vocale easyvr
quand le servo commence a bouger l'easyvr freeze l'amantablent   Question
j'espère avoir bien exposé mon problème

cordialement 
Simon galand
 
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Fri 24 Oct - 11:49 (2014)    Post subject: problème servo + easyvr sur arduino uno Reply with quote

Bonjour,
As-tu des scripts à nous présenter pour qu'on comprenne vraiment bien ?
EasyVr fonctionne via l'UART donc liaison série donc pas réellement de raison de freezer... ça doit plutôt être un problème coté logiciel.
____________________________
http://simple-duino.com
Back to top
patou43
Débutant

Offline

Joined: 23 Oct 2014
Posts: 5
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Sun 26 Oct - 16:48 (2014)    Post subject: problème servo + easyvr sur arduino uno Reply with quote

Bonjour,
voici le script utilisé 
 
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);


#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
int pos = 0;   
//définition des valeurs de comparaison (voir action() )
enum Groups
{
  GROUP_1 = 1,
};

enum Group1
{
  G1_OUVRE = 0,
  G1_FERME = 1,
};

EasyVRBridge bridge;//group et idx seront utilisés pour communiquer avec le module
int8_t group, idx; // group = valeur passée au module et idx = valeur de retour du moduleint erreur = 7;  //LED ROUGE d'erreur

int led = 8;    



void setup()
{
  
  
  
  // bridge mode?
  if (bridge.check())
  {
    cli();        //Désactivation des interruptions sur Arduino
    bridge.loop(0, 1, 12, 13);  //Configuration du mode bridge - liaison série logicielle port 12 et 13
  }
  // configuration liaison série
  Serial.begin(9600);
  port.begin(9600);
  // configuration Servo
  myservo.attach(9);
myservo.write(90);

pinMode(led,OUTPUT);
  if (!easyvr.detect()) {
    Serial.println("EasyVR non détecté!");
    for (;  ;)  ;
  }
  easyvr.setPinOutput(EasyVR::IO1, LOW);
  Serial.println("EasyVR detecté!");
  easyvr.setTimeout(5);  //Conf. du module timeout = 5s
  easyvr.setLanguage(5); // langue francaise
  group = GROUP_1;  // Référence au groupe prédéfini
}void loop()
{
  easyvr.setPinOutput(EasyVR::IO1, HIGH); // Led sur module allumée

  Serial.print("Prononcez un mot du groupe 1 ");
  Serial.println(group);
  easyvr.recognizeCommand(group);
 Serial.println("recon com"); //Procédure de reconnaissance lancée, le module reçoit la trame de définition du groupe de mot

  do
  {
    //  Possibilité d'effectuer d'autres tâches en attendant la réponse du module
  }
  while (!easyvr.hasFinished());  // true dès réception d'une trame réponse du module

  easyvr.setPinOutput(EasyVR::IO1, LOW); // LED sur Module éteinte
  group = GROUP_1;        //Groupe par défaut (le seul)
  idx = easyvr.getCommand();  //Récupération de l'index fournit par le module quand il y a détection
  if (idx >= 0)
  {
    // Messages pour le débug sur la console série arduino
    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();  //fonction de commande
  }
  else // erreur ou timeout
  {
    if (easyvr.isTimeout())
      Serial.println("Temps d'attente max depasse, recommencez...");
    int16_t err = easyvr.getError();
    Serial.println("timeout");
    if (err >= 0)
    {

      Serial.print("Erreur ");
      Serial.println(err, HEX);
      
    }
  }
  Serial.println("marche loop");
 
}
//Fonction de traitement des commandes en fonction des mots reconnus (idx)
void action()
{
    switch (group)
    {
    case GROUP_1:
      switch (idx)
      {
        case G1_OUVRE:
        Serial.println("servo write 1");
   myservo.write(180);              
        break;
      
      case G1_FERME:
            Serial.println("servo write 2");                   
    myservo.write(pos);              
        break;
      }
      break;
    }
}







Back to top
patou43
Débutant

Offline

Joined: 23 Oct 2014
Posts: 5
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Fri 13 Feb - 22:31 (2015)    Post subject: problème servo + easyvr sur arduino uno Reply with quote

merci
Back to top
Contenu Sponsorisé






PostPosted: Today at 15:05 (2019)    Post subject: problème servo + easyvr sur arduino uno

Back to top
Display posts from previous:   
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  

Index | Xooit.com free forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino