摘要: 随着科技的飞速发展,现代社会逐渐趋向智能化,智能小车和智能机器人的发展前景越来越广阔,本设计开发了基于STM32f103C8T6微控制器的智能循迹避障小车。以STM32芯片作为核心控制单元,充分利用其高性能、低功耗以及丰富的外设接口等优势来实现小车的各项功能。对于避障功能,通过搭载超声波传感器、红外传感器等多种类型的距离检测传感器,实时感知小车周围环境中的障碍物信息。运用PID算法对传感器采集的数据进行处理分析,使小车能够在行进过程中及时检测到前方、侧方等潜在障碍物,并自主做出合理的避障决策,例如改变行驶方向或者暂停运动,确保小车安全且平稳地运行。本设计结合了嵌入式系统开发、传感器技术以及无线通信技术,经过实际测试验证,小车可有效实现无线智能控制与避障功能,具备一定的实用价值和应用前景,可广泛应用于智能家居、仓储物流巡检等诸多领域。
Abstract: With the rapid development of science and technology, modern society is gradually becoming more intelligent. The development prospects of intelligent cars and intelligent robots are getting broader. This design develops an intelligent line-following and obstacle-avoiding car based on the STM32f103C8T6 microcontroller. Taking the STM32 chip as the core control unit, it fully utilizes its advantages such as high performance, low power consumption, and rich peripheral interfaces to achieve various functions of the car. For the obstacle-avoiding function, by installing multiple types of distance detection sensors, such as ultrasonic sensors and infrared sensors, it can perceive the obstacle information in the surrounding environment of the car in real-time. The PID algorithm is used to process and analyze the data collected by the sensors, enabling the car to detect potential obstacles in the front, side, and other directions promptly during the driving process and make reasonable obstacle-avoiding decisions independently, such as changing the driving direction or pausing movement, to ensure the safe and stable operation of the car. This design combines embedded system development, sensor technology, and wireless communication technology. Through practical tests, the car can effectively achieve wireless intelligent control and obstacle-avoiding functions, has certain practical value and application prospects, and can be widely applied in many fields, such as smart home, warehousing logistics inspection.
1. 引言
智能机器人在全球范围内的应用正不断拓展,其范围已延伸至众多领域。移动机器人作为智能机器人学的关键分支,已成为世界各国的重点研究对象。在军事侦察、地质勘探、扫雷排爆等对人类而言颇具挑战的作业场景,以及恶劣环境监测任务里,移动机器人都展现出极为广阔的应用潜力。本文所设计的基于STM32且具备循迹、避障与测距能力的智能小车,隶属于智能移动机器人范畴,它借助传感器感知周边障碍物,进而达成避障与循迹等功能,为智能移动机器人技术在相关领域的应用提供了有效的实践范例与技术支撑[1]。
2. 系统介绍
Figure 1. Structure of the intelligent vehicle system
图1. 智能车系统结构
循迹避障小车系统的主控制器选用了STM32系列单片机,具体型号为STM32F103C8T6。基于STM32设计的智能小车系统主要的组成部分为:超声波测距模块、主控制器模块、电机驱动模块、红外循迹和避障模块。系统结构如图1所示。
3. 工作原理
由单片机主控制器芯片接收红外传感器发出的信号,然后判断其信号,分析出小车需要做出的动作,再将此动作命令发送给电机驱动模块,最后控制小车来执行相应的命令完成对应的动作,以此达到让小车避障的目的[2]。若传感器感应到小车的左侧有障碍物时,主芯片则通过控制模块让右轮电机工作停止,左轮电机转动起来,这时小车就会向右侧转动;反之,若障碍物被右侧传感器检测到时,左轮电机就会停止转动,这时小车就会向左侧转动。同时,当超声波传感器感应到障碍物时,单片机再根据超声波遇到障碍物反射回来的信号计算其距离,以此达到测距目的[3]。
4. 系统硬件模块讲解
接下来对智能控制避障小车中的电源、电机驱动、循迹、避障这几个模块进行展开介绍各模块在该智能小车中所发挥的作用和实现原理。图2是小车的样貌和各模块标注。
Figure 2. Intelligent control tracking and obstacle-avoiding car
图2. 智能控制循迹避障小车
4.1. STM32f103C8T6最小系统板
STM32F103C8T6是一款基于ARMCortex-M3内核的32位微控制器开发板。它是意法半导体(ST)公司STM32F1系列中的一员,该系列以高性能、低成本和低功耗等特点而受到广泛关注。
如图3所示这款开发板的芯片具有丰富的片上资源,包括通用输入/输出端口(GPIO)、定时器、中断控制器、模数转换器(ADC)和数模转换器(DAC)等,这些资源使得它可以灵活地应用于各种嵌入式系统开发项目。
4.2. 电源模块
系统采用两节3.7V的18650锂电池供电,串联电压可达7.4V,该模块在实现智能循迹避障小车时主要负责为系统提供稳定。稳定的电源是系统正常运行的基础,电源模块确保各组件获得所需的电能。
Figure 3. STM32F103C8T6
图3. STM32F103C8T6
4.3. 电机驱动模块
系统采用L293D芯片驱动直流减速电机,L293D四倍高电流H桥驱动程序集成电机芯片,L293D电机驱动芯片能够控制两个直流电机,实现正反转运动,能提供的双向驱动电流高达600 mA。该模块会将控制系统发送的PWM波转化为电机动作,通过对电机的调整实现对智能小车速度,方向的调整,以执行对应的循迹和避障策略。
4.4. HC-SR04超声波测距模块
HC-SR04是一种常用的超声波测距模块。它主要由超声波发射器、超声波接收器和控制电路组成。其工作原理基于超声波的反射特性[4]。
在HC-SR04模块中,首先由超声波发射器发出一束超声波脉冲。这个脉冲以一定的速度(在空气中大约为340 m/s)在空气中传播。当超声波脉冲遇到障碍物时,就会被反射回来。超声波接收器会接收这个反射回来的超声波信号。从发射超声波到接收到反射波的时间间隔(设为t)与障碍物的距离(设为d)之间
存在着数学关系,即
,其中(v)是超声波在空气中的传播速度(约340 m/s)。这是因为超声波从发射器到障碍物再回到接收器,走过的路程是障碍物距离的两倍[5]。
Figure 4. Ultrasonic ranging principle
图4. 超声波测距原理
智能循迹避障小车上安装HC-SR04模块后,模块会不断地进行测距操作。本设计将模块安装在小车的前方。当测得的距离小于预先设定的安全距离阈值20 cm时,这意味着小车即将碰撞到障碍物。此时,小车的STM32的控制器会根据这个距离信息做出避障决策。避障决策包括改变小车的行驶方向,通过控制电机使小车向左或向右转弯;或者降低小车的速度,甚至使小车完全停止,以避免碰撞。测距原理如图4所示。
4.5. 红外循迹模块
TCRT5000传感器内部由红外发射二极管和红外接收管组成。红外发射二极管不断发射特定波长的红外线,当红外线遇到物体时,会发生反射。如果反射回来的红外线强度足够大,红外接收管就会接收到这些反射光。当红外接收管接收到足够强度的反射红外线时,其内部的光敏三极管会饱和导通,导致电路中的电流发生变化。该模块通常使用LM393比较器等电路对接收管输出的信号进行整形和处理[6]。TCRT5000传感器具有数字开关量输出和模拟信号输出两种形式。数字输出为0和1,可直接用于逻辑判断。模拟输出则可以根据接收的红外线强度输出不同的电压值,可用于更精确的检测或距离测量,但测量距离范围有限且易受环境干扰。图5是TCRT5000传感器原理图。
在智能循迹避障小车上,用了4个TCRT5000传感器安装在小车的底部位置,用于检测地面上的黑线或前方的障碍物。当传感器检测到黑线时,输出信号发生变化,小车的控制系统根据这些信号来调整小车的行驶方向,使其沿着黑线行驶;当传感器检测到前方有障碍物时,控制系统也会根据信号采取相应的避障措施,如停止前进、转向等。
Figure 5. Schematic diagram of TCRT5000 sensor
图5. TCRT5000传感器原理图
5 系统软件设计
5.1. 开发环境搭建
基于KeilMDK软件平台开发STM32程序,利用其集成开发环境编写、编译、调试代码。结合STM32标准库函数或HAL库函数高效配置单片机寄存器,初始化各硬件外设,如传感器、电机驱动、无线模块,简化开发流程,缩短开发周期,确保代码稳定性与可读性。
5.2. 智能车避障算法
超声波避障程序以中断机制为依托运行。当超声波模块引发中断后,于中断服务函数当中对障碍物距离予以计算,并将其和安全距离的阈值展开对比[7]。若计算所得距离小于该阈值,便会开启避障决策流程。首先着重控制小车使其减速并停止运行,随后参照周围环境相关信息,像是两侧障碍物的分布状况等,来选定适宜的转向策略,例如进行原地右转90度或者左转90度的操作,以此成功避开障碍,之后便可恢复循迹状态或者等待新的指令下达[8]。
6. 模糊控制器的设计
模糊控制是一种基于模糊逻辑的智能控制方法,它主要针对那些难以建立精确数学模型的复杂系统,通过模拟人类的模糊推理和决策过程来实现对系统的有效控制。其核心思想是将人类的控制经验和知识以模糊规则的形式表达出来,然后利用这些规则对系统进行控制,从而使系统能够在复杂多变的环境中表现出良好的适应性和鲁棒性[9]。
当红外传感器探测到黑线处于正中间位置时,便判定此刻的赛道为直线形态,小车会在确保稳定的状态下加快前行速度;而一旦红外传感器察觉黑线位于两旁,就认定当前赛道属于弯道,小车会立即快速减速,以防冲出跑道,这就使得对其控制的响应时长以及控制精准度提出了严苛要求。若采用模糊控制方式来操控小车,即便无需构建确切的数学模型,也能够对小车的转向角度与速度予以有效把控[10]。
在输入语言变量E和EC的论域范围里,设定如下语言值:当偏差角向左偏离超过40˚时,标记为“NB”(即严重偏左);左偏达到20˚时,设定为“NS”(也就是较为偏左);不存在偏差角时,定义为“Z”(表示无偏移);偏差角向右偏离20˚时,设定为“PS”(意为较为偏右);右偏超出40˚时,设定为“PB”(代表严重偏右)。同样地,在输出语言变量θ和V的论域中,设置语言值如下:“LB”意味着左轮的转速相比右轮要慢许多;“LS”表示左轮转速较右轮转速稍慢一点;“Z”代表左轮与右轮的转速相等;“RS”表示右轮转速比左轮转速略慢;“RB”表示右轮转速比左轮转速慢很多。然后根据小车自身的运行特性及人类的控制经验写出模糊控制器的隶属度函数的离散化表格和模糊规则表格,如表1和表2所示。
Table 1. Discretization table
表1. 离散化表格
论域模糊量 |
−4 |
−3 |
−2 |
−1 |
0 |
1 |
2 |
3 |
4 |
PS |
0 |
0 |
0 |
0 |
0 |
0.5 |
1 |
0.5 |
0 |
PB |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0.5 |
1 |
NB |
1 |
0.5 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
NS |
0 |
0.5 |
1 |
0.5 |
0 |
0 |
0 |
0 |
0 |
z |
0 |
0 |
0 |
0.5 |
1 |
0.5 |
0 |
0 |
0 |
Table 2. Fuzzy rule table
表2. 模糊规则表
偏移变化率EC |
NB |
NS |
Z |
PS |
PB |
偏差角E |
NB |
NS |
Z |
PS |
PB |
转向角θ |
LB |
LS |
Z |
RS |
RB |
速度V |
LB |
LS |
Z |
RS |
RB |
7. 普通PID控制和模糊控制对比实验
通过对智能车的调试,在一组恒定的控制器参数设定下,在20米且路况各异的赛道场景中,分别获取了运用普通PID控制以及模糊控制时所产生的误差数据。
Table 3. Comparison of errors of small cars on tracking tracks
表3. 小车在循迹轨道上的误差对比
测量次数 |
速度(m/s) (PID) |
速度(m/s)(Fuzzy) |
偏差度(PID) |
偏差度(Fuzzy) |
1 |
1.64 |
1.84 |
11˚ |
8˚ |
2 |
1.61 |
1.77 |
7˚ |
5˚ |
3 |
1.68 |
1.89 |
3˚ |
2˚ |
通过表3实验数据的对比分析,可以清晰地看出,基于模糊控制的智能循迹小车在循迹精度、速度稳定性、抗干扰能力以及对复杂路况的适应能力等方面均明显优于采用传统PID控制方法的小车。
8. 结语
智能循迹避障在行进时,借助传感器来探测路线与障碍物情况,这些信息会反馈至单片机。单片机据此调控直流电机,实现转速与转向的改变。模糊控制算法凭借其独特的优势,能够更好地处理智能循迹小车在行驶过程中面临的各种不确定性和复杂性,使小车在复杂环境下仍能保持高精度、高稳定性的循迹性能,为其在实际应用中的广泛推广和应用奠定了坚实的基础,具有重要的理论意义和实际应用价值。本研究为基于模糊控制的智能循迹小车设计奠定了一定的基础,但仍有许多问题有待进一步研究和解决。随着科技的不断进步和应用需求的不断增长,相信智能循迹小车技术将在未来得到更广泛的应用和更深入的发展,为各领域的智能化进程提供更强大的支持和助力。
NOTES
*通讯作者。