河北工程大学科信学院飞天一队技术报告.doc

上传人:wux****ua 文档编号:8919132 上传时间:2020-04-01 格式:DOC 页数:51 大小:4.15MB
返回 下载 相关 举报
河北工程大学科信学院飞天一队技术报告.doc_第1页
第1页 / 共51页
河北工程大学科信学院飞天一队技术报告.doc_第2页
第2页 / 共51页
河北工程大学科信学院飞天一队技术报告.doc_第3页
第3页 / 共51页
点击查看更多>>
资源描述
第四届“飞思卡尔”杯全国大学生智能汽车竞赛技 术 报 告学 校: 河北工程大学科信学院队伍名称: 飞天一队参赛队员: 程 志 刚付 庆 钊未 付 佳带队教师: 董 克 俭张 永 健关于技术报告和研究论文使用授权的说明 本人完全了解第四届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名: 带队教师签名: 日 期: 摘 要本智能小车系统以Freescale16 位单片机MC9S12DG128 作为系统控制处理器,采用基于光电传感器的信号采样模块获取赛道黑线信息,通过PID控制策略和PWM控制技术对智能小车的转向和速度进行控制,使小车能够自主识别并实现快速稳定的寻线行驶。 通过对各种算法的筛选和优化,提高了智能车的可靠性。在调试过程中,利用PC机显示本车摄像头拍摄到的图像,利用labview编制的软件显示PID调速信息。利用图像处理程序中的模式识别功能判断起跑线,弯道,“十字”交叉,上下坡等,综合PID算法对速度,舵机的转向大小进行调节控制,结合闭环控制的策略,控制智能车沿主办方预设的轨道及时调整车身的姿态。结果表明,智能小车系统工作稳定,能较好的满足控制要求。关键词:智能小车系统,MC9S12DG128,加速度传感器,速度检测,PID目 录摘 要III第一章 引 言11.1 总体方案介绍 11.2 智能车系统概述及框图 11.3 智能车主要设计与技术参数3第二章 系统硬件及软件设计32.1系统硬件结构设计 32.2系统软件结构设计3第三章 智能车的机械结构调整53.1 车模机械参数的调整63.2轮定位参数的选择63.3摄像头安装及调试83.4 差速器的调整103.5 舵机的调整113.5.1 舵机的安装113.5.2 舵机的控制123.6其他机械模块调整 13第四章 控制策略设计144.1控制策略概述144.2 PID控制算法 154.3模糊推理方式16第五章 智能车硬件制作16 5.1 单片机电路的设计175.1.1 S12微控制器电路175.1.2 时钟电路175.1.3 S12单片机滤波电路设计185.1.4 S12单片机复位电路的设计185.1.5 BDM接口电路设计18 5.2 电源管理模块的电路设计195.2.1电源管理电路图205.2.2 LM2940-5的相关资料20 5.3 速度采集模块的电路设计215.3.1编码器工作原理215.3.2 编码器的使用 22 5.4 串口部分的硬件设计225.4.1 串行通信原理225.4.2 MAX232简介23 5.4.3 MAX232电路图24第六章 程序设计与调试256.1 开发工具256.1.1 编译环境256.1.2 调试环境266.1.3 智能车图像调试工具276.2 智能车图像采集程序286.2.1 智能车图像采集策略286.2.2 图像采集程序296.3 智能车图像处理程序调试过程306.3.1 智能车图像处理程序策略306.3.2 智能车找点程序316.4 智能车舵机控制程序调试326.4.1 智能车舵机控制程序策略336.4.2智能车舵机控制部分程序336.5 速度控制程序调试346.5.1 速度控制策略346.5.2 速度控制部分程序346.6串口部分程序调试366.6.1 智能车系统中串口的功能366.6.2 串口部分的程序366.7 开发与调试过程总结37第七章 参赛总结38参考文献41附录:源程序代码42第一章 引 言1.1 总体方案介绍一、智能小车以“飞思卡尔”公司的MC9S12DG128单片机为核心控制模块,自主构思控制方案及系统设计,引导改装后的模型汽车按照规定路线行进,以完成时间最短者为优胜。为了进一步训练大学生的科学技术研究素质,参赛队伍除了进行现场比赛之外,还需提交技术报告,并计入竞赛总分。 二、智能小车需反射后,由于白纸和黑线吸收红外线的强度不同,接收管收到的红外光强弱也不同,由此来判断黑线的位置。这种检测方法的优点是检测速度快,成本低,但精确度很低;CCD摄像头则是通过图像采集,动态拾取路径信息来进行寻线判断。采用CCD摄像头寻迹则能大幅度提升小车的前瞻性。但是它的电路设计较要实现自主寻迹,因而需要选择合适的寻线传感器。目前普遍采用的寻线方案主要有光电管寻迹和CCD摄像头寻迹。用红外发射管发射出的红外线,经过赛道为复杂,检测信息更新速度慢,数据处理量比较大,算法较为复杂。三、由于速度是比赛的关键,那么在智能小车的设计中设计一个好的电机驱动电路至关重要。选用“飞思卡尔”公司的MC33886主电机驱动芯片,该芯片的内部构造为MOS管构成的H桥式电路,并加入了逻辑控制电路和过流过热保护电路,性能优良。1.2 智能车系统概述及框图硬件系统框图设计: 图1.1 系统硬件结构框图由上面框图可知:智能车设计包括主控制器模块(微控制MC9S12DG128)、图像采样模块、速度检测模块、舵机驱动模块、电机驱动模块、现场参数设定模块、电源管理模块七个模块组成。 微处理器S12单片机是系统的核心部分,它接收图像数据和速度的反馈信息,根据采集到的图像数据提取黑色的引导线的位置,利用PID算法等控制舵机转动的偏移量和给驱动电机输出适当的占空比。 图像采样模块是除S12微控制器外最重要的模块,他负责采集道路的信息系统的眼睛。它由图像采集模块驱动电路和芯片OV6620组成,负责道路的检测,并将道路图像信息转换成微处理器能够处理的数据。 车速检测模块是用轴脚编码器测定车速,同时将检测到的车速反馈给S12微控制器。 舵机驱动模块和电机驱动模块分别用于实现赛车的转向和前进控制。 电源管理模块的核心芯片是LM2940CT,它为S12单片机、图像处理模块、速度检测模块和舵机提供稳定可靠的电压。1.3 智能车主要设计与技术参数智能车的设计主要体现在机械结构改造、电子电路的设计和软件的设计。对于机械结构又可以分为调整车模的参数和为便于安装进行的改造;电子电路的设计主要包括S12微处理器和外围电路的设计,舵机、电机的驱动电路、速度检测模块的电路设计、图像检测模块的电路设计,还有电源部分的电路设计几部分构成;软件设计主要包含图像信息中黑色引导线的提取、PID控制和闭环控制程序。 车模的技术参数表:长宽高297158251(mm) 摄像头 1个总重量 1.17kg 轴编码器 1个电路总功耗 1040W 新增伺服电机0个电容总容量 1280.5uf 新增驱动电机0个赛道检测频率 50Hz 赛道检测精度8mm 表1-1 车模技术参数表第二章 系统硬件及软件设计2.1系统硬件结构设计(1)主控芯片用飞思卡尔半导体公司生产的16位单片机(MC9S12DG128) (2)图像采集模块采用模拟摄像头提取赛道信息; (3)速度检测模块采用轴编码器采集智能车的速度; (4)路径识别模块由S12的AD模块、传感器和外围电路组成; (5)电源管理模块使用5V的稳压芯片; (6)舵机,电机,采用组委会统一提供的器件,就不再讲述。2.2系统软件结构设计硬件设计就是给智能车建立了基本的框架,给它制造了身体;软件设计就是赋予小车生命,给予其灵魂。只有有了健壮灵敏的身躯和聪明、智慧的大脑,才能取得优异的成绩。所以,赛车的软件系统设计对于赛车来说是至关重要。整个赛车的运行过程又可以分为以下的几个步骤。首先,智能车系统通过图像采样模块获取前方赛道的二维图像数据,在数据中才找黑色的引导线的位置,判断是直道还是弯道,指引舵机进行方向的改变,然后读取速度的反馈,再进行调速,在判断出直道以后检测起跑线。检测出起跑线,赛车停止,不是,重复以上过程。只有将上述硬件、软件部分进行有效的融合,进行充分的实验、测试,才能使赛车具有一个相对良好的整体行驶性能。这也就是在接下来的各个分模块中需要做的工作。软件设计流程图如图2.1所示: 图2.1 程序流程图第三章 智能车的机械结构调整智能车的机械结构是一个不容忽视的问题,主要有前轮倾脚的调整,后轮轮距的调整,增加调节块调节缓冲器弹簧的力度等等。摄像头是智能车对道路情况进行检测的唯一的途径,摄像头安装的好于坏直接关系到智能车能不能正常的行驶。机械结构是车模的基本性能,当车速提高到一定程度后,这将严重影响车模的行走路线。车架调试的好坏决定了智能车的转弯半径,转向的灵活性和稳定性。如果车模调试得当,可大大增强智能车的竞争力。3.1 车模机械参数的调整 我们队所制作的车模的技术参数如下: 项目参数路径检测方法(赛题组)摄像头组车模几何尺寸(长、宽、高)(毫米)297*158*251车模轴距/轮距(毫米)204/110车模平均电流(匀速行驶)(毫安)900电路电容总量(微法)1280.5传感器种类及个数模拟摄像头 光电编码器新增加伺服电机个数0赛道信息检+测空间精度(毫米)8赛道信息检测频率(次/秒)50主要集成电路种类/数量TLC5510 1881一个 34063一个 3205四个 车模重量(带有电池)(千克)约1.17表3-1 车模的技术参数3.2 定位参数的选择 现代汽车在正常行驶过程中,为了使汽车直线行驶稳定,转向轻便,转向后能够自动回正,并减小轮胎和转向系零件的磨损等,在转向轮、转向节和前轴之间形成了一定的相对安装位置,叫前轮定位,其主要定位参数包括:主销后倾、主销内倾、前轮外倾和前束,模型车前轮的四项定位参数均可调。以下是车模的调校内容、参数与选用理由: 主销后倾角: 2 主销后倾角,如图3.1,是指主销在汽车的纵向平面内(汽车的侧面)有一个向后的倾角,即主销轴线与地面垂直线在汽车纵向平面内的夹角。由于主销后倾后,小车在车轮偏转后会产生一回力矩,纠正车轮的偏转。后倾角越大,车速越高,车轮偏转后自动回正能力越强。但回正力矩过大,将会引起前轮回正过猛,加速前轮摆振,并导致转向沉重。所以将主销后倾角设置为2 主销内倾角: 0 由于车模行驶速度小、重心低,转向时侧倾极少,所以为了提高转向的灵敏性,车的主销内倾角都设为0。 前轮外倾角: 0 通过车轮中心的汽车横向平面与车轮平面的交线与地面垂线之间的夹角称为“前轮外倾角”。轮胎呈现“八”字形张开时称为“负外倾”,而轮胎呈现“V”字形张开时称为“正外倾”。前轮外倾角一方面可以在汽车重载时减小或消除主销与衬套、轮毂与轴承登出的装载间隙,使车轮接近垂直路面滚动而滑动,同时减小转向阻力,使汽车转向轻便;另一方面还可以防止由于路面对车轮垂直反作用力的轴向分力压向轮毂外段的轴承,减小轴承及其锁紧螺母的载荷,从个人增加这些零件的使用寿命,提高汽车的安全性。一般前轮外倾角为1左右。由于本模型车主要用于竞速,在设计中必然要尽可能减轻重量,所以其底盘承重不大,且前轮外倾角仅有两档可调,故设为0即可,关键是前束角要与之匹配。 前轮束角: 前束1.5由于我们的比赛车模的车速并不快(20km/h以内),并且跑道平整,所以选用前束1.5,以便提高车模的转向反应速度。前轮束角,如图3.2,是描述从车的正上方看,车轮的前端和车辆纵线的夹角。车轮前端向内倾(内八字),称为Toe-in;车轮前端向外倾(外八字),称为Toeout。Toe-in可以帮助车在加速时保持稳定,同时也会减少车子在进入弯角时的转向反应。但高速转向时,如果车体侧倾严重,重心明显向外测车轮移动时,也会增加转向。Toe-out可以使车在进入弯角时获得更多的转向。由于转弯时靠近内侧的车轮行驶圆弧的半径较短,所以使内侧车轮比外侧车轮转角稍大一些可以使车的转向更灵活。并且少量的Toe-out可以使车更容易行驶直线。但过大Toe-out会使车子在加速时、或者通过起伏路面时,变得不稳定,偏离直线。越大角度Toe-in或Toe-out,越会减低车辆在直线行走的速度。3.3摄像头安装及调试在智能车的整个系统中,图像采集模块是一个非常重要的模块,而摄像头就是图像采集模块的核心。摄像头的安装对图像采样效果和智能车重心有很大影响。摄像头安装过低,会影响智能车的前瞻性;安装过高会降低图像的清晰度,也会使车重心变高。越高的重心在转弯时越容易翻车,所以我们在保证足够的前瞻性的同时尽量降低摄像头的高度。摄像头与支架的固定不仅使用螺丝,同时加热熔胶使其牢牢地固定在最佳位置,安装如图3.3图3.3摄像头的安装图3.4摄像头拍到的图像3.4差速器的调整 当车辆在正常的过弯行进中 (假设:无转向不足亦无转向过度),此时4 个轮子的转速(轮速)皆不相同,依序为:外侧前轮外侧后轮内侧前轮内侧后轮。此次所使用车模配备的是后轮差速机构。差速器的特性是:阻力越大的一侧,驱动齿轮的转速越低;而阻力越小的一侧,驱动齿轮的转速越高。以此次使用的后轮差速器为例,在过弯时,因外侧前轮轮胎所遇的阻力较小,轮速便较高;而内侧前轮轮胎所遇的阻力较大,轮速便较低。差速器的作用就是保证小车在转弯时内外驱动轮能以不同的转速作纯滚动运动,避免发生车轮拖滑。差速器的性能对于小车过弯时的表现有着非常重要的影响,因此,对于差速器的调整是小车机械调整的重要环节。 因此,为保证良好的差速效果,对差速器进行调整的关键是要调节好压盘和滚珠之间的压紧力。具体的调整方法是:调节后轴螺母,使压盘和滚珠之间松紧适中,捏住减速齿轮使其固定同时转动一侧车轮,检查车轮的转动是否迟滞艰涩;此外,还要观察该侧车轮向前转动的角度是否与另一侧车轮向后转动的角度基本相同;然后将小车满载放置于赛道上,同样捏住大齿轮然后拉动小车转弯,观察后轮相对地面滑动的情况,调节后轴螺母,使得后轮与地面基本不发生拖滑为宜。这样小车在入弯时既能灵活转向,又能避免车轮侧滑,差速器的安装如图3.5图3.5 差速器的安装3.5 舵机的调整3.5.1 舵机的安装舵机是赛车控制中的一个滞后环节,响应速度偏慢,有很大的时间延迟。舵机的响应速度直接影响到赛车过弯时的转向性能;响应速度越快,赛车转弯时就越灵敏,车子在不发生侧滑的情况下所能达到过弯车速就越高。因此,想办法提高舵机的响应速度是提升赛车整个赛段平均车速的一个关键。 实验可知,舵机的响应速度与舵机的工作电压和输出转向传动比密切相关。单从机械方面考虑,增加转向传动比可以提高舵机的响应速度。根据大赛规则,舵机不允许改动,但是舵机的连接件和安装位置可以改变。这就为设法提高舵机输出转向传动比提供了依据。本文对舵机的外围结构和安装位置进行了研究并作出相应的调整。具体的做法如图所示,我们改变了舵机的放置方式,把舵机纵向放置并增加舵机个数,使一边的舵机控制一边的转向轮,然后将转向拉杆连接在输出臂的末端。这样就可以增加输出臂的长度。增加输出臂的目的在于增大转向拉杆与舵机连接点到舵机轴心之间的距离,相当于增大力臂,及灵敏度。舵机自身硬件特性决定了在给定电压一定时,空载和负载时舵机转动的角速度分别保持定值,而线速度VR,正比与舵机输出臂的长度R。这样一来,在相同的舵机转速条件下(即不变),增加舵机的输出臂的长度R可以使转向拉杆移动的线速度得到提高,前轮转向就越快,反应就越敏捷。显然这样利用舵机的转矩余量可以提高其响应速度,从而提高了整个赛车转向控制的速度。 图3.6舵机安装3.5.2 舵机的控制舵机的转向是由PWM(Pulse Width Modulation脉冲宽度调制)技术来进行实时控制的。其工作原理是:单片机首先对图像传感器采集回来的信号进行处理,然后根据得到的不同检测信号发出不同占空比的PWM控制信号给舵机,舵机在控制信号的作用下转动一定角度。脉冲宽度和舵机转角成线性关系,其计算公式为: =(L-1.5)*90其中为舵机转角,单位是度;L是脉冲宽度,单位是ms。舵机转角和脉冲宽度的关系如图3.7所示: 图3.7 舵机转角和脉冲宽度示意图舵机的控制使用MC9S12DG128的PWM 0与PWM1口级联成一个16位PWM输出。在单片机总线频率为24MHz的时候,设置级联的PWM周期常数为60000,对应PWM周期为20ms,PWM占空比常数为4500对应输出为1.5ms。改变占空比常数可以改变输出脉冲的宽度。3.6其他机械模块调整 在调试过程中,除去对以上部分的调整以外,其他机械部分也要酌情调整。悬挂臂、转向联杆的动作要灵活自如,准确无误;主悬架要松紧适度;驱动电机的螺丝一定要上紧,并要经常检查,一旦在行驶中松动就会造成零件的损坏。调试中还发现主悬架的第二个螺丝容易松动,测试时要检查是否上紧。小车的机械性能是个不容忽视的问题,尤其是小车重心问题和前轮的倾脚问题。电路板的安装和摄像头的安装在满足功能前提下一定要定要考虑小车的机械稳定性和可靠性。另外,经过半年的制作发现,电机的安装(齿轮啮合松紧)和轮胎的摩擦系数对小车的性能也有非常大的影响,经过较长时间的调试终于达到了比较满意的程度。第四章 控制策略设计 在小车的运行中,主要有方向和速度的控制,即舵机和电机的控制,这两个控制是系统软件的核心操作,对小车的性能有着决定性的作用。 对舵机的控制,要达到的目的就是:在任何情况下,总能给舵机一个合适的偏移量,保证小车能始终连贯地沿黑线以最少距离行驶。在舵机的控制方案中,有以下两种方案可供选择: 方案一:比例控制 这种控制方法就是在检测到车体偏离的信息时给小车一个预置的反向偏移量,让其回到赛道。比例算法简单有效,参数容易调整,算法实现简单,不需复杂的数字计算。在实际应用中,由于传感器的个数与布局方式的限制,其控制量的输出是一个离散值,不能对舵机进行精确的控制,容易引起舵机左右摇摆,造成小车行驶过程中的振荡,而且其收敛速度也有限。 方案二:PID控制 PID控制在比例控制的基础上加入了积分和微分控制,可以抑制振荡,加快收敛速度,调节适当的参数可以 有效地解决方案一的不足。不过,P,I,D三个参数的设定较难,需要不断进行调试,凭经验来设定,因此其适应性较差。 在我们的选择中,根据比赛规则,赛道模型与相关参数已给定,即小车运行的环境基本上已经确定,可通过不断调试来获得最优的参数。因此我们选用的是PID算法来对舵机进行控制。 对驱动电机的控制(即速度控制),要达到的目的就是在行驶过程中,小车要有最有效的加速和减速机制。高效的加速算法使小车能在直道上高速行驶,而快速减速则保证了小车运行的稳定,流畅。为了精确控制速度,时时对速度进行监控,我们还引入了闭环控制的思想,在硬件设计,增加了速度传感器实时采集速度信息。 4.1控制策略概述 本项目中,被控对象有两个:舵机的偏转角和电机的转速。小车的速度控制需要依靠经验进行调整,以满足在不同路况下的稳定运行;小车的位置需要根据黑线与车体的关系进行调整。因此在本项目中,对速度采取条件控制,对于舵机偏转采用基于偏差量的PID反馈控制。 为了使小车的控制更加精确,能对具体的路况。例如,大弯道,小弯道,连续S形弯道)作出更有针对性的调整,本项目通过专门的信号处理和识别模块来识别小车所处的状态,并根据经验条件对不同情况下的算法组合进行调配与组合,使得小车根据不同情况智能选择行驶策略的功能。位置控制:根据状态选择PI,PD,PID 信息处理 传感器模块 状态识别与判速度控制:根据条件选择加速,减速,刹车 赛道记忆 被控对象 4.2 PID控制算法 PID算法原理 :比例,积分,微分(PID)是建立在经典控制理论基础上的一种控制策略。PID控制器作为最早实用化的控制器,已经有五十多年的历史,现在仍然是最广泛的工业控制器。PID控制器最大的特点是简单易懂,使用中不需要精确的系统模型等先决条件,因而成为应用最广泛的控制器。 系统偏差信号为e(t)=r(t)-y(t)。在PID调节作用下,控制器对误差信号e(t)分别进行比例(P),积分(I),微分运算(D),其结果的加权和构成系统的控制信号u(t),送给被控对象加以控制。 PID控制器的数学描述为式4-1 式4-1 式中,Kp为比例系数,Ki为积分时间常数,Kd为微分时间常数。 比例环节的主要作用是:Kp的值增大时,系统的响应速度加快,闭环系统响应的幅值增加。当达到某个Kp值,系统将趋于不稳定。 当增加积分时间常数Ki的值时,系统超调量减小,而系统的响应速度将变慢。因此,积分环节的主要作用是消除系统的稳态误差,其作用的强弱取决于积分时间常数Ki的大小。 4.3模糊推理方式模糊控制以模糊集合理论为基础,而模糊集合靠隶属度函数来描述。采用的模糊推理方式为IF A AND B THEN C(以A表示误差,用B表示误差变化率,而C则是控制量。)模糊控制步骤:精确量输入模糊化规则推理反模糊精确量输出现在稍稍介绍一下我组的系统,我的系统是基于Freescale公司MC9S12DG128的一个随动系统,要求能跟随目标的变化而作相应的角度,速度的变化。D系列的产品具有模糊推理的功能,有模糊指令集,而且有模糊机例程。而我组正是在该模糊机例程的基础上做的模糊控制。第五章 智能车硬件制作在整个系统中,最重要的是硬件和软件部分。硬件是整个系统的躯体,是整个系统的核心部分。考虑到自身的情况,我们决定自己制作电路板,将我们说需要用的外围电路都集中在一块电路板上。5.1片机电路的设计5.1.1控制器电路单片是是整个电路的核心部分,它能不能正常的工作决定了整个系统的是否能正常运行。单片机的电路图5.1所示图5.1 单片机电路5.1.2 时钟电路时钟电路在单片机系统硬件设计中往往是一个关键的部分,因为晶振体的工作频率很高,设计不当很有可能使其工作时的产生的高频信号对其他电路造成干扰,尤其是对模拟部分如AD转换输入信号的干扰;或者甚至晶振体不工作,导致整个单片机系统无法运行。MC9S12系列单片机的时钟输入接口在其46(EXTAL)和47(XTAL)引脚上(112引脚封装),通常是接一个16M的晶振体。外部振荡器的连接分为串联型,并联型和使用外部有源振荡器3种方式。最后一种的稳定性比较高,MC9S12系列单片机专门设计了外部振荡器的连接设置引脚PE7,要求我们在使用串联型电路时将该引角置高,在使用并联型和外部有源振荡器电路时将该引脚置低。本系统采用的是第二种连接方式,也就是并联连接方式,其中的电容C1、C2称为负载电容,它们分别与晶振体连接后接地,为的是削减谐波对电路的稳定性的影响,也就是滤波,取值为22pF;R1是为了保证起振,大小通常取1M。5.1.3 S12单片机滤波电路设计滤波电路常用于滤去电压中的纹波,保证系统供电的稳定性。它一般由电抗元件组成,如在负载电阻两端并联电容器C,或与负载串联电感器L,以及由电容、电感组成而成的各种复式滤波电路。S12系列单片机内部带有电压调整器,它主要负责为单片机的内部提供不同的电压,其中为锁相环电路提供的电压为2.5V,因此其电源端VDDPLL(43引脚)与XFC(44引脚)需要外部连接滤波电路才能保证其正常运行。同样Freescale也要求我们为S12单片机的VDD1(13引脚)VDD2(65引脚)外接滤波电容。当然单片机的其他的各个外接电源端也一定要有滤波电路。5.1.4 S12单片机复位电路的设计为了降低硬件电路设计的复杂度,本系统未引入专门的复位芯片,而是采用了一种简单的复位电路。该电路不具备低压复位保护功能并且使用电容的充电模仿复位芯片的复位信号。因为在复位按键松开,系统上电时,电容开始充电,电压不能突变只能缓慢上升,所以可以保持一段时间的低电平。经试验该复位电路可以满足系统对稳定性的要求。5.1.5 BDM接口设计 下图为具体的电路设计方案: 图5.2 BDM接口电路BDM接口是S12单片机用来连接BDM调试器的,BDM接头通常设计为6针的双排插头,其中4个引脚分别为VDD、RESET、GND和BKGD(BACKGROUND),另外2个针脚为空。从图中可以看到,单片机的BKGD引脚还与VCC 串接了一个3.3K的电阻,这是单片机的运行模式决定的。图中的R2大小为51欧,为的是充分保护单片机的该引角。5.2 电源管理模块的电路设计电源是一个系统正常工作的基础,因此电源的设计至关重要。小车供电采用组委会提供的7.2V 2000mAh Ni-cd电池,本系统很多模块还需要其它的电压,电源系统结构如图5.3所示:图5.3 电源系统结构5.2.1 电源管理电路图 电源管理部分的设计原则是利用LM2940CT-5V为S12单片机、图像采集模 块、伺服电机和速度检测模块提供稳定的5V电压,以保证各个模块能够正常稳 定的工作。驱动电机获得的电压越高,它的转速就越快。在整个系统中,电池 的电压是最高的,所以将电池与驱动电机直接相连,使驱动电机获得电池相同 的电压。 稳压芯片LM2940的电路图如图5.4所示:图 5.4 LM2940 电路图5.2.2 LM2940-5 的相关资料LM2940-5 电源芯片能够在 5.5V-25V 之间稳定工作。组委会提供的是 7.2V的电池,达不到该电源芯片的上限值,较低的工作电压保证了电池的电压较低和电池电压被驱动电机强行拉低以后保证系统能够正常的工作,所以用LM2940-5能够保证系统正常、稳定的工作。LM2940-5还有一个特点是通过的电流较大,这也是系统稳定的有一个保障。5.3 速度采集模块的电路设计为了使得智能车能够平稳地沿着道路行驶,需要进行车速控制,使赛车在急转弯时速度不至过快而冲出赛道。通过控制驱动电机上的平均电压可以控制车速,但是如果开环控制电机转速,会受很多因素影响,例如电池电压、电机传动摩擦力、道路摩擦力和前轮转向角度等。这些因素会造成智能车运行不稳定。通过速度检测,对车模速度进行闭环控制,即可消除上述各种因素的影响,使得车模运行得更稳定。5.3.1编码器工作原理编码器是一种通过光电转换将输出轴上的机械几何位移转换成脉冲或数字量的传感器件,也有人叫它为轴编码器.这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成.光栅盘是在一定直径的原板上等分地开通若干个长方形孔.由于光电码盘与电机同轴,电机转动时,会带动光栅盘旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,其原理示意图如图4-8所示;通过计算每秒光电编码器输出的脉冲个数就能反映当前电动机的转速.此外,为判断旋转方向,码盘还可提供相位差90o的两路脉冲信号。编码器可以根据检测原理分为光学式、磁式、感应式和电容式编码器,还可以根据刻度方法及信号输出形式,分为增量式、绝对式以及混合式三种。在智能车系统中,我们就是使用了一种增量式编码器,增量式编码器是直接利用观点转换原理输出三组方波脉冲A、B和Z相。它的优点是原理构造简单,机械平均寿命在几万小时以上,抗干扰能力强,精度高,可靠性高,适合于长距离传输;其缺点是无法输出轴转动的绝对位置信息,非常适合速度测试。图5.5 编码器原理图5.3.2 编码器的使用 编码器的电源分别与电路板上的+5V和0V相接,信号线与单片机的PP7引脚相连,就够成了速度采集模块的电路图。编码器的安装已在第三章中说明,并带有图片,在此不再叙述。智能车在行进的时候带动编码器一起转动,在转动过程中轴编码器的信号线不断地向外输出脉冲。MCU中的脉冲累加器工作在脉冲累加的模式下,每检测到了一个脉冲,脉冲累加计算器就加一。由于我们采用了级联的方式,组成了一个16位的计数器,所以绝对不会产生溢出的情况。我们所使用的编码器在工作的时候,编码器轴转三周就会产生500个脉冲,编码器的齿轮与驱动电机的相同,传动比都为18/76。在程序上我们规定4ms读取一次脉冲累加器的值,根据这个值可以计算出速度。反过来,我们也可以对智能车的最大速度和最小速度进行设定等,保证智能车能顺利的跑完全程,避免冲出跑道导致比赛失败。5.4 串口部分的硬件设计5.4.1 串行通信原理单片机在应用中往往要与其他的设备通讯,最常见的通讯方式就是串行通讯。S12 单片机内置了2个SCI串行通讯模块。单片机在与PC 的通讯中,由于电脑的串口信号线为正负逻辑关系,即逻辑“1”为-5 -15V,逻辑“0”为+5+15V,这与单片机的逻辑信号电压定义不同,这样就需要对两者之间信号进行电平转换。最简单的电平转换方法可以利用几个三极管,但是出于稳定性和可靠性的考虑,一般使用电平转换专用芯片MAX232。5.4.2 MAX232简介Max232产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。下图4-12为MAX232的内部结构图和外部接线图:图5.6 MAX232的内部结构图和外部接线 5.4.3 MAX232电路图 图5.7 MAX23电路图第六章 设计与调试6.1 开发工具智能车的开发使用组委会提供的CodeWarrior 4.6进行软件的编写、调试,使用串口将图像数据发送到PC机中,在PC中进行显示。 6.1.1 编译环境在制作过程中,运行的编译环境为 CodeWarrior 4.6 。CodeWarrior4.6是Metrowerks公司一套比较著名的集成开发环境,具有直观,易用的优点。CodeWarrior4.6包括项目管理,代码生成,语法敏感编辑器等,具有快速下载,单步调控的特点,同时可以融合C语言和汇编语言的混合编程。CodeWarrior4.6具有在线调试,单步运行程序的功能,同时能够观察到主程序中定义的所有的变量的值。这一功能在进行程序错误检查和改正时起到了至关重要的作用。图6.1即为CodeWarrior4.6的编程界面:图6.1 CodeWarrior4.6编程界面6.1.2 调试环境调试下载工具应用的是由清华大学飞思卡尔研究中心开发的BDM调试器,支持在线仿真调试。 软件的调试,环境如图6.2所示: 图6.2 调试环境6.1.3 智能车图像调试工具智能车的摄像头拍摄到的图片是一些数据存放在单片机中的,我们将这些数据通过串口传送到了上位机中,利用上位机中的一个图像显示软件,将图像显示出来,这样对于摄像头拍摄的距离、清晰度等都能非常直观的反映出来。上位机图像显示软件如图6.3所示:图6.3 智能车图像调试软件6.2 智能车图像采集程序图像的颜色不一样,其灰度值也不一样。图像的灰度值越大,图像的点越亮;图像的灰度值越小,其点越暗,也就是越黑。在整个智能车行进的过程中,我们所关注的也是点到底是黑点还是白点,也就是这个点的灰度值。所以在图像采集的时候,我们只需要将图像的灰度信息保存下来就完成了图像信息采集。 6.2.1 智能车图像采集策略 摄像头所采集到的图像数据是一行一行、一个点一个点地按节拍向单片机传输,要想精确判断任意时刻像素点的位置,就必须抓住每一个节拍。智能车系统中,图像传感器采用的是11.0592M晶振,PCLK输出达11.0592M,即使单片机超频到极限40M,但是一条C语言按多条汇编指令来执行,所以单片机的速度很难跟上PCLK的时钟节拍,所以该线未接入单片机。对此采取的方法是在HREF行信号上升沿(高电平时数据有效)之后,循环读取Y口的数据,一次读取算一个像素点,两次读取之间不加任何延时,这样每一行大约可以采集到60100个点,而且不必对每一行数据都采集,程序中每隔4行采集一行数据,总共采集70行。在只扫描60cm快的情况下,对于判断黑线轨迹,这个分辨率已经足够了。这里指的是靠近摄像头的区域,离摄像头越远的地方,拍摄的图像的宽度就越大。摄像头拍摄的图像如图6.4和图6.5所示:图6.4 起跑线和直道图像图6.5 弯道图像6.2.2 图像采集程序void interrupt 56 PORTP_ISR(void) DisableInterrupts; /关中断if(PIFP_PIFP4=0) else if(PIFP_PIFP6=0) PIFP=0xff; /清除标志位 6.3 智能车图像处理程序调试过程:6.3.1 智能车图像处理程序策略智能车所取得的一切关于赛道的信息,都是通过摄像头获取。所以在摄像头的图像数据中,准确的找出引导线信息,及时准确的分辨出图片中,是否含有起跑线,“十”交叉线,小“S”道等,因为这些线都要进行单独的处理。以最少的时间准确的检测出赛道中的有用信息是我们的目的和追求。 智能车所拍摄到的直道、弯道、起跑线、“十”交叉线和小“S”道分别如图6-5到6-9所示。黑色的引导线在赛道上是连续的,我们从列的形式看的图像中的黑点也应该是连续的。根据以上信息,我们采取的跟踪边沿的方法进行检测引导线。在二维图像数组中,首先找到第一个黑点,这第一个黑点是一个至关重要的点,为了防止找点的错误,我们还对边上的几个点几个点进行了验证,在保证其正确性。后面的点就在这个点的附近进行寻找,直到找到最后一行,找点程序结束。如果在这一个黑点的附近没有找到相应的黑点,就判断这个二维数组中的这一列没有黑点。为了防止这种情况是由于干扰引起的,我们就跳过这一行,继续在上一个确定下来的黑点周围寻找黑点,只是寻找黑点的范围扩大了。如果多次没有找到黑点,此时就有可能是弯道,在以后的数据中没有黑点。此时,放弃后面点的寻找,找点程序结束。在摄像头拍出来的数据中,相邻两行的图像数据几乎没有变化,如果在每一行中都去找黑点,就会增加找点的时间,并且找出来的点含的信息量也较少,所以就显得没有什么价值。我们在找点的时候采用隔行找点的方法,进一步的节省找点的时间。 6.3.2 智能车找点程序interrupt VSYNC_ISR(void) /发生场中断Vs Delay(2800); if(+t_count=50) /1秒闪烁场中断一次14MS t_count=0; PORTK_BIT3=!PORTK_BIT3; if(flag_check=0) if(+check_count=5) /5s flag_check=1; row=0; /采样的变量初始化 pass=0; p=&imageJ_ROWJ_LINE; PIEH|=0x01; /使能行中断void interrupt HERF (void) unsigned char j,i=0,kkk; DisableInterrupts; /1行47US /*添加近疏 远密模块 */ if(+pass)drop_line)/40*7=280 /7行45*7=315US 实测365 地二行781-365=416,地三行480,四行416; pass = 0; Delay(43); for(j=0;j=0) kp_offset=85; view=(offset+ki*(temp3-temp1)*(kp+kp_offset)/CENTER; turn=1555-view; else kp_offset=35; offset=-offset; view=(offset-ki*(temp3-temp1)*(kp+kp_offset)/CENTER; turn=1555+view; if(turn1680) turn=1680; if(turn0) PWMDTY0=180; PWME=0x81; else PWMDTY1=120; PWME=0x82; EnableInterrupts;6.6串口部分程序调试6.6.1 智能车系统中串口的功能在智能车系统中串口主要是一个辅助调试的功能,根据串口能与PC机通信的特点,我们可以把图像采集模块中采集的图像发送的PC机中显示出来,直观的观察所拍摄到的图像质量的好坏。串口通信的另外的一个作用就是将智能车系统中的速度调节的数据发送过来,利用我们自己编写的软件将PID速度调节用曲线的形式显示出来,加快PID参数调节的进度。在显示图片数据和PID速度调节的时候分开进行,增大了数据的可靠性,降低了程序的复杂性。 6.6.2 串口部分的程序void SciTx1(); /*-发射端程序-*/ SCI0CR2=0x0c; SCI0BDH=0x00; SCI0BDL=104; /波特率=19200 208; void SciTx() for(i=0;i50;i+) SciTx1(0); for(j=0;j50;j+) while(!(SCI0SR1&0x80); SCI0DRL=imaginij; void SciTx1(unsigned char text) /*clear flag*/ while (!(SCI0SR1&0x80); /* wait for output buffer empty */ SCI0DRL=text; 6.7开发与调试过程总结在开发与调试的过程中,我们遵循由易到难,由简到繁,循序渐进的过程。我们将具体过程分为以下三个阶段进行。 第一阶段:基本设计阶段 这一阶段的目标就是初步分析小车的整体框架,对系统进行模块划分。通过基本的硬软件设计,初步实现小车的行走与寻迹功能。在这一阶段中,我们重点解决了以下几个问题: (1)理论准备,重点是对单片机编译环境的熟悉。 (2)将小车系统划分为传感器,MCU及附属电路,电源供应及电机驱动三大模块 (3)根据大赛要求,初步设计制作实现上述各模块的功能。 (4)组装小车,测试小车的整机性能。 第二阶段:方案论证与实验阶段 在这一阶段中,主要是先提出对各种具体的设计方案,然后进行理论的论证与实验的验证,根据实验的结论对各种方案进行比较与分析,并结合设计要求确定设计方案。这一阶段包括以下几个方面: (1)传感器设计 在传感器型号的选用中,我们重点选择了ST168,ST188,GY043W进行测试,经反复实验,综合设计要求,最终选用了ST188。 在传感器的布局设计中,我们先后进行了一字形布局,M字形布局,活动式布局,在活动式布局的测试中,我们最终选用了喷泉形作为最终设计。 (2)电源管理的改进
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!