![河海海声队技术报告_第1页](http://file4.renrendoc.com/view/a8d9fb374dbe7acfc2865fd8dd53b93c/a8d9fb374dbe7acfc2865fd8dd53b93c1.gif)
![河海海声队技术报告_第2页](http://file4.renrendoc.com/view/a8d9fb374dbe7acfc2865fd8dd53b93c/a8d9fb374dbe7acfc2865fd8dd53b93c2.gif)
![河海海声队技术报告_第3页](http://file4.renrendoc.com/view/a8d9fb374dbe7acfc2865fd8dd53b93c/a8d9fb374dbe7acfc2865fd8dd53b93c3.gif)
![河海海声队技术报告_第4页](http://file4.renrendoc.com/view/a8d9fb374dbe7acfc2865fd8dd53b93c/a8d9fb374dbe7acfc2865fd8dd53b93c4.gif)
![河海海声队技术报告_第5页](http://file4.renrendoc.com/view/a8d9fb374dbe7acfc2865fd8dd53b93c/a8d9fb374dbe7acfc2865fd8dd53b93c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关于技术和研究使用的说明本人完全了解第四届“飞思”杯大学生智能汽车邀请赛关保留、使用技术会和飞思和研究的规定,即:参赛作品著作权归参赛者本人,比赛组委半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术以及参赛模型车的集中。、图像资料,并将相关内容编纂收录在参赛队员签名:孟东阳才带队教师签名:日期:2010/8/10摘要本文详细介绍了河海大学常州校区河海海声队队员们在准备第四届Freescale智能车大赛过程中的工作成果。智能车的硬件采用带MC9S12XS128处理器的S12环境,为CodeWarrior IDE 4.7开发环境,车模采用大赛组委会提供的1:16 的仿真车模。文中介绍了
2、智能小车控制系统的软硬件结构和开发流程。为了提高小车特性,对系统进行了创造性的优化:其一,对转向系统进行了竖排改进。其二,硬件上采用激光传感器的方案,上优化算法、弯道预判、模糊算法。其三,充分利用S12 单片机现有模块进行编程,同时无线串口、拨码开关、状态指示灯、蜂鸣器方便了算法调试。应当特别是在调试过程中为了防止发生意外冲出跑道造成车体撞击损坏利用无线串口制成【1】。,能够很方便第控制的运行,防止发生意外,很好地保护关键字:智能车MC9S12XS128 单片机 激光传感器 路径识别目录引言6概述6系统整体简介6系统总体方案设计7智能车系统7智能车自动寻径基本原理7第一章1.11.2第二章2.
3、12.22.3第三章开发简介8系统硬件方案设计9硬件电路整体架构设计9MC9S12XS128 最小系统模块设计10电源管理模块设计10舵机控制电路设计12速度及加速度传感器设计12电机驱动模块设计13激光发射与接收电路设计13第四章 系统总体布局和机械结构优化154.1 概述15系统布局优化15激光管的布局与安装15编的安装16机械结构优化17降低车身高度17调节差速器18改装舵机18系统方案设计19激光管路径识别状态分析19赛道标志识别21第五章5.15.2第六章 开发工具、制作、安装、调试过程说明22工程的创建22现场调试23模型车主要技术参数说明24第七章 总结257.
4、1 本车特色257.2 系统存在. 257.3 改进方向25参考文献26附录 AC 语言源程序27第一章 引言1.1概述现代科技的飞速发展使人们对于智能化的要求越来越高,而智能化在汽车产业上应用的最典型例子就是行业的发展。汽车智能化程度则被看作室衡量汽车现代化水平的重要标志。第五届“飞思”杯大学生智能汽车竞赛就是在这样一个背景下指定智能车车模、MC9S12XS128 处理器、7.2V举行的,按照比赛规则,可充电电池电机和舵机。参赛队伍需要学习并应用开发工具Codewarrior 进行开发和调试。大赛的综合性很强,涵盖了控制、模糊识别、传感器、电子、电气、计算机和机械传动等多个学科交叉的科技创意
5、比赛。参赛的队员需要在了解上述多学科知识的基础上,利用 Codewarrior编程控制智能车对路径信息进行和处理,识别当前路径状况,进而控制舵机转相应的角度,驱动电机以合适的速度在跑道上行进。1.2 系统整体简介本队制作的智能车以 16 位单片机 MC9S12XS128 为控制系统,利用激光传感器路径信息,经过 MCU 处理,识别当前路径状况,做出判断决策,从而给出相应的信号,经过 BTS7970 驱动直流电机以合适的速度行驶,同时,控制舵机转出相应的角度。本文先从总体上介绍了智能车的设计和方案论证,然后分别从硬件电路、系统、机械结构等方面的设计进行论述,重点介绍了的选取和路径识别的方法,坡道
6、识别方案比较、坡道的滤波,转向控制算法,速度控制方案比较,速度运行策略等,并描述了智能车的制作和调试过程【14】。第二章 系统总体方案设计2.1 智能车系统的控制系统包括电源管理模块、MCU 模块、路径识别模块、电机驱动模块、舵机控制模块、转速测量模块、人机界面模块、无线串口传送模块等。在整个系统中,由电源管理模块实现对其他各模块的电源管理。其中,对单片机、测速电路、无线串口,人机电路提供 5V 电压,对舵机提供 6.5V 电压,对激光管提供 3.3V 电压【2】。2.2 智能车自动寻径基本原理如下图所示,智能车道路检测模块则采用激光管传感器寻迹方案。即道路检测电路由 6 对光电发送与接收管组
7、成。由于赛道中存在轨迹指示黑线,落在黑线区域内的光电接收管接收到反射的光线的强度与白色的赛道不同,进而在光电接收管两端产生不同的电压值,由此判断行车的方向。道路检测模块会将当前到的一组电压值传递给控制单元模块。转速测量模块(图中车辆运行参数模块部分)则安装在车尾部,它每个周期反馈一次模型车行驶过程中的瞬时速度。测量出的瞬时速度将输送到单片机(控制单元模块)中,以帮助分析确定模型车与给定速度进行对比通过算法来确定下一步的速度、转角等。进而由执行机构对智能车进行控制,从而控制智能车的运行状况使它稳定快速地在道运行【13】。图 2.1 智能车自动寻径原理2.3 开发“飞思简介”杯智能车竞赛的开发为
8、MetroWorks 公司的 CodeWarrior 4.6 是 MetroWork 公司提供的专门面向 Freescall 的所有 MCU 与 DSP 嵌入式应用开发的工具。其中包括集成开发环境 IDE,处理器,全仿真,可视化参数显示工具,器及调试器。在用户源程序编译生成 abs 文件之后,可以借助 Warrior 4.6 自带的hivave.exe 进行调试工作,如监视器的状态,实时查看源程序的变化等。第三章 系统硬件方案设计在这一章中将详细阐述每一部分硬件电路的原理和设计实现方法。3.1硬件电路整体架构设计图 3-1硬件电路整体架构图在跑道上流畅稳定地高速飞驰离不开精确稳定的硬件电路的保
9、障。而由于各个模块的性能和要求不同,因此需要有针对性地进行硬件设计。对于路径信息和控制处理要求比较高。因此在对于各个模块进行分开设计的同时还要考虑其对于整个系统的影响【3】。依据的运行策略方案,最终设计实现了如图 2-1 所示的十大硬件电路模块:MC9S12XS128 最小系统模块、电源管理模块、方向舵机控制模块、传感器舵机控制模块、速度传感器控制模块、电机驱动模块、激光发射与接收模块、辅助激光发射与接收模块、加速度传感器模块。下面将分别对这十大硬件功能模块进行详细的功能阐述和原理实现分析。3.2 MC9S12XS128 最小系统模块设计为了尽量避免在焊接 MC9S12XS128 单片机过程出
10、现问题以及整个硬件电路板而造成单片机的损坏,选用了现成的最小系统板作为的MCU。它包含了单片机的时钟和复位电路,串口及RS232 电路并将所有IO 口引出,尺寸为 49mm*52mm。3.3 电源管理模块设计稳定可靠的硬件系统,离不开精确而稳定的电源系统。整个系统有多路电源:7.2V、6V、5V 等。7.2V 电压可以由电池直接供给,电池直接接到电机驱动模块。6V 为俩个舵机供电,5V 为单片机最小系统模块、激光发射与接收电路、速度及加速度传感器模块和辅助调试模块供电。整个电源部分如图 2-2 所示。图 3-2 电源管理模块示意图由于单片机对于电压的要求比较高,而且为了避免由于电源故障引起单片
11、机的损坏。所以利用一块 LM2940 稳压电路对单片机进行单独供电,另一块稳压电路给各个传感器和调试模块供电。设计中,除了考虑到电压范围和电流容量等基本参数外,还要在电源转换效率、降低噪声、优化【4】。和简化电路等方面进行图 3-3 LM2940 稳压电路在进行 5V 稳压电路设计的时候通过比较发现 LM7805压差比较大,虽然转化效率比需要输入 7.5V 以上的电压才能稳定输出 5V 电压,LM2575较高,但输出有较大的波纹,综合各个方面的考虑选用了压差较小且输出稳定的 LM2940作为稳压【5】。其实现电路原理图如图 2-3 所示。,其实现原理如图 2-4 所示。舵机供电采用 LM259
12、6图 3-4 LM2596 降压稳压电路3.4 舵机控制电路设计由舵机在调试过程出现结合调试的经验,确定方向控制舵机的供电电压为 6V,传感器控制舵机也同样用 6V 电压供电。舵机驱动电路就是为舵机供电以及给舵机转角信号,舵机工作电流一般在 1A 左右,所以用一片 LM2596-ADJ 3A 开关型降压稳压电路供电。就利控制舵机的转向只要一路波即可,以 20ms 为一个周期,不同德占空比会使舵机稳定在不同的角度上【12】,如图 2-5 所示。图 3-5 舵机控制示意图3.5 速度及加速度传感器设计由于速度和加速度传感器都属于精密传感器,对于制作环境和加工水平都有很高的要求所以采购了市面上已经很
13、成传感器。速度传感器采用成原装 OMRON 编E6A2-CW5C。加速度传感器则采用飞思半导体率先推出业界第一款三轴向高灵敏度加速度传感器MMA7260Q,如图 2-6 所示。MMA7260Q 能在 XYZ 三个轴向上以极高的灵敏度低重力水平的坠落、倾斜、移动、放置、和摇摆,它是同类产品中的第一个单三轴向。MMA7260Q 具有三轴向检测、可选灵敏度、低功耗、具有休眠模式、可低压运行、快速启动、低噪音的特性【5】。图 3-6 MMA7260Q3.6 电机驱动模块设计在对电机驱动模块方案的设计和选择中最终决定采用 BTS7970 控制芯片,利用全桥驱动电路驱动电机,原理图如图 2-7 所示。采用
14、对角线方式导通,加速原理为一只 MOS 管给逻辑电平信号,另一【13】。给信号,反转时顺序相反图 3-7 电机驱动示意图3.7 激光发射与接收电路设计顾名思义,激光的发射和接收电路由发射部分和接收部分组成。发射部分有一个震荡管发出 180KHZ 频率的震荡波后,经过三级管放大,点亮激光管;接收部分是由一个相匹配 180KHZ 的接收管接收返回的光强,经过电容滤波后直接接入 XS128 单片机的 I/O 口,检测返回电压的高低。由于激光传感器使用了调制原理,接收管只能接收相同频率的反射光。因而可以有效避免可见光对激光的干扰【6】。图 3-8 激光传感器控制电路激光传感器的工作原理如图 2-8 所
15、示,当发射管发出的光束黑色地面时黑色地面会吸收大部分发射的光线,而白色地面则不会吸收大部分反射光线。所 以接收管接收的光强会有所区别,进而导致接收管的特性曲线发生变化程度不同,而从外部看可近似认为接收管俩端输出的电阻不同,进而经分压后的电压就不一 样,就可以将黑白路面区分开来【7】。图 3-9 激光传感器路径识别原理第四章 系统总体布局和机械结构优化4.1 概述优秀的不仅要有稳定可靠的硬件做基础更要有流线型的机械结构和合理的总体布局做为依托。在总体布局和机械结构方面行详细阐述。主要从以下几个方面进图 4-1整体图系统布局优化激光管的布局与安装由于采用激光管作为道路信息的传感器,研究激光管的布局
16、以及整个传感器模块的布局对于的发挥效果有着很重要的作用。通过对以往成熟方案的研究最终决定采用单排一对二的激光排布方案,采用转动和较低高度的模块安装方案。图 4-2 激光排布 PCB 图仅仅考虑使车身的重心降低,使车在行驶过程中更加稳定,则激光板无疑是架得越低越好。但是将他降低,会使激光的前瞻降低很多【8】。如何在保证有足够的有效前瞻的情况下使激光板降低成为比赛的重点和难点。通过改进激光管和驱动电路以及激光板的安装方式最终确定了如图4-3 的安装图。图 4-3激光板安装效果图4.2.2编的安装由于本届比赛指定车模自身的特点使此次比赛中编的安装成为一个难点,想采用传统成欧姆龙编,又想是安装的传动效
17、果流畅。通过大量改装实验最终确定了如图 4-4 的安装方案。图 4-4 编安装效果图机械结构优化降低车身高度车身高度指的是当车子满载的时候,底盘离地面的高度。通过旋转前、后桥中的一粒内六角螺丝来调整车身高度。但是由于底盘较软,仅仅通过调整螺丝来降低车身高度会使底盘变形。所以低车身高度的目的。还结合前后轮避震器的调整来达到降图 4-5 后桥的内六角螺丝图 4-6 前轮减震器4.3.2 调节差速器差速器有差速作用和限滑作用:差速作用使两轮可以相对转动,并使两轮转 动速度的平均值等于整驱动轴的转动速度;限滑作用在两轮相对转动时产生阻力,以限制两轮速度差,防止其中一个发生过度打滑和空转。齿轮差速通常可
18、填充差速油。差速油可以使齿轮在相对转动啮合时产生阻力。不同的差速油会带来不同的差速效果,通过大量实验、中、后三个差速器中使用不同的差速油,最终获得了4.3.3 改装舵机期望的差速效果。由于舵机存在力矩小反应较慢等缺点,如何通过机械改装来最大程度地改善它的这些缺点成为本次比赛的一个重点。通过大量的实验最终确定了将舵机竖排按装在车头的方案。这种方案可以使舵机连接俩个车轮的拉杆变长倾角变大以此达到改善力矩和反应时间。改装效果如图 4-4 所示。图 4-7舵机改装效果图(俯视图)第五章系统方案设计路径追踪系统,采用中断方法控制小车的转向与速度。传感器道路信息,找出黑线位置,50 组数据,判断是否有起跑
19、线、交叉线标志。半段出智能车处于何种赛道形状中。给出相应的速度值,通过中断,检查速度值,送入控制器,进行速度控制,舵机的转向则根据的黑线信息,算出黑线位置,送入控制器,得出控制舵机的转向【13】。如图 5-1 所示:图 5-1 系统总体流程图5.1 激光管路径识别状态分析通过大量实验最终队采用 12 只激光成“一”字均匀排布,间隔为 20mm,由于黑线是 25mm,故可能会出现 1 只或 2 只激光管扫描到黑线。如图 5-2 所示图 5-2 激光管扫描赛道信息示意图针对到的赛道信息采用模糊控制算法识别路径,再通过一定的算法,计算出舵机的转向角度,并且在一定程度上具有抗拒微小干扰的能力。图 5-
20、3 激光管排列及对应权值具体算法介绍如下:a.找出黑线上对应的激光管序列号为 H-min,H-max,其中 H-min 为激光管序列号较小值,H-max 为激光管序列号较大值,若有一个激光管在黑线上则认为 H-minH-max-激光序列号【10】。b.当传感器检测到黑线时相应的传感器返回所在的权重值,并计算所有传感器的平均值,即偏离程度,计算公式为其中 Location 为黑线位置,Weight【】为激光管权值数组。5.2赛道标志识别图 5-4 起跑线状态图 5-5交叉状态为了识别赛道的标志,对于数字型激光传感器,每个传感器有 0 和 1 俩种状态,分别把 12 路传感器标记为 1 到 12,
21、每个传感器又可以对应一在黑线上的标志位,分别为 Hei-Flag0到 Hei-Flag11,相应在黑线上为 1,不在黑线上为 0,从而通过对任意时刻传感器标志位的的状态。就可以知道此时模型车通过定义一个名为 Hei-ChangeCount 的变量,表示传感器状态变化(从 0 到1,从到 0 的次数)来精确地识别起跑线和出如表 5-2 所示的状态判定表。交叉线【12】。通过大量实验总结表 5-2 赛道状态判定表状态Hei-ChangeCountHei-FlagCount起跑线处4=8 且=1 且=3在普通赛道中已出黑线00第六章 开发工具、制作、安装、调试过程说明本章主要介绍编写时的安装调试和现
22、场调试过程的总结。6.1 工程的创建打开 CodewarriorIDE,创建一个新工程,如图 6-1 所示。【12】图 6-1 工程的创建选择目标型号以及与电脑的连接方式,这里选择 MC9S12XS128.选择程序编写所用的语言,以及创建的工程名和保存路径。完成后会出现文件管理窗口,如图 6-2 所示。图 6-2 已创建一个工程6.2 现场调试在现场调试过程中,利用传统的数码管和拨码开关来调相关参数。特别提到的是在调试过程中为了防止发生意外冲出跑道造成车体撞击损坏,利用无线串口制成,能够很方便第控制的运行,防止发生意外,很好地保护。实物图如图6-3所示。图 6-3实物图6.3 模型车主要技术参
23、数说明表 6-3 主要技术参数项目参数路径检测方法(赛题组)光电车模几何尺寸(长、宽、高)(毫米)长 300mm、宽 195mm、高 210mm车模轴距/轮距(毫米)153mm车模平均电流(匀速行驶)(毫安)4500mA电路电容总量(微法)1564.98uF传感器种类及个数激光接收管8+编1+加速度传感器1新增加伺服电机个数1 个赛道信息检测空间精度(毫米)10mm赛道信息检测频率(次/秒)66.7(次/秒)主要集成电路种类/数量MC9S12XS1281+ LM29402+ LM2596S1+ BTS7970 2+MMA72601车模重量(带有电池)(千克)1.5kg第七章 总结7.1 本车特
24、色了让能在直道和弯道上高速稳定的通过,过弯灵巧,快速,除了有相应的硬件电路的设计之外,的机械结构对其有重要的影响。通过在避震器加垫片,把车的前、后轮底盘放低,从而降低整车的重心,防止车翻倒。改装后发现智能车转弯比以前灵活许多,车身抖动也相应减小。转向时舵机的响应速度是一个很重要的,为了加快舵机的响应时间,把舵机倒立放置,使舵机位于两轮的中心线上,将连接两轮胎到舵机的连杆改为同等长度,使舵机左右转向时受力比较均匀,保障舵机在转弯时力矩最大。激光传感器具有响应时间快、功耗低、控制简单且照射距离远的优点。传感器一部份为发射部份,一部份为接收部份。发射部份由一个振荡管发出 180KHz频率的振荡波后,
25、经驱动电路,点亮激光管;接收部份由一个相匹配 180KHz 的接收管接收返回的光强,经过电容滤波后直接接入 S12 单片机的 I/O 口,检测返回电压的高低【11】。由于激光传感器使用了调制原理,接收管只能接受相同频率的反射光,因而可以有效可见光对反射激光的干扰采用 BTS7970B大功率驱动,利用全桥驱动电路驱动电机,基本满足小车速度控制要求,另外,加了,使驱动和单片机间接分离,效果更稳定。控制算法采用经典的算法,通过摇头舵机使激光跟随黑线运动,保证激光能时刻检测到黑线并且在一定程度上能提高前瞻距离,配合点头舵机的控制,使行驶的线路更加平滑。7.2 系统存在尽管在设计中作了很大的努力,但是由
26、于时间紧迫以及缺乏经验等原因,本系统仍然存在着一些问题,主要有以下几点:(1)系统控制算法采用经典的改进系统性能。算法。可以考虑更加高级的控制算法以(2)在下排传感器的设计中由于时间和经验的,没能找到更加适合近距离道路信息的光电传感器。7.3 改进方向在条件允许的情况下,本系统可以做以下几个方面的改进:(1)S12 单片机拥有独具特色的模糊控制指令集,很方便用来实现模糊控制等高级运算。模糊控制的实现将有利于系统性能的大幅度。(2)主排激光前瞻足够的情况下可以采用点头加摇头的传感器控制方式。参考文献1.单片机应用的开发方法M.:,20042康华光.模拟电子技术基础.:高等教育,20013.数字电
27、子技术基础.:高等教育,19984,.计算机控制系统.:理工大学,20025.C 程序设计M.:,20016屏,2005,.LabVIEW7.1 编程与虚拟仪器设计M.:,7HCS12 Serial CommunicationerfaCI) Block Guide V02.05S12SCIV2/D8Metrowerks.IDE Help for Code Warrior Plug-in for Motorola.MetrowerksSemiconductor,Inc.,20059,李立国2006.5. 智能车光电传感器布局对路径识别的影响研究. 电子产品世界,10,,. 学做智能车M.:航天航
28、空,200711等Pro电路设计M.200212,杭州电子科技大学第四届“飞思”杯智能车竞赛技术. 第四届“飞思”杯智能车竞赛.200913,于文科,吴明春,河海大学常州校区第四届“飞思”杯智能车竞赛技术. 第四届“飞思”杯智能车竞赛.200914,四届“飞思,师范大学第四届“飞思”杯智能车竞赛技术. 第”杯智能车竞赛.2009附录 AC 语言源程序#include #include derivative.h/*common defines and macros */*derivative-specificdefinitions*/structSetValue; PresentValue; P
29、roportion;egral; Derivation; NewInc; NewError; LastError; PreError; SumOut;OUT;A;B;C;longV,LR,Dir;/#define/#defineLRMidDirMid35503780/左右舵机中间值/方向舵机中间值#define #define #define #define #define #define #define #define #define #define #define#defineLRA LRB LRC LRD LRE LRF LRG LRH LRI LRJ LRKLRL38363432302
30、826242016128/左右舵机偏差#define #define #define#defineLRM LRN LROLRP4000#define #define#defineLeft4Right -4Middle 0/数码管显示 byte NUM10=0X77,0X14,0XB3,0XB6,0XD4,0XA7,0XE7,0X34,0XF7,0XF6;Deviation31=/偏移打角变量10,10,10,10,10,10,10,10,12,14,16,18,20,20,16,12,8,4,4,8,12,16,20,20,18,16,14,12,10,10,10;longfilter31=/
31、上排激光过滤0X7F,0X7F,0X7F,0X7F,0X7F,0X7F,0X7F,0X7E,0XFE,0XFC,0X1FC,0X1F8,0X3F8,0X3F0,0X7F0,0X7E0,0XFE0,0XFC0,0X1FC0,0X1F80,0X3F80,0X3F00,0X7F00,0X7E00,0XFE00,0XFE00,0XFE00,0XFE00,0XF E00,0XFE00,0XFE00;itionfilter15=/下排激光过滤0X07,0X07,0X07,0X0F,0X0E,0X1E,0X1C,0X3C,0X38,0X78,0X70,0XF0,0XE0,0XE0,0XE0;ition2Sp
32、eedL=-20,-20,-10,0,0,0,15,30,40,40,45,45,45,45,45;ition2SpeedR=45,45,45,45,45,40,40,30,15,0,0,0,-10,-20,-20;ition2JiaoL=270,260,200,0,0,0,0,0,0,0,0,0,0,0,0;ition2JiaoR=0,0,0,0,0,0,0,0,0,0,0,0,200,260,270;Record40;RecordSum,RecordNum;itionL,P=1;itionR;/相对位置对速度控制键/调节比例LRMidDirMid=3850;=4050;UPOut=3380
33、;LastResult=16;/前后舵机输出值/激光扫描初始结果longResult=0,ResultOne=0;/上排检测结果RegionVAdd=0,RegionTurnVAdd=0,RegionTurnVRed=0,RegionStop=0;/直道加速,弯道加速,入弯 VADD=0;TURNVRED=0;TURNVADD=0;,停止计数参考/直道速度增加量/弯道速度减少量/弯道速度增加量Deviationr=0,Deviationl=0;i;/偏移打角控制键longLastSe,PresentST=2;e=1,Work,Sh;/起跑线检测次数/过黑线标志/三轴加速度/路况 0 平地 1
34、坡道/ 加速度和与计数/加速度ChangeFlag16;Xg,Yg,Zg;Se=0;t;gSums5=127,127,127,127,127;PResult=0,PLastResult=7,ResultIns; gs,js,ks,vs;gu,ju,ku,vu; PError=0;t;t;/下排检测结果/第二排激光偏差/坡道过程计数/起跑计数voidDelayUS(x)/延迟 x 微秒i,j; for(i=0;i0;j-)voidDelayMS(x)/延时 x 毫秒fu=0;gu0;ju-)voidDelayS(x)/延迟 x 秒fs=0;gs0;js-)for(ks=2000;ks0;ks-)
35、voiddisplay(n)PTM=NUMn;voidVInit(void)/速度控制初始化V V V V V V V V V VV.SetValue=0;.SumOut=0;.OUT=0;.LastError=0;.PreError=0;.Proportion=16;.egral=1;.Derivation=2;.A=V.B=V.C=V.Proportion+V.Proportion+2*V.Derivation;.egral+V.Derivation;.Derivation;voidLRInit(void)LR LR LR LR LR LR LRLR.SumOut=LRMid.OUT=LR
36、Mid;.NewError=0;.LastError=0;.PreError=0;.Proportion=4;/600.egral=1;.Derivation=1;/400voidDirInit(void)Dir Dir Dir Dir Dir Dir DirDir.SumOut=DirMid.OUT=DirMid;.NewError=0;.LastError=0;.PreError=0;.Proportion=18;.egral=1;/Dir.egral=LR.egral.Derivation=1;voidInit(void)/初始化PTP=0XFF;E=0X00; POL=0XFF; CL
37、K=0X00;SCLB=0X3F; PRCLK=0X55; CAE=0X00;CTL=0XF0;/端口/SB126 分频/B32 分频A32 分频T0=0X00; T1=0X00; PER0=0XC3; PER1=0X50;DTY0=0X0F;/方向舵机DTY1=0X6E;T2=0X00; T3=0X00; PER2=0XC3; PER3=0X50; DTY2=0X12;DTY3=0XC0;/前后舵机T4=0X00; T5=0X00; PER4=0XC3; PER5=0X50; DTY4=0X0D;DTY5=0XDE;/左右舵机T6=0X00; T7=0X00; PER6=0X0A; PER7
38、=0X00; DTY6=0X00;DTY7=0X00;/速度前进E=0XFF;void PulseAccumulatorInit(void)PACTL=0X50;T=0X00;/脉冲计数器初始化void PITInit(void)PITCFLMT=0X00; PITCE=0X03;PITMUX=0X02;/定时器中断初始化PITE=0X03;PITMTLD0=0XFF;PITMTLD1=0XFF; PITLD0=0X0C80; PITLD1=0X4000;PITCFLMT=0X80;/186AvoidPORTInit(void)/端口设置初始化DDRA=0XFF; PORTA=0X00; DD
39、RB=0X00; PORTB=0XFF; DDRT=0X00; DDRK=0XFF; PORTK=0X00; DDRM=0XFF; PTM=0X00; DDRE=0XF0; PORTE=0X80; DDRH=0X00;PTH=0XFF;voidClockInit(void)/时钟初始化CLKSEL=0X00; PLLCTL_PLLON=1; SYNR =0 xc0 | 0 x09; REFDV=0 x80 | 0 x01;TDIV=0 x00;_asm(nop);_asm(nop);/BUSCLOCK=80Mwhile(!(CRGCLKSEL_PLLSEL_LOCK=1);=1;COPCTL=
40、0X00;IRQCR_IRQEN=0;/看门狗IRQ 中断voidSCIInit(void)unsigned char t;/定义波特率 Bt=9600,SCI0BD=fBUS/(16*Bt)/再给低 8 位赋值/须先给高 8 位赋值/设置允许 SCI,正常码输出,8 位数据,无校验/读数据寄存器(清 0)/读状态寄存器(清 0)/允许 SCI0 接收和发送 查询方式SCI0BDHSCI0BDL SCI0CR1=0 x02;0 x08;0 x00;t = SCI0DRL; t = SCI0SR1;SCI0CR2 = 0 x0C;voidATDInit(void)ATD0CTL0=0X01; A
41、TD0CTL1=0X00; ATD0CTL2=0X40;ATD0CTL3=0X88;/外部触发, 中断/右对齐无符号,每次转换 3 个序列, No FIFO, Freeze 模式下继续转ATD0CTL4=0X04;/765:采样时间为 4 个 AD 时钟周期,ATDClock=BusClock*0.5/PRS+1ATD0CTL5=0X22;ATD0DIEN=0X00;/6:0 特殊通道,5:1 连续转换 ,4:1 多通道轮流采样/数字输入void RunV(void)if(LR.SumOut*LRVADD=0;RegionVAdd=0;/运行速度控制.egral-LRMid250)/直道加速e
42、lse if(LR.SumOut*LR.egral-LRMid-250)VADD=0;RegionVAdd=0;else if(RegionVAdd12)RegionVAdd+;VADD=0;elseif(RegionVAdd256)RegionVAdd+=64;VADD=RegionVAdd/32;elseif(RegionVAdd512)RegionVAdd+=128;VADD=RegionVAdd/32;elseif(RegionVAddLRMid)/入弯if(LR.SumOut*LR.egral-LRMid180)if(RegionTurnVRed40000)RegionTurnVRe
43、d+;elseRegionTurnVRed=0;elseif(LR.SumOut*LR.egral180)if(RegionTurnVRed1)if(-V.NewError)20&V.PresentValue150)if(RegionTurnVRed10)TURNVRED=V.PresentValue;elseTURNVRED=0;elseTURNVRED=0;elseTURNVRED=0;if(RegionTurnVAdd20)TURNVADD=0;else if(RegionTurnVAdd512)TURNVADD=RegionTurnVAdd/128;else if(RegionTurn
44、VAdd1024)/弯道加速TURNVADD=RegionTurnVAdd/112;elseif(RegionTurnVAdd1)if(RegionStop20)V.SetValue=0;两次检测到起跑线停车PTM=0XFF;/else if(LR.SumOut*LR.egral-LRMid=0)/速度设置V.SetValue=200+VADD-TURNVRED+TURNVADD+Deviationr*6+Deviationl*6;else if(LR.SumOut*LR.egral-LRMid0)/38V.SetValue=200-(LR.SumOut*LR.egral-LRMid)/36+
45、VADD-TURNVRED+TURNVADD+Deviationr*3+Deviationl*3+ition2SpeedLPResult;else if(LR.SumOut*LR.egral-LRMid0)V.SetValue=200+(LR.SumOut*LR.egral-LRMid)/36+VADD-TURNVRED+TURNVADD+Deviationr*3+Deviationl*3+if(V.SetValue100)/积分分离 速度控制V.OUT=V.Proportion*V.NewError+V.Derivation*(V.NewError-V.LastError);V.SumOut
46、=0;elseV.SumOut+=V.NewError;/位置式if(V.SumOut3000)V.SumOut=3000;if(V.SumOut3000)V.OUT=3000;if(V.OUT5000)LR.SumOut=5000;if(LR.SumOut5000)LR.OUT=5000;if(LR.OUT200)/路况RecordSum-=RecordRecordNum; RecordRecordNum=Left;RecordSum+=RecordRecordNum;elseif(LR.SumOut*LR.egral-LRMid-200)RecordSum-=RecordRecordNum
47、; RecordRecordNum=Right;RecordSum+=RecordRecordNum;elseRecordSum-=RecordRecordNum; RecordRecordNum=Middle;RecordSum+=RecordRecordNum;RecordNum+; if(RecordNum=40)RecordNum=0;if(RecordSum=160)Deviationr=1; Deviationl=0; if(RegionTurnVAdd5120)RegionTurnVAdd+;/打角偏移else if(RecordSum=-160)Deviationr=0; De
48、viationl=1; if(RegionTurnVAddDirMid)if(LR.SumOut*LR.egral-DirMid350)Dir;.OUT=DirMid+(Dir.OUT-DirMid)*9/8+ition2JiaoRPResult;/*10/8elseDir.OUT=DirMid+(Dir.OUT-DirMid)*9/8;/*10/8;if(Dir.OUT(DirMid)/930Dir.OUT=DirMid;else if(DirDirDTY0=Dir DTY1=Dir.OUT(DirMid-480)/300.OUT=DirMid-480;.OUT/256;.OUT%256;e
49、lse if(Dir.OUT350)Dir;.OUT=DirMid-(DirMid-Dir.OUT)*6/8-ition2JiaoLPResult;/*10/8elseDir.OUT=DirMid-(DirMid-Dir.OUT)*6/8;/*10/8;if(DirDir.OUT(DirMid).OUT=DirMid;else if(DirDirDTY0=Dir DTY1=Dir.OUT=0;k-)/扫描f=1;g=0;g-)PORTA=k*2+g;DelayUS(10); IN=PORTB; IN&=1k;DelayUS(10); if(IN!=0)Result=Result*2+1; On
50、eNum+;elseResult=Result*2; PORTK_PK1=1;filter2=Result; for(f=0;f=0;k-)f=1;g=0;g-)PORTA=k*2+g;DelayUS(10); IN=PORTB; IN&=16)黑点,开始判断交叉线和起跑线while(OneNum6)OneNum=0; Result=0; ResultOne=0;/检测到多个PORTK_;/重新扫描for(k=7;k=0;k-)f=1;g=0;g-)PORTA=k*2+g;DelayUS(10); IN=PORTB; IN&=1k;DelayUS(10); if(IN!=0)Result=Re
51、sult*2+1;/变化的点,和 1 的个数ChangeFlagk*2+g=1;OneNum+;elseResult=Result*2;PORTK_PK1=1;/while(SCI0SR1_TC!=1);SCI0DRL=OneNum;/串口发送/检测到少量黑点,退出for(i=0;i16;i+)/检测起跑线,变化点数if(ChangeFlagi=1)t+;ChangeFlagi=0;/改变标志点清零if(t6)/6 到 14 之间为起跑线T+;if(t14)/14 以上为十字交叉LRLR.OUT=LRMid.OUT=LRMid;DelayUS(5000);ReSearch();if(Result!=0&Result!=0Xif(OneNum7)F)Result&=filterLastResult;filter2=Result; for(f=0;f=Result)distance=LastResult-Result;else if(LastResultResu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贫困补助申请书范文200
- 深耕细作细分市场创造独特价值
- 2024-2025学年安徽省合肥市六校联考高二(上)期末地理试卷
- 房产销售转正申请书
- DB2201-T 20-2022 梅花鹿胚胎移植技术规范
- 项目申请书一般包括
- 简要和解协议书(2篇)
- 纯碱年度合同(2篇)
- 2024-2025学年山东省潍坊市高三上学期1月期末英语试题
- 清算备案申请书
- 2023年初中道法九年级上册知识点汇总(思维导图)
- 观赏树木的园林特性课件
- 《篮球主修》考核方式
- Unit 3 Times change单元教学设计
- 科室医院感染风险评估表
- 山东省食用油(植物油)生产企业名录496家
- 《智慧农业》的ppt完整版
- GB∕T 33047.1-2016 塑料 聚合物热重法(TG) 第1部分:通则
- 经济学市场失灵与政府失灵课件
- 电力业务许可证豁免证明
- 建筑工程资料归档立卷分类表(全)
评论
0/150
提交评论