2023年全国大学生电子设计竞赛(TI杯)
2024年05月29日
摘要
本项目的硬件结构:基于STM32F407芯片为主控芯片,由TB6612电机驱动,控制左右轮电机的转动控制小车提供前进前进的速度,通过控制两轮的差数达到稳定转向目的。由OPENMV视觉处理对路径的判断,达到小车能够在指定的路径行驶,通过给后车安装超声波测距,可以得到两车之间的实时距离从而做出相对的动作,达到两车之间的间距在20~30cm之间。通过无线透传通信模块,两车之间可以实时相互收发数据,达到两车之间相互通信的目的。通过3s航模电池,以及两个稳压来给整个跟随小车提供稳定的电源模块,并由OLED和一个蜂鸣器,三个led小灯来完成整个项目所需的必要数据、声音、灯光信号的显示。
目 录
一、系统方案
1.方案比较与选择
2.方案描述
二、理论分析与计算
1.图像处理模块 6
2.路径规划模块 6
三、电路与程序设计
1.电路设计
2.程序设计
四、测试方案与测试结果
1. 使用仪器
2.测试项目
3.测试结果分析
五、参考文献
跟随行驶系统
1.方案比较与选择
(1)视觉识别模块
方案一:利用五路红外寻迹模块识别跑道的指示线,达到小车能够在规定的黑色指示线上面行驶。此方案价格便宜,操作难度较小,在较低的速度下能够正常巡线,能够完成要求一、二但是提高速度进行要求三、发挥项一的时候不能够完成正常的巡线。
方案二:利用OPENMV进行视觉识别,通过串口给STM32实时提供指示线的坐标位置,并通过PID每10ms计算一次实际位置和想要到达的目标位置的差值,通过不断的实时‘调整’来达到小车能够按照项目要求在规定的指示线内正常行驶。操作难度较小,能够较好的达到预期设置的0~1m/s任意速度并在项目要求的指示线内行驶。
综合以上两种方案,方案二对于本项目而言更加适合。方案二能够准确无误的达到项目要求一、二、三、发挥一对视觉识别处理的一系列的要求,而方案一只能够达到部分项目要求。故选择方案二。
- 两车之间的通信模块
方案一:利用两个无线透传模块分别安装在本项目的前车和后车,通过STM32主控板的串口连接无限透传模块,使用无限透传的互传模式,达到两车之间的实时数据互传功能。此方案价格便宜,操作复杂程度较小,能够及时、准确的发送和接收数据。
方案二:利用两个蓝牙模块分别安装在本项目的前车和后车,通过STM32主控板的串口连接蓝牙模块,使用蓝牙的收发功能,达到两车之间的实时数据发送和接收项目需求。此方案价格便宜,操作复杂程度较小,并且能够准确的受到、发送数据。
综合以上两种方案,方案一对于本项目而言更加适合。方案一相对于方案二而言,方案一收发数据的时间、准确度、处理时间都更加短。故因此选择方案一。
- 距离探测模块
方案一:通过在后车安装超声波模块,实时探测两车之间的距离并将数据通过STM32主控板的串口传到STM32中央数据处理模块给出对应的行为指令,达到控制两车之间的距离保持在20~30cm之间。将超声波安装在小车的前方,所能探测的范围是角度为30°边长为1m的扇形范围,即使小车有一定的偏移也能及时探测出来。
方案二:通过使用视觉识别模块的OPENMV测距,进行对两车之间的实时距离探测,并通过STM32主控板的串口传输到STM32中央数据处理模块给出相对应的行为命令,达到控制两车之间的距离保持在20~30cm之间。视觉识别模块选用的OPENMV在小车高速行驶的过程中,所探测两车之间的距离会突变,不够稳定,也不够准确。
综合以上两种方案,方案一对于本项目而言更加适合。方案一在距离探测的准确度高于方案二,并且方案一在高速行驶的时候探测的稳定性高于方案二。故因此选择方案一。
- 电源及动力输出模块
方案一:通过两块3s的LIPO航模电池给跟随行驶系统的前车和后车提供电力。利用两块稳压模块分别将电压降低到5v和9v,5v给STM32主控板和OPENMV供电,9v给TB6612电机驱动供电,并通过TB6612直接控制前车的左右轮编码器电机,后车也如上配置。保证了整个系统电压的稳定,也给控制动力输出提供了一个良好的环境,也能准确的控制前后车的直线行驶、弯道行驶速度、稳定性。
方案二:通过4节5号可充电电池串联作为跟随行驶系统前车 提供12v的电压。利用两块稳压将电源提供的12v电压降低到5v和9v,9v给L298N供电,并提供L298N直接控制前车的左右轮的编码器电机。5v给STM32主控版和OPENMV供电,后车也如上配置。此方案价格便宜,5号电池提供的持续电压不稳定,整个电源及动力输出模块都不稳定。
综合上述两种方案,本系统需要足够稳定的电源以及动力输出模块来保证前后小车行驶的稳定性,因方案一比方案二的电源输出电源更加稳定,方案一的动力输出也比方案二的动力输出更加稳定。故选择方案一。
根据以上方案比较、分析与综合考虑,本系统最终确定的系统框图如图1所示,实物平面图如图2所示。
图1系统框图
图2实物平面图
跟随行驶系统通过OPENMV画框识别指示线的X轴坐标通过串口发给STM32中央控制,STM32通过调用定时器每个10ms计算一次小车实际的位置与目标行驶位置的差值,并不断调整达到前后小车都可以在指示线规定的范围内行驶。通过超声波实时探测两车之间的距离数据并将其通过无线透传传递到两车的STM32中央控制模块,当两车距离小于20cm进行后车减速前车速度不改变,当两车的距离大于30cm后车加速,前车减速,后车加速。达到两车在行驶过程中间距为20~30cm保持运动平衡。
利用STM32每10ms计算输出的速度与编码器电机返还的实际速度的差值并进行差分和微分的调整,使STM32控制输出的速度与实际输出的速度相差范围在:-0.1~0.1m/s。通过OLED显示两车正在进行题目的第几项、编码器速度、完成要求所花的时间,通过蜂鸣器声响提示小车正在走内圈或者已经停止。
1. 视觉识别模块
本模块的自动巡线以及速度控制为并行PID实时控制调制该控制的公式原理如下公式1、公式2、公式3。通过 PID 计算得出执行量,若小车出 现偏离,控制小车的两个电机差速旋转,并朝着偏差减小的 方向动作。在 PID 算法的控制下,小车可实现稳定循迹 。
公式1
公式2
公式3
其中
误差比例的系数,
为OPENMV传输过来的实际数据与目标值的差值,
为误差积分的系数,
为误差微分的系数,a(t)为编码器与输出速度的差值,公式1和公式2中的
均不相等,u为最终速度需要改变的数值。
2. 小车停车算法
在摄像头成像范围下方设置一个长1500 像素、宽 40 像 素的矩形检测区域,如图 3 所示。在此范围内寻找宽度与停 车标识相当的黑色色块,若在此区域内检测到黑色色块,则传送信号到单片机中,主控制器判定为到达停车点,立即将输出的目标速度设置为零,并且关闭转向环的干扰即可停在题目要求的范围内。
图3 矩形检测区域
1. 电路设计
电池输出电源通过两个稳压分别将电压稳定在9v、5v 分别将9v电压共给TB6612,5v共给STM32F407和OPENMV。STM32F407通过OPENMV、编码器获得小车实时状况利用无线透传传递数据进而实时调控两车的姿态和对应位置距离,最终通过STM32控制蜂鸣器、LED小灯来提示是否已经完成项目要求。具体实物图如图4所示。
图4 两车实物图
2.1主程序设计
系统启动后,后车进入指令接收状态,前车进入工 作模式设置状态。等待任务设置后,2个车进入工作状态,具体流程如图5所示。
图5 主程序流程图
2.2要求三详细程序控制
当进行要求三,前车启动的同时给后车发送启动信号,当检测到两车跑完第一圈,后车到达分叉路口进行超车动作,由后车领跑一圈后,前车到达分叉路口前车开始超车动作,完成超车后到达停车标志位前车停车的同时给后车发出停车信号,后车停车。详细流程图如图6所示。
图6 要求三超车部分程图
秒表......1个
详细测试方案请见附录。测试结果如表1
表1 基本要求测试结果
测量项目 | 题目指标 | 完成情况 | 是否达标 | 测试方案简述与测量方案 |
1.1 20s两车车匀速跑完一圈 | 将领头小车放在路径的起始位置 A 点,跟随小车放在其后 20cm 处,设 定领头小车速度为 0.3m/s,沿着外圈路径行驶一圈停止 | 两车以0.3m/s跑完一圈,最终花费19.56s,在此过程中两车没有相撞,间距保持20cm | 是 | 前车开始行驶按下秒表记录时间,两车停稳后按下秒表记录一圈花费的时间。 |
1.2 两车匀速跑完两圈 | 将领小车放在路径轨迹的起始位置 A 点,跟随小车放在路径上 E 点所在 边的直线区域,由测试专家指定的位置,设定领头小车速度为 0.5m/s,沿着外圈 路径行驶两圈停止 | 两车以0.5m/s跑完两圈,最终花费24.36s,在此过程中两车没有相撞,间距保持20cm | 是 | 前车开始行驶按下秒表记录时间,两车停稳后按下秒表记录两圈花费的时间 |
1.3 相互超车 | 两车相互超车一次,最小速度不能低于0.3m/s,期间不能发生碰撞,间距为20cm | 两车以0.5m/s跑完三圈,并且成功完成相互超车要求,在此过程中两车没有相撞,间距保持20cm | 是 | 前车开始行驶按下秒表记录时间,两车停稳后按下秒表记录三圈花费的时间,判断最后的速度,已经互相超车是否成功完成。 |
表2 发挥部分测试结果
测量项目 | 题目指标 | 完成情况 | 是否达标 | 测试方案简述与测量方案 |
2.1 1m/s跑完一圈按要求指定地方停车 | 1m/s跑完一圈按要求指定地方停车,停止5s最后在标记点停车,平均速度无差小于10%停车位置误差小于5 cm | 以1m/s跑完一圈,并按要求指定地方停止5s,平均速度无差在5%,停车位置误差为3cm | 是 | 前车开始行驶记录时间到达指定位置时间,测量最后停车位置的误差 |
本作品完成了题目所有基础指标和发挥要求,符合题目所有指标,并且小车能够稳定在以0.5m/s的速度完成项目要求三两车互相超车。在此过程中速度能够稳定在误差5%。
本作品采用STM32F407作为主控芯片,控制集成了OPENMV视觉处理、OLED显示使用PID算法能够让小车直线行驶,通过OPENMV视觉处理操作能够让小车进行指定要求一、二、三、发挥一达到的效果远超项目要求。
- 董锦衡,蔡欣怡,邓俊逸,朱建红,袁银龙 基于MSP430的智能小车跟随行驶系统[M] 物联网技术. 2095-6835(2024)04-0056-03
[2] 张晨亮,张亚周 基于机器视觉的小车跟随行驶系统设计[M] 物联网技术. 2095-1302(2024)03-0118-02