语音识别模块问题,求教

2015-03-259190
AI 快速预览详细 收起
本文讨论了在使用Arduino和VoiceRecognition库进行语音识别控制时遇到的问题。具体描述了在添加舵机信号口定义后,程序无法正常运行的情况。通过移除舵机信号口定义语句,解决了语音识别模块与舵机控制之间的冲突问题。文章还提供了详细的故障排查方法,帮助初学者和技术爱好者快速排除故障。
#include <avr/wdt.h>  
#include <Servo.h>
#include <VoiceRecognition.h>
VoiceRecognition Voice;
#define Led 8 //定义Led引脚为8
Servo myservo;

void setup() {
   myservo.attach(9);
    Serial.begin(9600);
    pinMode(Led,OUTPUT);              //初始化LED引脚为输出模式
    digitalWrite(Led,LOW);            //LED引脚低电平

    Voice.init();//初始化VoiceRecognition模块   
    Voice.addCommand("kai deng",0);   //添加指令,参数1:指令内容,参数2:指令标签(可重复)
    Voice.addCommand("zhuan dong",2);                                  //如“北京”和“首都”代表同样含义,则可共用标签。无返回
    Voice.addCommand("guan deng",1); //添加指令,参数(指令内容,指令标签(可重复))
    Voice.addCommand("hui fu",3);
    Voice.start();//开始识别
    //wdt_enable(WDTO_1S);//打开看门狗(防止死机)              

}
void loop() {
  switch(Voice.read())               //判断识别内容,在有识别结果的情况下Voice.Read()会返回该指令标签,否则返回-1
  {
    case 0://若是指令“kai deng”
        digitalWrite(Led,HIGH);     //点亮LED
        Serial.println("received'kai deng',command flag'0'"); //串口发送received"kai deng",command flag"0"
    break;
    case 1://若是指令“guan deng”
        digitalWrite(Led,LOW);     //熄灭LED
        Serial.println("received'guan deng',command flag'1'"); //串口发送received"guan deng",command flag"1"
    break;
  /*  case 2:
        for(int i=0;i<180;i=i+8)
        myservo.write(i);
     break;
    case 3:
        for(int i=180;i>0;i=i-18)
        myservo.write(i);
    break; */
   default:
  break;
  }
  //wdt_reset();   
}
想要用语音识别模块进行开关灯,和舵机转动控制,但是只要程序中一加上我标记的这条定义舵机信号口,程序就会失效,开关灯也无法语音控制,去掉这条语句就可以,为什么呢?问题出现在哪里,小白求教啊

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
tyjjr
tyjjr
语音模块正常工作需要占用 D2 D4 D9 D10 D11 D12 D13端口,您可以尝试更换其他接口测试
i小酷99
i小酷99
作者
回复tyjjr
谢谢您,问题解决了,嘿嘿
tyjjr
tyjjr回复i小酷99
没有默认识别的,您可以在case 2或者case 3的位置通过串口推送数据观察,排查可能出现问题的原因。或者尝试更换识别指令测试。
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
- 没有更多了 -