智能车竞赛技术报告 | 双车接力组 - 沈阳航空航天大学 - 精神小车成双 - 双轮车
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能车竞赛技术报告 | 双车接力组 - 沈阳航空航天大学 - 精神小车成双 - 双轮车相关的知识,希望对你有一定的参考价值。
队伍名称:精神小车成双队
参赛队员:李明沂 余冬 田祺春 顾诗渤
带队教师:胡乃瑞 邵清亮
引言
“恩智浦”杯全国大学生智能汽车竞赛是由教育部高等学校自动化专业 教学指导分委员会主办的科技竞赛。至今以来已经成功举办了十六届。竞赛 过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成 团队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过 程。该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的 汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算 机、机械与汽车等多学科专业的创意性比赛。该竞赛规则透明,评价标准客 观,坚持公开、公平、公正的原则,力求向健康、普及、持续的方向发展。
概述
本文详细介绍了沈阳航空航天大学“精神小车成双队”在第十六届“恩智浦”杯全国 大学生智能汽车竞赛双车会车组的系统方案。本次比赛采用大赛组委会统一指定的D型车模,以灵动微电子公司生产的单片机MM32PIN27PS 为核心控制器,要求智能车按照赛道进行寻迹,在三岔路口进行接力并传递直径不小于4cm的乒乓球,智能车采用电感来检测赛道上的电磁线;通过超声波进行测距;通过无线串口实现两车的通信;通过陀螺仪来控制车的姿态;使用 PID 控制算法调节电机的转速;为了提高模型车的速度和稳定性,使用上位机、按键 OLED 模块等调试工具,进行了大量 硬件与软件测试。实验结果表明,该系统设计方案确实可行。
第一章 方案设计
1.1 整车设计思路
本届智能汽车比赛,我队双车接力组别。本组车使用MM32PIN27PS作为核心控制单元,在循迹传感器方面,用电感和电容谐振检测 100kHZ 电流产生的磁场。车身转向控制方面,使用电磁信号强度作为转向反馈;由于平衡车的特殊性,车身在循迹前进的过程中,必须保持车身的平衡。根据最基本保持车身平衡的基本原理,我们需要知道车身当前的角度和角速度。因此在保持车身平衡方面,我组确定以陀螺仪作为角度传感器,型号为ICM-20602;在赛题任务方面,采用两个磁性不同的磁铁进行传球,通过超声波检测两个车之间的距离,通过串口实现两车之间的通信。
▲ 图1.1 整体结构框图
第二章 智能车机械结构设计
2.1 智能汽车车模的选择
本次比赛可选车模有D车和E车,E车比D车更长,而且有更宽的轴距,本次规则限定车模长度在30cm以内,两辆车各有优缺点,从总体上看差别不是特别大,所以这里选择了更为短小简洁的D车模,方便将车模长度控制在30cm以内。
2.2 智能汽车安装
2.2.1传球装置的安装
在传球过程中两轮车做为后车(接球车),传球方案是利用磁铁磁性强弱的不同,在两轮车尾部安装一个强磁铁而三轮车上安装的为弱磁铁,这样两轮车便可以将三轮车上带有铁片的小球吸到两轮车上,强磁铁安装在两轮车尾部(如图2.1所示)
▲ 图2.1
2.2.2电感的安装
电感是智能车寻迹的保证而且距离机械零点较远,对重心影响较大,所以我们选用质量轻而硬度较高的碳杆作为主体,在上面固定好8*10的工字电感,方向与前瞻电感架平行,并联上矫正电容,随后连接到主板的电磁运放部分。如图2.2
▲ 图2.2
2.2.3车模姿态传感器
对于直立车,陀螺仪是非常关键的一个模块,要保证它因安装不牢而转动从而影响直立环,所以把它单独固定在车模底板上,然后用热熔胶固定,从而保证检测数据的可靠性。电感线圈的安装如图2.3所示。
▲ 图2.3
2.3重心的调整
2.3.1电池的安装
电池是整个车模所有元件中最重的部分,电池我们选择质量轻,性能好的7.4v锂电池,容量5200mA.h,属于大容量,在此之前我们选用的是智能车专用的镍铬电池,经过测试发现,用次电池时间稍长之后会发现,直立车在过弯时由于电池瞬间供电不足而导致过弯时自立车低头,从而导致车的稳定性下降。电池的安装,电池支架也是重要的一环,电池支架最好让智能车整个中心更为集中。考虑到车子的稳定性,在保证车模顺利通过坡道的前提下,我们尽可能的降低车子的重心。同时均匀车身重量,使重心在整车的中轴线上。由于靠前的重心会影响小车平衡位置,过后的重心又会导致侧滑。最后电池的安装如图2.4。
▲ 图2.4
2.3.2配重的安装
由于直立环的存在,智能车在设定目标角度后,重心越低于目标角度,即智能车重心靠前,车模便会拥有更快的速度,可根据自己的需要调整重心,在两轮车合适的位置安装适当的配重即可。如图2.5所示。
▲ 图2.5
第三章 智能车硬件电路设计
印刷电路板(Printed-Circuit Board, PCB)是由环氧树脂粘合而成的镀了铜的玻璃纤维板。蚀刻掉部分镀铜,只留下以构成电路互连通路的铜层走线。 PCB 可以是单层、双层或者四层、六层、八层、十二层甚至更多。层数越多,连接的布线就越容易,但成本却越高,调试也越难。如果 PCB 有专用供电层和接地层,系统将会有更强的燥声抗扰度。在使用电子设计自动化软件(如 DXP)设计 PCB 时需注意以下几个方面的问题。
3.1 PCB 板布局
在正式走线之前要对 PCB 的大体格局进行规划。 布局规划应遵循下列基本原则。
(1)在 PCB 布板之前首先要打印出相应的原理图,然后根据原理图确定整个 PCB 板的大体布局,即各个硬件构件的位置安排。
(2) PCB 板的形状如无其他要求,一般为矩形,长宽比为 4:3 或 3:2。
(3)考虑面板上元件的放置要求。
(4)考虑边缘接口。
3.2元件放置
(1)元件放置要求整齐, 尽可能正放, 属于同一硬件构件内的元件尽可能排放在一起。
排列方位尽可能与原理图一致,布线方向最好与电路图走线方向一致。元器件在 PCB 上的排列可采用不规则、规则和网格等三种排列方式中的一种,也可同时采用多种。不规则排列:元件轴线方向彼此不一致,这对印制导线布设是方便的,且平面利用率高,分布参数小,特别对高频电路有利。规则排列:元器件轴线方向排列一致,布局美观整齐,但走线较长且复杂,适于低频电路。网格排列:网格排列中的每一个安装孔均设计在正方形网格交点上。布局的元器件应有利于发热元器件散热,高频时要考虑元器件之间的分布参数,高、低压之间要隔离,隔离距离与承受的耐压有关。
(2)电容的位置要特别注意,其中电源模块的滤波电容要求靠近电源,而 IC 的滤波电容要靠近 IC 的引脚。
(3)考虑元件间的距离,防止元件之间出现重叠。 还要考虑元器件的引脚间距,元器件不同,其引脚间距也不相同,在 PCB 设计中必须弄清楚元器件的引脚间距,因为它决定着焊盘放置间距。对于非标准器件的引脚间距的确定最直接的方法就是:使用游标卡尺进行测量。
(4) PCB 四周留有 5-10mm 空隙不布器件。
(5)先放置占用面积较大的元器件,先集成后分立,先主后次,多块集成电路时先放置主电路。
(6)可调元件应放置在便于调节的地方,质量超过 15g 的元器件应当用支架,热敏元件应远离发热元件。 晶体应平放,而不要竖直放置。
(7) PLL 滤波电路应尽量靠近 MCU。
3.3 主控芯片的选定
本次比赛可供选用的芯片有M0和M3两款,M0为90MHZ,M3为120MHZ,由于前期没意识到芯片的重要性,和M3芯片的短缺问题,我们选择了M0芯片,M0芯片各个方面要逊色于M3这后来也成为了我们,提速的一大障碍。所以在这里建议大家若有较高的目标一定要选择性能好的主控芯片。
3.4电源设计
3.4.1 5v电源模块
5v稳压模块,是基于SPX2940的设计,此电路包括了滤波,稳压的过程,SPX2940具有输出固定,响应快的特点,经过电容滤波,可以稳定输出5v电压,其电路图如图3.1所示。
▲ 图3.1
3.4.2 3.3v稳压模块
为保证摄像头,运放,芯片的正常运行,需要稳定的3.3v电压,3.3v电压是基于RT9013的设计此电路包括了滤波,稳压的过程。为保证不让同一个3.3v稳压模块负载过多,我们使用了多个3.3v模块,原理均相同。其电路图如图3.2所示。
▲ 图3.2
3.4.3 运放的设计
运放是采用了OPA-4377为基础的设计OPA377系列运算放大器是宽带CMOS放大器,可提供极低噪声,低输入偏置电流和低失调电压,同时工作在低电平静态电流为0.76mA(典型值)。OPA377运算放大器针对低电压,单电源应用进行了优化。交流和直流性能的出色组合使其成为各种应用的理想选择,包括小信号调理,音频和有源滤波器。四通道OPA4377采用TSSOP-14封装。其电路图如图3.3。
▲ 图3.3
3.4.4驱动的设计
驱动部分是比较容易出问题的一部分,对于芯片的的选择,原理图的设计,pcb的布局,布线都有较高的要求。驱动芯片选择HIP4082IBZ。内含HIP4082全桥驱动原理图和驱动,HIP4082是中频、中压h桥N通道MOSFET驱动IC,可提供16个铅塑料SOIC (N)和DIP封装。针对PWM电机控制和UPS应用,HIP4082 h桥驱动使基于桥的设计变得简单和灵活。操作高达80V,该设备最适合中等功率级别的应用。电路首先,单片机能够输出直流信号,但是它的驱动才能也是有限的,所以单片机普通做驱动信号,驱动大的功率管如Mos管,来产生大电流从而驱动电机,且占空比大小能够经过驱动芯片控制加在电机上的均匀电压到达转速调理的目的。电机驱动主要采用N沟道MOSFET构建H桥驱动电路,H 桥是一个典型的直流电机控制电路,由于它的电路外形酷似字母 H,故得名曰“H 桥”。4个开关组成H的4条垂直腿,而电机就是H中的横杠。要使电机运转,必需使对角线上的一对开关导通,经过不同的电流方向来控制电机正反转。驱动部分的电路图如图3.4所示。
▲ 图3.4
第四章 智能车系统程序设计
直立电磁车,首先进行各模块的初始化,在主函数while语句中实现拨码开关,按键的检测以及OLED的显示,主系统的周期为5ms,进入进行AD采值,数据处理,然后小车姿态数据采集,5ms控制一次电机工作。程序流程如图4.1所示。
▲ 图4.1
4.1特殊赛道识别及处理
本届比赛赛道元素增加了新型元素—三叉路口,此元素得增加使赛道的识别难度大大提升。三轮总体需要经过元素坡道,环岛以及新增得三叉路口。
4.1.1坡道识别
我们采取的使利用陀螺仪去识别坡道,利用陀螺仪的积分判断进入坡道,然后进行抬高角度能够保证不出现飞车的情况,从而达到顺利经过坡道。
4.1.2环岛识别与处理
我们三轮智能车采取的电感进行识别, 环岛与其他元素相比只有一个明显的特征,即左右两侧电感的电压都会大于正常循迹时的电压,据此可以判断出环岛元素,然后采取取特征值的方法,使小车进入环岛。出环岛陀螺仪进行积分,当达到目标积分时就出环岛。
4.1.3三叉路口识别
三叉路口也采取的电感进行识别,因为俩个电磁线会分别进入一条三叉路口,这样三叉路口的电感就会比较小。由于这样条件过于简单就会造成多处误判,所以我们就更加细化三叉路口的电磁条件,增加一些识别先后的条件,当接受到三轮的信号完成传球时,开始发车,从而这样对于三叉路口的识别达到更加完善。
4.2 PID控制算法介绍
控制算法包括平衡控制、方向控制和速度控制。平衡控制采用PID控制,方向控制采用位置式PD控制,速度控制采用增量式PD控制。PID控制即比例、积分、微分控制,该方法在工程实际中应用相当广泛。PID控制算法具有结构简单、工作可靠、便于调整、性能稳定等优点。
4.2.1 PID控制算法简介
PID调节是Proportional(比例),Integral(积分),Differential(微分)三者的缩写,是一种过程控制算法,就是对误差信号(采样信号与给定信号的差)通过比例,积分,微分的运算后的结果作为输出控制信号,来控制所要控制的对象。
比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例使系统的稳定性下降,甚至造成系统的不稳定。
积分调节作用:是使系统消除稳态误差,提高误差度。当有误差时,积分调节就进行,直至无误差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间Ti,Ti 越小,积分作用就越强。反之Ti 大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。
4.2.2 PID参数整定
PID控制算法中PID参数的整定是控制系统设计的核心内容。该过程是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定。该方法需要依靠一定的数学模型,即通过一定的模型进行理论计算,最后确定控制器参数。但是,理论计算的方法所得到的数据常常是不能够直接运用到实际中的,其必须通过实际工程进行验证,并进行调整和进一步修改。二是工程经验整定。该方法主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。工程整定方法中的PID参数整定主要有临界比例法、衰减法、反应曲线法。三种方法各有其特点,每一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。此外,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。
进行 PID控制器参数的整定步骤一般如下:
(1)、预选择一个足够短的采样周期让系统工作;
(2)、仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;
(3)、在一定的控制度下通过公式计算得到PID控制器的参数;
(4)、根据实际运行情况对计算出的PID控制器的参数进行调整。
本系统的PID参数为通过上位机调试得来,具体调试方法为:先将PID参数设置为经典参数,然后通过上位机观察速度曲线,不断改变PID参数,直至观察速度曲线发现其加减速时间很短,超调量很少,则说明此时的PID参数已经基本比较合适,这样就确定出适合本系统的一组PID参数。
五.系统调试
5.1.软件开发工具
选用的是IAR Embedded Workbench。IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,嵌入式 IAR Embedded Workbench 有效提高用户的工作效率,通过 IAR 工具,可以大大节省软件调试时间。调试界面如图2所示:
▲ 图2
5.2.液晶屏、按键调试
在小车的调试过程中需要不断地修改变量的值来达到整定参数的作用,对此我们选用了液晶配合按键和拨码开关的调试方法。此外,比赛的时候,修改参数我们同样用这个模块进行修改。
液晶我们选用OLED液晶,该液晶具有以下特点:
•尺寸小,显示尺寸为0.96吋,而模块的尺寸约29.5mm29.5mm 。具有普通LCD无法比拟的体积的优势。
•高分辨率,分辨率为12864,显示效果远超过LCD。
•可以显示的数据更多,方便观察内部的变量的变化情况。
但同时,它的缺点也是显而易见的:
•价格远高于普通LCD,易损坏,质量不如普通LCD;
•耗费更多的单片机资源,通过高精度示波器测量刷新时间,每刷新液晶屏幕上一个变量值需要耗时1ms,这对高精度的高实时性的智能车是最大的不利。
最后,我们选用了OLED液晶,更加看重变量可显示个数和体积带来的优越。刷新变量的频率也是个巨大的问题,所以通常需要在软件中解决,一般在小车在行驶中,液晶屏幕通常是需要关闭的,只有需要修改参数或查看参数时才进行显示。液晶模块如图3所示:
▲ 图三
第六章 总结
自从决定参加第十六届“恩智浦”杯全国大学生智能汽车竞赛以来,我们小组成员查找资料,设计机构,组装车模,编写程序,分析问题,智能车终于达到了稳定、快速、简单的性能目标,最终确定了我们的作品。
在此份技术报告中,我们主要介绍了准备比赛时的基本思路,包括机械,电路,以及智能车的控制算法。
在传感器布局,我们分析了前几届中出现的电感排布方法,综合考虑到程序的稳定性、简便性,我们最后敲定了现在的电感排布,并通过反复实践决定了传感器的数量和位置,在软件上不断完善控制算法,最终智能车在跑道上能稳定完成自主循迹行驶。
在电路方面,我们以模块形式分类,在电源管理,电机驱动,接口,控制,信号采集,传感器这六个模块分别设计,在查找资料的基础上各准备了几套方案;然后我们分别实验,最后以报告中所提到的形式决定了我们最终的电路图。
在算法方面,我们使用C语言编程,利用比赛推荐的开发工具调试程序,经过小组成员不断讨论、改进,终于设计出一套比较通用的,稳定的程序。在这套算法中,我们结合路况调整车速,做到直线加速,弯道减速,保证在最短时间跑完全程。
在之前的备战过程中,场地和经费方面都得到了学校和系的大力支持,在此特别感谢一直支持和关注智能车比赛的学校和系领导以及各位指导老师、指导学长,同时也感谢比赛组委会能组织这样一项有意义的比赛。
现在,面对即将到来的大赛,在历时近一年的充分准备以及东北赛区赛的考验之后,我们有信心在全国比赛中取得优异成绩。也许我们的知识还不够丰富,考虑问题也不够全面,但是这份技术报告作为我们小组辛勤汗水的结晶,凝聚着我们小组每个人的心血和智慧,随着它的诞生,这份经验将永伴我们一生,成为我们最珍贵的回忆。
参 考 文 献
[1] 刘南昌,李全,王宏,张楠. 基于单神经元PID 的直流电动机速度控制算法研究[J]. 五邑大学学报, 2011.8.15.
[2] 侯勇严,郭文强. 单神经元自适应PID 控制器设计方法研究[D]. 陕西咸阳. 陕西科技大学电气与电子工程学院.2003
[3] 王渊峰. Altium Designer 20电路设计标准教程[M] 科学出版社. 2012.1.1.
■ 附录一 程序
【主函数】
#include "hal_include.h"
bool interrupt_flag = false; // 中断触发标志 在isr.c中置位
bool io_output = false;
#define OK !gpio_get(C6)
#define K_L_R !gpio_get(C7)
#define Spin !gpio_get(A4)
uint8 Run=0;//电机状态开关
uint16 win;
extern int SumAngle,jiansu,xdm;
extern uint8 fa_che;
extern float SumAngle1;
extern float SumAngle2;
extern uint8 chuku_jishi;
extern uint8 chuku_flag,AZ,HAL_T,Huandao;
extern uint16 SPEED;
uint8 Both_sides=0;
int main(void)
{
board_init(true); //下载
BootSet(); //按键启动
InitAll();// 初始化模块
tim_interrupt_init_ms(TIM_14, 5, 2); //TIM初始化中断,5ms一次,优先级2 // 初始化引脚为推挽输出 默认高电平
tim_interrupt_enabnle(TIM_14); //使能
while(1)
{
//按下开关电机会转
if(OK){
Delay_Ms(50);
Run=1;
}
if(K_L_R)//按键控制出库方向
{
Delay_Ms(50);
AZ=1;
}
if(Spin)//按键控制左右环
{Both_sides=1;
}
if(Both_sides==0&&Huandao==7)//左环
{
Huandao=1;
}
if(Both_sides==1&&Huandao==7)//右环
{
Huandao=4;
}
SWITCH_Contral();
// //三轮显示
// oled_printf_int32(95, 1, Huandao,4);
// oled_printf_int32(95, 2,adc_convert(ADC_1, ADC1_CH00_A00),4);
// oled_printf_int32(95, 3, adc_convert(ADC_1, ADC1_CH02_A02),4);//左
// oled_printf_int32(95, 4, adc_convert(ADC_1, ADC1_CH03_A03),4);//右
// oled_printf_int32(95, 5, AZ,4);
// oled_printf_int32(95, 6, SPEED,4);
// oled_printf_int32(95, 7, Both_sides,4);
// //oled_printf_int32(102,6,wireless_rx_buffer[0],3);
// seekfree_wireless_send_buff(&fa_che, 1);
display_data();
}
}
● 相关图表链接:
以上是关于智能车竞赛技术报告 | 双车接力组 - 沈阳航空航天大学 - 精神小车成双 - 双轮车的主要内容,如果未能解决你的问题,请参考以下文章
智能车竞赛技术报告 | 双车接力组 - 大连海事大学 - 同舟拾贰队
智能车竞赛技术报告 | 双车接力组 - 东北大学 - 三好学生
智能车竞赛技术报告 | 双车接力组 -哈尔滨工业大学 - 紫丁香六队
智能车竞赛技术报告 | 双车接力组 - 辽宁工业大学 - 灵越1队