安徽理工大学光电幻影队Word文档格式.docx
- 文档编号:21928349
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:50
- 大小:804.61KB
安徽理工大学光电幻影队Word文档格式.docx
《安徽理工大学光电幻影队Word文档格式.docx》由会员分享,可在线阅读,更多相关《安徽理工大学光电幻影队Word文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
3.1传感器的安装10
3.2舵机的调整与安装11
3.3前轮倾角的调整12
3.4后轮的调整12
3.5其他部分的调整13
第四章系统软件设计14
4.1智能车整体软件设计14
4.2数据采集处理部分14
4.3起跑线的检测15
4.4舵机与电机控制部分15
4.4.1随动舵机控制程序设计15
4.4.2前轮舵机打角控PD制程序设计16
4.4.3电机控制程序设计16
4.5速度的检测18
第五章开发工具及调试工具19
5.1CodewarriorIDE功能介绍19
5.2BDM调试工具19
第六章模型车各项参数21
第七章总结22
参考文献23
附件:
主程序源代码24
第一章引言
1.1赛事介绍
受教育部高等教育司委托,高等学校自动化专业教学指导分委员负责主办全国大学生智能车竞赛,是教育部为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革而设立的。
该竞赛以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。
该竞赛与己举办的全国数学建模、电子设计、机械设计、结构设计等4大专业竞赛不同,它是以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技创意性比赛。
至今飞思卡尔全国大学生智能汽车竞赛已成功举办六届。
本文是安徽理工大学光电幻影队为参加第六届全国大学生智能车竞赛而撰写的报告,报告中详细介绍了我们车子的机械结构安装与调整方法、硬件电路设计与制作方法、软件系统的设计方法以及整个系统的开发工具及调试手段等。
1.2系统总体方案的选定
通过学习竞赛规则和参阅往届竞赛相关技术资料了解到,路径识别模块是智能车系统的关键模块之一,路径识别方案的好坏,直接关系到最终性能的优劣,因此确定路径识别模块的类型是决定智能车总体方案的关键。
根据参加前几届比赛的经验,我们对关于光电传感器和CCD/CMOS传感器用于智能车辆路径识别的方案比较熟悉,针对这两种不同路径识别方式我们作了测试和比较。
方案一:
光电传感器寻迹。
优点:
传感器信号处理速度快,可以更实时地对路况信息进行检测判别并作出相应控制处理。
缺点:
前瞻距离短束缚了小车速度的提升。
方案二:
CCD摄像头寻迹方案。
可以更远更早地感知赛道的变化。
信号处理比较复杂,不好把握。
在比较了两种传感器优劣之后,考虑到前几届比赛的技术积累,我们决定选用光电传感器。
为了改善光电传感器前瞻距离短的弱势,力求更早且更准确的提取到赛道信息,并作出相应的动作和判断,我们采取的策略是用激光传感器加人工调参代替以往的红外传感器,这样大大提高小车的前瞻性,使小车的稳定性提高,从而提高总体速度。
第二章系统硬件电路设计
我们在电路设计上采用模块化的思想,既可以有效地防止因为某一种电路的损坏而使得整个PCB板子无法利用的现象出现,做到及时排查出损坏部件,同时还有利于规划各个模块板子的排列位置,使得小车的重心、结构更加的合适,更加的优化。
硬件电路系统主要分为主控电路、驱动电路、辅助电路。
主控电路为自行设计的S12单片机开发板。
驱动电路包括电源模块、电机驱动模块、速度检测模块、等。
辅助电路包括传感器模块、人工参数调试模块等。
硬件电路模块如2.1图所示。
下面分别详细介绍各模块内容。
图2.1S12硬件电路系统
2.1S12单片机最小系统
以MC9S12X128为核心的单片机系统的硬件电路设计主要包括以下几个部分:
时钟电路、电源电路、复位电路、BDM接口。
其中各个部分的功能如下:
1、时钟电路给单片机提供一个外接的16MHz的石英晶振。
2、电源电路主要是给单片机提供5V电源。
3、复位电路在电压达到正常值时给单片机一个复位信号。
4、BDM接口让用户可以通过BDM头向单片机下载和调试程序。
S12最小系统电路图如图2.2。
图2.2S12单片机最小系统
2.2电源电路模块
电源模块对于一个控制系统来说极其重要,关系到整个系统是否能够正常工作,因此在设计控制系统时应选好合适的电源。
图2.3电源电路模块
全部硬件电路由智能车竞赛统一配发的7.2V2000mAhNi-cd供电。
主要包括如下不同的电压:
(1)5V电压。
经过稳压模块SPX2后,输出5V电压,为单片机和光电编码器、传感器电路提供电源。
(2)7.2V电压。
这部分电压直接取自电池两端,为后轮电机驱动以及舵机提供动力。
(3)6V电压。
经过稳压模块SPX3后,输出6V电压,为打角舵机和摇头舵机提供电压。
为了提高舵机带负载时的响应速度,也可以直接接在7.2V电源上。
考虑到实际充满电后电压可达8.2-8.5V,本电路中仍用推荐的6V电压为舵机供电。
2.3传感器模块
传感器我们选用两排激光,上排激光紧跟黑线,防止丢线,下派识别起跑线。
上排6个激光传感器,下排4个激光传感器均呈一字型排布,具体电路如图2.4。
图2.4传感器模块
2.4电机驱动模块
比赛最终比的是速度,需要小车能够以尽量快的速度跑完全程,这就需要有驱动电路对电机进行控制。
电机驱动电路我们选用两半桥驱动芯片BTS7960构建的全桥驱动电路,BTS7960是集成的大电流半桥驱动,其内部包含了一片NMOS、一片PMOS和一片半桥门集驱动。
其内部结构框图如下:
图2.5BTS7960内部结构图
其输入信号为标准的TTL电平,直接与单片机相连就可以了,减少电路布线的复杂性,降低系统的不稳定因素。
用两片BTS7960即可构成全桥驱动电路,控制电机的正反转。
实际控制电路如图2.6。
图2.6控制电路
2.5速度检测模块
如图2.7所示。
图2.7速度检测电路
所采用的光电编码器输出为正弦信号,无法直接捕获采集,所以经过LM358等构成的电平比较翻转电路,在PT7端直接是脉冲信号,由XS128的脉冲累加器PT7端口记数。
2.6人工参数调试模块
由于赛道情况各有不同,弯道、直道数量各不相等,所以必须能在不改变程序的前提下进行参数的调试,调试的方式界面可以有数字按键,拨盘开关等,经过多种情况考虑,我们最后选择了按键开关作为调试方式界面、液晶作为显示界面,由五个按键进行参数选择、速度控制和小车复位及启动。
为了方便调试程序,我们另外选用AT24C01EEPROM存储器存储调试的参数数值。
调参电路如图2.8。
图2.8调参电路
第三章机械结构调整与安装
任何工程都是硬件与软件的组合,一个好的工程必然是二者的最佳组合。
由于硬件改动比较复杂,而软件修改相对简单许多,所以我们首先对小车做机械调整,力求机械做工最佳。
3.1传感器的安装
光电传感器检测路面信息的原理是由发射管发射一定波长的红外线,经地面反射到接收管。
由于在黑色和白色上反射系数不同,在黑色上大部分光线被吸收,而白色上可以反射回大部分光线,所以接收到的反射光强是不一样,进而导致接收管的特性曲线发生变化程度不同,而从外部观测可以近似认为接收管两端输出电阻不同,进而经分压后的电压就不一样,就可以将黑白路面区分开来。
为了能使加大前瞻距离,我们选择了检测原理不变而前瞻能力远大于普通光电传感器的激光传感器。
传感器的布局我们选用传统的“一”字型排布,采用一对二的方式,共10个接收管,符合大赛规定传感器总数不超过16个的要求。
图3.1一字排开的激光传感器
激光传感器由发射部分和接收部分构成,其固定参数如表3.1。
表3.1激光传感器参数
排布方式
激光发射管数(个)
激光接收管数(个)
高度(cm)
前瞻(cm)
上排激光
12
6
13
45
下排激光
8
4
15
3.2舵机的调整与安装
舵机是赛车转向的驱动装置,是整个控制系统中延迟较大的一个环节,我们希望减小这个时间常数,也就是要加快舵机的响应速度。
我们在舵机的调整上做了多次尝试,最终确定将舵机前移,前移使得结构更加紧凑,对舵机臂我们也进行了多次的改造,确定了其形状与长度,这样不改变舵机本身结构的情况下也可以提高舵机的响应速度。
(如图3.2舵机安装图)
图3.2舵机安装图
舵机的前移给安装上排激光和摇头舵机提供了足够的空间;
舵机安装在了前轮中间,通过和形状大小合适的舵机臂配合,提高了舵机的灵敏度且增加了前轮下压力,从而提高了前轮的抓地力,当然这样也加重了舵机负载,不过因为转向连杆连接点和舵机轴心距离适中,所以不会烧毁舵机。
3.3前轮倾角的调整
前轮是转向轮,它的安装位置由主销内倾,主销后倾,前轮外倾和前轮前束决定。
1)主销内倾是指主销装在前轴向内倾斜的角度,它的作用是使前轮自动回正,角度越大前轮自动回正的作用就越强烈,但转向时也同时会费力,增大轮胎磨损。
2)主销后倾是指在纵向平面内主销轴线与地面垂直线之间的角度。
它使车辆转弯时产生的离心力与所形成的力矩方向与车轮偏转方向相反,迫使车轮偏转后自动恢复到原来的中心位置上。
由此,主销后倾角越大,车速越高,前轮稳定性越好。
主销内倾和主销后倾都能使模型车自动回正,不同点在于主销内倾回正与车速有关,而主销后倾与车速无关。
可以说,在高速时主销内倾起主要作用,而低速时,主要依靠主销后倾时模型车回正。
3)前轮外倾角是指通过车轮中心的汽车横向平面与车轮平面的交线与地面垂线之间的夹角,对汽车的转向性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。
在汽车的横向平面内,轮胎呈“八”字型时称为“负外倾”,而呈现“V”字形张开时称为正外倾。
如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。
所以事先将车轮校偏一个正外倾角度,一般这个角度约在1°
左右,以减少承载轴承负荷,增加零件使用寿命,提高汽车的安全性能。
4)前束是指两轮之间的后距离数值与前驱离数值之差,也指前轮中心线与纵向中心线的夹角,它能减少模型车的磨损,前轮滚动时,其惯性力会自然将轮胎向内偏斜,如果前束适当,轮胎的偏斜方向会抵消,减少磨损。
在小车调试的过程中我们结合程序对前轮相应位置做了适当调整。
3.4后轮的调整
差速机构的作用是在车模转弯的时候,降低后轮与地面之间的滑动,并且还可以保证在轮胎抱死的情况下不会损害到电机。
当车模在过弯时,四轮的转速时不同的:
外侧前轮>
外侧后轮>
内侧前轮>
内侧后轮。
差速器的特性是:
阻力越大的一侧,驱动齿轮的转速越低;
而阻力越小的一侧,驱动齿轮的转速越高。
以此次使用的后轮差速器为例,在过弯时,因外侧前轮轮胎所遇的阻力较小,轮速便较高;
而内侧前轮轮胎所遇的阻力较大,轮速便较低。
差速机构太紧会导致差速器性能降低,起不到差速的作用,太松会导致打齿,增大了小车的加速时间。
好的差速机构,应该在电机不转的情况下,右轮向前转过的角度与左轮向后转过的角度近似相等,不会有迟滞或者过转动的情况发生。
齿轮传动机构对车模的驱动能力有很大的影响。
齿轮传动部分安装位置的不恰当,会大大增加电机驱动后轮的负载,影响比赛成绩。
调整方法:
两传动齿轮轴平行,齿轮咬合要适当,过松容易损坏齿轮,过紧又会加大传动阻力。
判断齿轮传动是否良好的依据是让车模空跑,听声音。
如声音闷,则齿轮咬合过紧;
如声音过响,则咬合过轻。
调整好的齿轮传送噪音小,并且不会有杂音,后轮减速齿轮机构就基本上调整好了,动力传递应十分流畅。
3.5其他部分的调整
图3.3小车整体效果
除了以上部分的调整外,还对小车前后减震部分、底盘高度和重心位置进行了适当调整,改善了小车的行驶表现。
同时还在小车前桥和传感器部位加了防护调整。
调整后小车的整体效果如图3.3.
第四章系统软件设计
4.1智能车整体软件设计
系统采用了1个时钟中断,提供各种时钟服务,软件整体采用前后台的运行模式,各处理服务程序在主函数大循环中被执行。
软件的主流程图如图4.1所示:
图4.1软件主流程图
4.2数据采集处理部分
智能车采用激光传感器进行路面检测,检测距离可以达到50CM。
当收到黑线信号时,反馈数据为1信号,否则为数据0。
共采用两排激光,PA口作为控制激光发射控制端口,PE口作为接收管的接收端口;
为防止激光间的干扰,采用分组扫描方式,上排采用每组3个点,下排采用每组2个点,采集后形成类似“00110000”的字数据,然后经过GetInfo函数对此数据进行处理,进而提取黑线位置、宽度、黑线段数等信息供后续程序使用(相关代码见附件)。
4.3起跑线的检测
GetInfo函数将获得检测到的一行数据中黑线段数,比如在常规跑道上,黑线段数等于1,宽度<
=2;
在交叉道上宽度>
=6;
在起跑线上,车身比较正时,黑线段数应等于3,车身较偏时也应该会检测到2段,而且段的宽度和相对位置是在一定范围内变化的,那么结合实际起跑线的形状,就可以轻松写出识别起跑线的限定条件,进行准确识别,并在延迟500MS后停车。
4.4舵机与电机控制部分
4.4.1随动舵机控制程序设计
在车模整个行驶过程中,舵机都在不停的摆头,使得一排激光的中心照在黑线上。
舵机的转动是以步进的形式累加上去的,程序上只要确定每个点照到黑线上时对应的步进值。
当然,最靠近中点的光点的步进值就越小,而据中心最远的光点的步进值就最大。
这种算法可以说是一种分段比例算法。
舵机摆头的实际工作过程是:
当车一入弯时,光点中心便会偏离黑线,黑线马上就会被编号小于11的点或者大于11的点检测到。
设想是在外面的1点检测到黑线,这时舵机就会以很大的步进值加过来使得光点中心与黑线在同一位置。
由于舵机的延时特性,在主函数一个执行周期之后,舵机只打了一小角度而远没有打到稳定位置,此时可能是第二个光点照在黑线上了,这样,舵机就会在原来的基础上加上第二个光点所对应的步进值。
主函数一直循环,在看到弯道后,经过若干个执行周期舵机打到稳定位置。
我们对每个管子的步进值都是通过实验测量的,对中间的两个光点,舵机不予反应,即所谓的模糊点。
在实际编程的时候,摆头的步进值根据速度区分为两档,高速时,摆头步进值稍微大一点。
每个步进值对摆头性能都有很大影响,选大了,舵机稳定不下来,他会一直左右摇晃,选小了,快速入弯时,舵机又会反应不过来而造成丢线。
4.4.2前轮舵机打角控PD制程序设计
对于打角,我们的整体思路是这样的:
先算出上面舵机值与中心值的偏差,将这个偏差量加上当前光点所在黑线摆头舵机的步进量并乘以分段的系数作为打角的P项。
同时,我们根据前一时刻的这个量来确定打角的D项,D项没有分段,这样能更好的适应赛道的动态变化,D项的编写我们采用了循环队列的思想,从而每次运算比队列的方法节约了很多时间。
我们也尝试过加入打角I项,这样可以弥补分段P的带来的缺陷:
沿线不好,但是经过测试发现,在没有很远的前瞻量时加入I项反而会使小车行驶不稳定,因为打角舵机延时比较大,相当于舵机这个环节有了比较大的I项。
对于这种打角方式,如果P和D的系数选择的合理,那么,前轮舵机就会在连续的小弯道上走近似直线,而在单侧大弯道上提前打角,切着内道走。
4.4.3电机控制程序设计
PID控制框图如图4.2所示:
图4.2PID控制框图
PID控制策略其结构简单,稳定性好,可靠性高,并且易于实现。
其缺点在于控制器的参数整定相当繁琐,需要很强的工程经验。
相对于其他的控制方式,在成熟性和可操作性上都有着很大的优势。
其中P的作用:
P是指比例控制,它是一种最简单的控制方式。
其控制器的输出与输入误差信号成比例关系。
在模拟PID控制器中,比例环节的作用是对偏差瞬间作出反应。
偏差一旦产生控制器立即产生控制作用,使控制量向减少偏差的方向变化。
控制作用的强弱取决于比例系数KP,比例系数越大,控制作用越强,则过渡过程越快,控制过程的静态偏差也就越小;
但是KP越大,也越容易产生振荡,破坏系统的稳定性。
故而,比例系数选择必须恰当,才能过渡时间少,静差小而又稳定的效果。
I的作用:
I是指积分控制,在积分控制中,控制器的输出与输入误差信号的积分成正比关系。
对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。
为了消除稳态误差,在控制器中必须引入“积分项”。
积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。
这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。
因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
D的作用:
D是指微分控制,在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。
其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。
解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。
这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。
所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
用于驱动的电机控制则采用PI控制,因为微分环节的作用使阻止偏差的变化。
它是根据偏差的变化趋势(变化速度)进行控制。
偏差变化的越快,微分控制器的输出就越大,并能在偏差值变大之前进行修正。
微分作用的引入,将有助于减小超调量,克服振荡,使系统趋于稳定,特别对髙阶系统非常有利,它加快了系统的跟踪速度。
但微分的作用对输入信号的噪声很敏感,对那些噪声较大的系统一般不用微分,或在微分起作用之前先对输入信号进行滤波。
微分部分的作用由微分时间常数Td决定。
Td越大时,则它抑制偏差变化的作用越强;
Td越小时,则它反抗偏差变化的作用越弱。
微分部分显然对系统稳定有很大的作用。
智能车加入D项会使速度控制不稳定,产生速度振荡,这样对舵机的控制也是不利的。
反复实践证明,选择较大的P,和较小的I,可以使智能车速度控制比较稳定。
4.5速度的检测
采用100线的光电编码器,输出信号经过比较翻转电路后形成方波,送入PT7脚进行计数,运行科学的标幺定标的方法,在10MS内采集到的脉冲数乘以预先计算好的系数,即得到了标幺定标后的速度值,十分方便而准确。
第五章开发工具及调试工具
此次智能车大赛的软件开发平台为Metroworks公司的CodeWarriorIDE开发软件。
包括集成开发环境IDE、处理器专家、全芯片仿真、可视化参数显示工具、项目工程管理、C交叉编译器、汇编器、链接器以及调试器。
其中在本设计方案中最为重要的部分就是集成开发环境IDE以及调试器,所以接下来将主要介绍该两部分。
5.1CodewarriorIDE功能介绍
CodeWarriorIDE能够自动地检查代码中的明显错误,它通过一个集成的调试器和编辑器来扫描你的代码,以找到并减少明显的错误,然后编译并链接程序以便计算机能够理解并执行你的程序。
每个应用程序都经过了使用像CodeWorrior这样的开发工具进行编码、编译、编辑、链接和调试的过程。
其程序编写界面如图5.1。
图5.1CodeWarriorIDE程序编写界面
5.2BDM调试工具
CodeWarrior的功能非常强大,可用于绝大部分单片机、嵌入式系统的开发。
用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。
在使用BDM的调试过程(如图5.2)中我们能进行很有效的一些操作如监视寄存器状态、修改PC指针、设置断点等,这样能快速地帮助我们找到软件或硬件的问题。
图5.2BDM调试
第六章模型车各项参数
模型车技术参数统计:
项目
参数
路径检测方法(赛题组)
光电
车模几何尺寸(长、宽、高)(毫米)
320*250*160
车模轴距/轮距(毫米)
150
车模平均电流(匀速行驶)(毫安)
1000
电路电容总量(微法)
1200
传感器种类及个数
激光10光电编码器1个
新增加伺服电机个数
1个
赛道信息检测空间精度(毫米)
200
赛道信息检测频率(次/秒)
主要集成电路种类/数量
主控板1块,激光板2块,LCD板1块
车模重量(带有电池)(千克)
1.13
第七章总结
经过几个月时间的筹备,我们顺利完成了智能车的设计与制作。
在此过程中,完成了MCU外围电路的设计、控制算法的编写、对直流电机以及舵机的控制等工作。
在小车的制作过程中,我们对车模进行一定的调整,达到较好的效果。
(1)我们对组委会提供的S12开发板中外围电路进行了重新设计和布置,重新制作电路板并将其他功能模块电路整合到同一张电路板上,采用模块化的设计思路,既减轻了小车的总重量,又具条理性,使硬件电路更稳定。
(2)传感器采用两排激光,检测宽度比较大,保证赛道寻迹的相对稳定性,选用激光传感器提高了前瞻性。
(3)舵机前移安装,配合大小长度合适的舵机臂,使舵机反应更灵敏、力矩更大。
参考文献
[1]卓晴黄开胜邵贝贝.《学做智能车——挑战“飞思卡尔”杯》[M].北京航空航天大学出版社.2006.8.
[2]康华光陈大钦.《电子技术基础模拟部分(第四版)》[M].高等教育出版社.2004.4.
[3]谭浩强·
C程序设计·
北京:
清华大学出版社,2001
[4]邵贝贝.单片机嵌入式应用的在线开发方法.北京:
清华大学出版社.2004年10月第1版.
[5]阎石·
数字电子技术基础·
高等教育出版社,1998
[6]周斌,李立国,黄开胜.智能车光电传感器布局对路径识别的影响研究.电子产品世界,2006.5
[7]邵贝贝,Motorola(Freescale)16位微控制器及其嵌入式应用[M].北京:
清华大学出版社,2006
主程序源代码
/*******************************************************************************
FREESCALE智能小车竞赛软件测试版本:
组别:
光电组
功能:
实现小车寻迹快速运动
规则:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安徽 理工大学 光电 幻影