专业课程设计与实习报告马崟摄像头组.docx
《专业课程设计与实习报告马崟摄像头组.docx》由会员分享,可在线阅读,更多相关《专业课程设计与实习报告马崟摄像头组.docx(31页珍藏版)》请在冰豆网上搜索。
专业课程设计与实习报告马崟摄像头组
湘潭大学
课程设计说明书
题目:
智能小车(摄像头)
课程名称:
专业课程设计与实习
学院:
信息工程学院
专业:
自动化
学号:
2013550413
姓名:
马崟
指导教师:
肖业伟
完成日期:
2016.12.29
目录
1.设计的工程背景3
1.1任务阐述4
1.2任务分析4
1.3课题项目管理计划进度表5
2.工程设计方案5
2.1系统方案设计5
2.2硬件电路设计6
2.2.1全桥驱动电路6
2.2.2部分隔离电路与供电电路6
2.2.3主控芯片电路7
2.3软件程序设计8
2.3.2PID控制策略的选择9
2.3.3最小二乘法9
2.3.4求曲率策略9
2.3.5提取中心线策略10
2.3.6路径优化策略11
2.3.7方向控制策略12
2.4总体软件框架图12
2.5测速方案选择13
3.方案实施13
3.1硬件制作与调试过程13
3.1.1系统调试14
3.1.2硬件调试14
3.2软件程序调试过程14
4.结果与结论14
4.1实验结果14
4.2结论15
5.收获与致谢17
6.参考文献18
附件1:
答辩问题回答记录表19
附件2程序算法20
1.设计的工程背景
现在半导体在汽车中的应用越来越普及,汽车的电子化已成为行业发展的必然趋势。
它包括了汽车电子控制装置,即通过电子装置控制汽车发动机、底盘、车身、制动防抱死及动力转向系统等,到车载汽车电子装置,即汽车信息娱乐系统、导航系统、汽车音响及车载通信系统等等,几乎涵盖了汽车的所有系。
汽车电子的迅猛发展必将满足人们逐步增长的对于安全、节能、环保以及智能化和信息化的需求。
教育部为了加强大学生实践、创新能力和团队精神的培养,在已举办全国大学生数学建模、电子设计、机械设计、结构设计等几大竞赛的基础上,经研究决定,委托教育部高等学校自动化教学指导分委会主办每年一度的全国大学生智能汽车竞赛,并成立了由教育部、自动化分教指委、清华大学、飞思卡尔半导体公司等单位领导及专家组成的“第一届‘飞思卡尔’杯全国大学生智能汽车邀请赛”组委会。
该竞赛是为了提高大学生的动手能力和创新能力而举办的,具有重大的现实意义。
与其它大赛不同的是,这个大赛的综合性很强,是以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感、电子、电气、计算机和机械等多个学科交叉的科技创意性比赛,这对进一步深化高等工程教育改革,培养本新意识,培养本科生生从事科学、技术研究能力具有重要意义。
以智能汽车为研究背景的科技创意性制作,是一种具有探索性的工程实践活动,其本质也是人类创造有用人工物的一种训练性实践,其过性是综合,而结果属性很可能是创造。
通过竞赛,参赛的同学们培养了对已学过的基础与专业理论知识与实验的综合运用的能力;带着背景对象中的各种新问题,学习控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科新知识,包括来自不同学科背景大学生的相互学习,逐渐学会了在学科交叉、集成基础上的综合运用;若是以实用为目的,还必须考虑考虑可靠性、寿命、外观工业设计、集成科学与非科学,在具体约束条件下融合形成整体的综合运用。
这样的训练是很有意义的。
在智能车的开发过程中,各参赛队伍需要改装竞赛车模,完成智能巡线小车的制作。
在此过程中需要学习嵌入式系统开发环境与在线编程方法、单片机接口电路设计,自行设计并实现识别引导导线的硬件电路、电机的驱动电路、车速反馈电路、智能车舵机控制电路以及能使小车在不驶出赛道的前提下可能快速行驶的控制策略与软件算法。
第一届“飞思卡尔”杯全国大学生智能汽车邀请赛,已于2006年8月21日在清华大学顺利结束。
为了使更多的高校、更多的大学生参与到这一活动中来,第二届“飞思卡尔”杯全国大学生智能汽车竞赛原则上由全国有自动化专业的理工类高等本科学校约270余所参赛,每个参赛学校限2个队;分五个赛区进行预赛,各分赛区的优胜队参加决赛。
第四届“飞思卡尔”杯全国大学生智能汽车竞赛将参赛规模扩大到每校四个队伍,比赛的普及性进一步提高。
第五届“飞思卡尔”杯全国大学生智能汽车竞赛新增了磁导航组,增加了比赛的多样性和精彩程度。
第六届比赛在第五届基础上将光电组和摄像头组赛道增加了虚线设置,增加了比赛难度,也是对参赛队员能力的挑战。
第七届摄像头和光电组的识别赛道由以往的中心识别改为两边的识别。
智能车的开发与设计涉及到多个专业领域,对于大学生综合素质的培养,知识面的拓展和分析问题解决问题的能力的提高很有意义,并且有利于提高大学生的动手能力、激发创新能力。
此外,制作这样一个高性能智能小车的过程,也是需要同组成员相互协作、紧密配合的过程,在此过程中,团队成员的交流与合作也显得尤为重要。
1.1任务阐述
工程采用指定的8位、16位、32位微控制器作为核心控制单元,自主构思控制方案进行系统设计,包括传感器信号采集处理、电机驱动、转向舵机控制以及控制算法软件开发等,完成智能车工程制作及调试,于指定日期与地点参加各分赛区的场地比赛,在获得决赛资格后,参加全国总决赛的场地比赛。
中心目标是不违反大赛规则的情况下以最短时间完成单圈赛道。
智能车的制作过程中主要包括摄像头选型、电源电路定型、驱动电路搭建乃至整车机械结构定型、软件算法的编写等,这些过程无一不考验我们组员的能力。
我们自己挑选摄像头类型,将摄像头标定准确,设计制作电路板,制作舵机以及摄像头结构架,挑选编码器,编写程序算法……这些技术不仅仅依靠书本上的理论,更多的是我们自己翻阅资料的能力,这些结果凝聚我们组成员的心血与汗水,是团队合作的结果。
在这个过程中,涉及到了众多学科——自动控制、模式识别、传感器技术、汽车电子、电机控制、计算机技术、机械原理等等,这些学科的涉猎不仅增加了我们的阅历,对于知识融合和动手能力的提高也有着极大的作用。
1.2任务分析
智能车系统的设计可分为三个部分:
机械部分、硬件电路部分和软件部分。
本次比赛组委会统一更改为使用单电机的A车模型,基本上除了电机以外其他部分和C车一样。
对于机械的调整,不仅要考虑整车的重心调整,也要考虑摄像头位置的摆放。
电路方面应该在比赛规则的要求下尽可能的简洁紧凑,以减轻系统负担,同时也要将所有需要功能提供出来,同时保证电路稳定运行。
智能车的核心部分是软件算法、信息获取和处理是关键。
和往届相比,处理器可以使用32位的,并且可以选择不同内核的,有了充足的资源的条件下可以使程序更加健全,保证系统能够在更高频率下稳定运行。
1.3课题项目管理计划进度表
序号
各阶段完成的内容
完成时间
1
查阅相关文献资料、课题调研
2016.5.20-2016.6.28
2
掌握设计软件、制订进度计划
2016.6.28-2016.5.30
3
系统方案的比较和选定
2016.7.02-2016.8.08
4
单元电路设计、参数计算及元器件选择
2016.8.10-2016.9.15
5
系统硬件制作及调试
2016.9.15-2016.9.20
6
硬件制作结果检查
2016.10.20-2016.10.25
7
撰写课程设计说明书
2016.10.25-2016.11.28
8
答辩
2016.11.30-2016.12.02
2.工程设计方案
2.1系统方案设计
图2-1
2.2硬件电路设计
2.2.1全桥驱动电路
全桥功率开关驱动电路,又称为H桥驱动电路,其基本原理图如图1所示。
形象的说,4个开关或者功率管组成H桥的4条垂直腿,而电机或者负载就是H中的横杠。
通过控制4个开关的导通与截止可以实现负载的正向加电和反向加电,其最广泛的用途就是电机的正反转。
H桥驱动电路加电必须是对角线两个开关管同时打开,而半桥臂的上下开关管不能同时打开,否则会造成上下位开关管直接短路,电源直接对地短接,造成瞬态电流过大,开关管损坏。
当开关管中的1,4导通时,电流经过开关1-电机-开关4流动,电机向一个方向运动;反之,当开关管中的2,3导通时,电流则经过开关3-电机-开关2流动,电机向相反方向运动。
图2-2
2.2.2部分隔离电路与供电电路
隔离电路就是用来将大电源比如按7.2伏电压转化为所需电压如5V或3V,并将7.2V和5V或3.3V隔离起来以免烧坏供电设备。
图2-3
2.2.3主控芯片电路
此主控基于芯片是以ARM公司开发的M4内核的恩智浦公司开发的MKDN512ZVLQ控制器,最高主频达150MHz,拥有定时器、中断、输入捕捉、AD/DA、FTM正交解码、低功耗定时器等强大外设;基于此控制器的主控电路如下。
图2-4
2.3软件程序设计
2.3.1PID算法
PID(ProportionalIntegralDifferential)控制是比例、积分、微分控制的简称。
在自动控制领域中,PID控制是历史最久、生命力最强的基本控制方式。
PID控制器的原理是根据系统的被调量实测值与设定值之间的偏差,利用偏差的比例、积分、微分三个环节的不同组合计算出对广义被控对象的控制量。
图3.1是常规PID控制系统的原理框图。
图2-5
其中虚线框内的部分是PID控制器,其输入为设定值与被调量实测值构成的控制偏差信号
式(2-1)
其输出为该偏差信号的比例、积分、微分的线性组合,也即PID控制律:
式(2-2)
式中,
为比例系数;
为积分时间常数;
为微分时间常数。
根据被控对象动态特性和控制要求的不同,式(3.2)中还可以只包含比例和积分的PI调节或者只包含比例微分的PD调节。
2.3.2PID控制策略的选择
PID控制C语言的形式有位置式PID、增量式PID、积分分离式PID、抗积分饱和PID控制、梯形积分PID控制、变积分PID控制等;最终我们根据控制目标实际情况和需求选择了抗积分饱和的PID控制。
所谓的积分饱和现象是指系统存在一个方向的偏差,PID控制的输出由于积分作用的不断累加而加大,从而导致执行机构达到极限位置,若控制器输出继续增大执行器开度不可能再增大,此时计算机输出控制超出了正常范围而进入饱和区。
一旦系统出现反向偏差,u(k)逐渐从饱和区退出。
进入饱和区越深则退出饱和区时间越长。
在这段时间里,执行机构仍然停留在极限位置而不随偏差反向而立即做出相应的改变,这时系统就像失控一样。
所以对积分饱和的消除是十分有必要的。
防止积分饱和的思路就是:
判断上一时刻的控制量u(k-1)是否已超出极限范围;如果超出则只累计反方向的偏差不累加同一方向的偏差;从而避免长时间停留在饱和区。
2.3.3最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术。
它通过最小化误差的平方和寻找数据的最佳函数匹配。
利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
最小二乘法还可用于曲线拟合。
线性最下二乘法拟合公式:
式(2-3)
式(2-4)
2.3.4求曲率策略
对赛道信息的提取除了车身与赛道的斜率之外还有一个很重要的信息,曲率这对小车速度的控制尤为重要。
根据一个三角形可以确定一个外接圆的原理,我们图像信息上中下三点采用坐标法计算圆心坐标,然后求取其半径,即它的倒数就为曲率。
2.3.5提取中心线策略
我们采用的是从中间向两边扫描的形式,其二值化图像及效果如图2-6所示,其程序框图如图2-7所示。
图2-6
图2-7
2.3.6路径优化策略
在飞思卡尔比赛弯道中,有一种特殊的弯道,小S弯道;小车在过这种弯道时如果还是用原来的策略和方法行进的话,小车的方向就会随弯道方向左右打角,这样不仅多走了路程而且小车在舵机打角的过程中还会减速,所以有必要对路径进行优化。
目前的优化策略就是通过取图像中心点,差分然后进行累加求平均值,这样可以令远处和和近处在中心线两边的点的偏差相互抵消,这样可以起到一定效果,但不怎么理想。
图2-8
2.3.7方向控制策略
小车的转向时通过舵机来控制的,而舵机的打角可通过小车与赛道的偏差与斜率共同控制;以偏差作为为PID控制量的偏差来控制;二根据小车与赛道的斜率会把偏差放大的原理,我们可令PID控制中的P值与斜率成二次函数的关系。
如右图所示。
图2-9
2.4总体软件框架图
图2-10
2.5测速方案选择
速度采集是闭环控制系统中必不可少的环节。
为了使得车模能够平稳地沿着赛道运行,车速要与舵机配合,以保证车模在各种道路上性能稳定。
所以要实时检测当前车模速度,并根据车模在赛道上所处的情况来调整速度。
车速检测可用光电码盘、编码器、透射式光电检测和霍尔传感器检测等。
在实际运用中我们对这几种方式进行了比较发现编码器的精确度更高,因此最后我们采用了编码器对电极进行测速。
3.方案实施
3.1硬件制作与调试过程
3.1.1系统调试
系统调试和实验室工程设计中一个很重要的环节,在完成系统和软件设计
后要进行系统的调试,以检查系统的完整性和有效性。
系统调试分为软件调试
和硬件调试两部分。
3.1.2硬件调试
首先是对硬件电路的电源部分,传感器部分以及驱动部分进行调试,电源
部分的调试主要看其输出电压是否满足要求,摄像头的调试主要包括图像清晰
度调节以及安装位置的调整。
接着就是调试舵机的中心值、左右最大极限以及
转的方向是否正确,再接着就是检验电机的驱动,以及编码器的工作是否正常,
我们所用的方法是给一个恒定PWM占空比,观察电机是否会转,如果转起来了
再观察所捕捉到的脉冲数是否稳定,如只有很小的波动说明其工作在情况正常。
最后对整体进行调试。
各部分子电路调试结束后,对小车进行整体调试,令小
车以某一较低的速度行驶,通过弯道时保证有合适的舵机转角。
在舵机转角调
试过程中得到的经验值的基础上进行修改。
利用软件对参数进行修改,提高小
车直流电机的转速和修改舵机转角。
如此反复进行,直到得到较为合适的经验
值。
先让小车行驶稳定,在此基础上逐步提高小车速度。
3.2软件程序调试过程
在软件设计中,根据之前的各模块的规划进行初始化设置,在编写程序前,
要先对各个模块分别进行调试,并编写各部分的子程序。
调试PWM口时同过示
波器观测产生的波形是否正常。
也可通过示波器观测编码器产生的波形是否正
常,有无丢失脉冲的现象也可由示波器观测到。
然后就是观察采到的数据是否
正常,黑线是否稳定,因为在之前我们的车子出现过采到数据都是整幅图像在
上下漂移,根本无法使用,后来发现是电源出了问题,原始图像稳定是一切算
法的前提,所以必须保持图像的稳定,然后再看阀值是否合适以及黑线是否提
取准确,通过BDM在线观察所求出来的各各量是否合适。
在每一部分程序调试
通过后,对所有子程序进行整合,编写出完整的主程序,在IAR界面完成程序
编译后,通过BDM工具,将程序下载到K60微处理器中,然后进行小车的调试。
4.结果与结论
4.1实验结果
自去年12月开始学校的智能车选拔,我们已经走过九个月的历程,一路拼搏,一起参加了校赛、省赛,赛区赛,这一路上我们历经风风雨雨,走到现在。
小车已经能跑出平均速度为2.6m/s,最高速度能达到3m/s。
小车实物图如图4-1、4-2、所示。
图4-1
图4-2
4.2结论
该设计在满足竞赛组委会有关要求的前提下,对车模和硬件进行了进一步的优化,本设计采用飞思卡尔公司提供的MC9S12XS128单片机作为控制模块,以CCD摄像头作为传感器预知路况,以光电编码器作为速度传感器,实时采集速度信息,整个系统闭环控制,是小车能够稳定快速的运行。
开始准备制作小车到现在有了大半年的时间,参赛车队由三名本科生和两位指导老师构成,小组三人分工协作在老师的指导下,从对小车的一无所知到现在自己写程序、调硬件。
在这个半年中我们曾因为硬件毛病迷茫过,也曾为小车的顺利跑完全程而喜悦。
我想说,“飞思卡尔,想说爱你不容易”,这个过程中感觉不像是在和其他的车竞争,而是和自己在竞争,因为我们不知外界的情况是如何,我们只有不断地超越自己现在的速度,不断地去突破,才能使自己走的更远。
5.收获与致谢
暑假在这种比赛中慢慢的接近了尾声,我的TI实验室的学习生涯也要结束了,其实在我看来这样的生活才像一个大学生应该有的生活,因为毕竟兴趣所以行动。
还记得去年暑假我第一次进TI那种蓬勃的热情,当初,陈老师要我们写下自己一年时间的规划,我兴致勃勃的写了满满的一张a4纸,到现在我也不知道我完成了多少,但是所有的计划中我只能说飞思卡尔是我最用心的,也是花了最多的时间的!
也承载了我这个工科男满满的梦想。
在比赛中没有任性辜负了小车的感受,没有发挥出小车的极限,也真是一大遗憾!
不过这个过程对我这个学控制的工科男的收获还是蛮多的!
就像有些车友说的,在青春最美好的时光里,陪伴你的可能不是妹子而是电路、代码、基友和奔跑的小车,想想就会从心底浮起笑容,又差点涌出泪水。
那些在实验室里和小伙伴们一起度过的金子般闪光的日子,将是你一生回忆里的瑰宝。
在楼上调车的日子真的是大学生活中最充实的时光,32.5m的赛道我们八辆车在调试,一起撞车,一起开玩笑,一起体验三车追逐!
残酷的七月无论是跑两米多还是还不能跑完全程,我们都在这种愉快的氛围中见证了我们小车的成长,开开心心的陪我们的小车走上了飞思卡尔舞台的终点!
此次飞思卡尔也让我明白了控制这条路很长,小就涉及到普通工厂的流水线工作,大的涉及到未来机器人的发展上面。
飞思卡尔让我坚定了走控制这条路,我也希望我在控制这条路上越走越远。
在暑假的这些比赛中我也了解到了其他高校大学生的专业水平,在自动化方面已经甩了我们很远了,在学校就是如此那么日后到了社会中必然会有很大的竞争力。
自动化这个专业的前景非常好所以在社会上找工作的竞争力绝对是非常残酷的,只有脱颖而出才能为自己争取一席之地。
所以在控制这个方向我害的有很长的路要走.
同时我们也要感谢刘老师的悉心关怀,在他的带领下我们没有后顾之忧,在实习过程中遇到什么问题都能够在刘老师这里得到解决,刘老师是我们的良师益友,和我们非常的亲近。
还要感谢的就是我们实验室的陈老师,在比赛过程中为我们提供了大力的资金支持,为我们解决一些力所能及的小问题。
在实验室相处一年也是非常的尽心尽力,至此我希望TI实验室越来越好。
6.参考文献
[1]卓晴,黄开胜,邵贝贝等《学做智能车——挑战“飞思卡尔”杯》[C].北京:
北京航空航天大学出版社,2007.
[2]尹念东.《智能车辆的研究及前景》[J].上海汽车技术导向,1994.2008.
[3]余星毅,徐斌,余春贤,谭兴闻.吉林大学爱德2队技术报告.
[4]FreescaleSemiconductorTechnicalDataDocument:
MC9S12XS256ReferenceManualRev.1.09,09/2009
[5]卓晴,王琎,王磊《基于面阵CCD的赛道参赛检测方法》[D].清华大学,2006.
[6]谢文策《线阵CCD图像不失真采集算法及实现》[J].信息通信,2009,9(4):
4-6.
[7]周亚罗,潘晓娣,曹秀爽等《基于图像处理的轮廓提取方法应用》[J].唐山学院学报,2009,14(6):
3-4.
[8]俞雪婷《飞思卡尔智能车系统的设计与实现》[D].沈阳:
东北大学,2008.
[9]潘丰厚《基于飞思卡尔XS128微控制器的智能车系统的研究与设计》[D].沈阳:
东北大学,2010.
[10]卓晴《智能汽车自动控制器方案设计》[D].清华大学自动化系,2006.
附件1:
答辩问题回答记录表
学号:
2013550413姓名:
马崟专业、班级:
13级自动化4班
老师所提问题:
1、智能车的制作对控制核心有什么要求?
2、控制算法是怎么样构成的,怎么优化?
3、制约小车速度的因素有哪些?
学生回答问题:
1、智能车尤其是摄像头组需要在短时间内处理大量的数据对处理器的要求比较高,如浮点运算能力、存储器大小、各种外设功能如定时器、中断、FTM模块等都要比较强大。
2、小车的控制算法是以PID算法为基础、通过与实际相结合采用动态参数拟合的方式是小车在不同的路段达到最佳运行状态。
3、制约小车的速度因素可以大体分为三大类;一是小车的机械结构,小车的机械结构决定它速度可以达到的上限。
二是小车的程序算法。
三是小车的硬件部分的驱动电路。
…
附件2程序算法
#include"main.h"
#definePAEN6
intSpeed_flag=1;
intLine_use_buf[Line_number][2]={0};//---这个数组的作用是为了存放不断返还回来的Line_use行,用于计算路形
intLine_use_last;//---上一次的Line_use,即上次的贯穿行
intLine_use_2_last;
//------------------拨码开关-------
intLine_Zhi_Dong;
intSpeed_max_Wan;
doubleP_DATA;
doubleI_DATA;
doubleD_DATA;
unsignedcharSW;
floatB_T_B;
floatKp_a;
floatKp_b;
floatKp_c;
intPWMDTY_BUF;
//--------------------------------脉冲累加器
voidInit_Event_Count(void)
{
PACTL=(1<外部编码器连接到IOC7.
//在中断里读取PACNT的值就是脉冲个数。
读取后清零PACNT。
}
/***************************************************
**说明:
每隔10ms进入interrupt66
****************************************************/
voidPIT_Init(void)
{
PITCFLMT_PITE=0;//PITControlandForceLoadMicroTimerRegister
PITCE_PCE0=1;//PITChannelEnableRegister
PITMUX_PMUX0=0;//base0//PITMultiplexRegister
PITMTLD0=199;//PITMicroTimerLoadRegister0to1
PITLD0=3999;//1999放初值//PITLoadRegister0to3
PITTF_PTF0=1;//clearinterruptfalg
PITINTE_PINTE0=1;//PITInterruptEnableRegister
PITCFLMT_PITE=1;//PITControlandForceLoadMicroTimerRegister
//time-outp