Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.03.2014, 16:08   #11
palagnyukvovan
Junior Member
 
Регистрация: 04.03.2014
Сообщений: 23
Вес репутации: 0
palagnyukvovan is an unknown quantity at this point
По умолчанию Re: ARDUINO MEGA 2560 + EASYVR SHILD

Цитата:
Сообщение от Admin Посмотреть сообщение
Попробуйте проверить скетчем сгенерированом в командере
А как ето?

Мжет у кого есть простой скетч для проверки спаривания етих двух плат ?
Тоесть на одну команду.
Ато както надо проверить почему EasyVR not detected!
Может в скетче косяк. Он под Iteaduino V2.2 (ATmega 328) а у меня arduino mega 2560.

#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"

#define SND_AUDIO_1 1
#define SND_AUDIO_2 2
#define SND_AUDIO_3 3
#define SND_AUDIO_4 4

EasyVR easyvr(port);
EasyVRBridge bridge;

uint32_t mask = 0;
int8_t group = 0;
uint8_t train = 0;
char name[32];


void setup()
{
// bridge mode?
if (bridge.check())
{
cli();
bridge.loop(0, 1, 12, 13);
}

Serial.begin(9600);
port.begin(9600);
pinMode(2, OUTPUT);

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_AUDIO_1, EasyVR::VOL_FULL);
digitalWrite(2, LOW);
}

void loop()
{
int idx_cmd;
int idx_cmd2;
int idx_pwd;

Serial.println("Say a name computer");
easyvr.recognizeCommand(1); // recognise command in group 1
while (!easyvr.hasFinished()); // wait for user name

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);
else
Serial.println();

easyvr.playSound(SND_AUDIO_3 , EasyVR::VOL_FULL); // ask a command
Serial.println("Say the command");
easyvr.recognizeCommand(2); // set group 2
while (!easyvr.hasFinished()); // wait command
idx_cmd2 = easyvr.getCommand();
if (idx_cmd2 == 0)
{
Serial.println("On");
easyvr.recognizeCommand(3); // set group 3
while (!easyvr.hasFinished()); // wait command
idx_pwd = easyvr.getCommand();
if (idx_pwd == 0)
{
Serial.println("Light");
easyvr.playSound(SND_AUDIO_4 , EasyVR::VOL_FULL);
digitalWrite(2, HIGH);
}
else
Serial.println();
}
if (idx_cmd2 == 1) //
{
Serial.println("Off");
easyvr.recognizeCommand(3); // set group 3
while (!easyvr.hasFinished()); // wait command
idx_pwd = easyvr.getCommand();
if (idx_pwd == 0)
{
Serial.println("Ligh off");
easyvr.playSound(SND_AUDIO_4 , EasyVR::VOL_FULL);
digitalWrite(2, LOW);
}
}

int16_t err = easyvr.getError();

if (easyvr.isTimeout() || (err >= 0)) //
{
Serial.println("Error, try again...");
easyvr.playSound(SND_AUDIO_2 , 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);
}
}
}
}





Может у кого есть скетч под мою дуину...... буду благодарен.

Последний раз редактировалось palagnyukvovan; 05.03.2014 в 16:20.
palagnyukvovan вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:46. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика