基于STM32的智能循迹避障系统设计
2024-06-03陈智
陈 智
(兰州信息科技学院 计算机与人工智能学院,甘肃 兰州 730300)
0 引言
为满足当前智能小车在工业、农业及日常生活中的应用需求,本文以STM32芯片为核心,设计了一种智能循迹避障系统,并应用于智能小车运动控制。该系统利用循迹模块准确识别运行轨迹,利用避障模块检测前方障碍物,并通过驱动模块控制小车前进、后退、转弯,实现自动循迹和避障功能。
1 系统方案设计
系统采用STM32芯片作为主控制器,通过驱动模块完成小车的前进、后退、转弯等动作。小车具有2个强磁抗干扰直流减速电机,并配备万向轮。当2个直流减速电机的转向、转速一致时,完成前进动作;当左电机转速大于右电机转速时,完成右转动作;当右电机转速大于左电机转速时,完成左转动作。光电循迹模块用于检测地面上的黑线,主控制器根据循迹模块检测结果,实时调整小车运动轨迹,确保小车沿着黑线移动。红外避障模块用于检测前方障碍物,主控制器根据避障模块检测结果,控制小车避开障碍物。智能小车采用锂电池供电,并配有稳压电路。系统方案如图1所示。
图1 系统方案
2 系统硬件设计
2.1 主控制器
主控制器采用STM32F103C8T6芯片,是一款基于Cortex-M3内核的32位处理器,具有性能高、功耗低的优点。STM32F103C8T6最小系统如图2所示,根据循迹模块和避障模块检测结果,控制驱动模块调节2个直流减速电机,进而实现对小车的运动控制。
图2 STM32F103C8T6最小系统
2.2 驱动模块
电机驱动采用L298 N芯片,是双通道H桥式电机驱动器,能够直接驱动左、右2个直流减速电机[1]。电机驱动电路如图3所示。电机控制方式采用脉冲宽度调制(Pulse Width Modulation,PWM),实现方向和速度的控制。IN1—IN4为逻辑控制信号,ENA、ENB为PWM控制信号,OUT1—OUT4为输出信号。
图3 电机驱动电路
当IN1、IN2(或IN3、IN4)输入高电平时,OUT1(或OUT3)输出高电平,OUT2(或OUT4)输出低电平,实现电机正转;反之,当IN1、IN2(或IN3、IN4)输入低电平时,OUT1(或OUT3)输出低电平,OUT2(或OUT4)输出高电平,实现电机反转。通过调节ENA、ENB的PWM信号,进而实现电机调速。
2.3 循迹模块
常见的循迹方式有光电循迹和电磁循迹。其中,光电循迹利用光电传感器对颜色变化的敏感性,可因为应用于智能车的路径检测[2-3]。本文中的智能小车目标应用场合轨迹为黑色,黑色与周围环境颜色形成较大对比度,故采用红外光电传感器循迹更易实现控制。循迹基本过程如下:2对红外光电传感器组成阵列,持续发射红外线,因为黑色对红外线的吸收相对较多,所以反射回光电传感器的红外线相对减少,传感器将这种光电信号变化反馈给主控制器,然后,主控制器通过定时中断调节PWM波形,从而闭环控制2路电机转速,实现自动循迹。
2.4 避障模块
避障模块采用红外光电传感器,传感器发射模块负责发射红外线,传感器接收模块负责接收红外线。当小车前方有障碍物,且障碍物出现在设定避障距离范围内时,接收模块将反射回来的红外线转换为电信号并反馈给主控制器处理。主控制器通过调节2个直流电机进而实现避障功能。
3 系统软件设计
3.1 循迹程序设计
循迹程序流程如图4所示。循迹模块的目的是让小车能够准确识别并沿着地面上的黑线行驶。循迹程序不断读取左、右两侧光电传感器检测的数据,当左侧传感器检测到地面黑线时,说明小车整体向右偏移,此时调整小车向左运动;反之,当右侧传感器检测到地面黑线时,说明小车整体向左偏移,此时调整小车向右运动。主控制器根据光电传感器阵列检测的数据,通过驱动模块实时调节2个直流电机的转速,从而使智能小车沿着黑色轨迹行驶。
图4 循迹程序
3.2 避障程序设计
避障程序流程如图5所示,红外光电传感器不断发射和接收红外线,判断前方是否有障碍物。如果没有障碍物,小车继续直行;如果有障碍物,且障碍物在小车避障距离范围之内,则小车制动,并向右或向左转一定角度,继续判断是否有障碍物,然后重复该过程,实现自动避障功能。行驶速度、避障距离、旋转角度等参数均可设置。
图5 避障程序
4 系统调试
图6为实际测试跑道,在循迹模式下,小车能够沿着黑色轨迹平稳行驶,实现自动循迹功能。将避障探测距离设置为30 cm,选取2个不同大小的障碍物,尺寸分别为10 cm×10 cm和15 cm×15 cm,分别放置距小车直线距离为0.5 m、1.0 m、2.0 m的位置,测试小车避障的响应距离和响应速度。表1为小车避障测试结果,结果表明系统能够实现一定的避障功能。
表1 避障测试结果
图6 循迹测试结果
5 结语
本文以STM32芯片为核心,设计了一种智能循迹避障系统,并应用于智能小车运动控制。实验测试结果显示,智能小车能够快速准确识别轨迹,自动沿着轨迹方向稳定行驶,并有效避开障碍物。本文设计内容既可作为嵌入式综合训练实践项目,也可作为大学生相关科创、竞赛等活动的基础参考方案。