第四届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校:北京工业大学队伍名称:BJUT光电一队参赛队员:赵鹏程张浩龙马龙带队教师:贾惠忠I关于技术报告和研究论文使用授权的说明本人完全了解第四届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:带队教师签名:日期:II目录第一章引言........................................................1第二章模型车的主要设计思路和技术方案概要..........................2第三章模型车机械设计..............................................3第四章电路设计说明................................................4第五章软件控制设计...............................................10第六章开发工具和制作调试过程....................................113第七章主要技术参数...............................................14第八章结论.......................................................15参考文献.........................................................III附录A:代码........................................................V1第一章引言1.1摘要本文将从机械结构、电路设计以及软件算法三方面介绍北京工业大学BJUT光电1队的智能汽车制作情况。智能车的硬件平台采用清华大学的MC9S12XS128处理器开发板,软件平台为CodeWarriorIDE开发环境。在报告中着重介绍了智能小车控制系统的软硬件设计结构和开发流程。涉及车模机械结构的设计、激光和红外传感器电路设计及汇编控制算法和本队的特色创新多个方面。1.2关联文献综述孙同景著的《Frescale9S12十六位单片机原理及嵌入式开发技术》,在汇编语言程序设计上讲解的很清晰,在汇编程序的编写上多是参照这本书。卓晴编辑的《学做智能车—挑战“Frescale杯”》,有很多第一届全国比赛参赛队的技术报告,前人参赛的经验对我们队在车体和电路设计上有很大的参考价值。其它三本参考文献作为辅助的资料,主要参考了汇编程序的历程和指令寄存器的进一步解释。1.3关键字智能车、红外传感器、激光传感器、汇编语言2第二章模型车的主要设计思路和技术方案概要设计的总体思路上分为三部分进行,车体结构,硬件结构,和软件结构。软件结构上的设计即描绘驾驶员的操作驾驶水平,硬件结构和车体结构的设计通称车辆的性能,分别反映在控制的稳定性能和竞速性能。2.1车体结构虽然轮胎、驱动电机、舵机和电池等车模主要结构不能作改动,但是一些机械结构上的细节仍然会对小车性能产生影响。在硬件电路板的安装上本着压低智能车的重心为原则。在光电传感器的安装上,也是在检测距离尽量长和车体长度尽量短的两者之间权衡。2.2硬件结构本智能车的定位系统采用13个光电探头采集车辆前方的道路信息。后轮的差速器上装入速度传感器,用于实时检测智能车的当前速度。数码管用于显示时间、速度、红外传感器的AD值。2.3软件结构本队智能汽车竞赛的程序均用汇编语言编写。软件策略就是查表,通过大量的实验得出几张表,再配合一些简单的运算,以及从速度传感器获知的当前信息对舵机和电机施以合适的控制。2.4车模设计特色与创新1.异常判别方法,用同一种算法判别道路标志及非正常寻线以外的状况2.激光和红外传感器的混合使用,为了增加探测距离。两边用激光探头,中间使用红外传感器,用AD采集信息。3.使用汇编语言编程。为了更方便在线调试,掌握更真实控制过程。4.激光传感器的发射接收具有调制解调功能,红外传感器经软件控制可自适应现场光照强度。第三章模型车机械设计本次比赛以竞速为唯一的评判准则,车模由“飞思卡尔杯”智能车竞赛组统一提供,车模轮胎,后轮驱动电机,前轮转向舵机,电池等在竞赛规则的限制下,无法做进一步的改动。3.1车体的重心作为竞速赛车,车辆的的重心要尽量低。我们在电路板的安装与制作时尽可能的做到小巧紧凑和降低车身。如图3.1图3.13.2轮胎轮胎的着地力对于直道加速、直道进弯道时候的刹车和过弯道速度的提高非常重要。着地力如果过小,车模直道加速时会打滑使直道速度加不上去,刹车时会产生侧滑,增加拐弯的不确定性也会影响过弯时间。保持赛道的洁净和轮胎的潮湿会提供更大的着地力,另外,平时大量的调试赛车,对轮胎造成很大的磨损,定期还需要更换新的轮胎。3.3传感器支架支架的制作既要保证光电探头的前瞻性,又要兼顾检测的稳定性。我们组做了两层的支架,考虑到只做一层的话,走坡道时会产生颠簸,影响探头的检测,两层支架即保证了检测的稳定,又使智能车整体结实坚固。4第四章电路设计说明4.1总体电路描述我们组智能车的电路分为以下几个模块:传感器采集、数码管显示、驱动电机、舵机以及测速装置。单片机选用freescale公司的16位单片机PC9S12XS128,主频为8MHz。单片机与各模块的连接上通过IO、ECT、PWM、AD端口。IO端口的连接有:10组激光传感器,数码管显示的8根数据线以及驱动模块的使能控制端。ECT端口的连接到了测速光耦的信号线。AD端口的连接到了3组红外传感器。PWM端口的连接到舵机模块和驱动电机模块的两根控制线。其中舵机模块的连接用到两个PWM端口的级联。电路系统的总框图如下图4.1所示。详细的电路描述在本章的后续章节,具体的端口配置在本章最后一节列有表格。图4.1S12Xs128传感器舵机MC33886电机数码管显示测速4.2系统电源模块全部硬件电路的电源由7.2V可充电镍镉电池提供。5V电压为单片机、光电传感器,测速光耦供电。为防止单片机和光电传感器之间的串扰,用两个低压差的稳压芯片分别供电。7.2V电压为电机驱动和舵机供电。图4.24.3电机驱动模块选择并联了两片MC33886,两路PWM波信号,一路接到IN1,另一路接到IN2,IN1输入一定占空比的PWM波,IN2输入占空比为0的PWM波,实现电机的正转加速。反之,电机倒转达到智能车制动的效果。电机控制原理图如图4.3图4.3电池电压7.2VMC33886电机舵机LM2940LM2940传感器S12Xs128测速光耦第四章电路设计说明64.4数码管显示模块我们组用的是四位的带小数点的共阳数码管,共有12根管脚,8根数据线和4根选通控制线。所以需要软件上实现动态扫描,同一时刻只有一位数码管点亮,利用数码管的余辉和人眼的视觉暂留特性,实现连续稳定的显示。点亮的时间间隔越短,数码管亮度会越暗,间隔越长,会发生闪烁。图4.4为两片四位数码管的连接图。图4.44.5传感器选型和电路设计我们组在寻线传感器采集方面共用到了13个道路检测传感器,其中中间3个为红外传感器,外侧左右各5个激光传感器。红外传感器接到CPU内部的A/D端口上,细化中间黑线值的采集范围,高精度控制智能车模的直道寻线行驶。激光传感器接到CPU的数据IO端口。外侧的十个激光探头,用于检测道路的弯曲程度,以便控制舵机调整前面转向轮的行驶角度。传感器的实物图见下图4.5。图4.54.5.1红外传感器发射管发出红外线,接收管相当于一个受到信号强弱控制的可调电阻,信号强度越强,阻值越小。即检测到黑线时,输出电压高。红外传感器电路简单,但是受环境灯光影响很大。换到很亮的环境,会对黑线的检测产生很大的影响,调节电位器的阻值改善不大,通过增长红外传感器套管的长度,能够很好的检测到黑线。电路原理图见图4.6图4.6第四章电路设计说明84.5.2激光传感器发射电路端,集成的调制芯片上电后,会输出100kHz的方波,接入NPN三极管的基极,使三极管处于100kHz的通断状态,这样激光头即已100kHz的频率发射出信号。接收电路端,100kHz的解调芯片,接受到黑线信息时,输出低电平。激光管具有检测距离长,方向性好,不受环境影响等优点。电路原理图见图4.7图4.74.5.3红外与激光传感器的混合使用红外传感器与激光传感器的结合可以充分发挥两者的优势,使赛道检测更加可靠,适应性更强,能够从容应对长直道和各种变化弯道。本模型车共用10组激光传感器和3组红外传感器。红外传感器设置在车前方的正中间,3组传感器的宽度与赛道上黑色路径的宽度一致,红外传感器的优势在于其输出是模拟量,便于在直道时更精确的控制,使直道行驶更加平稳。10组激光传感器设在两侧如图4.5,靠中间的传感器间距较小而靠外侧的间距较大,这样安排能更灵敏地检测到黑色路径的较小变化,及时改变模型车的姿态。两侧的传感器只有在曲率较大处才会检测到黑色路径,此时路径变化较大,由于车速较快,即使两侧传感器的间距相对较大,也不会影响到路径检测和及时调整。4.6测速电路选用光耦传感器测量车模后轮的差速装置齿数,主从传动轮的齿数比为18:76。后驱动轮转动1周,光耦测出76个齿,通过信号线接入单片机的ECT模块,进而间接的获知智能车的行驶速度。测速的安装如下图4.8。图4.84.7核心控制板端口设置表4.1A/D模块PAD3,PAD4,PAD5红外传感器采集信号ECT模块PT7速度传感器信号PWM模块PP0,PP1(级联)舵机控制信号PP1输出PP3,PP7电机控制信号I/O模块PA0—PA74位数码管数据线PB0—PB7LED灯PE2,PE3,PE5,PE64位数码管控制线PH2—6PS2—6激光传感器采集信号PM0激光传感器开关PM333886使能控制PK0,PK4,PK5,PK7速度与调试的开关10第五章软件控制设计5.1寻线策略在寻线方面,最根本的思路就是越靠近外侧的探头探测到黑线,则舵机转向相应方向越大,越靠近中间的探头探测到黑线,则舵机转向越接近正直。我们实现上述思想的主要策略就是查表,通过大量实验得出一张表,以探头采集信息作为偏移量,取得舵机占空比值,再配合上一些简单的比较跳转、加减法和逻辑运算,控制舵机转向寻线。5.2程序总框图图5.1开始获取光电头的信息判断是否有异常道路信息根据探头信息的变化速度,PID算法计算当前的舵机值判断当前是直道还是弯道速度控制,多刹少加据探头信息查表获取所需速度结束定时中断测速时间显示返回5.3异常的判断异常就是除了正常行驶的道路以外的所有情况的总称。异常共分为6种,即交叉线、停车线、坡道、正三角、反三角和跑道外的蓝色地板。我们根据不同异常的特点分别进行识别。当小车发现现在不是正常道路后开始记录道路的信息,直到又回到正常道路为止,然后对刚才记录的整个过程进行分析,分析的主要依据有两个,第一是跑道黑色部分的总面积,第二是跑道黑色部分的分布方式。由这两点就可以得出刚才所经过的是何种异常,进而决定以后的控制策略。异常判断的程序流程如图5.2图5.2第五章软件控制设计125.4速度控制在控速方面,我们的主要思想是“看路选速,多刹少加”,即依据探头采集的路面状况选择当前应该达到的速度,再由测速装置检测当前实际速度,如果大于了我所需要的速度就执行刹车,小于则加速。在刹车方面,根据路面情况我们一共有三种刹车方式可供选择。第一种是给很小的电机前进占空比,靠电机固有的阻力刹车,类似于开车时的“松油门”,主要用于直道的减速。第二种是分多次给出持续时间很断,倒转力度很小的电机倒转占空比,类似于开车时的轻微刹车,主要用于S弯道的减速。第三种是分多次给出持续时间较长、倒转力度较大的电机倒转占空比,类似于开车时的狠