每日一言
不必与他人比较速度,你走的每一步都在书写自己的传奇。
案例:语音识别小车
这个是最后一个功能了,其实就是用语音功能让小车自己切换各种模式,当然了我们需要先学习一下语音模块
硬件:SU-03T
这个叫做非特定语音识别模块:就是不分辨声调音色,同一个指令大家的声音都会可以识别,这个就叫做非特定语音识别模块,
还有一个叫做特定语音识别模块,比如我们熟悉的苹果的siri就是可以识别音色和音调等等确保只有你的声音可以识别
我们这个非特定语音模块的话用于一些项目,还有玩具上面,还有一些公司的小产品上是一个非常好的模块,实际上就是结合我们的代码层面就是将多个功能的代码进行整合在一个程序里,然后我们用语音模块的触发条件进行判断,就可以实现某个功能
怎么使用:
我们拿到模块之后厂家有一个说明书,我就直接说了,就是我们需要用一个USB转TTL的模块将
就是这样,还有一个是VCC接串口工具的5v,就一定要记住模块的vcc是接串口工具的5V而不是VCC,我之前TM的接的是VCC搞了我好久才发现的是我接错了
任何时候一定不能怪硬件,肯定是自己的问题
好了接好线后我们去打开这个网址智能公元/AI产品零代码平台,
步骤
最后完成保存后发布版本,然后下载SDK
以上就是所有的步骤了,对这个模块的简单使用
最重要的是这个步骤了,配置控制条件,就是我们说的命令,语音模块识别到后会给出相应的反应,比如这边我们使用的是电平控制,如果说打开循迹模式,那么A252627就会根据我们的配置传出不同的高低电平给单片机比如下发的代码
因为对应着我们的代码实现,我们进行对端口的电平设置来实现我们的需要实现的功能,
好了这个配置就这样讲完了
现在讲我们怎么进行烧录呢,首先要进行串口的连接上面已经讲过了
用这个串口工具哈
随后我们下载好的SDK进行解压,一定是要是全英文的路径,不然容易出错
根据以上的步骤一路下来就可以啦,记得这个点击烧录的时候要将模块上面的电源从0ff到ON这样才可以烧录,或者是接一个安卓的线那也可以直接进行烧录
烧录完之后就可以进行对话啦
代码层面我们怎么写呢???
现在轮到是代码层面
我们先将循迹、避障、跟随三种模式融合到一起
当然了我们先想一下我们的每个程序如果都要融合在一个程序里面,那么是不是就是要考虑定时器的占用,当然了我们的舵机和超声波的测距这两个都需要各自占用一个定时器,真的没有办法去通过软件来进行设计来进行定时器的占用,然后我们电机的差速行驶这边是不是也需要一个定时器,但是真的没有办法在占用了,因为电机要是占用一个的话,因为电机是永远在占用的无法通过软件的设计去控制定时器的使用,所以我们要取消电机的差速行驶了,所以我们的蓝牙小车的功能也加不进去了,因为串口中断也需要用一个定时器主要就是配置是不一样的,我们超声波的定时器呗不能先开始计时的,要等ECHO收到高电平才能开始,所以蓝牙小车加不进去了,好了,现在我们分析好了现状我们来写代码
整合代码
主要就是讲main.c文件的代码,因为其他的都不变
这个的话就是我们将避障的代码封装成一个函数,利于我们的调用,当然那些该移植引脚的代码,要自己去移植,我不讲,之前都讲过了
这个的话就是我们将循迹的代码封装成一个函数,利于我们的调用,当然那些该移植引脚的代码,要自己去移植,我不讲,之前都讲过了
这个的话就是我们将跟随小车的代码封装成一个函数,利于我们的调用,当然那些该移植引脚的代码,要自己去移植,我不讲,之前都讲过了
主要就是这边了,因为我们模块的引脚我们使用的是A25 A26 A27 在教配置的时候也有说过,并配置好了电平,所以啊我们说话说到关键词的时候单片机就会接受到这些高低电平的信号,所以我们就可以根据这个特性进行调用想要执行的功能。另外我们这边也应用了OLED屏,加入一些有意思的元素,这个也是需要移植的,将之前代码的OLED二次开发的案例中的OLED.c和OLED.h还有OledFont.h都移植到程序中,然后我们就在main函数中班添加OLED的初始化、清屏函数、必要的,然后再用那个你要显示的内容写上就可以了
这个是全部的引脚声明
这些就是我的语音控制小车的所有内容了
先暂时展示没有下地跑的视频(等锂电池到还有电烙铁到、后续更新下地跑的小车)
语音控制小车
以后要学习C++了先提升代码能力,学完C++在学stm32,学完32再学Linux