刚买了这个语音模组,再把它连接了电脑, 因为我看见它有这个mgea32u4 microcontroller, 所以我用Arduino IDE上传了ASRB_2 library的code
- #include <ASRB.h>
- #include <EEPROM.h>
- #include <SPI.h>
- #define SUM 35//
- int set=0,vall,res;
- char sRecog[SUM][38]={"kai deng","guan deng","zhun bei"};//
- unsigned int fDigit[SUM]={252,253,254};//AD4
- void BT(int x,int y,char (*p)[38],unsigned int dd[],int set);
- void PT(int x,int y,char (*p)[38],unsigned int dd[],int set);
- void ASR_while(int x,int y,char (*p)[38],unsigned int dd[],int set);
- void ASR_BT(int x,int y,char (*p)[38],unsigned int dd[],int set);
-
- int button=3,led=4;
- void setup()
- {
- ASRB.Initialise(SUM,sRecog,fDigit);
- attachInterrupt(0,ExtInt0Handler,LOW);
- //pinMode(button,INPUT);
- pinMode(led,OUTPUT);
- digitalWrite(led,HIGH);
- }
- void loop()
- {
- if(vall==111) PT(SUM,38,sRecog,fDigit,set); //
- else if(vall==112) BT(SUM,38,sRecog,fDigit,set); //
- else
- {
- while(1)
- { res=0;
- res=ASRB.Asr(SUM,38,sRecog,fDigit,set);
- ASR_monitor();
- delay(10);
- ASRB.Busy_SD();
- if (Serial.available() > 0) break;
- }
- } //
- ASRB.AT_command(SUM,38,sRecog,fDigit,set);//
- delay(100);
- }
- void ExtInt0Handler ()
- {
- ASRB.ProcessInt0();
- }
- void ASR_while(int x,int y,char (*p)[38],unsigned int dd[],int set)
- {
- while(1)
- {
- res=0;
- res=ASRB.Asr(x,y,p,dd,set);
- ASR_monitor();
- delay(10);
- ASRB.Busy_SD();
- if(res<255&&res>0) break;
- if (Serial.available() > 0) break;
- // else if(digitalRead(button)==LOW) break;
- }
- }
- void ASR_BT(int x,int y,char (*p)[38],unsigned int dd[],int set)
- {
- ASRB.send_SD(260);
- delay(50);
- ASRB.Busy_SD();
- ASR_while(x,y,p,dd,set);
- }
- /**************************************语音控制LED****************************/
- void ASR_monitor()
- {
- if(res==252) digitalWrite(led,LOW);
- else if(res==253) digitalWrite(led,HIGH);
- }
- /*******************************口令模式*************************************/
- void PT(int x,int y,char (*p)[38],unsigned int dd[],int set)
- {
- while(1)
- {
- set=1;
- if (Serial.available() > 0)
- {
- set=0;
- break;
- }
- int h=ASRB.Asr(x,y,p,dd,set);
- delay(50);
- if(h==254) //
- {
- set=0;
- ASRB.send_SD(260);
- delay(50);
- ASRB.Busy_SD();
- ASR_while(x,y,p,dd,set);
- }
- }
- }
- /*******************************按键模式**************************************/
- void BT(int x,int y,char (*p)[38],unsigned int dd[],int set)
- {
- char local[10]={0};
- char DD[1][6]={"asrbt"};
- while(1)
- {
- if (Serial.available() > 0)
- {
- local[0]= Serial.read();
- delay(20);
- if(local[0]!=0x41)
- {
- for(int i=1;i<8;i++)
- {
- local[i]= Serial.read();
- if( local[i]==0x0a) //
- {
- if( local[i-1]==0x0d)
- {
- local[i]=0;
- local[i-1]=0;
- if(strcmp(local,DD[0])==0) //AT
- {
- ASR_BT(x,y,p,dd,set);
- break;
- }
- }
- }
- }
- }
- else
- break;
- }
- /* else if(digitalRead(button)==LOW)
- {
- delay(100);
- if(digitalRead(button)==LOW)
- {
- ASR_BT(x,y,p,dd,set);
- break;
- }
- }*/
- }
- }
复制代码 我在putty连接了ASR board再传送命令给它, 它只会显示error


它的d13的燈是開了
我想问一下是不是我的连接方法有问题, 我就是用普通android我手机线和Arduino Leonardo的线连接电脑, 是板子有问题还是我的问题?

我跟着官方的资料把<需要复制到SD卡中的AD4音频文件>上传到micro sd card, 再开了<语音识别模块.exe>, 然后连接ASR board(Com4), 但是我按了所有按键也没有反应, 再对它的mic说成都, 开灯, 关灯等的词语也没反应, 是我做错了什么步骤吗? 求大神解答..
|
http://zhidao.baidu.com/link?url=wyfnwM-rsLd0STMCQ6fJ6tYAT8pfV1utuTpXf-dvzUQ_RZhDOzpPos6Yc0AFP_cTXSckj6MlfH2HuQYgm-OBiu3XEkURz1fY3AzABoxCJIi
我把這模板當做了Leonardo, 我在百度找到这个上传方法, 在arduino IDE快要上传前,按下复位键,是成功Upload了, 可是一使用模板的软件连接,软件就会hand了, 而且播放音频和接收252,253,254预设关键词的功能也没了,我现在真的搞不清状况, 究竟是什么问题呢
输入命令在它的software,但是在接收区没有回应
这是板子的图, D13是亮的, 可是因为输入不到命令, 我说关键词也不会有回应
现在它的D13着了, 可是我说话也没反应, 我狂按加关键词也没用
还有想问一下如果成功传送AT, 在ASR board软件的接收区会不会显示什么?因为我传送了AT+PLAY=001(放AD4), 也听到板子播放对应的AD4, 可是接收区什么也没好显示
[code]#include
byte value;
void setup()
{
Serial.begin(9600);
while (!Serial) {
;
}
}
void loop()
{
for (int i = 0; i < 512; i++)
EEPROM.write(i, 0);
delay(50);
EEPROM.write(2,78);
EEPROM.write(5, 3);
delay(50);
value = EEPROM.read(2);
Serial.print(value);
Serial.print("\t");
value = EEPROM.read(5);
Serial.println(value);
while(1);
}[/code]
可是我一开始试的时候先上传了library example>>ASRBled的code, 有影响吗?
[code]#include
#include
#include
#define SUM 35//
int set=0,vall,res;
char sRecog[SUM][38]={"kai deng","guan deng","zhun bei"};//
unsigned int fDigit[SUM]={252,253,254};//AD4
void BT(int x,int y,char (*p)[38],unsigned int dd[],int set);
void PT(int x,int y,char (*p)[38],unsigned int dd[],int set);
void ASR_while(int x,int y,char (*p)[38],unsigned int dd[],int set);
void ASR_BT(int x,int y,char (*p)[38],unsigned int dd[],int set);
int button=3,led=4;
void setup()
{
ASRB.Initialise(SUM,sRecog,fDigit);
attachInterrupt(0,ExtInt0Handler,LOW);
//pinMode(button,INPUT);
pinMode(led,OUTPUT);
digitalWrite(led,HIGH);
}
void loop()
{
if(vall==111) PT(SUM,38,sRecog,fDigit,set); //
else if(vall==112) BT(SUM,38,sRecog,fDigit,set); //
else
{
while(1)
{ res=0;
res=ASRB.Asr(SUM,38,sRecog,fDigit,set);
ASR_monitor();
delay(10);
ASRB.Busy_SD();
if (Serial.available() > 0) break;
}
} //
ASRB.AT_command(SUM,38,sRecog,fDigit,set);//
delay(100);
}
void ExtInt0Handler ()
{
ASRB.ProcessInt0();
}
void ASR_while(int x,int y,char (*p)[38],unsigned int dd[],int set)
{
while(1)
{
res=0;
res=ASRB.Asr(x,y,p,dd,set);
ASR_monitor();
delay(10);
ASRB.Busy_SD();
if(res<255&&res>0) break;
if (Serial.available() > 0) break;
// else if(digitalRead(button)==LOW) break;
}
}
void ASR_BT(int x,int y,char (*p)[38],unsigned int dd[],int set)
{
ASRB.send_SD(260);
delay(50);
ASRB.Busy_SD();
ASR_while(x,y,p,dd,set);
}
/**************************************语音控制LED****************************/
void ASR_monitor()
{
if(res==252) digitalWrite(led,LOW);
else if(res==253) digitalWrite(led,HIGH);
}
/*******************************口令模式*************************************/
void PT(int x,int y,char (*p)[38],unsigned int dd[],int set)
{
while(1)
{
set=1;
if (Serial.available() > 0)
{
set=0;
break;
}
int h=ASRB.Asr(x,y,p,dd,set);
delay(50);
if(h==254) //
{
set=0;
ASRB.send_SD(260);
delay(50);
ASRB.Busy_SD();
ASR_while(x,y,p,dd,set);
}
}
}
/*******************************按键模式**************************************/
void BT(int x,int y,char (*p)[38],unsigned int dd[],int set)
{
char local[10]={0};
char DD[1][6]={"asrbt"};
while(1)
{
if (Serial.available() > 0)
{
local[0]= Serial.read();
delay(20);
if(local[0]!=0x41)
{
for(int i=1;i<8;i++)
{
local[i]= Serial.read();
if( local[i]==0x0a) //
{
if( local[i-1]==0x0d)
{
local[i]=0;
local[i-1]=0;
if(strcmp(local,DD[0])==0) //AT
{
ASR_BT(x,y,p,dd,set);
break;
}
}
}
}
}
else
break;
}
/* else if(digitalRead(button)==LOW)
{
delay(100);
if(digitalRead(button)==LOW)
{
ASR_BT(x,y,p,dd,set);
break;
}
}*/
}
} [/code]
我看见send完之后图下面也是显示uploading... , 是正常吗?
板子的D8在播AD4的时候着了, 但D13依然没着