桑格芝士网

百科知识分享平台,汇聚全球百科全书与学习资源

语音控制垃圾桶教程;LD3320串口版语音识别+UNO开发板+sg90舵机

一、材料准备

硬件部分

序号

材料名称

单位

参考价格(块)

备注

1

LD3320串口版语音识别模块+USB转TTL烧录工具

56

一定要买串口版的,SPI版本的我没搞好。

2

Arduino uno 开发板

15

买一个

3

SG90舵机

6

买一个,(可以在买个小垃圾桶,我只是模拟就没花钱买)

4

杜邦线

若干

10

公对公、母对母、公对母每个10条绝对足够

5

一台windows电脑

/


软件部分

序号

软件名称

用途

备注

1

Keil uVisiion5

是给LD3320串口版语音识别模块编写代码,设置唤醒词以及指令。

都有现成的代码直接改。

2

stc-isp v6.87C

是把编写后的代码烧录(下载)LD3320串口版语音识别模块里面。

要安装CH340驱动,需要把USB转TTL烧录工具插到电脑上进行安装。否则安装会失败。

3

Arduino IDE

是给Arduino uno 开发板编写程序以及烧录(下载)程序。

烧录完成后,记得打开串口监视器,看看发出的指令有没有识别到。可以重新插拔板子。

二、实现内容

接下来按照我的流程一步一步往下走,就能实现,我也是0基础,所以一定按照我的思路来,等你实现了,再按照你自己的思路拓展。硬件部分自己准备,软件部分可以问我要且提供支持。一般买硬件后,商家都会提供软件部分。

实现步骤:LD3320串口版语音识别模块调试好-->接入Arduino uno 开发板-->测试-->完成。

1、LD3320串口版语音识别模块和USB转TTL烧录工具

1)先把USB转TTL烧录工具插入到电脑,找到CH340驱动(不好找问我要),安装,完成。

2)USB转TTL烧录工具需要和LD3320串口版语音识别模块连接,接线图如下:

3)USB转TTL烧录工具接到LD3320串口版语音识别模块后插入到电脑,准备编写代码和烧录程序。

4)打开Keil uVisiion5软件和示例代码,示例代码我们只需要修改main.c和LDChip.c,先打开LDChip.c,如下图。我们只需要再圈红的地方修改语音指令就可以,第一个是唤醒词,我设置的是小五、第二个是打开垃圾桶、第三个是关闭垃圾桶,只识别拼音,一定要写拼音。

再打开main.c文件,修改上述内容,跟着我做,先别着急理解他。

完成后,编译完成。记得编译后的软件存放位置,后续进行烧录的时候,需要选择到它。


5)使用stc-isp v6.87C软件把编译后的代码烧录到LD3320串口版语音识别模块。

先点击“检测MCU选项”是为了自动识别单片机型号和串口号以及波特率,如果失败多点击几次。

点击“打开程序文件”选择.hex后缀的文件见下图示,然后点击下载/编程。如果太慢,可以点击停止后在点击下载/编程。完成。

6)测试LD3320串口版语音识别模块是否正常,重新插拔后,把Arduino IDE打开,再找到串口监视器,对板子上的咪头说小五,正常他会返回5,打开垃圾桶会返回6,关闭垃圾桶会返回7。如果测试正常,这一步就完成了。

2、Arduino uno开发板烧录程序

1)打开Arduino IDE工具,把示例代码复制进去。

#include <Servo.h>

Servo myservo;// 创建一个 Servo 舵机对象
int servoPin = 9; // 定义数字引脚 9

void setup() {
  Serial.begin(9600);
  myservo.attach(servoPin);  // 舵机机连接到数字引脚 9
  myservo.write(0); // 将舵机转到 0 度位置
  Serial.println("系统就绪,等待语音指令...");
}

void loop() {
  if (Serial.available() > 0) { //是 Arduino 的一个函数,用于检查串口缓冲区中是否有可用的数据。如果返回值大于 0,表示有数据可读。
    // 读取指令并清空缓冲区
    int command = Serial.read(); //从串口缓冲区中读取一个字节的数据(ASCII 值),并将其存储到变量 command 中。
    while(Serial.available() > 0) Serial.read(); // 清空缓冲区

    Serial.print("收到原始指令:");
    Serial.println(command);

    // 如果LD3320发送二进制数值(6/7/8)
    if (command == 54) {
      Serial.println("执行指令6(打开垃圾桶) → 舵机转到150度");
      myservo.write(150);
    }
    else if (command == 55) {
      Serial.print("执行指令");
      Serial.print(command);
      Serial.println("执行指令7(关闭垃圾桶) → 舵机转到0度");
      myservo.write(0);
    }
  
    else {
      // Serial.print("未知指令:");
      // Serial.println(command);
    }
    delay(15); // 统一延迟15毫秒
    Serial.println("等待下一条指令...");
  }
}

2)Arduino IDE连接Arduino uno板子,通过usb线连接电脑插上板子之后,勾选正确的板子型号和端口,不知道端口的可以到“电脑的设备管理器”查看。

3)验证及上传,先点击验证,看输出内容没问题的话,就点击上传板子,知道IDE提示上传完成。然后板子重新插拔。完成。

3、Arduino uno开发板和LD3320串口版语音识别模块和SG90舵机接线

1)其中sg90舵机橙(信号)接到Arduino uno开发板的9号引脚。


以上完成后,通电,呼叫xiao wu ,发出打开垃圾桶指令。舵机就会转动150°;

先不上视频了,有需要的后期再录视频。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言