STM32语音控制小车(文末附代码)

发布时间:2024-11-24 20:12

如何通过语音助手控制音响 #生活技巧# #数码产品使用技巧# #智能家居控制指南#

** 1

菜鸟一只,错误之处请指出

**
前些天博主课程设计做了一个基于stm32的循迹避障小车,用的是在某宝上买的智能小车的套件,后来闲来无事想改造成一个语音控制的小车,于是又淘了一个LD3320的语音模块,通过语音命令能够控制小车前进、后退、转弯和停止。
这里附上LD3320的完整资料:http://www.waveshare.net/wiki/LD3320_Board
资料里面有stm32的例程,是用语音控制开发板的LED灯,看了资料后发现例程中使用的开发板芯片和我使用的正好相同,都是使用的stm32f103zet6芯片,所以语音模块的串口没有改动,只简单改动了一下LED灯的串口就能用了。

下面是LD3320的引脚图:
在这里插入图片描述
如果你的开发板上有对应的串口,可以直接按下图的引脚连接:
在这里插入图片描述
博主把代码烧录到板子后才发现自己的板子没有LED灯,是的,没有LED灯,博主都要哭了,于是一生气就把核心板撬掉了,换了一个指南者的板子,花费了两个小时把指南者板子上的引脚连到扩展板对应的引脚上,再烧录程序后发现程序可以正常运行。
下一步把板子装到小车上,下面是连接实物图:
正面
侧面
接下来就是程序的问题了,把语音代码和红外避障的代码整合起来,虽然听起来简单,但实际遇到很多问题,比如中断冲突等,博主呕心沥血花了一周时间查阅数据手册和开发手册,终于解决了问题。
于是赶紧把小车放到地上调试,结果遇到了一个更麻烦的问题,LD3320自带的咪头引脚很短,而语音识别的距离很近,所以小车放在地上根本无法识别语音指令,于是博主不得不接着查阅数据手册,发现35寄存器可以修改语音识别的距离,历程中默认值是0x43,值越大识别距离越远,但同时识别的准确率会严重降低,官方推荐的值为40H—55H,重新调试程序后发现语音识别的距离还不是很理想(其实并没有多大改变),不得已,只能想其他的办法。
某天博主正在吃午饭的时候,突发奇想,能不能把咪头拆下来,再引两根线出来不就解决了吗(窃喜),幸亏博主在付诸实践之前先逛了逛论坛,里面有大牛说线太长会导致信号衰减,语音无法识别,于是博主放弃了这个念头,没敢用于实践。但这个问题怎么解决呢?博主盯着手中的筷子,突然有了一个大胆的想法,用筷子把语音模块架高,
最后,博主含泪牺牲了自己的筷子解决了这个问题。
在这里插入图片描述
在这里插入图片描述
做到这里语音控制小车基本上就完成了,但博主可不是就这样轻易满足的,博主开始想的是小车转弯的角度是90度然后停下,但实际小车会一直不停的旋转,原因是输入语音命令后,代码会把语音命令写到芯片中,然后main()函数会一直循环扫描等待新的语音命令输入,在这个规程中,代码会一直执行上次输入的语音命令,于是修改了部分代码,使每次循环把语音命令清零,解决了这个问题。

#include "LD3320.h" #include "motor.h" #include "redvoid.h" #include "stm32f10x_spi.h" #include "interface.h" uint8 nAsrStatus = 0; uint8 nLD_Mode = LD_MODE_IDLE; uint8 ucRegVal; int f=1; int key=1; int key1=1; extern uint8 nAsrRes=0; //12345678910111213

网址:STM32语音控制小车(文末附代码) https://www.yuejiaxmz.com/news/view/242214

相关内容

基于STM32开发的智能语音控制系统
基于STM32的智能家居系统设计与实现:手机APP与语音控制家电
基于STM32声控智能小车
基于STM32的语音控制智能家居系统设计
基于STM32开发的智能语音助手系统
基于stm32的智能家居语音控制系统
基于STM32的智能家居语音控制系统:集成LD3320、ESP8266设计流程
一种基于STM32的智能家居控制系统
STM32智能照明控制系统设计详解
【stm32项目】多功能智能家居室内灯光控制系统设计与实现(完整工程资料源码)

随便看看