Arduino系列教程十:语音识别模块 LD3320

来自丢石头百科


163547ml3sv360hzi6cich.jpg

本教程主要实现:通过语音模块控制LED的亮和灭。说“开灯”,LED点亮;说“关灯”,LED熄灭。

LD3320 语音识别模块概述:

采用SPI通信接口,板载咪头和有源晶振,方便在电子产品中实现语音识别、声控和人机对话等功能。

注意事项:

由于该模块使用3.3V电压,所以将其和Arduino连接时,请务必注意供电电压(如配合Arduino UNO R3使用,建议加上电平转换模块);对于使用UNO PLUS开发板来说,切换电压很简单,只需将电压跳线帽配置为3.3V即可。


硬件准备:

  • UNO PLUS
  • I/O Expansion Shield
  • LD3320 Shield
  • 硬件连接: 1. 将IO Expansion Shield接入UNO PLUS,用跳线帽将两个板的电压配置为3.3V 2. 连接 LD3320 语音模块 3.3V  --  VCC GND  --  GND MISO  --  D12 MOSI  --  D11 SCK  -- D13 NSS  --  D4 RST  --  D9 IRQ -- D2 WR -- GND 3. 将 D8 与XBEE接口的15号引脚连接,控制板载的 STATE LED闪烁。如果你动手能力比较腻害,可以用洞洞板连接一个LED驱动电路,其实就一个1K电阻和一个发光二极管,D8为控制引脚;当识别到“开灯”时,D8输出高电平;反之输出低电平 101231j808zsppc5cp08pc.jpg 程序:

    #include <ld3320.h>
    
    VoiceRecognition Voice;                         //声明一个语音识别对象
    
    #define Led 8                                   //定义LED控制引脚
    
    void setup() 
    {
        pinMode(Led,OUTPUT);                        //初始化LED引脚为输出模式
        digitalWrite(Led,LOW);                      //LED引脚低电平
        
        Voice.init();                               //初始化VoiceRecognition模块   
        Voice.addCommand("kai deng",0);             //添加指令,参数(指令内容,指令标签(可重复))
        Voice.addCommand("guan deng",1);            //添加指令,参数(指令内容,指令标签(可重复))
        Voice.start();//开始识别
    }
    void loop() {
      switch(Voice.read())                          //判断识别
      {
        case 0:                                     //若是指令“kai deng
    	digitalWrite(Led,HIGH);                 //点亮LED
            break;
        case 1:                                     //若是指令“guan deng
    	digitalWrite(Led,LOW);//熄灭LED
            break;   
        default:
            break;
      }
    }
    

    源代码下载:

    <a class="attach" href="portal.php?mod=attachment&id=37" target="_blank">VoiceLED.zip

    <a class="attach" href="portal.php?mod=attachment&id=165" target="_blank">VoiceLED-V2.zip (增加串口输出) 如果下载后编译出错,将ld3320目录复制到Arduino sketchbook location地址的libraries文件夹内(在File->Preferenees里查看)