1、第十届“飞思卡尔”杯全国大学生智能汽车竞赛技 术 报 告学 校:太原理工大学队伍名称:晋豹四队参赛队员:李高铭孙乐乐王天宇何 欣带队教师:萧宝瑾沈剑豪关于技术报告和研究论文使用授权的说明本人完全了解第十届“飞思卡尔”杯全国大学生智能汽车邀请赛关于保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:_带队教师签名:_日 期:_VII 晋豹智能车队摘 要本文介绍了太原理工大学晋豹队为参加第十届“飞思卡尔”杯智能车
2、赛而设计的电磁式智能车的设计原理及制作、调试过程。设计以MPC5604CMLL6微控制器为核心,通过分析赛道信息提取的原理,合理选择了适合赛道检测的电感和电容构成谐振回路,对传感器数量、安装和接收方式进行分析,以此为依据介绍获取智能车与赛道状态信息的方法,以及对信息的传输、处理,最终通过有效信息采用PID理论控制智能车的方向和速度。文中介绍了设计中的硬件电路:单片机最小系统、电源模块、驱动模块、传感器模块等;同时介绍了相关算法的原理、软件编写及调试手段。最后对车模存在的问题及改进思路进行了分析、改进和展望。关键词:智能车,电磁感应,谐振回路,PID控制,超声波测距,MPC5604CMLL6 晋
3、豹智能车队目 录第一章 引 言11.1 设计背景11.2 主要解决问题11.3 章节安排2第二章智能车系统总体设计方案32.1 智能车机械结构整体设计方案32.2 智能车硬件电路整体设计方案42.3 智能车软件整体设计方案42.4 智能车主要技术参数5第三章机械设计制作及调整73.1 机械结构制作部分设计73.1.1 电路板及传感器安装73.2 车模机械结构的调整与改装83.2.1 舵机改装83.2.2 底盘改装83.2.3 前轮定位93.2.4车轮外倾角93.2.5 前轮前束103.3智能车转向机构调整优化103.4智能车重心位置的调整113.5其它机械结构的调整12第四章电路设计说明134
4、.1 单片机最小系统134.2 电源模块设计134.2.1 电源管理模块144.3 传感器电路设计与实现154.3.1电感传感器的原理154.3.2磁传感器信号处理电路154.3.3磁传感器的布局原理及改进174.3.2 起跑线检测传感器的设计194.4 驱动电路设计21第五章智能车软件设计说明235.1 赛道信息和两车距离提取245.2转向舵机控制255.2.1 PID控制原理255.2.2 转向舵机控制实现275.3 速度控制275.4 特殊赛道类型判断275.5 两车距离控制27第六章开发环境和调试方法296.1 开发环境296.2 调试方法和经验306.2.1 硬件调试306.2.2软
5、件调试316.2.3机械调试316.3 基于LABVIEW的上位机与蓝牙模块及SD卡的合作31第七章总结与展望33致 谢35参考文献I附录 程序源代码III 晋豹智能车队附录 程序源代码第一章 引 言1.1 设计背景本设计是为了参加第十届“飞思卡尔”杯全国大学生智能汽车竞赛而进行。全国大学生智能汽车大赛是受教育部高等教育司委托,由高等学校自动化专业教学指导委员会负责主办全国大学生智能车竞赛。该项比赛已列入教育部主办的全国五大竞赛之一。自第一届来,此项大赛已成为各大高校的热点赛事。本届“飞思卡尔”杯全国大学生智能车大赛全国总决赛将于将于 2015 年 8 月 28日至 31 日在山东大学举行12
6、。比赛涉及控制、传感技术、电子、计算机、机械等多个学科的专业知识,对学生的知识融合和动手能力的培养,对高等学校控制及汽车电子学科学术水平的提高,具有良好的推动作用。大赛分为摄像头、光电、电磁三个组别,本文介绍的是针对光电组比赛进行的光电式智能车设计,采用委会统一提供的竞赛车模,单片机选用飞思卡尔32 位微控制器 MPC5604CMLL6 作为核心控制单元,选用 10mH电感与6.3nf电容构成谐振回路检测赛道 20kHz 交变电磁场的方式作为赛道检测的主要方式,并针对本届比赛规则,设计传感器排布方式、方向控制、速度控制等,最终实现一套能够自主识别路线的智能车控制硬件、软件系统。比赛以准确和速度
7、为主要评判标准,因此,设计主要以准确稳定提取赛道信息以及快速控制方向和速度为主要设计标准。1.2 主要解决问题设计主要针对大赛规则以及赛题标准进行。首先,要求能准确检测主要赛道路径;其次,根据规则中的特殊赛道类型,如十字交叉、直角弯、坡道及终点线检测等进行针对性设计2;最后,根据以上两方面提出的要求,对智能车整体系统进行设计,包括机械、各硬件电路模块以及程序的设计。设计中主要解决的问题列表见表 1.1。表1.1 设计解决的问题及解决办法概略表主要解决问题解决方法简述赛道检测电感电容构成谐振回路检测车速获取自制测速轮,红外对管加100线光栅,脉冲计数法车距获取鸳鸯超声波模块坡道传感器测回电压值大
8、小变化的特殊性十字交叉赛道检测,软件滤波终点线干簧管检测磁铁方向舵机控制PID控制运动能力机械调整速度控制机械调整及PID控制调试手段键盘显示、SD卡、LebView上位机观测、软件开发平台1.3 章节安排本文第二章介绍整体设计思路和设计方案,第三章介绍硬件电路的设计与实现,第四章介绍机械部分的设计和实现,第五章介绍软件设计思路及部分代码举例,第六章介绍开发与调试环境及手段,最后一章给出结论和展望。由于经验有限,且时间仓促,尽管我们努力追求完美,但是技术报告以及智能车的制作中还存在很多问题和错误,欢迎大家批评指正,希望与大家真诚交流,共同提高V第二章 智能车系统总体设计方案智能车作为一个整体系
9、统,包括机械、电路硬件、软件三个主要部分,三部分互相联系,相互影响。智能车系统框图见图2.1。主要输入电磁传感器 干簧管 超声波测速传感器单片机5604机械部分主要输出舵机控制电机驱动四轮悬挂传动底盘其他输入键盘串口输入其他输出显示串口输出外部存储图2.1 智能车系统框图对这三个部分统筹设计是贯穿始终的原则,机械部分设计将决定智能车能力的最终极限,硬件电路将为智能车提供实现机械潜能所必需的能源、检测手段及控制能力,软件设计针对输入进行处理最终实现对智能车机械和电路的控制。2.1 智能车机械结构整体设计方案我们对机械设计部分总体的设计原则定位在:结构紧凑、连接稳固、减轻重量、合理调整重心四个方面
10、。另外根据经典的机械原理,对智能车的传动结构、轮胎、车轮等进行规则允许范围内的调校。具体内容主要有电路板安装排布、支架固定、舵机改装、四轮定位等,具体内容将在第三章中介绍,最终车模整体见图2.2。 图2.2 智能车整体外观2.2 智能车硬件电路整体设计方案智能车中的电路包括:微处理器最小系统、电源、传感器电路、电机驱动电路、测速器以及其他周边电路。主要设计原则是最简、实用、可靠和模块。因为电路复杂就增加了故障几率,只要符合要求,提供足够的应用功能就足够,而智能车最容易出现故障的环节往往是硬件电路部分,这部分出现问题的后果也比较致命,所以可靠的电路设计的重要原则之一,另外,模块化设计便于整个系统
11、的修改、升级、更替。具体设计详见第四章。2.3 智能车软件整体设计方案软件部分的设计主要是对微处理器5604的程序编写,通过计算 对其各个端口进行读写控制,即将传感器获取的电信号通过单片机端口读入,并经过处理,进行控制算法,最终通过单片机端口输出给硬件电路,对车速、方向等硬件电路进行控制,最终实现对车辆机械部分的控制。软件的设计原则主要是:效率、结构化、规范、易读。因为软件部分涉及到端口输入输出数据的处理,要对车辆硬件进行控制,因此要提高软件处理的效率以达到控制的及时性。另外,整个控制环节有紧密的逻辑关系,因此,软件的结构合理和规范化的设计有助于调理逻辑关系,便于修改、调试、扩展及拥有较强的适
12、应能力。程序编写选用CodeWarrior为编译环境,C语言为主要程序编写语言。具体软件设计详见第五章。2.4 智能车主要技术参数智能车主要技术参数包括物理尺寸、电路指标等,具体参数见表2.1。表2.1 智能车主要参数表项目单位参数车模尺寸(长宽高)毫米(mm)750180230车模重量(带电池)克(g)2300车模轴距毫米(mm)170车模平均电流(匀速行驶)毫安(mA)8000电路电容总量微法(F)1600电磁传感器(电感电容谐振回路)个6电感值mH10传感器间距毫米(mm)200干簧管个6赛道信息检测空间精度毫米(mm)6赛道信息检测频率次/秒200核心处理器种类及个数MPC5604CM
13、LL6 1个智能车名称(前车)小黑智能车名称(后车)可乐注:由于设计报告书写期间智能车仍然在进行改进,因此有些数据未能更新。之后的内容中涉及到的参数、程序、图片也有类似情况,不做逐一说明。第三章 机械设计制作及调整智能车机械部分设计主要包括制作和调整两部分内容,制作部分的内容主要是对车模没有的部分进行设计,包括传感器支架、电路板固定、防撞、测速轮安装等。调整部分则主要是针对智能车车模本身已经有的机械部分,在规则允许范围内进行调整,改装,提高其运动性能,以适应高速行驶和快速控制,这部分主要包括舵机改装、底盘调整、避震调整、四轮定位等。本章内容主要对电路板安装、传感器支架以及机械调校部分进行介绍。
14、3.1 机械结构制作部分设计由于大赛提供车模本身是运动型模型车通用车模,并没有提供专门为智能车安装电路、传感器等电路部分的部件,因此这部分机械结构需要自行设计制作并安装。制作部分主要原则为:轻、牢、简,所以我们主要选择铝合金、尼龙等原材料制作,所有自制结构,都是由我们手工制作。3.1.1 电路板及传感器安装根据前期传感器测试,我们得到电磁传感器的前瞻、架设高度、仰角等参数,根据参数,我们设计了电磁传感器的架设结构如图 3.1。图3.1 电磁感器的架设另外一个传感器是测速传感器,码盘测速方式。具体安装如图 3.2 所示。 图3.2 测速感器的安装对于超声波模块的安装,我们选择了发射模块在前,接收
15、模块在后的策略。两模块最好在同一水平面上正对着安放,同时保证不要被碳纤维杆挡住超声波信号。3.2 车模机械结构的调整与改装车模本身的机械结构是通用结构,并不适合智能车竞赛的要求,因此要对这些部分进行改装,另外,为了提高车模的运动性能,对一些机械结构还需要调整,比如车轮前束等。这部分着重介绍舵机改装、底盘等部分的调整和改装。3.2.1 舵机改装为了提高舵机反应速度,在相同转角下,有尽可能大的线行程,因此需要延长舵机臂。另一方面,由于舵机扭矩和转角精度的限制,不能无限制延长舵机臂,这样就确定了舵机臂的长度,并使用铝合金片加工成形,尺寸为24mm38mm。图3.5是舵机安装实物图,四个螺丝将舵机牢固
16、安装在支架上。图3.3 舵机改装3.2.2 底盘改装由于赛道特性,底盘改装目标是尽可能低(能保证通过坡道),这样可以最大程度保证智能车行驶的稳定性。因此我们降低了底盘高度。另外,由于赛道整体属于平坦路面,没有较大较多的颠簸,所以我们把后避震拆除,并紧固后桥连接件。3.2.3 前轮定位B型车模前轮可以调整的角度有主销前倾、内倾、前束等,这些角度的调整根据每个车的机械性能不同而不同调整,我们的智能车由于重心位置在中心偏后,因此前轮压力较小,转向负担不大,因此为了增加抓地力和稳定性,选择了主销内倾和负前束的调整。另外,由于车模本身的精度限制,这部分角度的调整并不是主要的,仅仅是为了避免负面影响以及修
17、正车模本身的不对称和不平衡问题。图3.4所示图3.4 前轮定位主销内倾角是指在横向平面内主销轴线与地面垂直线之间的夹角,它的作用也是使前轮自动回正。角度越大前轮自动回正的作用就越强,但转向时也就越费力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。通常汽车的主销内倾角不大于8。 对于模型车,通过调整前桥的螺杆的长度可以改变主销内倾角的大小,由于过大的内倾角也会增大转向阻力,增加轮胎磨损,所以在调整时可以近似调整为03左右,不宜太大。主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时主销后倾的回正作用大,
18、低速时主销内倾的回正作用大。3.2.4车轮外倾角前轮外倾角是指通过车轮中心的汽车横向平面与车轮平面的交线与地面垂线之间的夹角,对汽车的转向性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。在汽车的横向平面内,轮胎呈“八”字型时称为“负外倾”,而呈现“V”字形张开时称为正外倾。如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。所以事先将车轮校偏一个正外倾角度,一般这个角度约在1左右,以减少承载轴承负荷,增加零件使用寿命,提高汽车的安全性能。 模型车提供了专门的外倾角调整配件,近似调节其外倾角。由于竞赛中模型主要用于竞速,所以要求尽量减轻重量,其底
19、盘和前桥上承受的载荷不大,所以外倾角调整为0即可,并且要与前轮前束匹配。3.2.5 前轮前束所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时,其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。像内八字那样前端小后端大的称为“前束”,反之则称为“后束”或“负前束”。在实际的汽车中,一般前束为012mm。在模型车中,前轮前束是通过调整伺服电机带动的左右横拉杆实现的。主销在垂直方向的位置确定后,改变左右横拉杆的长度即可以改变前轮前束的大小。在实际的调整
20、过程中,我们发现较小的前束,约束02mm可以减小转向阻力,使模型车转向更为轻便,但实际效果不是十分明显。虽然模型车的主销后倾角、主销内倾角、车轮外倾角和前束等均可以调整,但是由于车模加工和制造精度的问题,在通用的规律中还存在着不少的偶然性,一切是实际调整的效果为准。3.3智能车转向机构调整优化理想的转向模型,是指在轮胎不打滑时,忽略左右两侧轮胎由于受力不均产生的变形,忽略轮胎受重力影响下的变形时车辆的的转向建模。在这种理想的模型下,车体的转向半径可以计算得到。图3.5 智能车转向示意图如图3.5,假设智能车系统为理想的转向模型,且其重心位于其几何中心。车轮满足转向原理,左右轮的轴线与后轮轴线这
21、三条直线必然交于一点。转向机构在车辆运行过程中有着非常重要的作用。合适的前桥和转向机构可以保证在车辆直线行驶过程中不会跑偏,能保证车辆行驶的方向稳定性;而在车辆转向时,合适的转向机构可以使车辆自行回到直线行驶状态,具有好的回正性。正是由于这些原因,转向系统优化设计成为智能车设计中机械结构部分的重点,直接关系到赛车能否顺利地完成比赛。在实际操作中,我们通过理论计算的方案进行优化,然后做出实际结构以验证理论数据,并在实际调试过程中不断改进。在模型车制做过程中,赛车的转向是通过舵机带动左右横拉杆来实现的。转向舵机的转动速度和功率是一定,要想加快转向机构响应的速度,唯一的办法就是优化舵机的安装位置和其
22、力矩延长杆的长度。由于功率是速度与力矩乘积的函数,过分追求速度,必然要损失力矩,力矩太小也会造成转向迟钝,因此设计时就要综合考虑转向机构响应速度与舵机力矩之间的关系,通过优化得到一个最佳的转向效果。经过最后的实际的参数设计计算,最后得出一套可以稳定、高效工作的参数及机构。3.4智能车重心位置的调整为了达到较远前瞻,必须把电感架到较远的位置,会引起车重心特别靠前,后轮正压力不足导致甩尾。为了使重心后移,我们尝试了很多传感器支架的搭建方式,使得保证结构稳定的前提下尽量减轻重量。同时,我们把舵机和电池均往后移,达到了预期的效果。3.5其它机械结构的调整另外,在模型车的机械结构方面还有很多可以改进的地
23、方,比如说车轮、悬架、底盘、车身高度等。模型车在高速的条件下(2.3m/s3.5m/s),由于快速变化的加减速过程,使得模型车的轮胎与轮辋之间很容易发生相对位移,可能导致在加速时会损失部分驱动力。在实验中调试表明,赛车在高速下每跑完一圈,轮胎与轮辋之间通常会产生几个厘米的相对位移,严重影响了赛车的加速过程。为了解决这个问题,我们在实际调试过程中对车轮进行了粘胎处理,可以有效地防止由于轮胎与轮辋错位而引起的驱动力损失的情况。此外,我们还对车身高度,以及底盘的形状和质量等,都进行了相应的改进和调整,均取得了不错效果。 由于今年赛题加入双车追逐,所以做车的时候要求两车的一致性很高第四章 电路设计说明
24、智能车电路部分主要的模块包括:单片机最小系统、电源模块、传感器模块、驱动模块以及其他周边调试模块。各模块的总体设计原则是:紧凑、易于拆换、稳定可靠。但根据各模块的不同,又有不同的设计要求,本章对各个模块的设计进行详细描述。4.1 单片机最小系统这次设计选用的单片机是MPC5604CMLL6 (以下简称 5604),100引脚封装,这款单片机的运算速度、存储容量以及端口(ATD, I/O, PWM, SCI等)足够满足智能车设计要求。15为了使电路板紧凑,较少车重,系统板仅对所用到的必要引脚引出,适当留有备用端口,其中包括PWM接口、FTM、普通I/O口、JTAG接口、SCI接口等。端口作用规划
25、见表4.1。表4.1 单片机端口规划表端口作用D2、4、6、8、9、B5、6电磁传感器AD转换A1转向舵机控制D11测速 A7、8、10,C2、3电机驱动控制C7起跑线检测(干簧管)市面上有多款5604单片机最小系统板出售,但是由于性能及价格并不符合我们智能车的设计要求,因此,我们自己设计了单片机最小系统板,电路板实物尺寸为42mm42mm。4.2 电源模块设计电源是为智能车各个模块提供动力的能量来源,周边转接电路是起到将最小系统板各个引脚引出的重要模块,将两者划分到一块不但可以更安全的让所设计的电路工作,还可以减少设备中不必要的跳线。因此此段落分为两部分,电源及周边转接电路。4.2.1 电源
26、管理模块稳定的电压和合适的电流是电源的首要指标,它是整个硬件系统的心脏,电源模块的布线应该尤为讲究,7.2V 大电流应用足够宽的线且还应正反布线。相应 5V 线可略微细些,最细的是信号线等。电源的不稳定会带来很多问题,比如电池没有必要的损耗、单片机复位、舵机反应迟钝、比较电压的不稳定等问题,因此即使和周边硬件电路做在了一起,也必须优先考虑。智能车所需的电源电压有 5V 和 7.2 V。图 4.2 为智能车所需要的模块及其供电。图4.1 电源分配规划示意图根据规划,5V供电我们选择了LM2940-5,比起7805,2940的优点是低压差稳压,它的稳压压差可以小于500mV,这样保证电池在低电压的
27、情况下,仍能使单片机和传感器正常工作,同时,LM2940的输出电流可以达到1A11足够供应放大电路和键盘显示电路的工作。设计原理图如图4.2所示。3.3V供电我们使用了AMS1117-3V3芯片作为稳压芯片。其电路原理是该芯片的典型电路,在这里不做赘述。其原理图如4.3所示。我们使用的 5V 稳压芯片是 LM2940-5,LM2940-5(后文简称LM2940)相比于其他芯片(7805,2940等)最显著的特点就是低压差稳压,稳压压差可以小于500mV,这样的设计可以是我们的智能车在低电压情况下仍可以正常工作,以免因为不及时检测电压,使得小车不稳定从而发生复位、碰撞等不必要危险。图 4.2 为
28、我们所使用的 LM2940 的原理图。 图4.2 LM2940-5稳压电路原理图因为 5604 的供电等都是 5V 电压,因此在设计上非常方便,我们直接使用 LM2940 即可。但是需要注意的时,在设计过程中,电源的导线需要谨慎处理,否则会给之后调试等带来极大的障碍和危险。4.3 传感器电路设计与实现本设计中,传感器分为四部分:主巡线传感器(电磁感器)、起跑线传感器(干簧管)、速度传感器(光电码盘)和鸳鸯超声波模块。4.3.1电感传感器的原理根据竞赛组委会的相关规定,我们选用磁传感器,磁传感器的应用首先在于选型,为了找出适合的磁传感器,我们查阅了许多的产品资料,进行了大量的电感测试,发现只有在
29、10mH电感中,得到感应电动势曲线是较为规整的正弦波,频率和赛道电源频率一致,为20kHz,幅值较其他型号的大,且随导线距离变化,规律为近大远小。其他电感得到信号不好,频率幅值变化杂乱,不宜采用。根据电磁学,我们知道在导线中通入变化的电流(如按正弦规律变化的电流),则导线周围会产生变化的磁场,且磁场与电流的变化规律具有一致性。如果在此磁场中置一由线圈组成的电感,则该电感上会产生感应电动势,且该感应电动势的大小和通过线圈回路的磁通量的变化率成正比。由于在导线周围不同位置,磁感应强度的大小和方向不同,所以不同位置上的电感产生的感应电动势也应该是不同。据此,则可以确定电感的大致位置。4.3.2磁传感
30、器信号处理电路确定使用电感作为检测导线的传感器,但是其感应信号较微弱,且混有杂波,所以要进行信号处理。要进行以下三个步骤才能得到较为理想的信号:信号的滤波,信号的放大,信号的检波。1)信号的滤波比赛选择20kHz的交变磁场作为路径导航信号,在频谱上可以有效地避开周围其它磁场的干扰,因此信号放大需要进行选频放大,使得20kHz 的信号能够有效的放大,并且去除其它干扰信号的影响。使用 LC并联谐振电路来实现选频电路(带通电路),如图4.3所示。图4.3 LC并联电路其中,E是感应线圈中的感应电动势,L是感应线圈的电感值,R0是电感的内阻,C 是并联谐振电容。电路谐振频率为: (4.1)已知感应电动
31、势的频率=20kHz,感应线圈电感为L=10mH,可以计算出谐振电容的容量为C=6.3310-9 F 。通常在市场上可以购买到的标称电容与上述容值最为接近的电容为 6.8nF,所以在实际电路中选用 6.8nF的电容作为谐振电容。2)信号的放大由第一步处理后的电压波形已经是较为规整的20kHz正弦波,但是幅值较小,随着距离衰减很快,不利于电压采样,所以要进行放大,官方给出的如下参考方案即用三极管进行放大,但是用三极管放大有一个不可避免的缺点就是温漂较大,而且在实际应用中静电现象严重。图4.4共射三极管放大电路因此我们放弃三极管放大的方案,而是采用集成运放进行信号的放大处理,集成运放较三极管优势是
32、准确受温度影响很小,可靠性高。集成运放放大电路有同相比例运算电路和反相比例运算电路,我们在实际中使用反相比例运算电路。由于运放使用单电源供电,因此在同相端加vcc/2的基准电位,基准电位由电阻分压得到。图4.5 放大电路原理图4.3.3磁传感器的布局原理及改进对于直导线,当装有小车的中轴线对称的两个线圈的小车沿其直线行驶,即两个线圈的位置关于导线对称时,则两个线圈中感应出来的电动势大小应相同、且方向亦相同。若小车偏离直导线,即两个线圈关于导线不对称时,则通过两个线圈的磁通量是不一样的。这时,距离导线较近的线圈中感应出的电动势应大于距离导线较远的那个线圈中的。根据这两个不对称的信号的差值,即可调
33、整小车的方向,引导其沿直线行驶。 对于弧形导线,即路径的转弯处,由于弧线两侧的磁力线密度不同,则当载有线圈的小车行驶至此处时,两边的线圈感应出的电动势是不同的。具体的就是,弧线内侧线圈的感应电动势大于弧线外侧线圈的,据此信号可以引导小车拐弯。 另外,当小车驶离导线偏远致使两个线圈处于导线的一侧时,两个线圈中感应电动势也是不平衡的。距离导线较近的线圈中感应出的电动势大于距离导线较远的线圈。由此,可以引导小车重新回到导线上。 由于磁感线的闭合性和方向性,通过两线圈的磁通量的变化方向具有一致性,即产生的感应电动势方向相同,所以由以上分析,比较两个线圈中产生的感应电动势大小即可判断小车相对于导线的位置
34、,进而做出调整,引导小车大致循线行驶。采用双水平线圈检测方案,在边缘情况下,其单调性发生变化,这样存在一个定位不清的区域(如图4.6箭头所指)。同一个差值,会对应多个位置,不利于定位。另外,受单个线圈感应电动势的最大距离限制,两个线圈的检测广度很有限。图4.6 双线圈差值法有定位不清区域现提出一种优化方案:架设传感器时也需要特别注意,为了更适合无赛道的新课题,我们将前瞻拉长至46cm,并且在这基础上抬高前瞻至 21cm 从而可以适应 15坡,图 4.4为我们架设的方法。传感器架设参数如图4.6所示。200mm460mm210mm前轮图4.7 电磁感器安装参数示意图4.3.2 起跑线检测传感器的
35、设计按照比赛规则要求,跑完一圈后赛车需要自动停止在起始线之后三米之内的赛道内。如图4.8所示,起始线是导引线两边的长度10cm的黑色线,起始线中间安装有永久磁铁,每一边各三只。磁铁参数:直径7.5-15mm,高度1-3mm,表面磁场强度3000-5000Gs1。500mm45mm100mm电磁铁x3图4.8 起跑线磁铁布置示意图针对上述要求,利用干簧管设计起始线检测。干簧管是磁机械效应的磁场传感器,其内部是一个常开触点开关,在磁场强度超过其阈值时,开关闭合。不管车子以什么样的姿态过起跑线,为了保证准确率,我们使用了6个干簧管并联为“线或”关系,任何一个干簧管检测到磁铁,A12端都会输出高电平,
36、程序检测到上升沿后使赛车停车。干簧管排布示意图如图4.8所示。+3.3VI/O图4.8 红外传感器电路实物及安装4.3.3 距离检测传感器的设计鸳鸯超声波模块,都采用5v供电,前车尾部放发射模块,后车前部放接受模块。发射端会自动同时发射周期性的红外信号和超声波信号,根据两信号相差时间计算两车距离,安装时,如图4.9。图4.9鸳鸯超声波4.4 驱动电路设计驱动电路为智能车驱动电机提供控制和驱动,这部分电路的设计要求以能够通过大电流为主要指标。驱动电路的基本原理是H桥驱动原理,目前流行的H桥驱动电路有:H桥集成电路,如MC33886;集成半桥电路,如BTS7970等;MOS管搭建的H桥电路。我们对
37、三种电路都进行了搭建并测试,MC33886的优点是电路简单12,外围元件少,但缺点是内阻较大,通过电流有限,可以通过两片MC33886并联的方式进行改善。MOS管搭建的H桥电路可以通过较大电流,但由于每个MOS管体积较大,因此电路板面积较大,另外,MOS管H桥电路可能会发生脉冲上升沿下降沿由于不够陡峭而带来的瞬间短路、功率过高等问题,为了避免这些问题,无疑要增加电路复杂程度。最终我们选择了目前比较流行的两BTS7970半桥集成电路组成H桥。BTS7960的内阻为上半臂7m,下半臂9 m,完全导通后全部内阻为16 m,可通过电流为43A13,远远大于智能车电机需求。电路原理图如图4.10所示。图
38、4.10 BTS7960搭建H桥电路原理图第五章 智能车软件设计说明软件系统是对传感器等输入设备输入的信息进行处理,然后通过一定算法,得到控制输出,对现有的硬件电路进行调度和控制,从而使智能车按照赛道前进。软件系统要达到的最终目的是让智能车更快更稳的在赛道上行驶,从而真正达到“智能”。软件主要流程图如图5.1所示。开始初始化(端口、变量、程序)延迟启动电机是否启动电机赛道检测两车距离获取转向舵机控制速度获取速度控制是否坡道或虚线坡道处理函数是否终点刹车速度是否0终止YYYYNNNN图5.1 程序流程总框图下面的内容中,我们着重介绍赛道信息提取、方向舵机控制、距离获取、速度控制等主要部分。5.1
39、 赛道信息和两车距离提取赛道信息提取部分是最基础的程序,之后的控制程序都源于赛道信息的正确提取,这部分程序主要包括硬件端口读取、数据处理及分析归类三部分。首先介绍硬件端口信息读取部分,为了存储赛道信息,我们建立一个float类型变量Position用来存储当前赛道扫描结果。程序如下:void getInfo(void)int k=8;int m=0,i=0,j=0;float c=0,d=0;while(k!=0) hw_adc_convertstart(0, 12, 12);/ADC0 while( ADC0_SC1A & ADC_SC1_COCO_MASK ) != ADC_SC1_COC
40、O_MASK); RightAD=ADC0_RA; ADC0_SC1A &= ADC_SC1_COCO_MASK; RightEye= RightAD + RightEye; k-; RightEye= RightEye/8; /求平均 获取当前扫描数据后,就要对数据进行处理,提取赛道信息,以便对赛道分类,判断特殊赛道类型。根据传感器测值和计算,Position的值和两端传感器电压的比值(LvR)成正比关系,计算Position的程序如下:void DirecionCalculate(void) int i=0,m=0,j=0,k=0;float position_final=0;int Lv
41、R_final_int=0;if(LvR_final=1)LvR_final=1;if(LvR_final=-1)LvR_final=-1;LvR_final_int=(LvR_final+1)*100;position_final=kLine*LvR_final; position= position_final;/赋值结束丢线处理:尽管我们尽量让他紧跟着中线,但是还是无法避免会出现丢线的情况,在两个电感采回来的值都很小的情况下,我们是这样处理的:程序里左右两个电感都有其最小值,这是我们实际测回来的值。在两个电感丢线,即两电感值都很小之前总有一个电感是先比另一个电感小于其最小值的,如赛道从左
42、边丢了,那么肯定是右边电感先小于其最小值,知道这个情况则可以作标志位。这样我们则可以获得准确的信息。两车距离获取:超声波发射模块会周期性的发出同时的红外信号和超声波信号,接收模块在检测到先检测到红外信号后输出高电平,在检测到超声波信号后输出低电平,高电平时间长度即是二者信号相差时间,时间与距离呈正比通过检测接收模块输出的脉冲宽度,即可得到两车距离。5.2转向舵机控制5.2.1 PID控制原理PID控制以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用P
43、ID控制技术最为方便。PID控制就是根据系统的误差,利用比例(P)、积分(I)、微分(D)计算出控制量进行控制的。目前PID控制在工业控制系统中无处不见,随着控制效果的要求不断提高,PID逐渐向智能化发展,但形形色色的现代控制理论最终还是源自经典PID理论。PID解决了自动控制理论所要解决的最基本问题,既系统的稳定性、快速性和准确性。调节PID的参数,可实现在系统稳定的前提下,兼顾系统的带载能力和抗扰能力,同时,在PID调节器中引入积分项,系统增加了一个零积点,使之成为一阶或一阶以上的系统,这样系统阶跃响应的稳态误差就为零。由于自动控制系统被控对象的千差万别,PID的参数也必须随之变化,以满足
44、系统的性能要求。因此PID参数的确定是PID控制中重要的部分之一。10PID控制的基本原理如式1所示: (1)式中,u(t) - 控制量KP - 比例系数Ti - 积分时间常数Td - 微分时间常数将式1离散化,即将描述连续系统的微分方程代之以等效的描述离散系统的差分方程,就可以得到相应的数字PID调节器。当控制周期也就是积分时间足够小的时候,利用矩形法进行数值积分,即以求和代替积分,以差分代替微分,可得到数字形式的PID控制方程如式2所示: (2)式中T为控制周期,当T足够小时离散化的控制模型可以逼近连续式的PID控制模型。另外,可以将式2中的T提取出来,把Kp分配进去,分别与1/Ti和Td
45、组成比例项系数KP,积分项系数KI和微分项系数KD,式2可简化为式3: (3)式3也就是常说的位置式PID控制方程,但是由于积分项累加计算比较复杂,而且在程序计算中极容易出现溢出现象,因此人们考虑每一次不是给出绝对的控制量,而是根据上一次的控制,给出本次需要增加的控制量即可。根据这一想法,我们首先考虑上一次(即k-1时)给出的控制量u(k-1)为: (4)式3-式4可得k时刻需要给出的增量 (5)由式5得输出u(k)也可表示为: (6)式6就是增量式PID控制方程,由此可以看出,增量式PID消去了积分项的累加部分,这样便于程序编写。5.2.2 转向舵机控制实现转向舵的控制通过简单的PD控制的方法可以很好的实现最佳路径,并不需要过多的处理。但是对PD参数的调节很重要,代码部分非常简单:void Direct_Ctrl()float DirectionPWM_Buffer=0.0;DirectionPWM=-(P_en*gfX0+gidKD*(gfX0-gfX1);if (DirectionPWM=LLIMIT) DirectionPW