装配图.dwg
装配图.dwg

基于电磁感应传感器的智能车系统设计(单驱动)

收藏

资源目录
跳过导航链接。
压缩包内文档预览:
预览图
编号:23250343    类型:共享资源    大小:10.27MB    格式:RAR    上传时间:2019-11-07 上传人:qq77****057 IP属地:江苏
30
积分
关 键 词:
基于 电磁感应 传感器 智能 系统 设计 驱动
资源描述:
基于电磁感应传感器的智能车系统设计(单驱动),基于,电磁感应,传感器,智能,系统,设计,驱动
内容简介:
1122334455667788DDCCBBAATitleNumberRevisionSizeA3Date:2012/5/18Sheet ofFile:E:circleSheet1.SchDocDrawn By:R810KR910KR1010KR1310KR1410KR1510K12JP212JP3PWM5PWM7C111000uFGND1IN2INH3OUT4SR5IS6VS7OUT8BTS7970GND1IN2INH3OUT4SR5IS6VS7OUT8BTS79701s80502s8050C20104C21104C18104C191MD1IN60D2IN60R16510KR175KR18510KR195KR201M+5VAD0C22L310mHMC9S12XS128PA0PA1PA2PA3PA4PA5PA6PA7PB5PB6PB7PAD00PAD01PAD02PAD03PAD04PAD05PAD06PAD07PAD08PAD09PAD10PAD11PAD12PAD13PAD14PAD15PP2PP3PP4PP5PP6PP7PM0PM1PM2PM3PM4PM5PS6PS7PS0PS1PS2PS3PS4PS5PS6PS7TESTVDDX1VSSX1PK7VRHVDDAVRLVSSAPM6PM7PK0PK1PK2PK3VDDFVSS1PK5PK4BKGDPH0PH1PH2PH3PH4PH5PH6PH7PE0PE1PE2PE3PE4PE5PE6PE7VDDPLLXTALEXTALVSSPLLVSS3VDDRVDDX2VSSX2RESETVDDVSS2123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112PP0PP1PT0PT1PT2PT3PT4PT5PT6PT7PJ0PJ1PB0PB1PB2PB3PB4C2104C3223C4102C5223C6102C722pC822pC9102C10103C1100mFL160R/100MHzL260R/100MHz12Y116MR11KDS1LED0R21MR350RR43.3KR54.7KR6100R123456JP1S1SW-PB+5V+5VR70GNDVCC+5VVCC+5VPWM5PWM7AD0C12100mFC15104GND2Vout3Vin1LM2940+12V+5V06P0101 P0102 P0103 P0201 P0202 P0203 P0BTS101 P0BTS102 P0BTS103 P0BTS104 P0BTS105 P0BTS106 P0BTS107 P0BTS108 P0BTS201 P0BTS202 P0BTS203 P0BTS204 P0BTS205 P0BTS206 P0BTS207 P0BTS208 P0C101 P0C102 P0C201 P0C202 P0C301 P0C302 P0C401 P0C402 P0C501 P0C502 P0C601 P0C602 P0C701 P0C702 P0C801 P0C802 P0C901 P0C902 P0C1001 P0C1002 P0C1101 P0C1102 P0C1201 P0C1202 P0C1501 P0C1502 P0C1801 P0C1802 P0C1901 P0C1902 P0C2001 P0C2002 P0C2101 P0C2102 P0C2201 P0C2202 P0D101 P0D102 P0D201 P0D202 P0DS101 P0DS102 P0JP101 P0JP102 P0JP103 P0JP104 P0JP105 P0JP106 P0JP201 P0JP202 P0JP301 P0JP302 P0L101 P0L102 P0L201 P0L202 P0L301 P0L302 P0LM?01 P0LM?02 P0LM?03 P0R101 P0R102 P0R201 P0R202 P0R301 P0R302 P0R401 P0R402 P0R501 P0R502 P0R601 P0R602 P0R701 P0R702 P0R801 P0R802 P0R901 P0R902 P0R1001 P0R1002 P0R1301 P0R1302 P0R1401 P0R1402 P0R1501 P0R1502 P0R1601 P0R1602 P0R1701 P0R1702 P0R1801 P0R1802 P0R1901 P0R1902 P0R2001 P0R2002 P0S101 P0S102 P0Y101 P0Y102 P0R1602 P0R1702 P0R1802 P0R1902 P0103 P0203 P0BTS101 P0BTS201 P0C102 P0C202 P0C701 P0C801 P0C901 P0C1001 P0C1202 P0C1501 P0C2101 P0C2201 P0D201 P0DS102 P0JP102 P0JP202 P0L301 P0LM?02 P0R1001 P0R1301 P0R2001 P0S102 P0101 P0C1901 P0R1701 P0102 P0C1802 P0R1601 P0201 P0C2001 P0R1901 P0202 P0C1902 P0R1801 P0BTS102 P0R1402 P0BTS103 P0R802 P0BTS104 P0BTS105 P0R1002 P0BTS106 P0BTS107 P0BTS207 P0C1102 P0BTS108 P0JP301 P0BTS202 P0R1502 P0BTS203 P0R902 P0BTS204 P0BTS205 P0R1302 P0BTS206 P0BTS208 P0JP302 P0C101 P0C201 P0L102 P0C301 P0C401 P0C302 P0C402 P0C501 P0C601 P0C502 P0C602 P0C702 P0R201 P0Y101 P0C802 P0R202 P0Y102 P0C902 P0C1002 P0C1101 P0JP201 P0C1201 P0LM?01 P0C1502 P0LM?03 P0C1801 P0C2202 P0L302 P0C2002 P0D101 P0D202 P0C2102 P0D102 P0R2002 P0DS101 P0R102 P0JP101 P0JP103 P0R301 P0JP104 P0R501 P0R602 P0JP105 P0JP106 P0R401 P0R502 P0L101 P0L201 P0L202 P0R101 P0R302 P0R402 P0R601 P0S101 P0R701 P0R702 P0R801 P0R901 P0R1401 P0R1501 本科毕业设计(论文)任务书院 别机电学院专业机械电子工程班级学生姓名学号指导教师职称副教授题 目基于电磁感应传感器的智能车系统设计(单驱动)毕业设计(论文)的主要任务与具体要求(有实验环节的要提出主要技术指标要求)1、设计一种基于电磁的智能车。2、确定系统设计的总体方案。3、车模机械结构设计。4、智能车的硬件电路和软件编写调试设计。5、车模机械图纸绘制。6、编制设计说明书。二、具体要求1、编写一份1万两千字以上的说明书。2、绘制图纸共计0号1张、2号3张和一张硬件电路图。3、要求说明书文理通顺,字迹端正。图纸、说明书贯彻国家标准。4、做好硬件电路与调试。5、编程与调试智能车,可以让它在赛道上可以巡线而走。进度安排(包括时间划分和各阶段主要工作内容)2月20日3月10日 毕业设计调查研究、搜集和查阅资料、开题。交开题报告。3月10日 毕业设计开始 总体方案设计 1周 系统硬件设计 3周 系统软件设计 3周 编写毕业设计说明书 1周5月13日5月18日 交毕业设计论文和设计资料,在老师指导下修改 5月19日5月20日 毕业设计答辩主要参考文献1 卓晴,黄开胜,邵贝贝.学做智能车M.北京,北京航天航空出版社,20072 康华光.模拟电子技术基础.北京,高等教育出版社,20053 康华光.数字电子技术基础.北京,高等教育出版社,2005 4 沈长生常用电子元器件使用一读通M北京,人民邮电出版社20045 谭浩强.C程序设计M.北京,清华大学出版社,20016 卓晴,黄开胜,邵贝贝.学做智能车M.北京,北京航天航空出版社,20077 HCS12 Serial Communication Interface(SCI) Block Guide V02.05S12SCIV2/D 8 张昊飏,马旭,卓晴. 基于电磁场检测的寻线智能车设计. 电子产品世界,2009.11指导教师签名系(教研室)审核意见任务接受人(签名)年 月 日审核人签名: 年 月 日年 月 日备注:1、本任务书一式三份,由指导教师填写相关栏目,经系审核同意后,系、指导教师和学生各执一份。 2、本任务书须装入学生的毕业设计(论文)档案袋存档。 本科毕业论文(设计)开题报告院别机电学院专业机械电子工程班级姓名学号联系方式题目基于电磁感应传感器的智能车系统设计(单驱动)一. 本课题的研究意义与现状 智能汽车是智能交通系统的重要构成部分,其研究的主要目的在于降低日趋严重的交通事故发生率,提高现有道路交通的效率,在某种程度上缓解能源消耗和环境污染等问题。智能汽车就是基于信息融合技术、微电子技术、计算机技术、智能自动化技术、人工智能技术、网络技术、通信技术等在网络环境下用信息技术和智能控制技术武装的汽车,利用最新科技成果,使汽车具有自动识别行驶道路、自动驾驶、自动调速等先进功能。美国加州国际汽车经济研究所的调查报告指出,下一个汽车销售高潮将从普及“智能化汽车”开始。通过智能车的进一步研究与发展,将使车变得“聪明”起来,路、车、人三者进行主动积极的统筹与协调,让三者达到和谐的统一,从根本上改变现行汽车的信息采集处理、信息交换、行车导向与定位、车辆控制、汽车安全保证等技术方案与体系结构,使汽车更加人性化、舒适化和个性化,极大地满足人们对于“出行”不断提高的需求,在很大程度上减轻驾驶员的负担,减少驾驶员疲劳驾驶的现象,有利于提高交通安全,配合城市交通控制系统。驾驶智能汽车可大大缓解驾驶者的疏忽导致的交通事故,很大程度上提高交通安全性。 美国开始组织实施智能车辆先导计划,欧洲提出公路安全行动计划,日本提出超级智能车辆系统,我国科技部于2002年正式启动了“十五”科技攻关计划项目,智能交通系统关键技术开发和示范工程,预计在2020年之前进入智能交通发展成熟期,人、车、路之间可以形成稳定、和谐的智能型整体。目前国内对于无人驾驶车辆主要有三大系统支撑:环境感知系统,定位导航系统,控制系统。环境感知系统先用车上安装的感应器去感觉周围环境,紧接着,感知系统将信息传回“大脑”,用定位导航系统作出相应判断,是否要拐弯、刹车、加速、移动方向盘,随即对控制系统发出指令,车辆则自行完成上述“动作”。二. 本课题的基本内容1. 总体方案的确定 本课题是基于电磁感应传感器的智能车设计,在此基础上确定主要功能以及功能结构和机构布局。2. 智能车的硬件系统设计智能车所需的硬件有传感器的选择、信号滤波放大电路的设计、 主控芯片及其外围电路设计、电源稳压模块、电机驱动电路设计、机械结构的调试。3. 智能车软件系统设计 智能车的软件系统主要是基于C语言编程,包括路径识别判断、信号处理算法、舵机控制策略、速度控制策略。4 智能车调试调试智能车硬件和软件系统,使得智能车的速度优化。三课题的重点和难点课题的重点:传感器的设计,信号跟踪装置的设计,判断最佳行驶路径的准确度。课题的难点:信号处理电路的延时方面的改进。四创新之处在传感器方面采用电感作为传感器获取路面信息,相对外界干扰小;转角方面采用数码舵机,精度高,转向控制更精确;驱动方面采用RC540电机,驱动功率大,在提速方面有很大的发展优势。五论文提纲1. 绪论1.1智能车的研究意义1.2智能车研究现状2. 机械部分的设计 2.1 转向机构的设计 2.2 传动机构的设计 2.3 赛车重心位置的调整3. 硬件电路的分析和设计3.1传感器及信号处理电路设计3.2电源模块设计3.3电机驱动电路设计3.4测速模块设计3.5单片机及其外围电路设计4. 软件的设计和实现4.1开发调试工具4.2整体思想4.3总程序设计4.4转角控制4.5速度控制5. 运行和调试产品6. 参考文献六进度安排2月20日3月10日 毕业设计调查研究、搜集和查阅资料、开题。交开题报告。3月10日 毕业设计开始 总体方案设计 1周 系统硬件设计 3周 系统软件设计 3周 编写毕业设计说明书 1周5月13日5月18日 交毕业设计论文和设计资料,在老师指导下修改 5月19日5月20日 毕业设计答辩七参考文献1 卓晴,黄开胜,邵贝贝.学做智能车M.北京,北京航天航空出版社,20072 康华光.模拟电子技术基础.北京,高等教育出版社,20053 康华光.数字电子技术基础.北京,高等教育出版社,2005 4 沈长生常用电子元器件使用一读通M北京,人民邮电出版社20045 谭浩强.C程序设计M.北京,清华大学出版社,20016 卓晴,黄开胜,邵贝贝.学做智能车M.北京,北京航天航空出版社,20077 HCS12 Serial Communication Interface(SCI) Block Guide V02.05S12SCIV2/D 8 张昊飏,马旭,卓晴. 基于电磁场检测的寻线智能车设计. 电子产品世界,2009.11指导教师意见: 指导教师签名: 年 月 日教研室或系审核意见: 教研室(系)主任签名: 年 月 日 备注:本开题报告须装入学生的毕业论文(设计)档案袋存档。基于电磁感应传感器的智能车系统设计(单驱动)毕 业 论 文(设 计)题 目: 基于电磁感应传感器的智能车系统设计(单驱动) (英文): Smart Car Design Based on Electromagnetic Induction Sensors (The Single Drive) 院 别: 机电学院 专 业: 机械电子工程 姓 名: 学 号: 指导教师: 日 期: 4基于电磁感应传感器的智能车系统设计(单驱动)摘 要本设计运用Freescale S12单片机控制模型车自动沿着黑白赛道完成比赛。本设计主要包括智能车的组装、机械机构的调整、系统方案和控制策略的选定、硬件电路和软件控制的设计等几部分。工作方式简介:用电感采集跑道信号,通过将电感信号滤波放大后,把信号传送到MC9S12XS128主芯片进行AD转换和处理,运用控制策略分辨出赛道的黑线和路况,控制转速和转向,使小车顺利完成比赛,在此基础上,再提高小车速度,对小车行驶路径进行优化。关键词:智能车;MC9S12XS128;PID;路径优化Smart Car Design Based on Electromagnetic (The Single Drive) AbstractThe design using Freescale S12 MCU to control model car run along the black and white track and complete the race Automatically.It includes smart car assembly, mechanical sector adjustment, system solutions and control strategy selected, hardware circuit and software control design and so on. How it works:It use the inductance to capture the track image signal. It use amplifier circle to transform the analog signal of the image,then transmit it to MC9S12XS128 main chip for processing. Use control strategy to distinguish the track and the conditions,then control speed and steering to complete the race successfully. Base on this, then increase the speed of the car and do some track optimization.Keywords: smart car; MC9S12XS128; PID; track optimization43目录1引言11.1 概述11.2 整车设计思路21.2.1 控制系统21.2.3 电磁组赛道主要特点42 硬件设计62.1 传感器方案62.1.1 磁场检测传感器62.1.2 传感器的布局72.2 主板电路设计72.2.1电源模块72.2.2 驱动模块82.2.3 各模块接口92.3 最小系统版92.4 其它外设143 机械设计153.1 舵机的安装153.2 传感器的安装153.3 车模的机械调校153.3.1 底盘高度153.3.2 前轮定位153.3.3 差速调整174 软件设计184.1 程序整体设计184.1.1 程序框图184.1.2 系统初始化184.2 磁场信息获取及处理224.3 赛车定位234.4 舵机控制284.5控速策略294.6 开发和调试手段314.6.1 BDM调试器的使用314.6.2 程序下载和调试324.6.3Matlab数据分析334赛车主要技术参数345结论35参考文献36致谢37附录A 程序源代码38附录B 设计图纸46基于电磁感应传感器的智能车系统设计(单驱动)1 引言1.1 概述智能车辆( intelligent vehicles, IV)是智能交通系统( in2telligent transportation systems, ITS)的重要构成部分,其研究的主要目的在于降低日趋严重的交通事故发生率,提高现有道路交通的效率,在某种程度上缓解能源消耗和环境污染等问题。智能车辆利用各种传感技术获取车体自身和车外环境的状态信息,经过智能算法对其进行分析、融合处理,将最终的决策结果传递给驾驶者,在危险发生之前,提醒驾驶员做出必要的回避动作,避免事故发生;在紧急状况下,驾驶者无法做出反应时,智能车辆则自主完成规避危险任务,帮助驾驶人员避免危险发生。 美国开始组织实施智能车辆先导( intelligent vehicle ini2tiative, IV I) 计划, 欧洲提出公路安全行动计划( roadsafety action p rogram, RSAP) ,日本提出超级智能车辆系统。我国科技部则于2002年正式启动了“十五”科技攻关计划重大项目,智能交通系统关键技术开发和示范工程,其中一个重要的内容就是进行车辆安全和辅助驾驶的研究。预计在2020年之前进入智能交通发展的成熟期,人、车、路之间可以形成稳定、和谐的智能型整体。智能车是一个集环境感知、规划决策、自动驾驶等功能于一体的综合系统。它集中的运用了计算机、传感器、信息。通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。本课题是源于飞思卡尔智能车竞赛,该竞赛所使用的车模是一款带有差速器的后轮驱动模型车,由组委会统一提供。比赛跑道为表面白色,中心有连续黑线或是漆泡线作为引导线,黑线宽为25cm,赛道中心线下铺设的0.1-0.3mm 直径的漆包线,其中漆泡线通有100mA交流电流。该比赛在地面铺设通有交变电流的引导线,在引导线周围激起交变的磁场,从而通过检测此磁场引导车辆行驶。使用电磁场作为引导智能车的优点,主要体现在磁场信号具有很好的环境适应性,不受光线、温度、湿度等环境因素的影响。由于电磁场是矢量场,具有方向行,对于不同的传感器和传感器的不同摆放方式,探测到的电磁场也是有所不同的。在本次竞赛中,参赛队伍需要制作出一个能够自主识别道路并行驶的智能车模。那么在模型车的制作过程中,最关键的问题就是如何探寻路径,如何施以合适的控制策略来确保小车在不违背比赛规则的前提下沿赛道尽可能快速稳定前进。而探寻路径的准确与否将直接影响小车行进的稳定效果,故而,设计出准确的寻线系统是该智能车制作过程中最重要的环节。比赛规则限定了跑道宽度50cm和拐角最小半径50cm,赛道具体形状在比赛当天现场公布。各参赛队伍在严格遵守比赛规则的条件下,在车模前面安装光电传感器或CCD或电磁传感器,并设计了电机驱动、转向舵机控制以及控制算法,以简洁但功能完美为出发点,以稳定为首要条件,以追求在最短的时间内跑完全程,并能检测赛道的起跑线,能够在完成比赛之后自动停止在起跑线3m范围之内。 1.2 整车设计思路智能车的比赛是以最短时间完成比赛为目标,对机械、硬件和算法的要求都挺高,要求软硬件两方面都能兼顾,能够快速、稳定的完成比赛。首先在硬件平台的搭建方面,我们在规定允许的范围内,对车模进行了适当的改装,在前后轮的定位、轮胎等进行了处理,使车模的稳定性更强,为速度的提高奠定了基础。同时,在电路设计上,添加了串口等功能,使传感器的调节更加方便,在试车时也会更加方便。然后是软件平台的搭建,在软件平台上,我们设计了无线遥控,可以在试车时及时控制小车启动、停车,极大地方便了调车,能够更清楚得看清小车的行进路线,保证了程序调试时更加具有针对性。1.2.1 控制系统智能车的工作模式如下图所示:电磁传感器获取赛道某点电磁特性,信号输入到 S12 控制核心,进行进一步处理以获得赛道信息;通过欧姆龙360线增量型编码器转速传感器检测车速,并采用 S12 的输入捕捉功能进行脉冲计数计算车速和路程;通过片上AD转换输入信号;舵机转向采用分段PD控制;电机转速控制采用 PID控制,通过 PWM控制驱动电路调整电机的功率。1.2.2 整车布局鉴于赛车和赛道的特点,在整车布局上仍延续基本布局的思路,采用低重心紧凑型设计,并架高舵机以提高响应速度。为调整整车重心位置,采用碳杆支撑电磁传感器,减小转动惯量。 在降低整车重心方面采用了低位主板的布局,同时设计了强度高质量轻的电磁传感器安装架,减轻信号采集电路板重量,降低电池架高度,降低赛车前方底盘高度。图1.2 车模电路设计构思图1.4所示为最终的参赛车模1.2.3 电磁组赛道主要特点1. 传感器信号为模拟值 电磁组需要检测的信号为大小 100mA,频率为20KHz 的方波信号,赛道由导线铺成,导线周围分布着交变的电磁场,由于赛道的各种形状,使得磁场发生叠加,不同的赛道形状形成不同的特征磁场,如下图为十字线附近的磁场。赛道信息相对于传统黑白线具有信号可以提供模拟信息的优势,我们利用电磁赛道这种优势,完善小车控制算法,达到了较好的控制效果。16 图1.3 导线周围磁场2. 传感器信号具有方向性 磁场是矢量,在空间的分布为具有方向性,所以传感器检测到的信号也具有特定的方向性。在实际检测的时候发现,不同方向传感器的变化规律有很大的不同,这也和磁场的分量变化规律相一致。比如,磁场垂直分量变化的比较早,但是受相邻赛道的影响较大,而磁场的水平分量恰好相反。如下图所示:图1.4 水平和垂直线圈的信号区别2 硬件设计2.1 传感器方案2.1.1 磁场检测传感器1、传感器的选择传感器设计关系整个项目的成败。电磁组的引导线为通有 20KHZ、100mA电流的漆包线(线径 0.1mm0.3mm) ,因此导线周围存在辐射电磁波。如何将电磁波能量转换为电压信号供AD采样成了本小车中最为关键的部分。 以下详细介绍了我们小车传感器方案选择、传感器设计、硬件制作、传感器优化的各个过程。一、方案选择我们主要涉及到电磁检测的方法主要有以下三种:1、电磁感应磁场测量方法:电磁线磁场传感器,磁阻抗磁场传感器。2、霍尔效应磁场测量方法:半导体霍尔传感器、磁敏二极管,磁敏三极管。3、各向异性电阻效应(AMR)磁场测量方法。上述三种检测方法我们都进行过实验,最终选择方案1,因为方案1实现容易,需求的器件易找易用,检测灵敏度高。2、放大电路设计使用 10mH电感和 6.8nF电容并联谐振,来感应 20KHz的磁场信号,经放大电路放大后,得到正弦波,再用 AD采样,得到正弦波的峰值,以判断传感器离导线的距离,从而定位导线。下面是三极管二级放大电路图:图2.1 三极管二级放大电路2.1.2 传感器的布局电磁传感器测出的信号为当前所在位置的某个方向的磁场信息,所以传感器的布局至关重要。通过实验发现,当传感器放前一点,前瞻搭,得到的赛道信息量大。所以,采用尽量架远主要传感器的方式,以获得前瞻,提前预知赛道形状。2.2 主板电路设计主板上主要包括电源模块、电机驱动、信号检测电路、各模块的接口。2.2.1 电源模块智能车的电源电压为7.2V,整车的电压配置如下图,采用芯片LM2940三端稳压芯片,降压为+5V输出。图2.3 电源配置和稳压电路2.2.2 驱动模块电机驱动使用两片 BTS7970,。BTS7970 为英飞凌公司的大电流电机驱动半桥,输出最大电流可达 63A,内部带有一个 P 沟道的高边 MOSFET、一个 N 沟道的低边MOSFET和一个驱动 IC。BTS7970 通态电阻典型值为16m。P 沟道高边开关省去了电荷泵的需求, 因而减小了EMI(Electro Magnetic Interference)。集成的驱动 IC 具有逻辑电平输入、电流诊断、斜率调节、死区时间产生和过温、过压、欠压、过流及短路保护的功能。BTS7970 应用非常简单,只需要向芯片第2引脚输入PWM 波就能控制。当系统中只需要单向控制时,只需要让电机一端接地,另一端接 BTS7970 第 4 引脚。如果需要电机双向旋转控制,则需要另一片BTS7970 共同组成,电路图如下:图2.4 电机驱动电路2.2.3 各模块接口包括最小系统板接口、传感器接口、人机界面接口、测速编码器接口、舵机接口,主要由插针等接插件组成。2.3 最小系统版单片机使用MC9S12XS128,MC9S12XS128 是飞思卡尔半导体公司的汽车电子类产品,早在飞思卡尔还没有从摩托罗拉分离出来前就已经诞生了。它隶属于飞思卡尔单片机的S12 系列,其内核为CPU12 高速处理器。MC9S12XS128 的封装有两种,一种为80 引脚的,它没有引出扩展总线,且AD 转换只引出了8 路;一种为112 引脚的,两种都采用了表面贴片式封装。下图为112 引脚的MC9S12XS128 引脚图:图2.5 最小系统版MC9S12XS128 拥有丰富的片内资源,有16路AD 转换,精度最高可设置为10 位;有8 路8 位PWM 并可两两级联为16 位精度PWM,特别适合用于控制多电机系统。它的串行通信端口也非常丰富,有2 路SCI,2 路SPI 此外还有IIC,CAN总线等端口,并且采用了引脚复用功能,使得这些功能引脚也可设置为普通的IO 端口使用。以下是它的系统结构图:13图2.6 MC9S12XS128的系统结构图以MC9S12XS128B芯片为核心的最小系统主要包括以下几个部分:时钟电路、串口电路、BDM接口、供电电路、复位电路和调试用LED灯。各部分的功能分别如下:(1)时钟电路为单片机提供一个外接的16Hz的石英晶振。(2)SCI串口可以输出TTL/CMOS电平。(3)BDM接口允许用户通过该接口向单片机下载和调试程序。(4)供电电路主要是给单片机提供+5V的电源。(5)复位电路是通过一个复位芯片给单片机一个复位信号。(6)调试用的LED灯和单片机的PORTB口相连,供程序调试使用。1、时钟电路时钟电路是单片机系统可靠运行的关键之一。如果时钟电路在设计上存在问题,会造成时钟电路不稳定,且时钟电路的高频响应噪声会引起系统的兼容性下降,会成为系统永久的隐患。这种不稳定因素带来的不可靠性会给整个系统的调试工作带来极大的困难,设计人员一般很难发现会是由于时钟电路设计不合理或辅助元器件参数有问题造成的。因此,在辅助元器件参数的选择、印刷电路板的布线等方面给予很大的重视。在设计时钟电路时,可以使用有源振荡器作为外部时钟,并且振荡器的频率不必太高,积累足够的经验后再使用频率更高的晶振。若使用无源石英晶振时,也可以不使用内部锁相环倍频电路。标准的MC9S12XS128单片机的时钟电路,通过吧一个16MHz的外部晶振接到单片机的外部晶振输入接口EXTAL和XTAL上,然后利用MC9S12XS128内部的压控振荡器(VCO)和锁相环(PLL)把这个频率提高到25MHz,使之作为单片机工作的内部总线时钟。值得注意的是,MC9S12XS128单片机的外时钟电路既可以使用串联振荡电路,也可以使用并联振荡电路。使用串联振荡电路时,XCLKS引脚即PE7引脚要拉低,而使用并联振荡电路或外部有源振荡器时,该引脚要拉高。因此,在最小系统的设计中,通常会设计一处跳线,方便选择外部有源振荡器还是串联振荡电路。图所示是最小系统外接无源晶振的接口电路。若直接使用有源振荡器,则可以接一个16MHz的外部有源晶体振荡器,经单片机内部分频后得到一个8MHz的总线时钟。由于EXTAL的输入电压为2.5V,故有源晶体振荡器输出的时钟信号必须经分压后才可以和EXTAL连接。对于锁相环模块,需要加上一个如图1.5所示的滤波电路。其中,VDDPLL引脚由单片机内部提供2.5V电压,XFC端是压控振荡器(VCO)的电压控制器,通过给锁相环电路编程,以数字方式锁定VCO的控制端电。而Cs,Cp和Rs的取值与晶振、REFDV寄存器和SYNR寄存器有关,需要通过计算得出,若其参数选择不当,会是VCO的控制端电压抖动,导致系统工作不正常。图2.7 最小系统外接无源晶振的接口电路以及锁相环滤波电路2、串行口的RS-232驱动电路通过串口驱动电路中的RS-232电平转换芯片,单片机可以利用异步通信协议与PC机通信。RS-232电平转换芯片可以实现TTL电平与RS-232电平之间的转换,然后再通过9芯串行口与PC进行串口通讯。3、电源电路HCS12单片机的芯片内部使用3V电压,而I/O端口的外部供电电压为5V。通常需要采用滤波电路改善系统的电磁兼容性,降低系统对电源的高频干扰。4、复位电路复位电路的作用是产生一个低电压信号给MC9S12XS128的RESET端,使系统上电启动。在最小系统中,通常使用低电压复位芯片MC34064,使上电复位更加可靠。而在设计系统目标板时,也可以只用一只0.1F的电容替代电路中的MC34064。同时,在系统目标板上通常添加一个手动复位按钮,以方便调试时使用。5、BDM接口BDM接口是连接BDM调试工具,其中BDMIN接口是接BDM调试工具,向MC9S12XS128单片机下载程序用的。若下载相应的BDM调试工具软件到目标板后,这块板就具有了BDM调试器功能。BDMOUT接口是当开发上的应用程序为BDM调试器程序时,此接口可以用做BDM调试器的输出口。如果不打算将这块目标板用作BDM调试器,可以不引出BDMOUT接口,从而有更多的I/O口可供用户的应用程序使用。6、单片机并行口及驱动能力并行口模块是单片机中最简单的I/O模块,其他功能模块如SCI,SPI,PWM,CAN等在不作为相应功能模块使用时,也可以作为并行口模块使用。如果在单片机的并行口上连接一些发光二极管(LED)可用于调试时显示系统的应用程序的某些状态。S12单片机的引脚共都可以当做通用I/O引脚使用。特别是A口、B口、K口常用于CPU总线扩展时的总线接口,它们不用做中线扩展是只能作为并行口使用。并行I/O口上有一个方向寄存器,他控制并行I/O口时用于输入还是输出。若方向寄存器相应位清零,表示该位用于输入;往方向寄存器相应位写1,表示改位用于输出。为安全考虑,单片机的I/O口在复位时,方向寄存器是清零的,即复位后所有I/O口都默认为输入口。并行I/O口在初始化时,要往相应的方向寄存器位写1,才能将改口定义为输出。对于定义为输出口的单片机引脚,可输出逻辑1或逻辑0,在5V供电的情况下,逻辑1不低于4.2V,逻辑0不高于0.8V。如果不作特别说明,一般单片机的I/O口的驱动能力相当于一个TTL晶体管的驱动能力。TTL晶体管导通时,输出为0,相当于输出端接地,允许流过晶体管的典型电流为4mA;TTL晶体管截止时,输出端通过片内的上位电阻保持输出端高电平。当作为高电平输出用时,与高电平可能的输出电流相比,低电平有较强的吸收电流的能力,不能指望有单片机向外提供功率,也不能指望单片机输出的高电平可以直接点亮一个LED灯,而要利用晶体管觉的导通,靠外部供电来驱动输出设备。这样,当单片机的引脚输出高电平,晶体管截止,相当于开路,LED熄灭。S12单片机的I/O接口有较强的电流吸收能力,各I/O接口可以允许10mA吸收电流,此时输出端仍能保证不高于0.8V。2.4 其它外设测速编码器使用 360线每转的欧姆龙编码器,如下图。图2.6 欧姆龙编码器3 机械设计3.1 舵机的安装今年的比赛所用的舵机是数码舵机,S-D5数码舵机,工作电压4.5-5.5V,带堵转保护电路,力矩5.0kg,回中更准确,定位更精确, 动作速度0.140.02sec/60。数码舵机提升了脉冲密度,轻微的信号改变都会变的可以读取,这样无论是遥控杆的轻微变动,或者舵机摇臂在外力作用下的极轻微变动,都会能够检测出来,从而进行更细微的修正。然而,数码舵机比起模拟舵机寿命短,考虑到数码舵机的性能,舵机安装如下:3.2 传感器的安装电磁传感器测出的信号为当前所在位置的某个方向的磁场信息,所以传感器的布局至关重要。通过实验发现,当传感器放前一点,前瞻搭,得到的赛道信息量大。所以,采用尽量架远主要传感器的方式,以获得前瞻,提前预知赛道形状。为了平衡整辆车的机械结构,减轻重量,支撑电感的材料采用碳素纤维管,具体结构如下:3.3 车模的机械调校3.3.1 底盘高度一般来说,底盘的高度越低,车的转向性能越好,行驶稳定性越佳。前高后低的布置会比较有利于转向。所以我们将前后底盘的高度都降低到 5mm 左右。加强车的机械强度,同时减轻重量,在车模撞击赛道和墙壁是能够很好经受住考验。3.3.2 前轮定位主销后倾角和车轮前束可以提高车模行驶时的转向回正力。我们所使用的车模中,车轮和主销是平行的,一般调成 0 度左右就可以了,适当的正前束可以提高连续转向的反应能力。车模前轮的空程比较大,过弯时车轮定位参数会发生比较大的变化,所以我们把主销的内倾角设成比较大的值,会更有利于过弯。1 前轮前束的调整车轮前束是指从上往下看两个车轮指向的方向(如图xx所示)。在前端指向内的一对前轮是车轮前束,零前束即车轮指向正前方,这时轮胎的磨损最小。 前束过大则磨损轮胎面外部花纹边缘 ,在我们的方案中,车模的设计结构是后轮驱动,所以使用前束。前轮前束的作用是: 前轮外倾有使前轮向外转向的趋势,前轮前束有使车轮向内转向的趋势,可以抵消因前轮外倾带来的不利影响,使车轮直线滚动而无横向滑拖的现象,减少轮胎磨损。悬架系统铰接点的变形,也使前轮有向外转向的趋势,也要靠前轮前束来补偿。图3.1 车轮前束2 主销内倾角的调整当汽车水平停放时,在汽车的横向垂面内,主销轴线与地面垂线的夹角为主销内倾角,如图3.2中的角。主销内倾角的作用:是使车轮自动回正。主销内倾时的受力分解如图3.3所示。车轮轴线与主销夹角在转向过程中是不变的,当车轮转过一个角度,车轮轴线就离开水平面往下倾斜,致使车身上抬,势能增加。这样汽车本身的重力就有使转向轮恢复到原来中间位置的效果。另外外轮的回正力矩大于内轮所受回正力矩,总的效果是使内外轮顺着图中蓝色箭头转动,如图3.4所示,因此回正力矩总的效果是使汽车回正。图3.2 主销内倾角图3.3 主销内倾时受力分解图3.4 主销内倾角效果3.3.3 差速调整车在转弯时后轮的速度会不同,所以需要差速器。在后轮不打滑的情况下,差速越松,转向效果越好,但是太松的差速会导致无法提供驱动力。实际中在赛道上调整到比较平衡的值就可以了。在差速和摩擦轴承中适当加点油也可以一定程度上改善差速的性能。 4 软件设计4.1 程序整体设计4.1.1 程序框图系统初始化读取道路信息处理道路信息并得到相关参数根据参数选择算法执行舵机与电机图4.1 程序流程图4.1.2 系统初始化在整个软件系统设计中,主要用到了5个单片机基本功能模块:系统总线超频模块、定时器中断模块、PWM模块、 AD转换模块、串口通信模块。 1、系统总线超频模块初始化 S12 单片机中有四个不同的时钟,即外部晶振时钟、锁相环时钟、总线时钟和内核时钟。 当前电路板采用的是16MHz 的有源晶振,因此外部晶振时钟为16MHz;默认设置下,锁相环时钟为36MHz,总线时钟为8MHz,内核时钟为16MHz。锁相环时钟与外部晶振时钟的倍、分频关系由SYNR、REFDV 两寄存器决定。总线时钟用作片上外围设备的同步,而内核时钟则用作CPU 的同步,它决定了指令执行的速度。针对智能车系统,我们需要尽可能地提高软件运行速度和效率。因此,我们通过锁相环设置将系统总线频率由 8MHZ 提高到64MHZ。 void chaopin_init(void) /超频64M CLKSEL=0X00; PLLCTL_PLLON=1; SYNR =0xc0 | 0x07; REFDV=0xc0 | 0x01; POSTDIV=0x00; _asm(nop); _asm(nop); _asm(nop); _asm(nop); while(!(CRGFLG_LOCK=1); CLKSEL_PLLSEL =1; 2、PWM模块初始化脉宽调制模块有8 路独立的可设置周期和占空比的8 位PWM 通道,每个通道配有专门的计数器。该模块有4 个时钟源,能分别控制8 路信号。通过配置寄存器可设置PWM 的使能与否、每个通道的工作脉冲极性、每个通道输出的对齐方式、时钟源以及使用方式(八个8 位通道还是四个16 位通道)。为了提高控制精度,我们将两个单路的PWM 进行了级联,将输出控制精度从原来的8位提高到了16位。将5、7通道级联连接舵机,3通道接电机。具体初始化程序如下:void PWM_init(void) PWMCLK=0XA8; /5通道选择ClockSA, 3 7通道选择ClockSB PWMSCLA=0X08; /COLKSA=1MHZ PWMSCLB=0X08; /COLKSB=1MHZ PWMPRCLK=0X22; /A_COLK=16MHZ B_COLK=16MHZ PWMPOL=0XA8; /3,5,7通道输出起始高电平 PWMCAE=0X00; /左对齐方式(计数器循环增计数) PWMCTL=0XF0; PWMCNT23=0X0000; PWMCNT45=0X0000; PWMCNT67=0X0000; /从零开始计数 PWMPER23=20000; /设置输出周期为20ms PWM67驱动舵机 PWMDTY23=center; PWMPER45=1000; /周期10ms PWM45驱动电机正转 PWMDTY45=120; /4,5控制正转 PWMPER67=1000; /F=1KHZ PWM01驱动电机反转 PWMDTY67=100; /6,7控制反转 PWME_PWME3=1; /3,5,7通道使能,输出PWM PWME_PWME5=1; PWME_PWME7=0; 3、AD转换模块初始化void ATD_init(void) ATD0CTL1=0X00; /8位精度, ATD0CTL2=0X60; /快速清除标志位,禁止外部触发,不使能中断 ATD0CTL3=0XF8; /右对齐方式 完成转换后冻结 转换序列长度为12 ATD0CTL4=0X03; /采样时间为8MHZ 四个周期,转换时间2MHZ ATD0CTL5=0X30; /多通道转换和连续转换 ATD0DIEN=0X00; /禁止数字输入 4、定时器中断模块初始化void ECT_init(void) /计数 PACTL=0X50; /下降沿计数 PACNT=0X0000; void Timer_init(void) / 定时器计时中断 PITCFLMT_PITE=0; PITCE_PCE0=1; /使能通道0 PITMTLD0=11; PITMUX=0X00; PITLD0=320-1; /定时1ms PITMTLD0=200-1; PITINTE_PINTE0=1; PITCFLMT_PITE=1; 5、串口通信模块串口通信模块设有两个串行通信接口SCI1 和SCI0。使用时,可以对波特率、数据格式(8 位或9 位)、发送输出极性、接收唤醒方式等进行选择。另外,发送和接收可分开使能,模块中还提供了多种避免传输错误的选项。在本次设计,我们利用其中一个串口SCI0,将所需要的信息通过串口传到电脑上进行必要的处理和分析,以提高调试的效率。部分程序如下:void Sci_init(void) /串口初始化 DDRM=0x01; SCI0BDH=0x00|0x01; /波特率设置 SCI0BDL =0xA0; SCI0CR2=0X2C; /中断允许,TXD引脚用于发送禁止接收器中断, SCI0CR1=0; 串口发送程序如下:void SciTx(unsigned char text) unsigned char temp; temp=SCI0SR1; while (!(SCI0SR1&0x80); /延时至发送数据寄存器为空 SCI0DRH=0; SCI0DRL=text; delay(100); 4.2 磁场信息获取及处理我们通过电磁传感器获得一组AD采样信号,供单片机处理。磁场之间存在相互的影响,电感之间也存在干扰,因此,如何准确进行采样成为必须解决的课题。为了获取更加准确的数据信息,我们对获得的数据进行了相应的处理:将数据都存入一个数组中,当采集到一个新的数据时,对数组中的数据进行滚动刷新,即新的数据靠前,旧的数据排后,数组中最早采集的数据在每次刷新的过程就自动丢弃。然后对该数组中的数据求阙值,这样就获得了一个相对比较准确的数据。程序如下:void get(void) while(!ATD0STAT2_CCF0); g0=ATD0DR0L-12; while(!ATD0STAT2_CCF1); g1=ATD0DR1L; while(!ATD0STAT2_CCF1); g2=ATD0DR2L; ref_AD2=(g0+g2)/2; ref_AD1=ref_AD2*13/8; 4.3 赛车定位要控制好车的转向和速度,首先就要对赛车进行准确的定位。根据电感线圈在磁场中感应电动势计算公式:可以知道,在传感器靠近电磁线的地方,传感器获得的电压信号越大,反之越小。两者之间的关系如下图:图4.2 感应电动势与x之间关系如果只使用一个线圈,感应电动势E是位置x的偶函数,只能够反映到水平位置的绝对值 x 的大小,无法分辨左右。为此,我们可以使用相距长度为L的两个感应线圈,计算两个线圈感应电动势的差值:图4.4 感应电动势差值与x之间的关系 从上图可以看出,当两个线圈的中心恰好处于跑道中央,感应电动势差值 d E 为0。当线圈往左偏移,感应电动势差值小于零;反之,当线圈往右偏移,感应电动势大于零。因此电动势差值 d E 与位移x是一个单调函数。可以使用这个量对于小车转向进行负反馈控制, 从而保证两个线圈的中心位置跟踪赛道的中心线。通过改变线圈高度h ,线圈之间距离L可以调整位置检测范围以及感应电动势的大小。 如图 4.1 所示我们可以比较容易的获取赛道中心线的位置。首先对所有传感获得的数据进行处理,找出最大数据传感器的位置,实现对赛道信息的粗定位,然后再以最大值传感器位置为中心,借助其左右传感器获取的信号的大小来确定是偏左还是偏右,以实现更加精确的定位。经过多次的研究和实验发现, 运用分段处理和比值运算可以有效的解决上述问题。分段处理就是把传感器之间的中心位置作为运算的分界点,分别处理各段的数据信息;比值运算就是运用数据的比值来计位置偏移量,将比值控制在0-1之间,用一个常量乘以这个比值就可以相应的位置。这样获得的比例位置关系非常的接近直线关系,可以近似为一次函数来处理。其仿真关系如图 4.3所示。图4.3 分段处理和比值运算函数运用此方法,我们将赛车相对与赛道中心线的位置关系定位为0-180(传感器宽度定位 30-150) ,这样就算传感器完全偏离赛道中心线也能够获得定位数据。如图4.4给出了几种特殊位置的定位。图4.4 位置定位赛车定位的程序如下图所示:void calcu_position(void) if(g0!=g1!=g2) for(i=0;igmax_num) max_num=i; else if(g0=g1)&(g1g2) this_position=-L/2; else if(g2=g1)&(g1g0) this_position=L/2; else this_position=last_position; if(max_num=2) if(g2ref_AD2) this_position=-L/2-L/2*(g2-g1)/(g0-ref_AD2); else this_position=-L*3/2+L/2*(g2-ref_AD2)/(g2-g1); else if(max_num=0) if(g0ref_AD2) this_position=L/2+L/2*(g0-g1)/(g0-ref_AD2); else this_position=L*3/2-L/2*(g0-ref_AD2)/(g0-g1); else if(g2g0) this_position=L/2*(g1-g2)/(g1-g0)-L/2; else if(g2g0) this_position=L/2-L/2*(g1-g0)/(g1-g2); else this_position=0; last_position=this_position; 4.4 舵机控制小车转向角的控制通过输入PWM信号进行开环控制。根据检测的不同路径,判断出小车所在位置,按不同的区间给出不同的舵机PWM控制信号,小车转过相应的角度。考虑到实际舵机的转向角与所给PWM信号得占空比基本成线性关系,舵机的控制,舵机的反映速度完全滞后于处理速度,车模在高速行驶时候要保证舵机的快速跟踪性,我们引入了PD控制的方法,人为的将舵机的控制进行了非线性的划分。当偏差很小时候几乎忽略掉P和D,这时在通过直道区域的时候车子不会发生摆头现象。当偏差大到一定数值会加大P,并且引入D控制。当偏差继续增加,这时会引入更大的P和D更大的P和D能有助于车模的维持方向,在弯道上斜率会显著增加,这样又能保证在小圆环内不至于偏离出跑道太多以至于丢失跑道。所以舵机控制方案采用分段PD控制。小车处于弯道和直道的转向模型不同,对舵机控制量改变过大会导致小车在直线行驶时出现振荡,过小导致最大控制量偏小,小车转向不足,过弯时冲出赛道。 我们采用分段 PD 控制很好的 解决了上两种问题。我们根据引导线的斜 率来确定 P 和 D 的系数,具体方法如下:利用两排传感器得出前排引导线偏移量和后排引导线偏移量,分别为 position1 和 position2 ,由于两排传感器的间距已知为 L ,则可以求出引导线的斜率:当小车处于直道时, k=0 ,此时 P 和 D 的值给很小。 k 值越大说明弯越急,因此所给的 P 和 D 的值也要相应增大。如果 k 值超过限度,说明车子姿态已严重偏 离引导线,此时转角给最大值,并减速到一个安全的过弯速度。下表给出了 P 和 D与斜率之间的关系值最大的电感PD121.8251.234.51.24.5控速策略模拟PID控制系统组成原理如图4.1所示。PID调节器是一种线性调节器,它将给定值r(t)与实际输出值c(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制。10图4.1 PID控制系统组成模拟PID调节器的微分方程: 公式1式中:。模拟PID调节器各环节的作用:比例环节:即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越弱,反之则越强。微分环节:能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。相对于模拟PID,控制器只能处理数字信号,因此需要将模拟PID进行离散化处理。模拟PID控制规律的离散化见表4.1所示。数字PID控制器的微分方程: 公式2式中:为比例项,为积分项, 为微分项。表4.1 模拟PID控制规律的离散化模拟形式离散化形式常用的控制方式分为如下几种:1、P控制 2、PI控制 3、PD控制 4、PID控制 我们车模的的电动机控制采用了增量式PID控制算法,舵机控制采用了位置式PD算法。电动机的控制方法,在处理器对道路信息进行了处理后就会得到相应的速度设定值,此时PID运算程序会立即得出输出的脉宽调制的宽度,并通过速度反馈即使获得实时速度。当然我们的PID算法并不是原始的,而是改进的,既当速度差距很多时也会引入BangBang控制,而当需要刹车时又采用了非线性的刹车办法,将刹车误差人为放大。由于加速和减速都采用了PID控制,因此加速和制动的时间都由程序根据实际需要自行处理,测试中发现这种算法速度上升很快并且适应性很强。在车模速度很高的情况下,任何一个错误的操作都会使得车辆冲出跑道造成比赛的失败,为了更好的降低错误判断,尽可能的提高车模的稳定性,这里对舵机的控制数据进行记录,每一次更新控制信息都要比较两次信息的误差,依据我们的车速,车模在连续的跑道上上下间隔数据偏差不会大过4cm,一旦出现了过大的偏差就会舍弃这一次的控制信息,维持原来的控制结果。实践中这样不但增加了车模的稳定性,还能有效避免错误信息对车模影响。电机的控制采用经典的 PID控制,各环节的具体参数要经过反复的调整,以达到对各种赛道类型的适应性的平衡。各环节的注意点如下: P环节:和控制的力度相关,过软和过硬都不好。可以适度地采用分段 P的方法,即黑线在车的中间位置时 P 较软,黑线偏离较远时 P 较硬,以实现部分赛道的优化。 I 环节:I 环节可以使控制更加精准,但也有使控制变迟钝的负面效应,所以在前瞻较近时不宜加如 I 环节,而当前瞻比较充足时可以适当加入 I 环节,这样可以弥补分段 P的一些不足,也提高了控制的精准程度。 D 环节:D 环节能起到对赛道变化趋势预测的作用。适当加入 D 环节可以使转向更灵敏,并能起到优化大 S参数的作用。D的缺点是会放大“噪声”,对检测到得信息进行数字滤波可以部分解决这个问题。 4.6 开发和调试手段4.6.1 BDM调试器的使用1、 在开发环境安装目录的prog文件夹下可以找到名为Hiwave.exe的图标,双击它即可打开调试软件。2、 然后将BDM调试器与计算机相连,此时系统会提示安装相应的驱动程序,选择配套光盘目录下2-TBDML DLL Driver文件夹下的bin_tbdml_win_driver_11文件夹即可完成驱动的安装。在右下角命令窗口中输入set gdi命令,同样要添加光盘2-TBDML DLL Driver文件夹下的bin_tbdml_gdi_dll_11文件,添加完确认后会提示设置相关参数,如图6.4所示,应将晶振频率设置为16.00(M)。然后选择OK,设置完成该项参数。 图4.7 Hiwave调试环境设置3、 将BDM与单片机连接,然后在命令窗口中通过键盘方向键调出刚才输过的命令set gdi,回车确认后有提示选择相应型号的单片机,在此选择MC9S12XS128B,如图6.5所示。至此完成了所有基本参数的设置。 图4.8 选择单片机型号4.6.2 程序下载和调试BDM连接成功之后,就可以向单片机下载程序了。下载程序之前必须通过Hiwave对单片机进行复位,否则会使Flash擦除不成功,甚至导致Flash保护等错误。复位可以通过选择TBDML HCS12|Reset菜单命令或者单击工具栏的快捷图标来实现。复位后单片机程序停止运行,选择TBDML HCS12|Flash命令打开如图6.6所示内存擦写窗口,先选中后三行内存进行擦除(Erase),擦除之后下载(Load)新程序即可。图4.9 程序擦写窗口Hiwave 具有丰富的调试功能,在本车的调试过程中配合电视机的使用几乎不需要使用别的上位机软件。现对其各窗口功能作简单介绍如下:Source:查看所下载的代码,并具有设置断点,单步调试等功能。二者相互结合能很快的找出程序里的BUG。Data1:显示程序中的静态变量。在对摄像头的调试中,能查看所有采集点的对应数值,从而找出对应的黑线位置。Assembly:显示汇编代码。Registers:显示当前寄存器的值。Memory:显示内存数值。Command:命令行,具体的命令可以键入help查看。4.6.3 Matlab数据分析为了方便分析不同线路信号特点以及电感不同摆放所捕获信号的特点,分别将电感分为水平电线、垂直电线、平行电线三个方向摆放电感,在直道和弯道的分别测量各个信号数值,用Matlab绘制成曲线图,方便分析不同信号电路的特点,从下图中可以看出,平行电线电感所捕获的信号很微弱,难以判断小车离线的多少,不能达到控制目的,水平电感基本成线性分布,很容易计算小车偏线程度,垂直电感有判断弯道的作用,有利于小车速度控制。 图4.10 Matlab 数据分析表4 赛车主要技术参数项目参数路径检测方法(赛题组)电磁组车模几何尺寸(长、宽、高)(毫米)287.5/166/7车模轴距/轮距(毫米)160车模平均电流(匀速行驶)(毫安)1200电路电容总量(微法)1900传感器种类及个数电感3个 编码器1个新增加伺服电机个数0赛道信息检测空间精度(毫米)5赛道信息检测频率(次/秒)50主要集成电路种类/数量LM2940 3片,BTS7960 2片车模重量(带有电池)(千克)1.55 结论在智能车制作过程中,运用了课上所学的知识,并且也学习到了许多课程以外的知识。其中发码器、传感器的制作是课题研究的前提,也是制作中难度较大且关键的环节。最初,在发码器制作过程中没有考虑外接负载的变化给电路带来的影响,对实际测试带来了一定的影响。通过增加恒定电流环节和匹配电容后改善了发码器的性能,达到了课题研究的要求。因为传感器输出的信号是模拟量,所以在制作过程中电阻、电容、电感的误差对传感器性能产生了很大的影响,相同电路以及布局最终传感器的性能却不相同,给调试带来了很大的麻烦。在车模调试过程中,前轮转向、差速器、重心等的调校对于车体的机械性能有很大的影响。相同车体机械性能情况下,控制算法就起着决定性作用了。控制算法的编写和调试是整个项目最为重要的部分,理论算法和实际运用有较大的差别,需要调试中去修改,不能完全按照理论制作,但又不能缺少理论的支持。转向控制与速度控制之间存在着不可或缺的联系,只有将这两者结合才能达到最好的控制,但两者的结合却又使得算法复杂性提高、难度加大。在设计时结合实际,充分考虑了赛道信息及小车结构,特别是在机械结构方面做了大量的改进来降低运行过程中的错误率。如考虑到小车在跑S道时容易冲出跑道的问题,我们首先运用力学,运动学等知识进行综合分析,结合理论分析得到改进方案通过重心的转移、提高舵机转向的灵活性以及增大轮胎抓地性等方面进行改进。让小车在转弯时快捷、灵敏、稳定不至冲出跑道。在硬件设计过程中我们进行大量比较,认真筛选,选择合适的电路和芯片提高小车的运行效率。如对驱动芯片的选择,我们仔细区别各芯片的优劣,通过模拟或参考前人经验选择最好的电路和芯片。光有上面这些是远远不够的,软件算法也至关重要,离开程序的控制,前面的一切都是徒劳的。在软件算法方面我们结合多种算法(PID算法,记忆算法等)对赛道信息的精确识别以及对小车运动状况的控制。包括起跑线的识别,十字交叉线、直道、S道等的识别以及小车运行速度、加速度的检测。通过MCU对各模块信息的综合处理来控制小车稳定运行。参考文献1 卓晴,黄开胜,邵贝贝.学做智能车M.北京,北京航天航空出版社,20072 康华光.模拟电子技术基础.北京,高等教育出版社,20053 李仕伯,马旭,卓晴,基于磁场检测的寻线小车传感器布局研究.2009.12.10.4 沈长生常用电子元器件使用一读通M北京,人民邮电出版社20045 谭浩强.C程序设计M.北京,清华大学出版社,20016 张孝文,高频电子线路(第四版).北京:北京高等教育出版社,2004.11.7 HCS12 Serial Communication Interface(SCI) Block Guide V02.05S12SCIV2/D 8 张昊飏,马旭,卓晴. 基于电磁场检测的寻线智能车设计. 电子产品世界,2009.19 MEASUREMENTS & CONTROL 1995年12月作者:TAMARA BRATLAND ,ROBERT BICKING和BHARAT B. PANT 10 新型PID控制及其应用 2002年 作者:陶永华主编 机械工业出版社 11 控制系统仿真及MATLAB语言 2009年 作者:吴忠强等 电子工业出版社 12 刘畅生,张耀进,宣宗强,于建国, 新型集成电路简明手册及典型应用(下册). 西安:西安电子科技大学出版社, 2005.1 13 学做智能车 2004年 作者:邵贝贝等 北京航空航天大学出版社.14 李朝青,单片机&DSP外围数字IC技术手册(第2版).北京:北京航空航天大学出版社,2005.10.15 张志涌等,MATLAB教程.北京:北京航空航天大学出版社,2006.8.16 张昊飏,马旭,卓晴, 基于电磁场检测的寻线智能车设计. 北京:清华大学,2009.11.09致谢此次设计能够顺利的完成任务,单靠我个人的能力是完全无法实现的。在此次设计中,我得到了很多人的帮助,首先,要感谢给予我关心和帮助的老师,在老师的严格要求和悉心教导下,帮助我解决了很多问题老师不仅在学术上给我以精心指导,同时还在思想、生活上给我们无微不至的关怀,在此谨向老师致以诚挚的谢意和崇高的敬意。并且常常鼓励我不要怕困难,要勇于挑战新成绩,同时也要感谢学院和学校领导支持,另外感谢帮助我的师兄师姐和师弟师妹们。坚持就是胜利是我在这次设计中感受最深刻的一点,相信在以后的工作中我将继续带着这种热情,用心投入,不计得失。最后,感谢培养和教育过我的各位辛勤工作的老师们,你们辛苦了!感谢帮助过我的各位朋友,谢谢!附录A 程序源代码#include /* common defines and macros */#include /* derivative information */#pragma LINK_INFO DERIVATIVE mc9s12xs128#define center 1500#define right 1880#define left 1125#define L 10#define max_speed 200#define min_speed 100#define kp 94#define ki 10#define kd 10unsigned char g3,ref_05,ref_25,i,j,k,l;unsigned int sum_0=0,sum_2=0,ref_AD1,ref_AD2,set;int this_position,last_position=0,diff_position,this_angle=center,pre_angle=0,p3,last_angle3;int ideal_count,count,pulse_count,error,d_error,dd_error,speed,h3;int max_num=0,last_max_num,diff_num; void delay(unsigned char z) unsigned char x,y; for(x=100;x0;x-) for(y=z;y0;y-); /=超频64M= void chaopin_init(void) /超频64M CLKSEL=0X00; PLLCTL_PLLON=1; SYNR =0xc0 | 0x07; REFDV=0xc0 | 0x01; POSTDIV=0x00; _asm(nop); _asm(nop); _asm(nop); _asm(nop); while(!(CRGFLG_LOCK=1); CLKSEL_PLLSEL =1; /=PWM初始化 5 7电机 3舵机= void PWM_init(void) PWMCLK=0XA8; /5通道选择ClockSA, 3 7通道选择ClockSB PWMSCLA=0X08; /COLKSA=1MHZ PWMSCLB=0X08; /COLKSB=1MHZ PWMPRCLK=0X22; /A_COLK=16MHZ B_COLK=16MHZ PWMPOL=0XA8; /3,5,7通道输出起始高电平 PWMCAE=0X00; /左对齐方式(计数器循环增计数) PWMCTL=0XF0; PWMCNT23=0X0000; PWMCNT45=0X0000; PWMCNT67=0X0000; /从零开始计数 PWMPER23=20000; /设置输出周期为20ms PWM67驱动舵机 PWMDTY23=center; PWMPER45=1000; /周期10ms PWM45驱动电机正转 PWMDTY45=120; /4,5控制正转 PWMPER67=1000; /F=1KHZ PWM01驱动电机反转 PWMDTY67=100; /6,7控制反转 PWME_PWME3=1; /3,5,7通道使能,输出PWM PWME_PWME5=1; PWME_PWME7=0; /=ECT初始化= void ECT_init(void) /计数 PACTL=0X50; /下降沿计数 PACNT=0X0000; void Timer_init(void) / 定时器计时中断 PITCFLMT_PITE=0; PITCE_PCE0=1; /使能通道0 PITMTLD0=11; PITMUX=0X00; PITLD0=
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于电磁感应传感器的智能车系统设计(单驱动)
链接地址:https://www.renrendoc.com/p-23250343.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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