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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.05.2014, 13:46   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Голосовое управление нагрузками

А если попробовать перезаписать команды?
Admin вне форума   Ответить с цитированием
Старый 12.05.2014, 21:54   #2
artemka181
Junior Member
 
Регистрация: 24.12.2012
Сообщений: 19
Вес репутации: 0
artemka181 is an unknown quantity at this point
По умолчанию Re: Голосовое управление нагрузками

Цитата:
Сообщение от Admin Посмотреть сообщение
А если попробовать перезаписать команды?
Постоянно пишет ошибку "время ожидание истекло"
на любые действия.
До вчерашнего дня почти год работало все.
artemka181 вне форума   Ответить с цитированием
Старый 24.05.2014, 10:21   #3
Net
Junior Member
 
Регистрация: 24.05.2014
Сообщений: 5
Вес репутации: 0
Net is an unknown quantity at this point
По умолчанию Голосовое управление нагрузками

Как включить и выключить светодиоды? Все отлично работает.
Стандартный скетч с коммандера 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_0  0,
  
GROUP_1  1,
};

enum Group1 
{
  
G1_OPEN_LEFT_WINDOW 0,
  
G1_CLOSE_LEFT_WINDOW 1,
  
G1_OPEN_RIGHT_WINDOW 2,
  
G1_CLOSE_RIGHT_WINDOW 3,
  
G1_OPEN_ALL_WINDOWS 4,
  
G1_CLOSE_ALL_WINDOWS 5,
};


EasyVRBridge bridge;

int8_t groupidx;

void setup()
{
  
// bridge mode?
  
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_1// (<-- 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_OPEN_LEFT_WINDOW:
        
// write your action code here
        // group = GROUP_X; <-- or jump to another group X for composite commands
        
break;
      case 
G1_CLOSE_LEFT_WINDOW:
        
// write your action code here
        // group = GROUP_X; <-- or jump to another group X for composite commands
        
break;
      case 
G1_OPEN_RIGHT_WINDOW:
        
// write your action code here
        // group = GROUP_X; <-- or jump to another group X for composite commands
        
break;
      case 
G1_CLOSE_RIGHT_WINDOW:
        
// write your action code here
        // group = GROUP_X; <-- or jump to another group X for composite commands
        
break;
      case 
G1_OPEN_ALL_WINDOWS:
        
// write your action code here
        // group = GROUP_X; <-- or jump to another group X for composite commands
        
break;
      case 
G1_CLOSE_ALL_WINDOWS:
        
// write your action code here
        // group = GROUP_X; <-- or jump to another group X for composite commands
        
break;
      }
      break;
    }


Последний раз редактировалось Net; 24.05.2014 в 10:27.
Net вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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