基于STM32的智能小车控制系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于STM32的智能小车控制系统设计与实现
作者:程水平张珍霞王志永李新黄富强魏恩赟
来源:《科学与信息化》2018年第10期
摘要针对以往智能小车存在自动循迹时失误率高、自动避障时不灵敏、测距精度低、只能在固定的轨迹上行驶等缺点,研制了一种基于STM32单片机的带有蓝牙功能与语音控制功能的小车控制系统。在小车底部的两侧位置等距安装两路红外对管,确保了小车自动循迹的正确率;测试结果表明,超声波模块的避障功能大约在距离障碍物20cm处可以实现,蓝牙模块的通讯距离最远能达到29米,语音模块的控制最大灵敏度距离可达到15厘米,该系统具备了自动循迹、自动避障、蓝牙无线遥控和语音控制的功能。
关键词智能小车;STM32单片机;蓝牙;语音;红外对管;超声波
前言
智能小车是典型的高新技术综合体,它推动了传感器技术、人工智能技术、自动控制技术、无线遥控技术的迅速发展。智能化是现代社会的新产物,在小车上安装相应传感器,无须人为管理就能使小车实现自动循迹、自动避障的功能;此外,越来越多的产品融入了语音控制功能,由人声通过语音模块来控制小车,不仅能给生活带来乐趣,还可以使得小车在紧急或突发情况时迅速改变小车的行驶状态。因此,智能加遥控技术的研究和应用具有重大的意义,研究带语音功能的小车具有广阔的市场价值。
近年来,国内外科研人员对智能小车的研究正热情高昂,日本、德国等工业大国在无线遥控小车的研究技术上占据显著优势,我国对无线遥控小车的研究起步比较晚,与国际先进水平尚有一定的差距,但在相关科研单位的极力支持下,使之得到了迅速的发展。文[1]提出了一种基于ATmega16单片机的智能小车,该小车实现的功能较少,仅仅能实现循迹和避障的功能,并且小车的行驶速度一定,离开设定的轨道后只能直线行驶,当遇到紧急情况时,不能迅速改变行驶状态,基于这些不足,文[2]提出了一种利用ZigBee技术实现无线遥控的方法,该技术采用ISM频段中的2.5G频率,其衍射能力弱,穿墙能力也弱,并且价格相对昂贵,抗干扰能力差,如果采用915M、869M信道则容易受射频干扰;提出了以凌阳SPCE061A单片机为核心的语音控制智能小车,主要通过各种传感器进行控制[3]。
综上所述,语音控制技术的应用具有显著的优势,可为固定的或移动的终端设备提供廉价的接入服务。故本设计研究在小车上装上语音模块和蓝牙模块,不仅使小车能实现自动循迹、自动避障的功能,能使小车的行驶状态和速度灵活多变,用户也可根据自身需要进行选择。此
外,本设计采用低功耗的32位单片机STM32作为主控芯片,充分的降低了整个系统的功耗,大大提高了本设计的实用性和可靠性。
1 系统总体设计
智能小车总体设计方框如图1所示:由STM32单片机、HC-SR04蓝牙控制模块、LD3320语音控制模块、红外对管循迹模块、超声波测距模块以及由无刷电机、N298、LM2596、
LM339、MAX3232、CD4049等核心芯片及其外围电路等组成。
图1 系统总体框图
2 系统硬件设计
系统硬件部分由STM32F103系列单片机核心控制模块、HC-SR04蓝牙控制模块、LD3320语音控制模块、红外循迹模块、超声波避障模块组成。
2.1 LD3320语音控制模块
采用3.3V单片机进行工作,模块的管脚为G、RX、TX、5V;芯片内部有16位A/D转换器、16位D/A转换器和功放电路,麦克风、立体声耳机和单声道喇叭可以很方便地和芯片管脚连接,并且支持并行和串行两种连接方式;采用串口通信方式,语音控制功能的程序主要有指令识别和指令判别组成,程序的下载与STC系列单片机下载方法一致,采用USB转TTL下载器或者电脑串口转MAX232下载器进行下载程序。
2.2 HC-04蓝牙模块
蓝牙模块支持串口应用模型,只需要给模块上电,不配对的情况下,即可AT指令,通过AT指令可以使模块完成通讯、连接、释放等操作,在通讯连接状态下,除正常的Active模式外,还有三种低功耗模式-呼吸(Sniff)模式、保持(Hold)模式、休眠(Park)模式,本设计采用的是低功耗的呼吸(Sniff)模式。当蓝牙接入后,通过单片机外接高频晶振,关闭频率锁定环FLL+等内部模块,将单片机节能模式设定到LPM3,并保持辅助时钟ACLK活跃,就可以响应蓝牙模块通过UART返回的数据和消息。
蓝牙模块建立连接后,当没有数据传输时,就将其工作模式置为PARK模式,当主设备(智能手机蓝牙终端)需要再次传输数据时,需要向从设备(蓝牙模块)发送退出PARK命令。从设备退出PARK模式后,即可与主设备进行数据信息传输交换。
2.3 超声波避障模块
采用的是超声波避障,本设计针对智能小车采用多路传感器无法准确地对存在间距的障碍物执行避障操作后偏离轨道的缺陷,设计了一种三回路超声波传感器避障的方法,通过对间距的计算和判断,使小车能在与障碍物不发生碰撞的情况下执行避障操作,并使小车回到原始方向。小车与障碍物的距离:
(1)
式中,d为超声波避障模块与物体之间的距离,c为空气中超声波沿直线传播的速度,t为传感器测量的时间。
(2)
上式(1,2)为避障距离的计算公式,其中d1为小车与障碍物的距离,D为小车直径,为超声波发出的波束可测量的扇形范围。
设小车半径为R,则有:
(3)
所以超声波避障模块与障碍物距离应为Max(R,d1)。
3 系统软件设计
分别将四个功能定义不同模式,语音、蓝牙、避障、循迹分别为模式1、模式2、模式3、模式4,S1按键使用定时器3来进行中断设置,时钟的选择为APB1的两倍,而APB1为36M。系统上电后首先进行各个模块的初始化设定,包括端口的初始化配置和寄存器的初始化配置。采用定时器输出一定频率固定且占空比可调的PWM信号来控制小车行驶的速度,通过配置寄存器设定PWM信号的频率为1KHZ,通过配置两个不同的寄存器来改变两路PWM信号的占空比从而改变小车行驶的速度;系统上电默认的是语音功能,对于语音模块蓝牙模块的初始化配置中,首先进行模块的端口配置,进而初始化串口配置,设定波特率的值为
9600bps,并允许串口的发送和接收中断;语音模块和蓝牙通讯共用一个PI口,为PA9和
PA10端口,基本配置也相一致,超声波测距避障需用到定时器A的计数溢出中断,故对定时器A进行初始化配置,采用增计数模式,允许定时器3的溢出中断;而初始配置小车为前进行驶,程序运行完系统的初始化后,继而进入while主循环中进行各个模块的数据处理。
4 实验结果与分析
智能小车实物样机包括小车模板部分、STM32单片机、语音控制模块、蓝牙通讯模块、超声波避障模块、红外循迹模块和电源。在湖南城市学院创新创业楼第五实验室进行测试。按下按键S1可切换各功能,上电默认语音功能,接下来每按一次依次是循迹功能、避障功能、