Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



problème servo + easyvr sur arduino uno


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
patou43
Débutant

Hors ligne

Inscrit le: 23 Oct 2014
Messages: 5
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Jeu 23 Oct - 17:57 (2014)    Sujet du message: problème servo + easyvr sur arduino uno Répondre en citant

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
 
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Ven 24 Oct - 11:49 (2014)    Sujet du message: problème servo + easyvr sur arduino uno Répondre en citant

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
Revenir en haut
patou43
Débutant

Hors ligne

Inscrit le: 23 Oct 2014
Messages: 5
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Dim 26 Oct - 16:48 (2014)    Sujet du message: problème servo + easyvr sur arduino uno Répondre en citant

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







Revenir en haut
patou43
Débutant

Hors ligne

Inscrit le: 23 Oct 2014
Messages: 5
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Ven 13 Fév - 22:31 (2015)    Sujet du message: problème servo + easyvr sur arduino uno Répondre en citant

merci
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 23:42 (2017)    Sujet du message: problème servo + easyvr sur arduino uno

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino