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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.02.2014, 17:18   #11
Mikhail
Member
 
Регистрация: 19.02.2014
Сообщений: 40
Вес репутации: 0
Mikhail is an unknown quantity at this point
По умолчанию Re: Голосовое управление нагрузками

Здравствейте. Ну подскажите. Я уже три дня и три ночи пытаюсь наладить EASYVR.
Он совершенно отказывается управлять ардуино.
Вот скетч формат
PHP код:
#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);

//Groups and Commands
enum Groups
{
  
GROUP_1  1,
  
GROUP_2  2,
};

enum Group1 
{
  
G1_COMPUTER 0,
};

enum Group2 
{
  
G2_ON 0,
  
G2_OFF 1,
};


EasyVRBridge bridge;

int8_t groupidx;

void setup()
{
  
pinMode(10,OUTPUT);
  if (
bridge.check())
  {
    
cli();
    
bridge.loop(011213);
  }
  
// run normally
  
Serial.begin(9600);
  
port.begin(9600);

  if (!
easyvr.detect())
  {
    
Serial.println("EasyVR not detected!");
    for (;;);
  }

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

  
group EasyVR::TRIGGER//<-- start group (customize)
}

void action();

void loop()
{
  
easyvr.setPinOutput(EasyVR::IO1HIGH); // 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::IO1LOW); // 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(groupidxnametrain))
    {
      
Serial.print(" = ");
      
Serial.println(name);
    }
    else
      
Serial.println();
    
easyvr.playSound(0EasyVR::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(errHEX);
    }
  }
}

void action()
{
    switch (
group)
    {
    case 
GROUP_1:
      switch (
idx)
      {
      case 
G1_COMPUTER:
        
// write your action code here
        // group = GROUP_X; <-- or jump to another group X for composite commands
        
break;
      }
      break;
    case 
GROUP_2:
      switch (
idx)
      {
      case 
G2_ON:
       
digitalWrite(10,HIGH);
        break;
      case 
G2_OFF:
        
DigitalWrite(10,LOW);
        break;
      }
      break;
    }

Сама плата работает в коммандере в тесте и звуки воспроизводит.
Ардуина тоже работает закидывал сетчи с миганием и морзе на 10пин. Все работает. Может нажо перемычку на ардуине куда ставить но в инструкции особо про перемычку не написано.
Mikhail вне форума   Ответить с цитированием
 


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

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

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

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


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


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