não sei por que mas meu EasyVR não está se comunicando com o arduino, o problema é o seguinte,
eu coloco para gerar o código no Easy comander e tudo ok, até o momento e adiciono minhas configurações e ok mas quando vou testar para copilar me aparece os seguintes erros,(error:conflicting return type specified for 'virtual void softwareSerial::write(uint8_t)' e o outro (overriding 'virtual size_t Print::write(uint8_t)'.
Alguém teria a solução para esse impasse, estou tentando já há uma semana, desde já OBRIGADO !!! esse é o meu código se alguém puder me ajudar :
#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);
// define os pinos que usarei
#define releA 3
#define releB 4
#define releC 5
#define releD 6
#define releE 7
#define releF 8
//Groups and Commands
enum Groups
{
GROUP_0 = 0,
GROUP_1 = 1,
GROUP_16 = 16,
};
enum Group0
{
G0_UNO = 0,
};
enum Group1
{
G1_ATIVAR = 0,
G1_DESATIVAR = 1,
G1_PARTIDA = 2,
G1_LANTERNA = 3,
G1_DESLIGAR_LANTERNA = 4,
G1_FAROIS = 5,
G1_DESLIGAR_FAROIS = 6,
};
enum Group16
{
G16_RODRIGO = 0,
};
EasyVRBridge bridge;
int LDR; // sensor de luz
int cont;
int i;
int8_t group, idx;
void setup()
{
pinMode (releA,OUTPUT);
pinMode (releB,OUTPUT);
pinMode (releC,OUTPUT);
pinMode (releD,OUTPUT);
pinMode (releE,OUTPUT);
pinMode (releF,OUTPUT);
// bridge mode?
if (bridge.check())
{
cli();
bridge.loop(0, 1, 12, 13);
}
// run normally
Serial.begin(9600);
port.begin(9600);
if (!easyvr.detect())
{
Serial.println("EasyVR not detected!");
for (;;);
}
easyvr.setPinOutput(EasyVR::IO1, LOW);
Serial.println("EasyVR detected!");
easyvr.setTimeout(5);
easyvr.setLanguage(0);
group = EasyVR::TRIGGER;
easyvr.playSound(0,EasyVR::VOL_FULL); //<-- 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
{
LDR=0;
for(i=0;i<=10;i++)
{
cont=analogRead(A0);
LDR=LDR+cont;
delay(20);
}
LDR=LDR/10;
Serial.println(LDR);
(LDR<=200)?(digitalWrite(releA,HIGH)):(digitalWrite(releA,LOW));
(LDR<=250)?(digitalWrite(releB,HIGH)):(digitalWrite(releB,LOW));
// 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)
{ easyvr.playSound(1,EasyVR::VOL_FULL);
group = GROUP_16;
// 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);
easyvr.playSound(0,EasyVR::VOL_FULL);
}
}
}
void action()
{
switch (group)
{
case GROUP_0:
switch (idx)
{
case G0_UNO:
easyvr.playSound(1,EasyVR::VOL_FULL);
group = GROUP_16;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
}
break;
case GROUP_1:
switch (idx)
{
case G1_ATIVAR:
easyvr.playSound(3,EasyVR::VOL_FULL);
digitalWrite (releC, HIGH);
group = GROUP_1;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_DESATIVAR:
easyvr.playSound(4,EasyVR::VOL_FULL);
digitalWrite (releC, LOW);
group = GROUP_0;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_PARTIDA:
easyvr.playSound(5,EasyVR::VOL_FULL);
digitalWrite (releD, HIGH);
delay (1000);
digitalWrite (releD, LOW);
group = GROUP_1;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_LANTERNA:
easyvr.playSound(0,EasyVR::VOL_FULL);
digitalWrite (releE, HIGH);
group = GROUP_1;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_DESLIGAR_LANTERNA:
easyvr.playSound(0,EasyVR::VOL_FULL);
digitalWrite (releE, LOW);
group = GROUP_1;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_FAROIS:
easyvr.playSound(0,EasyVR::VOL_FULL);
digitalWrite (releF, HIGH);
group = GROUP_1;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_DESLIGAR_FAROIS:
easyvr.playSound(0,EasyVR::VOL_FULL);
digitalWrite (releF, LOW);
group = GROUP_1;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
}
break;
case GROUP_16:
switch (idx)
{
case G16_RODRIGO:
easyvr.playSound(2,EasyVR::VOL_FULL);
group = GROUP_1;
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
}
break;
}
}
Tags:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por