Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



Easy VR + Arduino Uno


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

Offline

Joined: 07 May 2014
Posts: 3
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Wed 7 May - 15:03 (2014)    Post subject: Easy VR + Arduino Uno Reply with quote

PublicitéSupprimer les publicités ?
Bonjour a tous j'ai un projet, je doit programmer arduino et le shield easyvr afin d'alimenter une gâche électrique pour déverrouiller une porte, bien sur la sortie d'arduino est branché sur un transistor pour alimenter la gâche en 12V et non en 5V, j'ai réussi à tout faire sauf programmer arduino, j'ai configurer le shield grâce au logiciel easyvr commander.
Je veux simplement que lorsque le shield détecte ma commande vocale "OUVRIR" (pré-configurer sur easyvr commander) arduino alimente la sortie 3.

Le logiciel me donne un programme (avec les commandes pré-configurer) mais je ne sais pas comment dire qu'il faut alimenté la sortie 3 si on capte la commande ouvrir, si quelqu'un pourrait m'aider ça m'avancerai beaucoup.

Je joint le programme :

#if defined(ARDUINO) && ARDUINO >= 100
 #include "Arduino.h"
 #include "Platform.h"
 #include "SoftwareSerial.h"
#ifndef CDC_ENABLED
 // Shield Jumper on SW
 SoftwareSerial port(12,13);
#else
 // Shield Jumper on HW (for Leonardo)
 #define port Serial1
#endif
#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_1  = 1,
};

enum Group1 
{
 G1_OUVRIR = 0,
};


EasyVRBridge bridge;

int8_t group, idx;

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

 while (!easyvr.detect())
 {
   Serial.println("EasyVR not detected!");
   delay(1000);
 }

 easyvr.setPinOutput(EasyVR::IO1, LOW);
 Serial.println("EasyVR detected!");
 easyvr.setTimeout(5);
 easyvr.setLanguage(0);

 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_1:
     switch (idx)
     {
     case G1_OUVRIR:
       // write your action code here
       // group = GROUP_X; <-- or jump to another group X for composite commands
       break;
     }
     break;
   }
}
Back to top
Admin
Fondateur

Offline

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

PostPosted: Wed 7 May - 18:08 (2014)    Post subject: Easy VR + Arduino Uno Reply with quote

Bonjour,
D'après ce que j'ai compris, tu es capable de réceptionner la commande "OUVRIR", est-ce correct ?
Si oui, il faudra utiliser deux fonction distinctes à placer dans la condition de réception de commande "OUVRIR" dans ton cas.
____________________________
http://simple-duino.com
Back to top
balife06
Débutant

Offline

Joined: 07 May 2014
Posts: 3
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Wed 7 May - 20:18 (2014)    Post subject: Easy VR + Arduino Uno Reply with quote

Admin wrote:
Bonjour,
D'après ce que j'ai compris, tu es capable de réceptionner la commande "OUVRIR", est-ce correct ?
Si oui, il faudra utiliser deux fonction distinctes à placer dans la condition de réception de commande "OUVRIR" dans ton cas.


Je n'est pas bien compris, sur le logiciel du shield j'ai déclaré la commande "OUVRIR" grâce a ma voix et cela m'a donné le programme que je vous ai envoyé, je pense qu'il faut programmer que lorsque le shield reconnait la commande "OUVRIR" il alimente la sortie 3 de l'arduino mais je ne sais pas ou le mettre dans le programme et sous quelle forme
Back to top
Admin
Fondateur

Offline

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

PostPosted: Wed 7 May - 22:20 (2014)    Post subject: Easy VR + Arduino Uno Reply with quote

Ok, voici comment j'ai fait:
Quote:



#if defined(ARDUINO) && ARDUINO >= 100
 #include "Arduino.h"
 #include "Platform.h"
 #include "SoftwareSerial.h"
#ifndef CDC_ENABLED
 // Shield Jumper on SW
 SoftwareSerial port(12,13);
#else
 // Shield Jumper on HW (for Leonardo)
 #define port Serial1
#endif
#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_1  = 1,
};


enum Group1 
{
 G1_OUVRIR = 0,
};




EasyVRBridge bridge;


int8_t group, idx;


void setup()
{
  pinMode(3, OUTPUT);
#ifndef CDC_ENABLED
 // bridge mode?
 if (bridge.check())
 {
   cli();
   bridge.loop(0, 1, 12, 13);
 }
 // run normally
 Serial.begin(9600);
 Serial.println("Bridge not started!");
#else
 // bridge mode?
 if (bridge.check())
 {
   port.begin(9600);
   bridge.loop(port);
 }
 Serial.println("Bridge connection aborted!");
#endif
 port.begin(9600);


 while (!easyvr.detect())
 {
   Serial.println("EasyVR not detected!");
   delay(1000);
 }


 easyvr.setPinOutput(EasyVR::IO1, LOW);
 Serial.println("EasyVR detected!");
 easyvr.setTimeout(5);
 easyvr.setLanguage(0);


 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_1:
     switch (idx)
     {
     case G1_OUVRIR:
       digitalWrite(3, HIGH);
       // write your action code here
       // group = GROUP_X; <-- or jump to another group X for composite commands
       break;
     }
     break;
   }
}





____________________________
http://simple-duino.com
Back to top
balife06
Débutant

Offline

Joined: 07 May 2014
Posts: 3
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Thu 8 May - 08:53 (2014)    Post subject: Easy VR + Arduino Uno Reply with quote

Je vais tenter, je vous tiens au courant
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 | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino