AIUTO EASYVR

Salve ragazzi siamo due ragazzi che stanno preparando un progetto per l’esame, e stavamo pensando a una casa domotica con easyvr… abbiamo già le schede arduino uno e easyvr, e stiamo iniziando ad imparare il linguaggio… siamo riusciti ad aggiungere un comando CIAO e caricato un file wav sulla shield, ora il problema è come riprodurre il file wav, quando il comando CIAO viene citato… abbiamo visto cher c’è una funziona play come provato nel codice sotto elencato, ma ci dice che si deve dichiarare, come si dichiara una funzione?? abbiamo trovato delle librerie per le funzioni play, ma non sono inerenti a quello che cerchiamo, ci serve il comando semplice per riprodurre il nostro file a comando acquisito…

Grazie…
PS: se qualcuno esperto del linguaggio arduino in particolare con easyvr, potesse rimanermi qualche contatto anche tramite messaggio privato ci farebbe molto piacere, per poter apprendere qualche consiglio per imparare qualcosa di più…

#if defined(ARDUINO) && ARDUINO >= 100

  #include <Arduino.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_CIAO = 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(1);


  group = 1; //<-- 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_CIAO:play("luce.wav");
        // write your action code here
        // group = GROUP_X; <-- or jump to another group X for composite commands
        break;
      }
      break;
    }

}

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Le librerie devono essere installate/aggiunte all’IDE di Arduino. La scheda EasyVR NON è fabbricata da Arduino Team, quindi chi vende la scheda DEVE fornitore adeguata documentazione e libreria.
Una volta aggiunta la libreria all’IDE, bisogna vedere gli esempi; comunque ci sarà da fare una #include in testa allo sketch, ovvero quel #include <EasyVR.h>

etrian96: senti abbiamo risolto il problema della riproduzione del suono in risposta al comando.. ora avremmo una lampadina da 60W e 230v, da cui abbiamo 2 fili in rame... ora se volessimo testarla come dovremmo fare? su quali pin bisogna collegare la lampadina, e quali comandi sii utilizzano per l'ON e OFF?? grazie mille in anticipo

Una lampadina NON la colleghi direttamente ad Arduino. Dovete usare un rele per ogni lampadina. Meglio un modulo rele già fatto, pilotabile a 5V da Arduino. Esempio: http://www.ebay.it/itm/1-Channel-5V-relay-with-Optcoupter-High-Low-Level-can-cutover-/321711476091?pt=LH_DefaultDomain_101&hash=item4ae77f8d7b E' solo un esempio, sul mercato c'e' ne sono molti.

http://forum.arduino.cc/index.php?topic=92753.5 http://forum.arduino.cc/index.php?topic=212242.0