题目: 自动行驶小车(H题)
摘要
本项目由微处理器MSPM0G3507,编码器电机驱动,8路灰度传感器指示线巡线单元,MPU6050六轴传感器无线直行单元,OLED显示人机互动单元,红色LED及蜂鸣器声光提示单元构成。系统运行由两部分组成:自动行驶小车的无指示线直行控制部分和有指示线弯道行驶的实时转向控制部分,小车的无指示线直行控制部分,由MPU6050六轴传感器获得小车姿态的偏航角,通过获得的实时偏航角,编码器的实际值,构成双反馈串行PID实时监控调制小车实际运行轨迹的目的。指示线弯道行驶控制部分,由8路灰度传感器获得小车在指示线上实时运动方位,输出模拟量,通过模拟量和编码器脉冲值构成串行闭环PID实时控制小车投影位于指示线方位的目的。完成所有项目要求。
**关键词:**MSPM0G3507;MPU6050六轴传感器;8路灰度传感器;自动行驶小车
目 录
[1. 方案比较与选择](#1. 方案比较与选择)
[1. 小车自动行驶误差分析](#1. 小车自动行驶误差分析)
[2. 小车轨迹控制](#2. 小车轨迹控制)
[1. 电路设计](#1. 电路设计)
[2. 程序设计](#2. 程序设计)
一、系统方案
1. 方案比较与选择
(1)电机选取
方案一:采用步进电机能够精准的控制小车的前进、后退、转向,不需要过多的PID调制就可以达到所预期的目标速度和小车的运动轨迹,但对于本项目单个步进电机的体积过大,加上其他基本部件会超过项目要求的最大高度和宽度。
方案二:使用霍尔编码器电机,通过编码器返还的实时脉冲数,通过PID的实时计算修正,达到小车的预期运动轨迹,体积适中,PID调节难度适中,能够满足本项目对电机控制的全部需求。
方案三:使用直流空心杯电机,直流空心杯电机具有体积小、质量轻直流空心杯电机并不具备测速功能。由于其小巧的尺寸和轻量化设计,直流空心杯电机在空间受限或对重量要求较高的应用场景中具有优势。
方案四:使用无刷直流电机,具有高效率、高转速和低噪音的特点,适用于许多应用领域。BLDC电机需要专门的驱动器和控制算法来实现闭环控制,操作难度大,精度高。
综合以上四种方案,方案二更加切合题目的要求,以及本项目对电机控制精度的基本要求和实时负反馈需求,故选择方案二。
(2)二维角度传感器
方案一:采用L3GD20三轴陀螺仪,得到三轴的角速度,量程大,操作难度小,只能测量角速度,无法测量三维角度,达不到项目对角度值获取的基本需求。
方案二:使用微处理单元MPU6050。芯片包含三轴加速度计及三轴陀螺仪,外围电路设计简单,采用IIC通信协议,具有量程大,精度高,功耗低,满足项目对角度精度的需求。
方案三:采用导电的塑料电位器。高分辨率、平稳转动和低动态噪声优点。根据传输信号的方式,角度传感器可分为模拟角度传感器和数字角度传感器。该传感器的内部电阻值会随着偏转角度的改变而变化,从而可以通过传输模拟信号进行测量,硬件体积以及测量方式受限,无法运用于小车上。
综合以上三种方案,方案二更加切合题目的要求,以及本项目对获取角度精度的基本需求,故选择方案二。
(3)巡线模块
方案一:采用8路灰度传感器,能够获取电位变换的模拟量,输出的变化值足够平滑,利用PID调制时更加顺畅。
方案二:使用8路红外传感器,获得各电平的变换,实现模拟PID调试,精度低,PID调制难度大。
综合以上两种方案,方案一更加切合题目的要求,以及本项目对巡线的基本需求,故选择方案一。
(4)小车结构
方案一:利用前轮舵机舵机转向,后轮双电机提供动力,在小车的长方形底板上构建所需的模块,达到小车的总体稳定的目的。体积较大,灵活性较低。
方案二:利用双电机差速转向和同速直行,两个辅助轮增加小车的稳定性,在圆形底板上构建模块,达到小车的总体稳定的目的。体积较小,小车灵活,易操作。
综合以上两种方案,方案二更加切合题目的要求,以及本项目对小车硬件结构的基本需求,故选择方案二。
2 .方案描述
本系统以超低功耗单片机MSPM0G3507为控制核心,小车采用MPU6050六轴传感器,8路灰度传感器,霍尔编码器电机驱动,按键输入,声光提示构成。单片机控制TB6612直流电机驱动控制输出PWM波驱动两个霍尔编码器电机,使小车获得运动动力。MPU6050六轴传感器,得到小车实际的偏航角和其方向的加速度,达到控制小车自动行驶的目的。通过霍尔编码器和8路灰度判断指引线位置得到小车的实时运动情况,利用PID计算实时调整,形成信号反馈回路,组成闭环控制系统,达到实时控制小车沿轨迹行驶的目的。根据以上方案分析与综合考虑,本系统最终确定的系统框图如图1所示:
图1 系统框图
二、理论分析与计算
1. 小车自动行驶误差分析
小车自动AB段直线行驶,在理想状态下只要左右轮电机的转速一致,小车就能够AB段直线行驶。但现实状况两个电机的反应时延是不同的,导致小车是无法在开环的状态下直线行驶的,所以必须借助MPU6050得到小车的实时四元数,与小车双向的编码器组成闭环反馈控制系统,达到双向串行PID反馈控制调节的目的。将MPU6050返还的四元数值进行矩阵变换,求解实时偏航角。
四元数求解偏航角公式如公式1所示
由于MPU6050存在温漂和精度误差,电机编码器存在精度误差,最终会随着小车运行距离增加而增加。为了解决这一实际硬件误差,采用实时动态补偿调制,以MPU6050的实时温度进行比例系数计算与上温度与偏航角的动态比例关系,得到MPU6050实际动态误差,将动态误差和偏角进行差分计算,同时A至B,C至D同向点对点实时动态校准调制,达到误差小于±1的目的。
误差补偿公式如公式2所示
进行位置式PID计算,得到小车预期位置和实际位置的差值。通过编码器记录小车行驶的脉冲值,得到小车的实际速度,进行增量式PID计算,得到小车的预期速度与实际速度的差值。最终通过串级关联,进行实时运算,输出PWM达到小车沿轨迹匀速行驶的目的。
2. 小车 轨迹控制
小车在有指示线的路段行驶,通过8路灰度,得到小车姿数字量,将得到的数字量进行比例换算得到实际角度偏差,将实际角度偏差进行位置式PID计算,得到小车预期位置和实际位置的差值输出对应的PWM达到实时动态调制车身的目的。通过编码器记录小车行驶的脉冲值,得到小车的实际速度,进行增量式PID计算,得到小车的预期速度与实际速度的差值输出对应的PWM达到小车目标状态匀速行驶。最终通过串级关联,进行实时运算,输出PWM达到小车沿轨迹匀速行驶的目的。
实时增量式PID公式如公式3所示。实时位置式PID公式如公式4所示。
每5ms获取一次左右轮的脉冲数,并且每10ms获取一次8路灰度的误差值,将脉冲数和灰度得到的误差分别进行差分,微分,积分计算,调制计算的比例系数达到每10ms改变一次PWM,小车在整个过程中达到动态平衡沿线行驶的目的。
三、电路与程序设计
1. 电路设计
(1)稳压电路模块
为了使微处理器和直流电机以及各模块正常稳定的工作需为其提供稳定的电源,避免因为电压改变而影响各模块正常工作,本设计中采用2200mA航模电池和DC-DC直流可调降压电源模块构成稳压电路模块,保证能为各模块提供稳定的电源。
稳压电路模块如图2所示。
图2稳压电路模块
(2)声光提示部分
为了满足小车到达指定地点时蜂鸣器发出声音的要求,设计以下蜂鸣器电路以及LED指示灯电路。有源蜂鸣器是一种集成结构的电子音响器,采用直流电压供电,具有简单的电路结构,广泛应用于各个领域.。当小车到达并停稳在A,B,C,D时,控制器发送信号使蜂鸣器响起,LED信号灯亮起,表示小车已经到达目标要求。
(3)MPU6050模块
MPU6050模块在小车自动行驶中起着重要作用。MPU6050是一种集成了三轴陀螺仪和三轴加速度计的六轴传感器模块。该模块通过I2C接口与主控器件通信,具有快速响应和高数据传输速率。它内部集成了数字运算单元,能够进行传感器数据的滤波、校准和姿态解算等处理,提供准确的姿态信息。通过获取实时的偏航角信息,MPU6050模块能够提供准确的姿态感知,从而帮助控制系统实现无线自动直行。
声光提示原理图如图3所示。
图3声光提示原理图
(4)TB6612FNG电机驱动模块
TB6612FNG是一种基于MOSFET的H桥集成电路。TB6612FNG具有高效的功率转换能力,其内部的MOSFET技术使得电机驱动效率更高,能够提供更大的输出功率。TB6612FNG集成了多种保护功能,包括过流保护、过温保护和短路保护,有效保护电机和驱动器的安全运行。此外,TB6612FNG还具备低功耗特性,能够降低系统的能耗。TB6612电机驱动模块的外围电路简单,无需外加散热片,只需添加电源滤波电容即可直接驱动电机,这有助于减小整个系统的尺寸,使整个小车硬件结构更加稳定。
MPU6050模块原理图如图4所示。
图 4 MPU6050原理图
TB6612FNG电机驱动模块原理图如图5所示。
图 5 TB6612电机驱动模块 原理图
2. 程序设计
TIMSPM0G3507作为本系统主控芯片,通过MPU6050反馈小车的偏航角,编码器反馈的实时速度,8路灰度反馈实时车身状态,达到对小车自动行驶实时串级PID闭环调制和小车轨迹运动控制的目的。小车自动行驶和轨迹控制之间的相互切换是通过8路灰度反馈实时车身状态来判断小车处于指示线上方还是自动行驶区域,得到判断结果后进行串级PID切换达到自动行驶和轨迹控制切换的目的。通过KEY1,KEY2,KEY3,KEY4调用项目要求1,2,3,4项完成项目要求所需的各种运动指标并且到达A,B,C,D相关点后进行声光提示,完成具体项目要求的目的。
软件整体结构图如图6所示。
|---|---|
| |
| | |
图 6 软件整体结构图
四、测试方案与测试结果
1.测试所用仪器
|----|------|
| 序号 | 仪器名称 |
| 1 | 秒表 |
| 2 | 卷尺 |
2 . 测试方案
详细测试方案请见附录。测试结果如表1、表2
表1 基本要求测试结果
|------------|-------------------------------|--------------------------|---------------|--------------------------------------|
| 测量项目 | 题目指标 | 完成情况 | 是否 达标 | 测试方案简述 与测量仪器 |
| 1.1A到B直线行驶 | 小车在直线的最小投影面积不小于零,完成所需时间不大于15S | 4.96S以内完成,最小投影面积300立方厘米 | 是 | 小车开始运动是开始计时,到达目标点后停止计时并在此过程中观测小车投影面积 |
| 1.2弧线行驶 | 小车在直线的最小投影面积不小于零,完成所需时间不大于30S | 13.67S以内完成,最小投影面积238立方厘米 | 是 | 小车开始运动是开始计时,到达目标点后停止计时并在此过程中观测小车投影面积 |
| 1.3 8字行驶 | 小车在直线的最小投影面积不小于零,完成所需时间不大于40S | 23.67S以内完成,最小投影面积202立方厘米 | 是 | 小车开始运动是开始计时,到达目标点后停止计时并在此过程中观测小车投影面积 |
表2 发挥部分测试结果
|-----------|---------------------|--------------------------|---------------|--------------------------------------|
| 测量项目 | 题目指标 | 完成情况 | 是否 达标 | 测试方案简述 与测量仪器 |
| 2.1四次8字行驶 | 小车在直线的最小投影面积,完成所需时间 | 89.73S以内完成,最小投影面积102立方厘米 | 是 | 小车开始运动是开始计时,到达目标点后停止计时并在此过程中观测小车投影面积 |
3. 测试结果分析
本作品完成了题目的所有基础指标和发挥要求,符合题目所有指标并且。要求(1)6S以内完成,要求(2)15S以内完成,要求(3)25S以内完成指标上超出题目要求并且车上投影面积均大于100立方厘米。
本作品采用MSPM0G3507作为主控芯片,控制集成了双串级PID调制PWM。同时,本作品还采用MPU6050动态校准算法。进行实时动态补偿调制实现了减小MPU6050运行时得到的误差,该算法可达到MPU6050的误差在±1度。
本作品项目要求基本项完成的准确率高达95%,所需时间范围远远小于各要求的时间,小车基本项、发挥项测试准确度高达96%,在无强光照射,温度恒定在一定范围内的情况下小车运行完成要求的准确率低至83%。满足并远超题目要求。
五、参考文献
[1] 葛鑫,李根望,丁美林 基于AT89C51坡道行驶智能小车[J], 自动化技术, 10.14004/j.cnki.ckt.2023.1623.
[2] 陈杰.物流仓库中小车路径规划算法及实现[D].重庆大学,2021.DOI:10.27670/d.cnki.gcqdu.2021.001644.
[3] 黄倩,于艳艳,王磊,等.基于FPGA的小车自动行驶控制系统的设计与实现[J].云南大学学报(自然科学版),2014,36(02):199-204.
[4] 张贺尧,韦国轩,吴沁芯.基于LiDAR技术的智能寻路小车设计与实现[J].集成电路应用,2022,39(03):1-3.DOI:10.19339/j.issn.1674-2583.2022.03.001.