分享
安徽工业大学光电组安东1队技术报告-终极版8-14-10.pdf
下载文档

ID:3494913

大小:13.24MB

页数:72页

格式:PDF

时间:2024-05-16

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
安徽 工业大学 光电 安东 技术 报告 终极 14 10
第八届“飞思卡尔”杯全国大学生智能车竞赛技术报告学校:安徽工业大学队伍名称:安东 1 队参赛队员:李明亮安坤坤李翔带队教师:王彦方挺关于技术报告和研究论文使用授权的说明本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:李明亮安坤坤李翔带队老师签名:王彦方挺日 期:2013.8.8I摘 要本文以第八届“飞思卡尔”杯全国大学生智能汽车竞赛为背景,着重研究了两轮自平衡智能小车控制系统的的机械、软、硬件结构及设计开发过程。智能车核心控制器采用飞思卡尔公司的 MC9S12XS128MAA 高性能 16 位单片机,单片机开发平台为 CodeWarrior IDE 5.0 for XS128,车模采用大赛组委会统一规定的 D 车车模。本文介绍了两轮自平衡小车机械结构、控制系统的设计。其中机械结构的设计包括对车模的改装和设计,电路板、编码器、传感器的安装等;控制系统的设计包括硬件电路图的设计以及软件算法的设计。在整个系统中,由陀螺仪和加速度计对车模的倾角进行采集,并将采得的模拟量送给主控芯片,由主控芯片里的程序算法对车模的电机进行控制,从而保证车模的直立,另外利用线性CCD 对动态阈值算法提取黑线,速度方面采用两个 157 线增量式光电编码器来实时反馈脉冲,最后主控芯片 MC9S12XS128 综合线性 CCD 的路面信息和编码器采集的速度信息,利用 PID 算法实现电机的调速。经实际场地测试,该系统可以很好的适应大、小“S”弯,蛇形弯,“十”字交叉大回环,坡道等不同类型的赛道。关键词:线性 CCD,陀螺仪,加速度计,PID 算法II目录摘 要.I目录.II第一章 引言.11.1 两轮自平衡小车研究的意义.11.2 两轮自平衡小车的研究现状.11.2.1 国外研究现状.11.2.2 国内研究现状.21.2.3 国内外研究分析总结.31.2 智能车竞赛内容和主要研究.3第二章 总体方案设计.42.1 机械方面的总体设计.42.2 硬件方面的总体设计.42.3 软件方面的总体设计.4第三章 机械结构设计.53.1 车模的改装.53.2 各种传感器的安装.73.2.1 倾角传感器的安装.73.2.2 速度传感器的安装.73.2.3 线性 CCD 传感器的安装.83.3 直立车模重心的调整.93.4 小车支架的安装.103.5 PCB 板的安装.10第四章 硬件电路的设计.124.1 单片机最小系统.124.2 电源模块.124.3 电机驱动模块.144.4 倾角检测模块.154.4.1 加速度传感器.154.4.2 陀螺仪.164.5 速度检测模块.174.6 路径检测模块.194.6.1 环境光影响问题.194.6.2 输出信号放大.194.6.3 调整线性 CCD 的位置及焦距.204.7 CD4520 模块.224.8 无线模块.244.8.1 nRF24L01 无线模块.24III4.8.2 PT2272 无线遥控模块.254.9 拨码盘.27第五章 软件设计.295.1 系统程序框图.295.1.1 程序流程图.295.1.2 MC9S12XS128 资源配置.305.2 初始化程序设计.305.2.1 PLL 初始化程序.305.2.2ADC 初始化程序.315.2.3 PIT 初始化程序.325.2.4 SCI 初始化程序.325.2.5 PWM 初始化程序.335.2.6 SPI 初始化程序.335.3 直立控制算法.345.4 速度控制算法.375.5 方向控制算法.385.5.1 曝光时间自适应算法.385.5.2 曝光自适应程序流程图.395.5.3 提取黑线.425.5.4 方向控制.455.6 障碍物处理.465.6.1 障碍物检测.465.6.2 障碍物处理.485.7 起跑线检测.49第六章 调试平台及调试场地.506.1 调试平台.506.2 调试场地.51第七章 模型车的主要技术参数.52第八章 总结.53参考文献.54附录 A:自适应算法源代码.I附录 B:PCB 电路图.VIII附录 C:原理图.X1第一章 引言本章开始简要介绍了两轮小车的研究意义,阐述了目前国内外的研究发展现状。1.1 两轮自平衡小车研究的意义两轮自平衡小车的研究是在移动机器人研究的基础上发展起来的。移动机器人技术随着很多技术的进步而发展的,如计算机技术、微电子技术、软件技术等相关领域,机器人的发展水平可以说甚至代表着一个国家的综合实力。两轮自平衡小车是移动机器人的一种。它是自动控制理论与技术和动力学理论相结合的一个研究性课题,可以感知动态决策的功能。两轮自平衡小车车身中心位于车轮轴的上方,能保持平衡且可行走。其结构特殊能适应地形的变化,运动灵活,能在一些复杂环境里的工作。相比之下,两轮自平衡小车的优点有:1可以原地回转和任意转向,轨迹比之从前传统小车更灵活,也弥补了传统多轮布局等等缺点。2简化车体结构,把机器人做的比之前更小更轻。3减少占地面积,适用于在小面积或要求灵活的场合。4驱动功率较小,使电池能长时间供电。两轮自平衡小车运动方式相类似于倒立摆,也需要运动以保持车架竖直平衡,通过控制小车电机的转速来实现。因此,两轮自平衡小车是一个实现起来相对简单的复杂系统,检验各种控制方法处理能力的典型装置,受到了世界各国科学家的重视。1.2 两轮自平衡小车的研究现状1.2.1 国外研究现状近几年,两轮自平衡小车的研究在各国都得到了快速发展。已经有了实验用的原型机,同时也提出了多个可以控制平衡的方案,并验证了原型机的平衡性能和运动特性。改造后的两轮自平衡小车可以快速方便的应用到很多环境中,如承载,运输和代步等等。这里面也蕴含了巨大的商机,一些外国公司已经把这些作为商业化产品投放到市场。国外研究的自平衡小车较为先进的有:(1)自平衡两轮车 JOEJOE 是基于倒立摆的自平衡小车,由瑞士联邦技术学院工业电子实验室研究人员研究的,其控制芯片是 DSP 芯片。在车架上放置重物可以模拟驾驶者。第八届全国大学生智能汽车邀请赛技术报告2JOE 最大的运动速度可达 151m/s,超过了人的行走速度,并能在恶劣条件下运行。在设计中可以通过陀螺仪加上光电编码器测量数据,控制系统平衡一一利用的是状态反馈控制器。(2)SEGWAYHTSEGWAYHT 是一个更为实用且商业化版本的两轮机器人,由美国发明家DeanKarllen 研制,驾驶者站立在 Segway 小车上使之平衡前行且能在其身体摆动时也可以保持平衡,在各种环境下都可使用,其运动原理建立在动态稳定的基本原理(车子本身的平衡能力)上。整个系统有五个个陀螺仪、两个倾角传感器和一个电机编码器,车摆动时,利用这些判断车子的位姿,通过每秒 100 次频率检测车子重心以维持平衡前进。Segway 是来源于美国的医疗器材生产商强生公司所开发的一种自动平衡式动力轮椅iBOT,这个设计是为了照顾残疾人士,通过它可以实现自由上下楼梯:值得注意的是 SEGWAY 踏板位置低于两轮轴心的连线,系统有一定自稳定的特性,从而控制的难度有明显的降低。其运动特点类似于荡秋千,总是自然的向铅直的平衡位置回归。Segway 给我们带来了全新的驾驶体验。站在车上的驾驶者与车辆的总体纵轴作为参考线。当这条轴前倾时,Segway 的内置电机会产生往前的力量,一方面平衡了人与车往前倾倒的扭矩,一方面也产生让车辆前进的加速度,相反,当驾驶者的重心后倾时,也会产生向后的力量以达到平衡效果。因此,驾驶者只需改变自己身体的角度,前倾或后倾,Segway 就会根据倾斜方向来前进或后退,而速度与驾驶者的身体倾斜程度成正比。1.2.2 国内研究现状国内在自平衡小车的研究也获得很大成就。(1)2003 年,中国科学技术大学研究的两轮左右并行结构的自平衡两轮代步电动车。由嵌入式 CPU 控制,平衡传感器、速度和加速度传感器用来采集信息,通过一定控制算法,计算输出的 PWM 信号以控制伺服电机转矩,这样小车可以根据重心的偏移来前进、后退和转弯来保持平衡。(2)2004 年,台湾国立中央大学利用模糊控制实现了一个两轮小车的自动平衡控制。(3)2004 年,河南科技大学研制的平衡双轮电动机样机,其控制器是C8051F020 单片机,选取陀螺仪和倾角传感器检测转动角速率和倾角,通过控制算法得到的电压信号经 DA 然后驱动电机。(4)2005 年,北京邮电大学制作了自平衡双轮移动机器人,车体重心是在电机轴线下方,其机械结构是轮子上装有球形外壳,开始用遥控器控制运动车体会摆动。在控制系统升级后,用陀螺仪来监测小车姿态,经过控制算法来实现小车的自平衡。(5)2005 年,哈尔滨工程大学研制的类似双轮直立自平衡机器人,其控制核心选用 Cygnal 公司的 C8051 单片机以及人机交互上位机作。选用 AD 公司的反射式红外线距离传感器和双轴加速度传感器来检测车体斜角度。通过 PWM 技术第一章 引言3来控制直流电机转速。选用用超小超低功耗且高速无线收发 MODEM 来实现上位机与机器人的数据通信。人机交互选用液晶点阵、按键和方向摇杆。使用了其独特的控制算法来实现小车的平衡稳定控制。(6)2008 年,台湾逢甲大学自动工程系研制出了电动两轮平衡车。1.2.3 国内外研究分析总结通过上两节分别对国内和国外的研究分析可知,一般两轮自平衡小车的研究基础大多都是倒立摆模型,机器人有定质心及变质心两大分类,研究较多的是定质心的小车。一般选取陀螺仪、倾角传感器和加速度计等通过数据融合得到其位姿信息。有控制系统灵魂的软件设计,且需要较好的控制算法来保障系统性能。两轮自平衡小车是具有非线性的倒立摆系统,当前对两轮自平衡机器人的控制方法大致。可分为:经典控制方法、现代控制方法和智能控制方法。而本文主要采用经典 PID 控制算法对车模进行控制。1.2 智能车竞赛内容和主要研究全国大学生智能汽车竞赛已经成功举办了七届,比赛规模不断扩大、比赛成绩不断提高。该竞赛涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的大学生课外科技创意性比赛。通过比赛培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神。赛车采用飞思卡尔 16 位微控制器 MC9S12XS128 作为核心控制单元,由学生自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等,完成智能车工程制作及调试。为完成本系统,主要做得内容分为以下几部分:(1)对车模机械部分进行详细的分析和调整;(2)分析控制电路各模块的要求,计算出各模块器件的参数,设计完成硬件控制电路;(3)通过对数据进行分析,设计控制算法并编写控制程序。(1)对车模机械部分进行详细的分析和调整;(2)分析控制电路各模块的要求,计算出各模块器件的参数,设计完成硬件控制电路;(3)通过对数据进行分析,设计控制算法并编写控制程序。4第二章 总体方案设计赛车的性能主要由机械结构,硬件和软件三部分决定。机械结构是赛车能够行驶的根本,赛车有了一定的机械结构,再加上相应的硬件和软件,就构成了一个完整的系统。2.1 机械方面的总体设计智能车的机械调整作为最基础的部分,由于今年采用了新的车模,车模结构较复杂,可以改动的地方变得更加少,所以以往有关于调整车模的经验对于今年的比赛来说显得至关重要,所以我们首先仔细阅读了过往几年的技术报告作为参考,我们车模的机械调整主要分为:线性 CCD 的安装;编码器的安装;电路板的固定;陀螺仪和加速度计的安装;电池的安装。2.2 硬件方面的总体设计(1)主控使用飞思卡尔公司的 112 引脚的 MC9S12XS128 芯片,因为其引脚 IO多,可以控制的外围较多的外围设备;(2)电源模块,通过 7.2 伏的总电源根据不同的传感器供电需要,产生 5V、3.3V的供电电压;(3)电机驱动,由于电机电流较大,工作电流 3-5A,所以采用半桥芯片 BTS7970;(4)陀螺仪和加速度计、线性 CCD;(5)此外还有编码器等测速器件;(6)我们在调试阶段使用了无线模块,来保护小车。2.3 软件方面的总体设计(1)对各个模块进行初始化;(2)将整个程序分为每 5ms 为一个周期循环执行,其中 5ms 中分为每 1ms 中执行不同的任务;(3)在一个周期中的 1ms 为对编码器的脉冲进行计数以及对陀螺仪和加速度计的模拟量进行采集;(4)在一个周期中的 2ms 为对采集的角度进行融合并进行直立控制;(5)在一个周期中的 3ms 为对速度进行闭环控制;(6)在一个周期中的 4ms 为采集 CCD128 个像素点的数值;(7)在一个周期中的 5ms 为对车模的方向进行控制。5第三章 机械结构设计3.1 车模的改装今年光电组车模采用了竞赛 D 型车模,它是双后轮驱动。图3.1车模底盘(2)固定车模底盘和后轮支架:原有车模为了减轻后轮振动对于车体的影响,后轮的支架与底盘之间采用了活动连接方式。但是,为了保证车模直立车体稳定性,需要将原有车模地盘与后轮支架固定在一起。使用的方式就是利用热熔胶在后轮支架与底盘之间的缝隙处进行粘接,并且底盘的下表面和上表面均用 PCB 板进行固定。这样后轮与车体之间形成一个刚体,便于进行直立控制。如图 3.2、图 3.3 所示:第八届全国大学生智能汽车邀请赛技术报告6图3.2 车模底盘上表面图3.3 车模底盘下表面第三章 机械结构设计73.2 各种传感器的安装车模中的传感器包括有:速度传感器,车模角度传感器(陀螺仪、加速度计),以及线性 CCD。下面分别介绍这些传感器的安装。3.2.1 倾角传感器的安装车模倾角传感器包括陀螺仪和加速度计。将该模块固定在车模的质心附近,这样可以最大程度减少车模运行时前后振动对测量倾角的干扰。安装角度传感器电路板时应该尽量保证陀螺仪传感器水平安装。如果陀螺仪不能水平安装,则会影响车模过弯的性能,表现为左转右转加减速,对车模的行走很不利,因此倾角传感器的安装至关重要。如图 3.4 所示:图3.4 陀螺仪的安装位置3.2.2 速度传感器的安装速度传感器是安装在驱动电机输出轴上的光电编码器。由于光电编码器工第八届全国大学生智能汽车邀请赛技术报告8作时需要和电机传动齿轮耦合,为了避免对传动齿轮的正常工作造成影响,将其安装在从动轮上是比较合适的选择。当耦合得太紧时,由于增大了摩擦力,小车的速度会受到阻碍。而当耦合的太松时,可能会出现打滑的现象。最好的测试方式就是通过小车的空转来分辨,如果会有悦耳的碰撞声时,说明齿轮耦合过松。如果声音沉闷而且有迟滞时,说明耦合过紧。当确定好松紧度时,再在齿轮上加一些润滑油,使传动处于一个良好的工作环境中。如图3.5所示编码器安装位置:图3.5 编码器的安装位置3.2.3 线性 CCD 传感器的安装线性 CCD 在比赛中要能检测到赛道,它的倾角和架的高度就成了影响其检测的重要因素。如图 3.6 所示线性 CCD 安装位置:第三章 机械结构设计9图3.6 线性CCD的安装位置3.3 直立车模重心的调整车模直立控制的一个重要因素是:重心的高低。若重心越低,就越容易实现直立控制,反之就越难。车模的重量大部分来源于电池的重量,车模重心的位置(高低)也取决电池的安装位置,因此电池的安装位置十分关键。我们的电池安装位置如图 3.7 所示:图 3.7 电池的安装位置第八届全国大学生智能汽车邀请赛技术报告103.4 小车支架的安装为了让小车保持较好的平衡,我们将小车底盘的上侧钻通,并使碳素杆贯穿其中。两端用泡沫包裹,既可以保护小车的碰撞,又显得美观。如 3.8 图所示:图 3.8 小车支架安装图3.5 PCB 板的安装由于考虑到小车重心和平衡的问题,我们将 PCB 板放在小车的后方。同时,把电源和驱动部分设计在一块 PCB 板上,放在底盘下侧。单片机最小系统部分设计在另一块 PCB 板上,放在底盘上侧。如下图所示:第三章 机械结构设计11图 3.9电源和驱动部分的 PCB 板安装图 3.10单片机最小系统 PCB 板安装12第四章 硬件电路的设计4.1 单片机最小系统单片机最小系统为本智能车系统的核心。为了确保系统的稳定,我们购买了最小系统板。最小系统板如图 4.1 所示:图 4.1 MC9S12XS128MAA 112 脚最小系统板4.2 电源模块比赛要求智能车电源只能使用指定型号的 7.2V 2000mAh Ni-Cd 电池供电。在本智能车系统中,电源是其他模块工作的能量来源,电压不稳定、电量不足等都不能使系统稳定的运行,无法实现预期的功能,因而电源模块的搭建至关重要。第四章 硬件电路设计13本智能车系统使用到的电源有:+3.3V、+5V、+7.2V 三部分。+5V 电源需要由稳压芯片来实现,我们经过大量实验选型,最终我们采用集成三端稳压芯片。集成三端稳压器主要有两种:一种是线性稳压芯片,另外一种是开关型稳压芯片。线性稳压芯片输出纹波小,电路简单,但是功耗较大,效率较低,典型芯片为 LM7805;开关稳压芯片则功耗小,效率高,但是输出纹波大,电路复杂,典型芯片为 LM2596。对于单片机来说,单片机本身功耗低,但是它对电源要求相对较高。经过实验比对,LM2940 性能较优。该芯片为低压差线性稳压器件,LM2940 最大输出电流为 1A。最后我们选择 LM2940 作为单片机以及其他模块的主要供电稳压芯片。具体电源模块原理图如图 4.2 所示:图4.2 稳压5V电路原理图+3.3V 电源需要用 LM1117 芯片实现。LM1117 是一个低压差电压调节器系列。其压差在 1.2V 输出负载电流为 800mA 时为 1.2V。它与国家半导体的工业标准器件 LM317 有相同的管脚排列。LM1117 有可调电压的版本。通过 2 个外部电阻可实现 1.2513.8V 输出电压范围。另外还有 5 个固定电压输出1.8V、2.5V、2.85V、3.3V 和 5V 的型号。LM1117 提供电流限制和热保护。电路包含1 个齐纳调节的带隙参考电压以确保输出电压的精度在1%以内。具体电源模块原理图如图 4.3 所示:第八届全国大学生智能汽车邀请赛技术报告14图 4.3 稳压 3.3V 电路原理图4.3 电机驱动模块电机驱动芯片我们选用 BTS7970,它是一款针对电机驱动应用的完全集成的大电流半桥芯片。它是 NovalithICTM 系列的成员之一,它的一个封装中集成了一个P 通道场效应管在上桥臂和一个N 通道场效应管在下桥臂以及一个控制集成电路。由于集成在内驱动集成电路具有逻辑电平输入,与微控制器的连接变得非常简单,且该驱动集成电路还具有电流检测诊断、转换率调整、死区时间生成以及过热、过压、欠压、过流和短路保护。BTS7970 在较小的电路板空间占用的情况下为大电流保护的 PWM 电机驱动提供了一种成本优化的解决方案。本小车车模是双电机结构,因此我们用的驱动板共用 4 片 BTS7970,两两组成了一个 H 桥,共两个驱动桥,分别驱动左右电机。此芯片开关频率可以达到 25kHZ,可以很好地解决电机噪声大和发热的问题、同时驱动能力有了明显的提高,相应速度快。但是,电机变速时会使电源电压下降 10%左右,控制器等其他电路容易产生掉电危险,从而使整个电路系统瘫痪。为此我们在驱动芯片与单片机系统之间增加了隔离保护芯片 74LS244。具体的电路原理图如图 4.4所示:第四章 硬件电路设计15图 4.4 BTS7970 典型应用电路4.4 倾角检测模块倾角传感器由加速度传感器和陀螺仪组成。4.4.1 加速度传感器加速度传感器可以测量由地球引力作用或者物体运动所产生的加速度。竞赛规则规定如果车模使用加速度传感器必须使用飞思卡尔公司产生的加速度传感器。该系列的传感器采用了半导体表面微机械加工和集成电路技术,传感器体积小,重量轻。只需要测量其中一个方向上的加速度值,就可以计算出车模倾角,比如使用 Z 轴方向上的加速度信号。车模直立时,固定加速度器在 Z 轴水平方向,此时输出信号为零偏电压信号。当车模发生倾斜时,重力加速度 g 便会在 Z 轴方向形成加速度分量,从而引起该轴输出电压变化。如图 4.5 所示:第八届全国大学生智能汽车邀请赛技术报告16图4.5 车模运动引起加速度信号变化4.4.2 陀螺仪陀螺仪可以用来测量物体的旋转角速度。竞赛允许选用村田公司出品的ENC-03 系列的加速度传感器。它利用了旋转坐标系中的物体会受到科里奥利力的原理,在器件中利用压电陶瓷做成振动单元。当旋转器件时会改变振动频率从而反映出物体旋转的角速度。ENC-03 角速度传感器以及相关参考放大电路如图 4.6 所示:图4.6 角速度传感器以及参考放大电路第四章 硬件电路设计17由于陀螺仪输出的是车模的角速度,不会受到车体运动的影响,因此该信号中噪声很小。模块原理图如下:图 4.7 加速度计和陀螺仪模块原理图4.5 速度检测模块电机速度传感器使用了欧姆龙编码器。由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差 90 度相位差(相对于一个周波为 360 度),将 C、D 信号反向,叠加在 A、B 两相上,可增强稳定信号;另每转输出一个 Z 相脉冲以代表零位参考位。由于 A、B 两相相差 90 度,可通过比较 A 相在前还是 B 相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。编码器码盘的材料有玻璃、金属、塑料,玻璃码盘是在玻璃上沉积很薄的刻线,其热稳定性好,精度高,金属码盘直接以通和不通刻线,不易碎,但由于金属有一定的厚度,精度就有限制,其热稳定性就要比玻璃的差一个数量级,第八届全国大学生智能汽车邀请赛技术报告18塑料码盘是经济型的,其成本低,但精度、热稳定性、寿命均要差一些。分辨率编码器以每旋转 360 度提供多少的通或暗刻线称为分辨率,也称解析分度、或直接称多少线,一般在每转分度 510000 线。我们使用的是 157 线。其特点是易于接线的连接装置型。其内部原理图如下:图 4.8 编码器内部原理图由于光电管器件直接输出数字脉冲信号,因此可以直接将这些脉冲信号连接到单片机的脉冲计数器端口。但是 MC9S12XS128 的内部只有一个脉冲计数器,所以必须要外接一个外部的脉冲计数器,将 CD4520 级联后可以得到 8 位的脉冲计数器,如图 4.9 所示:图 4.9 CD4520 的 8 位脉冲计数器电路图第四章 硬件电路设计194.6 路径检测模块线性 CCD 传感器采集的信号好坏保证了小车能否平稳运行。我们使用的是TSL1401 线性 CCD。线性 CCD 通常将 CCD 内部电极分成数组,每组称为一相,并施加同样的时钟脉冲。所需相数由 CCD 芯片内部结构决定,结构相异的 CCD可满足不同场合的使用要求。线阵 CCD 有单沟道和双沟道之分,其光敏区是MOS 电容或光敏二极管结构,生产工艺相对较简单。它由光敏去阵列与移位寄存器扫描电路组成,特点是处理信息速度快,外围电路简单,易实现实时控制。4.6.1 环境光影响问题试验表明 TSL1401 线性 CCD 的输出信号和环境光线密切相关,在自然光条件比晚上灯光下 AO 引脚输出电压值高出很多,正对着光线比背着光线输出电压高,白炽灯光下比日光灯下输出电压高。因此,同一参数(曝光时间、镜头光圈)难以适应各种环境,在光线较弱环境下的参数在强光下会出现输出饱和,在较强光线下调节好的参数在弱光下输出电压过低,甚至处于截止状态。在智能车应用中,白天自然光环境和晚上灯光环境、正对光和背光、不同的比赛场地之间都不能采用相同的曝光参数。与输出电压密切相关的参数是曝光量,曝光量取决于 CCD 模块所采用的镜头光圈大小和程序所控制的曝光时间。智能车为适应各种运行环境,必须实时感知环境,并根据环境闭环调节曝光量,使得在不同环境中曝光量都处于一个合理的范围,这样才能保证在不同环境中CCD 输出电压在合理范围,以利于算法提取黑线信息。镜头相关参数一旦选定在智能车运行难以改变,曝光时间比较容易通过程序控制,因此比较容易实现的调整曝光量方法是通过软件调整曝光时间。曝光时间调整方法见“曝光时间自适应策略”一节。4.6.2 输出信号放大根据上一节所述,可以通过调整曝光时间来适应各种环境,在弱光环境增大曝光时间,在强光下减小曝光时间。但是曝光时间不能无限增大的,因为增大曝光时间势必降低采样率(每秒采样次数)采样率低控制周期就长,智能车反应就慢。根据历届摄像头车参赛经验,1 米的前瞻,3.5m/s 的速度情况下,控制周期不得高于 20ms(采样率不得低于 50Hz),否则智能车转向机构反应再快也无法很好跟随赛道而冲出赛道。控制周期不高于 20ms 就意味着曝光时间不能超过 20ms。试验时,我们将 TSL1401 线性 CCD 曝光时间调整到 20ms(采用周期 20ms),分别在强光、弱光、灯光不同环境进行采用,采样数据表明环境光线较弱时 CCD 输出信号较低,以致赛道黑线信息不够明显,晚上日光灯环境下输出信号电压值更低,几乎接近 0,根本无法辨别赛道信息!由于智能车制作和调试很大部分时间都是在晚上,因此必须在不降低采样率的情况下,增大晚上弱光环境下线性 CCD 的输出电压。要增大输出电压,简单有效的方法就是放大输出信号,我们可以采用运放来放大 AO 输出信号。实践表明增大运放能非常有第八届全国大学生智能汽车邀请赛技术报告20效的解决弱光时输出电压低问题,在晚上环境同样能达到 50Hz 的采样率,这是无运放的线性 CCD 无法达到的。为了能保证输出电压在合理范围(不饱和、不截止、能分辨赛道黑线),需要根据选定的镜头确定运放放大倍数。以下是线性 CCD 模块(镜头为无畸变镜头)中的运放电路图:图 4.10线性 CCD 模块运放电路图其中运放放大倍数 A=1+R5/R4,此电路中 A=11,也就是对 TSL1401 的AO 信号进行 11 倍放大。由于增加了运放,白天环境下的采样率可以调节到更高,甚至可以达到 100Hz。增加了运放也会带来一个问题,就是在全黑的环境(例如盖上镜头盖)下线性 CCD 的输出已经不再接近 0V,这里我们称全黑的环境对应的电压为暗电压,设计的 CCD 模块暗电压是 1V 左右。其实暗电压完全不影响上层软件提取赛道黑线,我们可以把这个暗电压当做信号中的直流分量,将采集的每个像素点的电压减去暗电压就可以了。4.6.3 调整线性 CCD 的位置及焦距调节面阵 CCD 或 CMOS 时可以采用视频采集卡或电视机观看图像信息,或者用来调节镜头焦距。目前还没有能显示线性传感器图像的采集卡。为了方便线性传感器,我们采用了调试软件 CCDView,单片机采集传感器数据,通过串口实时的发送到上位机 CCDView 软件,CCDView 将数据按照灰度条和曲线两种形式显示出来了,可以直接在 CCDView 中观看线性数据、调节镜头焦距、对传感器视场进行标定。以下是 CCDView 软件界面:第四章 硬件电路设计21图4.11CCDView 软件以下介绍以下,如何用 XS128系统采集数据,并在电脑上显示数据。1,正确地连接线性 CCD 到 XS128系统板(连接关系见下图)2,将系统板串口连接到电脑串口3,给单片机供电,将程序烧写到单片机,运行程序4,打开电脑上的 CCDView,配置串口号和波特率,点击开始。图 4.12CCD 连接到 XS128 图第八届全国大学生智能汽车邀请赛技术报告22下面是采用例程对应的连接方法。如果按照上述步骤操作后仍然不能显示,可以先暂时关闭 CCDView 软件,打开串口大师之类的串口调试软件,按下图所示配置串口参数,打开串口看看能不能收到下图所示这样的数据流。如不能收到或收到乱码则说明串口连接或者通信协议有问题,请仔细检查后再试。常见问题如下:1,USB 转 TTL 和 USB 转 RS232 用混了,系统板于 USB 串口接口类型要一致。2,串口波特率不一致。3,串口连接错误。4,通信协议错误。图 4.13串口调试软件4.7 CD4520 模块CD4520/CC4520 为二进制加计数器,由两个相同的内同步 4 级计数器构成。计数器级为 D 型触发器,具有内部可交换 CP 和 EN 线,用于在时钟上升沿或下降沿加计数。在单个单元运算中,EN 输入保持高电平,且在 CP 上升沿进位。CR 线为高电平时,计数器清零。计数器在脉动模式可级联,通过将 Q3 连接至下计数器的 EN 输入端可实现级联,同时后者的 CP 输入保持低电平。测速信号利用一片 CD4520 计数器芯片,将编码器脉冲累加,单片机通过一组 8 位 I/O口定时读取 CD4520 内累计的数据,读取后将 CD4520 清零,准备下次计数。第四章 硬件电路设计23表 4.1 引脚功能图图 4.14CD4520 引脚分布图表 4.2CD4520 真值表功能表CLOCKENABLERESETACTION上升沿10加计数0下降沿0加计数下降沿X0不变X上升沿0不变上升沿00不变1下降沿0不变XX1Q0Q4=0引脚符号功能1 9CLOCK时钟输入端7 15RESET消除端2 10ENABLE计数允许控制端3 4 5 6Q1A-Q4A计数输出端11 12 13 14Q1B-Q4B计数输出端8VSS地16VDD电源正级第八届全国大学生智能汽车邀请赛技术报告244.8 无线模块为了调试方便以及保证车模的安全性,我们使用了两种无线模块,一种是nRF24L01 无线模块,另一种是 PT2272 无线遥控模块。4.8.1 nRF24L01 无线模块将一个 nRF24L01 装在车模上,以便于车模将行驶过程中的一些数据及时发送给作为接收的 nRF24L01,然后通过将接收到数据通过串口传送到上位机进行显示,便于了解车模的运行状况。该模块仅作为在调试阶段采用的一种调试手段在正式比赛中,将停止使用。图 4.15车模上的 nRF24L01第四章 硬件电路设计25图 4.16 接收 nRF24L01 及串口传输4.8.2 PT2272 无线遥控模块1、遥控器遥控器由人拿着,当发现车模倒下或者冲出跑道时,及时按下遥控器上的按键,便于车模立即停下,防止发生碰撞,有利于保护车模,该模块仅作为在调试阶段采用的一种保护措施,在正式比赛中,将停止使用。图 4.17 遥控器实物图第八届全国大学生智能汽车邀请赛技术报告262、解码接收模块解码接收模块安装在车模上,主要接收并解码上述遥控器发送的编码信息,然后产生高电平,当单片机检测到高电平时,立即停止 PWM 输出,从而停止电机的工作,达到保护车模的目的,该模块仅作为在调试阶段采用的一种保护措施,在正式比赛中,将停止使用。图 4.19PT2272 接收模块图 4.20 安装在车模上的 PT2272 模块第四章 硬件电路设计27表 4.3 脚位及使用说明脚位名称功能说明1VT输出状态指示2D3数据输出3D2数据输出4D1数据输出5D0数据输出65V电源正极7GND电源负极8ANT接天线端3、特点该接收模块性能优良,采用了数字程序技术,具有抗干扰性强,性能稳定,高可靠性,无方向性,使用寿命长,采用了日本原状进口芯片,高稳定性,功耗低,同类遥控器不会有任何干扰乱码现象,无线接收发射信号,遥控距离远,可穿墙,无方向性。超再生接收模块采用 LC 振荡电路,内含放大整形,输出的数据信号为解码后的高电平信号,使用极为方便,并且价格低廉,所以被广泛使用。带四路解码输出(同时也可改为六路点动或互锁输出),使用方便;频点调试容易。接收模块有较宽的接收带宽,一般为10MHz,一般调在 315MHz 或433.92MHZ(如有特殊要求可调整频率,频率的调整范围为266MHz433MHz。)。接收模块一般采用 DC5V 供电,如有特殊要求可调整电压范围。4.9 拨码盘我们使用的是 8 位拨码盘来调节小车的速度,方便更好的控制小车。一端接地一端接引脚,并在接地的位置加上排阻。如图所示:图 4.21拨码开关电路图第八届全国大学生智能汽车邀请赛技术报告28安装于单片机 PCB 板上,如下图:图 4.22拨码盘安装位置图29第五章 软件设计5.1 系统程序框图5.1.1 程序流程图第八届大学生智能汽车邀请赛技术报告305.1.2 MC9S12XS128 资源配置1)毫秒定时中断:PIT硬件模块:PIT0中短周期:Period:1ms 触发事件:Event:Interrupt2)电机 PWM 输出控制:PWM硬件模块:PWM1,PWM3,PWM5,PWM7输出频率:Frequence:10Khz输出模式:级联输出死区时间:Dead Time:03)ADC 采集通道:ADC硬件模块:ATD0-CCD1,ATD1-Gyro,ATD2-Acceler,ATD3-CCD2转换分辨率:Resolution:12bit and 8bit4)电机测速脉冲计数器:PT0硬件模块:PT0计数范围:16bit5)电机测速脉冲计数器:CD4520硬件模块:CD4520计数范围:16bit6)监控 UART 串口硬件模块 SCI0通讯速率:Baud:9600 and 1152005.2 初始化程序设计5.2.1 PLL 初始化程序该初始化函数主要是对锁相环 PLL 进行相应的配置,将总线频率增加到64M,在运行稳定的情况下,提高单片机的处理速度。void PLL_Init(void)/PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)/BUS CLOCK=64M总线是 64M 的;CLKSEL=0X00;/disengage PLL to systemPLLCTL_PLLON=1;/turn on PLLSYNR=0 xc0|0 x07;REFDV=0 x80|0 x01;POSTDIV=0 x00;/pllclock=2*osc*(1+SYNR)/(1+REFDV)=128MHz;_asm(nop);/BUS CLOCK=64M_asm(nop);第五章 软件设计31while(!(CRGFLG_LOCK=1);/when pll is steady,then useit;CLKSEL_PLLSEL=1;/engage PLL to system;5.2.2ADC 初始化程序此程序对单片机的 ADC 模块进行了两种初始化配置,主要是在不同的精度要求下,提高 ADC 转化的速度,其中 AD_CCD_Init()函数是将 ADC 寄存器配置成单通道 8 位采样精度,便于在 1ms 中断程序中能将 CCD 的 128 个像素点采集完成;而 AD_GYRO_ACC_Init()函数是将 ADC 寄存器配置成多通道 12 位采样精度循环采集的模式,由于采集的数据量少,所以高精度情况下能够在 1ms之内将陀螺仪和加速度计的模拟量采集完成,而且可以根据高精度的数据对车模的直立进行更优的控制。voidAD_CCD_Init(void)ATD0DIEN=0X00;/禁止数字输入ATD0CTL0=0X00;ATD0CTL1=0X00;/0000 0000 无外部触发,8 位精度,不放电ATD0CTL2=0X40;/0100 0000 标志位自动清零,在停止模式下,AD 转换继续,禁止外部触发,禁止比较中断ATD0CTL3=0X88;/1000 1000 右对齐,转换序列 1,非 FIFO 模式ATD0CTL4=0 x03;/0000 0011 采样时间为 4 个 AD 时钟周期 PRS=3,ATDClock=8MHzATD0CTL5=0X20;/0110 0011 允许特殊通道,AD 不连续转换,通道 3voidAD_GYRO_ACC_Init(void)ATD0DIEN=0X00;/禁止数字输入ATD0CTL0=0X02;/从通道 0

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开