Hi everyone,
I've got a very frustrating question. I want to use the TVLibrary with my EasyVR shield. I disabled the piece of code I want to work. When I disable that piece of code, de TV output works brilliant... but when I enable it... it just stops working! Reaally frustrating TV is Video on pin 9 and sync pin 7
This is the 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 <TVout.h>
#include <fontALL.h>
#include "EasyVR.h"
#include <RemoteSwitch.h>
#define SND_EASYVR_ACCESSCONTROLDEMO_1 1
#define SND_EASYVR_ACCESSCONTROLDEMO_2 2
#define SND_EASYVR_ACCESSCONTROLDEMO_3 3
#define SND_EASYVR_ACCESSCONTROLDEMO_4 4
#define SND_EASYVR_ACCESSCONTROLDEMO_5 5
#define SND_EASYVR_ACCESSCONTROLDEMO_6 6
#define SND_EASYVR_ACCESSCONTROLDEMO_7 7
#define SND_EASYVR_ACCESSCONTROLDEMO_8 8
#define SND_BEEP 0
KaKuSwitch kaKuSwitch(8);
EasyVR easyvr(port);
EasyVRBridge bridge;
TVout TV;
uint32_t mask = 0;
int8_t group = 0;
uint8_t train = 0;
char name[32];
boolean onestat = true;
boolean twostat = true;
boolean threestat = true;
void setup()
{
TV.begin(PAL,120,96);
TV.select_font(font4x6);
TV.set_cursor(1,1);
TV.print("Press left to turn left");
TV.set_cursor(1,10);
TV.print("Press right to turn right");
TV.set_cursor(1,20);
TV.print("& both to shoot!!");
delay(5000);
}
void loop(){} //WHEN I USE THIS CODE BENEATH, THE TV DOESN'T GIVE AN OUTPUT ANYMORE!
/*pinMode(6,OUTPUT);
digitalWrite(6,LOW);
// bridge mode?
if (bridge.check())
{
cli();
bridge.loop(0, 1, 12, 13);
}
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(EasyVR::ITALIAN);
int16_t count = 0;
if (easyvr.getGroupMask(mask)) // get trained user names and passwords
{
uint32_t msk = mask;
for (group = 0; group <= EasyVR::PASSWORD; ++group, msk >>= 1)
{
if (!(msk & 1)) continue;
if (group == EasyVR::TRIGGER)
Serial.print("Trigger: ");
else if (group == EasyVR::PASSWORD)
Serial.print("Password: ");
else
{
Serial.print("Group ");
Serial.print(group);
Serial.print(": ");
}
count = easyvr.getCommandCount(group);
Serial.println(count);
for (int8_t idx = 0; idx < count; ++idx)
{
if (easyvr.dumpCommand(group, idx, name, train))
{
Serial.print(idx);
Serial.print(" = ");
Serial.print(name);
Serial.print(", Trained ");
Serial.print(train, DEC);
if (!easyvr.isConflict())
Serial.println(" times, OK");
else
{
int8_t confl = easyvr.getWord();
if (confl >= 0)
Serial.print(" times, Similar to Word ");
else
{
confl = easyvr.getCommand();
Serial.print(" times, Similar to Command ");
}
Serial.println(confl);
}
}
}
}
}
easyvr.setLevel(EasyVR::HARDER);
easyvr.playSound(SND_EASYVR_ACCESSCONTROLDEMO_3 , EasyVR::VOL_FULL);
}
void loop()
{
begin:
int idx_cmd;
int idx_pwd;
easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening)
Serial.println("Say a name in Group 1");
easyvr.recognizeCommand(1); // recognise command in group 1
while (!easyvr.hasFinished()); // wait for user name
easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off
idx_cmd = easyvr.getCommand(); // get recognised user name
if (idx_cmd >= 0)
{
Serial.print("Name: ");
if (easyvr.dumpCommand(1, idx_cmd, name, train))
{
Serial.println(name);
Serial.println(idx_cmd);
}
else
Serial.println();
if (idx_cmd == 1){
if(onestat == 0){
kaKuSwitch.sendSignal('K',3,2,true);
onestat = 1;
goto begin;
}
else{
kaKuSwitch.sendSignal('K',3,2,false);
onestat = 0;
goto begin;
}
}
easyvr.playSound(SND_BEEP , EasyVR::VOL_FULL); // ask for password
easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening)
Serial.println("Say command");
easyvr.recognizeCommand(2); // set group 16
while (!easyvr.hasFinished()); // wait for password
easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off
idx_pwd = easyvr.getCommand(); // get recognised password
if (idx_pwd >= 0)
{
Serial.print("Password: ");
if (easyvr.dumpCommand(2, idx_pwd, name, train))
{
Serial.print(" = ");
Serial.println(name);
}
else
Serial.println();
if ( idx_pwd == idx_cmd) // index of username and password are the same, access granted
{
Serial.println("Access granted");
easyvr.playSound(SND_EASYVR_ACCESSCONTROLDEMO_2 , EasyVR::VOL_FULL);
}
if (idx_pwd == 1)
{
kaKuSwitch.sendSignal('K',3,2,true);
}
if (idx_pwd == 2)
{
kaKuSwitch.sendSignal('K',3,2,false);
}
if (idx_pwd == 3)
{
easyvr.playSound(SND_EASYVR_ACCESSCONTROLDEMO_7 , EasyVR::VOL_FULL);
}
if (idx_pwd == 4)
{
easyvr.playSound(SND_EASYVR_ACCESSCONTROLDEMO_8 , EasyVR::VOL_FULL);
}
if (idx_pwd == 5)
{
digitalWrite(6,HIGH);
delay(100);
digitalWrite(6,LOW);
}
//else // index of username and password differ, access is denied
//{
// Serial.println("Access denied");
//easyvr.playSound(SND_EASYVR_ACCESSCONTROLDEMO_1 , EasyVR::VOL_FULL);
//}
}
int16_t err = easyvr.getError();
if (easyvr.isTimeout() || (err >= 0)) // password timeout, access is denied
{
Serial.println("Error, try again...");
easyvr.playSound(SND_EASYVR_ACCESSCONTROLDEMO_1 , EasyVR::VOL_FULL);
}
}
else
{
if (easyvr.isTimeout())
Serial.println("Timed out, try again...");
int16_t err = easyvr.getError();
if (err >= 0)
{
Serial.print("Error ");
Serial.println(err, HEX);
}
}
}
*/
Thanks in advance!
mpieters95