基于单片机的智能小车设计.doc

上传人:文库蛋蛋多 文档编号:2390590 上传时间:2023-02-17 格式:DOC 页数:31 大小:1.21MB
返回 下载 相关 举报
基于单片机的智能小车设计.doc_第1页
第1页 / 共31页
基于单片机的智能小车设计.doc_第2页
第2页 / 共31页
基于单片机的智能小车设计.doc_第3页
第3页 / 共31页
基于单片机的智能小车设计.doc_第4页
第4页 / 共31页
基于单片机的智能小车设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《基于单片机的智能小车设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能小车设计.doc(31页珍藏版)》请在三一办公上搜索。

1、基于单片机的智能小车的系统设计Design of Intelligent Car System Based on MCU基于单片机的智能车设计摘 要近几年来,智能车辆己成为汽车和智能控制领域的热点研究课题之一。它体现了自动控制、人工智能、传感技术、机械、计算机等多个学科领域理论技术的交叉和综合,本论文以飞思卡尔智能车大赛光电组为背景而展开。智能车系统以Freescale 16位微控制器MC9S12XS128作为系统控制处理器,采用基于光电传感器的信号采样模块获取赛道黑线信息,通过PID控制策略和 PWM控制技术对智能车的转向和速度进行控制。使智能车能够自主识别黑色引导线并根据黑色引导线实现快速

2、稳定的寻线行驶。本论文分析了智能车系统的设计方案,详细介绍了智能车控制系统的软硬件设计,包括传感器模块、驱动电机模块、舵机转向模块、测速模块等,并详细介绍了软件控制算法的设计,最后,介绍了智能车的整体调整、测试。调试实验结果表明,智能车系统工作稳定,能较好的满足控制要求。 关键词智能汽车;MC9S12XS128;光电传感器;控制算法Design of Intelligent Car System Based on MCUElectrical Engineering and Automation Major SHI Xiao-yingAbstract: In recent years, inte

3、lligent vehicles have become a hot research topic of cars and intelligent control area. It embodies the automatic control, artificial intelligence, sensor technology, machinery, computers and many other areas of the intersection of technology and integrated. The intelligent car system, with the Fres

4、scale 16-bitsingle-chip MC9S12XS128 as its control microprocessor, uses signal acquisition module to obtain lane image information, and adopts signal PID control strategy together with PWM technology to have a control on the steering angle and speed of the system. The main function that the intellig

5、ent car may achieve is that the car should track the black-guide-line automatically and move forward following the line as fast and stable as possible. This paper gives an overall design blueprint of the intelligent car system, introduce the hardware design including signal acquisition module, power

6、 supply module, motor drive module, servo motor module, velocity collection module and etc. and the intelligent car of the mechanical structure and adjustment method. Finally, on the smart cars overall debugging and testing, the results show the smart car hardware system stability, better able to me

7、et the requirements of control. Key words: intelligent vehicles; MC9S12XS128; Photoelectric sensor; Control algorithm目 录1 引言11.1 课题背景11.2 智能技术国内外发展现状11.3 课题研究的任务12 整体设计方案22.1 路径识别传感器的选定22.2 系统总体框图33 硬件电路设计43.1 MCU模块43.2 电源管理模块53.3 路径识别模块63.3.1 光电传感器原理63.3.2 传感器的选择73.3.3 激光传感器电路设计73.4 电机驱动的选型和电路设计93.

8、5 速度测量模块93.6 转向舵机控制模块103.6.1 舵机的控制113.7 MC9S12XS128的硬件I/O分配124 系统的软件设计124.1 系统初始化134.2 路径识别算法144.2.1 激光传感器路径识别状态分析144.2.2 路径识别算法的设计174.3 转角和速度控制算法174.3.1 转向舵机控制算法184.3.2 驱动电机控制算法184.4 软件设计环境与开发工具19结束语21参考文献22附录 部分源程序22致谢281 引言1.1 课题背景近年来随着汽车工业的迅速发展,关于汽车的研究也就越来越受到大家的关注。但当前的电动小汽车基本上采用的是基于纯硬件电路的一种开环控制方

9、法,或者是直线行驶,或者是在遥控下作出的前进、后退、转弯、停车等基本功能,无法满足某些特殊场合下的智能化操作要求。随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快 ,智能度越来越高 ,广泛应用于海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。当今机器人技术发展如火如荼,应用在国防等众多领域得到广泛开展。在国外,全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,本设计就是在这样的背景下提出的一个智能电动小车,本课题是依托于飞思卡尔智能车大赛光电组而展开的。1.2 智能技术国内外发展现状我国对智能小车的研究开始于“八五”期间,在“九五”期间各方面技术得

10、到了进一步的提高。随着人工智能技术、计算机技术、自动控制技术的迅速发展,智能控制技术必将得到更进一步的发展,并且传感器在其中所发挥的作用也日益重要。因此,遥控加智能的技术研究、应用都是非常有意义而且有很高的市场价值的。国外对智能车辆的研究始于20世纪50年代初,美国Barrett Electronics公司开发出的世界上第一台自动引导车辆系统(Automated Guided Vehicle System AGVS)。由于智能小车能在那些人类无法工作的环境中工作,在世界科学界和工业设计界中,众多的研究机构正在研发智能车辆,该技术可以应用于无人驾驶机动车,无人生产线,仓库,服务机器人等领域。1.

11、3 课题研究的任务根据题目的要求,设计中应注意的原则:重心尽可能低、体积尽可能小、驱动尽可能大、结构尽可能简单。本设计智能小车系统由HCS12微控制器、电源管理单元、路径识别电路、车速检测模块、舵机控制单元和直流驱动电机控制单元组成。本系统以飞思卡尔公司的16位微处理器MC9S12XS128为控制核心,并采用CodeWarrior软件编程和BDM作为调试工具。运用激光发射强大光线,使用采集光敏传感器AD值进行道路信息采集,并采用PWM技术来控制舵机的转向和电机转速。舵机控制主要采用PWM信号开环控制,而速度控制方面,由数据表来设定速度,PID控制来调整速度。通过将总线频率超频到40M来更快更准

12、确地进行控制。各个部分经过MCU的协调处理,能够以较快的速度在指定的轨迹上行驶,在进弯道之前能够提前减速并改变角度,达到平滑过弯和减小路程的效果。2 整体设计方案智能汽车以快速平稳为目标,这就要求智能车能够快速准确地检测跑道路径,及时做出合理的控制并迅速执行。这与总体方案的确立有很大的联系。2.1 路径识别传感器的选定路径识别模块是智能车系统的关键模块之一,路径识别方案的好坏,直接关系到最终性能的优劣,因此,选定黑线识别传感器模块是总体方案确立的首要步骤。主要有以下几种识别方法:(1)使用光电发射接收管来检测黑线:光电发射管发射出光,经过赛道的反射回来,由于白色平面和黑线反射光强度不同,不同位

13、置上的光电接收管接收到强弱不同的光,因此可以判断出黑线相对小车的位置。这种检测的方法明显的优点是检测速度快,检测的方法简单,成本相对低廉。但是比赛规定传感器不能超过16个,这样就限制了水平分辨率。不能精确的分辨黑线的位置,同时也许垂直分辨率可能只有一线,不能很好的预测路径的走线。总的来说使用这种方法优点很明显,缺点也很明显。(2)使用图像传感器CCD来检测黑线:图像传感器分为线阵和面阵两种。线阵的图像传感器分辨率高,能克服光电传感器水平分辨率低的缺陷,但是检测速度较慢,且垂直分辨率只有一线。面阵的图像传感器成象是一个平面,无论是水平分辨率还是垂直分辨率都很高,识别上具有很大的优势,可以做到提前

14、预测路径,是最理想的路径检测传感器;但是数据量比前两种方案都大很多,而且数据处理较为困难,大大加重了单片机的负担。(3)使用磁传感器来检测黑线:黑线下面部有电线,通电后会产生磁场,根据磁场场强大小和电线距离的关系,可以用磁传感器测出车体与黑线的相对位置。这样检测稳定,但是磁场场强大小与电线距离有着较复杂的非线性关系,而且使用磁传感器无法做到很好的前瞻,这是对车速很大的限制。比较了三种传感器优劣之后,决定选用应用广泛的光电传感器,相信通过选用大前瞻的激光传感器,加之优秀的程序控制和较快的信息处理速度,相信激光传感器可以极好的控制效果。2.2 系统总体框图智能车系统采用飞思卡尔的16位微控制器MC

15、9S12XS128单片机作为核心控制单元用于智能车系统的控制。在选定系统采用光电传感器后,由安装在车前部的光电传感器负责采集信号,并将采集到的信号传入核心控制单元,核心控制单元对信号进行判别处理后,由内部ECT模块发出PWM波,分别对转向舵机、直流电机和制动电机进行控制,完成智能车的转向、前进和制动。智能车驱动电机上安装有光电编码器,用来对车轮转速反馈信号的采取,经由核心控制单元进行专家PID控制算法自动调节输入到电机驱动模块的PWM波占空比,从而控制小车的速度。另外,系统带有拨码开关选择程序的运行参数,还有液晶显示模块实时显示智能车的状态。系统总体结构方框图如图2.1所示。 图1 系统总体结

16、构方框图根据上面的方案设计,可知系统主要由以下几个部分组成:(1)MC9S12X128主控制器。系统采用80脚的MC9S12XS12L,该单片机具有ECT模块,2个SPI模块,8路16位计数器,4路外部事件触发中断输入端口,8路PWM,16路10位AD,转换时间约为3us;(2)传感器模块。使用一字线激光器发射强大光线,用13个光敏传感器采集路面信息,将信号反馈给控制单元,由控制单元判别黑线位置以控制车的速度、转向和制动;(3)电机驱动模块和速度控制模块。根据码盘反馈信号,用MOS管搭建的桥式驱动电路驱动电机的运转状态,形成闭环控制,对电机的速度机型准确快速的调节;(4)转向控制模块。根据路面

17、信息,准确地控制转向舵机的转角;(5)刹车模块。使用伺服舵机构成刹车装置,使智能车在转弯时两轮差速,更及时地转向;(6)人机交互模块。我们使用拨码开关调整智能车的运行参数。 3 硬件电路设计硬件是系统的基础,为了给整个智能车系统提供一个稳定、可靠的硬件平台,遵循在满足要求的前提下,电路设计尽量简单的原则。以期达到减少故障率、减少经费投入的目的。按照系统整体方案系统框图,硬件电路设计采用模块化思想。3.1 MCU模块飞思卡尔半导体公司的16位微控制器S12XS系列为S12XE系列精简版,与S12XE系列兼容。包含了S12X V2 CPU内核,S12X CPU40MHz的总线速度,128K的FLA

18、SH且带有错误校正码(ECC),带有ECC的8KB RAM,一个含8个输入捕捉或输出比较通道的增强型捕捉定时器,2个8路10位转换时间可达3s的模数转换器(ADC),1个8路的脉宽调制模块(PWM),支持控制区域网(CAN)、本地互联网(LIN)和串行外设接口(SPI)协议。支持串口调试下载,支持COS,可提供各种基本的开发和调试功能。该微控制器拥有9个输入输出端口。其中两路模拟数字转换通道ATD0和ATD1(PAD0PAD15)。A口(PA0PA7),以及B口(PB0PB7),在一般模式下作为普通的输入/输出管脚。但当微控制器运行于扩展模式下时,这两个端口则可用作外部地址和数据的复用总线。E

19、口(PE0PE7)除了可以作为普通的输入/输出管脚外,有些管脚有第二功能:PE0可以作为不可屏蔽中断请求输入;PE1可以作为可屏蔽中断请求输入;PE2在微控制器运行于扩展模式下时,可以作为外部总线的读写信号;PE5、PE6可以作为微控制器运行模式的选择管脚;PE7可以作为微控制器时钟产生方式的选择引脚。J口(PJ6、PJ7)和M口(PM0PM5)除了可以作为普通的输入/输出管脚外,也有其它的功能。PJ6、PM4、PM2、PM0可用于CAN总线的接收管脚,而PJ7、PM5、PM3、PM1则是CAN总线的发送管脚,此外J口还可用于中断的输入。P口(PP0PP5、PP7)除了可以作为普通的输入/输出

20、管脚外,还可用于脉宽调制(PWM)信号的输出,或者用于中断输入端。S口(PS0PS3)除了可以作为普通的输入/输出管脚外,还可作为串行异步通信的发送与接收管脚。T口(PT0PT7)除了可以作为普通的输入/输出管脚外,还可作为增强型捕捉定时器的捕捉输入或比较输出。通过对智能车系统的整体分析可知,可利用MC9S12XS128提供的PWM模块产生PWM调制信号来控制转向舵机和电机驱动模块,通过定时器中断获取速度传感器的信息,使用通用I/O口获取循迹传感器的信息。根据所设计的智能车系统自行设计了MC9S12XS128最小系统,力求简洁,由于只引出需要的端口,极大地减小了系统板的体积,更易于安装,连接示

21、意图如图2 图2 MCU最小系统方框图该最小系统主要由以下几个部分组成: (1) 供电电路:为微控制器提供稳定、纯净的5V直流电源。 (2) 时钟电路:为微控制器提供外界的16MHz石英晶振。 (3) 复位电路:设置专门的复位开关电路。 (4) BDM下载电路:允许向微控制器下载程序,并可用来在线调试。 (5) 状态指示灯:设置了PROTB外接的调试程序用LED指示灯和电源指示灯。 3.2 电源管理模块 智能车竞赛配发的标准车模用7.2V 2000mAh Ni-cd供电,而单片机、激光传感器、光电编码器等均需要5V电源,伺服舵机(包括前轮转向舵机和后轮刹车舵机)的额定工作电压为6V,直流电机可

22、直接用7.2V电池直接供电。5V稳压电源用于单片机、激光传感器模块、光电编码器模块供电,实验证明,用LM2940搭建成的5V稳压电路,给这些模块供电,能稳定地实现功能,且各个模块不会互相干扰,整个电路简单实用。舵机稳压电源由LM2940组成的稳压电路提供,其输出电压可调(通过调节图中的10k电位器)。由于转向舵机易烧坏,一般将稳压的电路输出调在4.5V6V范围内较合适,电源模块的结构框图如图3所示 图3 电源模块的结构框图电源电路连接图如图4所示 图4 电源电路连接图3.3 路径识别模块作为智能车系统的“眼睛”,其重要性不言而喻。智能车相对于道路的偏移量、方向以及道路的曲率等信息,是实现智能车

23、沿赛道运动的数据基础。获得更多、更远、更精确的赛道信息,是提高智能车运行速度的关键。道路的检测方式有很多,通过性能与市场调查,本论文采用激光传感器作为道路的检测方式。3.3.1 光电传感器原理光电式传感器是利用光电器件把光信号转换成电信号的装置。光电式传感器工作时,先将被测量转换为光量的变化,然后通过光电器件再把光量的变化转换为相应的电量变化,从而实现非电量的测量。光电式传感器的结构简单,响应速度快,可靠性高,能实现路径参数的非接触式测量。 光电传感器检测路面信息的原理是:黑色物体与白色物体对光的吸收程度不同,导致两者的反射系数有很大差别。由发射管发射一定波长的光,经地面反射到接收管,如图5所

24、示。由于光线在白色和黑色上反射系数不同, 在黑色上大部分的光线被吸收,只反射回少量的光线,而白色上可以返射回大部分光线,所以接收管接收到的反射光强是不一样的,进而导致接收管的特性曲线发生变化的程度不同,而从外部观测可以近似认为接收管两端输出电阻不同 ,进而分压后的电压就不一样,就可以将黑白路面区分开来。 图5 光电传感器原理3.3.2 传感器的选择在了解光电传感器的原理后,下来就要选取合适的半导体激光发射器和光电式传感器。要提高智能车的速度并保证在入弯时不至于冲出赛道,就必须增加传感器检测的范围,扩大其前瞻性,为控制系统后续处理争取时间,能及时减速并减小打舵延迟的问题。 路径检测可以使用独立的

25、收、发器件,如RB635-30G3、HFX6015-200和HFD 3403-302等。也可以选用一体化的激光发射/接收器件。 在大量的实验后,确定使用独立的激光收发管。所有的检测传感器成“一”字型排布。发射部分由一个调制管发出180KHz频率的调制波后,经三极管放大,驱动激光管发光;接收部分由一个相匹配180KHz的接收管接收返回的光线,经过电容滤波后直接接入S12XS微控制器中,检测返回电压的高低。激光传感器使用调制处理,接收管只能接收相同频率的反射光,因而可以有效防止可见光对反射激光的干扰,其原理图如图6所示 图6 激光传感器原理图3.3.3 激光传感器电路设计激光接收管通过接收反射的调

26、制光后会产生高低电平变化,从而可以反映出赛道上引导线的位置。由于产生的直接就是S12XS可识别的TTL电平,所以可以大大简化检测电路。在本论文中,选用了10个激光传感器(上排7个下排3个),上排二个发射一个接收,下排三个发射一个接收。所有的传感器呈“一”字排布。激光传感器由两部份构成,一部份为发射部份,一部分为接收部份。发射部份由一个振荡管发出180KHz频率的振荡波后,经三极管放大,激光管发光;接收部份由一个相匹配180KHz的接收管接收返回的光强,经过电容滤波后直接接入S12单片机的PT和PA检测返回电压的高低。由于激光传感器使用了调制处理,接收管只能接受相同频率的反射光,因而可以有效防止

27、可见光对反射激光的影响。 由于选用的是80脚的xs128,I/O口相对来说不充足,对激光传感器使用扫描方式,这样是避免相邻激光相互干扰,会造成一个激光发的光被其它几个接收管接收到,造成干扰。使用3个I/O口控制74LS138,分别控制7组激光,每组两个相对较远激光发光,如一组:07,二组:1-8,三组2-9,四组3-10,五组4-11,六组5-12,七组6-13。也就是用三个I/O口控制14个激光扫描式发光。扫描完就完成一个扫描周期,执行控制,对舵机和电机进行控制。在调试中我们最终选用500HZ的扫描周期。总的激光传感器电路连接图图如图7所示 图7 激光传感器总电路图3.4 电机驱动的选型和电

28、路设计直流驱动电机控制电路主要用来控制直流电动机的转动方向和转动速度。改变直流电动机两端的电压可以控制电动机的转动方向;而控制直流电动机的转速,则有不同的方案,较常规的方法是采用PWM控制。采用脉冲宽度调制的高频开关控制方式,形成了脉宽调制变换器-直流电动机调速系统,简称直流PWM调速系统,它的原理是:直流电机的转动状态取决于加在电枢上的电压,电压的极性影响电机的转向,电压的大小影响电机的转速,通过微控制器输出不同占空比的方波来近似不同幅度的电压,以达到控制速度的目的。通过比照,最终选择主办方提供的33886作为驱动芯片。其特性有:工作电压:5-40V;导通电阻:120毫欧姆;输入信号:TTL

29、/CMOS;PWM频率: 10KHz;具有短路保护、欠压保护、过温保护等。 MCU通过IN1引脚输入PWM波,以调节33886的DNC口的输出电压,调节电机转速的快慢,并且在IN2口输入电压以调节电机的反转和制动功能。MC33886内部集成有两个半桥驱动电路,本设计中,因为只需控制小车前进的速度不需要控制运行电机反转,因此不需要采用全桥驱动运行电机。为了增大电流驱动能力,将两个半桥并联使用并采用二片33886并联的方法。这样使小车在启动的时候能获得瞬间较大的驱动电流从而使小车能获得较大的加速度。这在比赛中的优势还是相当明显的。这也解决了单片驱动芯片过烫的问题。具体电路如图8所示图8 电机驱动电

30、路3.5 速度测量模块为了使得智能车能够平稳地沿着赛道运行,除了控制前轮转向舵机以外 ,还需要控制车速,使智能车在直道上能尽快加速并尽量避免在遇到弯道时因车速过快而产生过冲现象。可以通过控制驱动电机上的平均电压控制车速,但是如果开环控制电机转速,会有很多因素(例如电机电压,电机传动摩擦力,道路摩擦力和前轮转身角等)影响电机转速,那么就不能灵活的根据智能车的实时速度进行精确调整,这样就降低了智能车的应变能力。通过对智能车速度的检测,可以对车模速度进行闭环反馈控制,即可以消除上面各种因素的影响,使得车模运行得更精确。 在车轮没有打滑的情况下车速正比于驱动电机的转速。车速检测就可以通过检测驱动电机的

31、转速来实现。电机转速的测量有很多方案,如光电传感器式、测速发电机、霍尔传感器和光电编码器等。在考虑到测量精度、安装难度、传感器体积,还有智能车的稳定、可靠灵活等因素后,我们最终采用增量型测速编码器,体积小、重量轻,安装在电机齿轮上其转速与电机转速同步,通过MCU中的PT7口采集电机转速的脉冲信号,转动一圈采集115个脉冲,其电路图如图9所示,其中LM358起放大信号和比较信号的作用,其输出经上拉接至单片机的脉冲计数管脚PT7。图9 编码电路图3.6 转向舵机控制模块对智能车进行方向控制,就是利用激光传感阵列提取出黑线位置信息,然后通过一定的控制策略,使智能车能够实时跟踪黑线走向,自动控制舵机带

32、动前轮转向,完成自动寻迹行驶。智能车在行驶的过程中是一个参数不定的系统。一辆具有智能化的模型车必须能够根据赛道的特征将参数调整到最佳,以实现最优控制。伺服马达内部包括了一个小型直流马达;一组变速齿轮组,一个反馈可调电位器,及一块电子控制板。其中,高速转动的直流马达提供了原始动力,带动变速(减速)齿轮组,使之产生高扭力的输出,齿轮组的变速比愈大,伺服马达的输出扭力也愈大,也就是说越能承受更大的重量,但转动的速度也愈低。3.6.1 舵机的控制标准的微型伺服马达有三条控制线,分别为:电源、地及控制。电源线与地线用于提供内部的直流马达及控制线路所需的电能,电压通常介于4.8V6V之间,该电源应尽可能与

33、处理系统的电源隔离(因为伺服马达会产生噪音)。甚至小伺服马达在瞬间堵转时也会拉低放大器的电压,所以整个系统的电源供应的比例必须合理。输入一个周期性的正向脉冲信号,这个周期性脉冲信号的高电平时间通常在1ms2ms之间,而低电平时间应在5ms到20ms之间,并不很严格,图10表示出一个典型的20ms周期性脉冲的正脉冲宽度与微型伺服马达的输出臂位置的关系。 图10 舵机转角和控制信号的关系如图10所示,舵机的转向是由PWM(Pulse Width Modulation 脉冲宽度调制) 技术来进行实时控制的。其工作过程是:微控制器首先对光电接收管采集回来的信号进行处理,然后根据得到的不同的检测信号发出

34、不同占空比的PWM控制信号给舵机,舵机在控制信号的作用下转动一定角度。舵机的控制使用MC9S12XS128的PWM0与PWM1口级联成一个16位PWM输出,这样可以提高舵机精度,加大PWM信号控制范围。在微控制器总线频率为24MHz的时候,设置级联的PWM周期常数为60000,对应PWM周期为20ms,PWM占空比常数为4500对应输出为1.5ms 。改变占空比常数可以改变输出脉冲的宽度。3.7 MC9S12XS128的硬件I/O分配MC9S12XS128的外围硬件I/O分配如表1所示 表1 硬件I/O分配MC9S12XS128B输入/输出功能PORTB输出控制双排激光扫描PORTPWM0,P

35、ORTPWM1输出PWM输出控制舵机PORTPWM2,PORTP3输出PWM输出控制电机驱动与制动PORTT输入激光接收PORTA输入激光接收PORTB2PORTE2PORTE5输入拨码开关PORTT7输入编码器4 系统的软件设计系统硬件对于智能车来说是它的骨架和躯体,软件部分就是它的灵魂。对于智能车系统而言,软件的核心就是控制算法。软件的优劣直接体现了智能车“智能”的高低。 微控制器系统需要接收激光传感器的信号、测速传感器的信号,采用控制策略进行寻线判断,进而控制舵机和直流驱动电机的工作,程序总流程如图11所示先完成微控制器的初始化之后,通过无限循环语句不断地重复执行路径检测程序、数据处理程

36、序、控制算法程序、舵机输出及驱动电机输出程序。其中,定时中断用于检测智能车当前的车速,作为智能车速度闭环控制的反馈信号。本系统软件采用模块化结构,由主程序中断程序(黑线数据的采集)、舵机转向控制、电机控制等子程序构成。 图11 系统程序总流程图4.1 系统初始化 系统初始化是基于硬件设计,对微控制器内部的各控制寄存器进行配置,来满足系统的功能要求。在各模块中,MC9S12XS128微控制器模块是控制核心,其他模块的初始化正是通过对微控制器内部设置实现的。系统的初始化主要是对MC9S12XS128内部各寄存器,各端口进行设置,并定义自变量,分配存储空间,使之满足系统要求。以下微控制器初始化的结果

37、,未涉及到的端口与模块不予描述: (1)工作模式选择 工作模式通过软件和硬件结合的方式选定为普通单片工作模式,即不使用MEBI接口连接外设。 (2)时钟设置 9S12XS微控制器中有四个不同的时钟,即外部晶振时钟、锁相环时钟、总线时钟和内核时钟。微控制器模块采用的是16MHz的外部晶振,因此外部晶振时钟为16MHz;默认设置下,锁相环时钟为32MHz,总线时钟为8MHz,内核时钟为16MHz。锁相环时钟与外部晶振时钟的倍、分频关系由SYNR、REFDV两寄存器决定。通过对微控制器适当的超频,可以提升程序处理速度,一定程度上提升系统性能。(3)PWM模块设置 MC9S12XS128 芯片的PWM

38、脉宽调制模块有8路独立的可设置周期和占空比的8位PWM通道,每个通道配有专门的计数器。该模块有4个时钟源,能分别控制8路信号。通过配置寄存器可设置PWM的使能与否、每个通道的工作脉冲极性、每个通道输出的对齐方式、时钟源以及使用方式(八个8位通道还是四个16位通道)。在智能车系统的软件设计中,共使用了PWM0、PWM1、PWM2、PWM3四路通道来分别控制舵机和电机。其中,将PWM0、PWM1两路8位通道合并为一个16位通道PWM01来控制转向舵机,这样可使舵机的控制精度从1/255提高到1/65536。并且将PWM2、PWM3和两路通用I/O口级联成16位通道PWM23,并控制电机的正转和反转

39、(4) PIT模块 微控制器中的PIT模块用来对测速信号进行输入捕捉。其通过设置相应的控制寄存器和可供读写的数据寄存器来对端口功能进行拓展,主要能实现输入捕捉和输出波形两大功能,测速信号的输入捕捉是对PT7进行设置。(5) 通用I/O口 9S12XS微控制器的所有I/O通过端口复用可以实现诸多功能,当然它们也可以配置成普通I/O口。如外接状态指示灯等。如对激光传感器的接收、发射管,3-8译码器的端口配置等。4.2 路径识别算法要使模型车能够在智能车控制系统的作用下沿跑道快速稳定的运行,路径的精确识别是关键。下面将介绍基于硬件电路的软件控制算法。4.2.1 激光传感器路径识别状态分析由于直线排列

40、的控制策略较为简单,检测效果良好,故本论文采用“一”字型直线布局的排列方式,每个激光传感器的间距为20mm,模型车在赛道上可能出现的状态有:普通直道处、弯道处、起点处、十字交叉处等情况。首先要能够准确的并且无干扰的发射接收,本论文运用了38译码器扫描工作。选用500HZ的扫描周期。每个传感器只有0与1 两种状态,我们分别把14路传感器标记为1到14号传感器,每个传感器又可以对应一个是否在黑线上的标志位led0led13,黑线为1,白色为0, 从而通过对任一时刻传感器标志位和那一时刻发光管的标号的读取就可以知道此时模型车的状态,其状态图如图12所示0-7 : (黑色为发光激光号数)1-8 :2-

41、9 :3-10:4-11:5-12:6-13:眼睛看到的效果是14个都亮 图12 激光传感器发光状态图这样一次循环发光检测一周,led0-led13就会得到相应的值,黑线为1,白地板为0。比如此时车在中央直线上跑动,那么对于的值为00000011000000。对于模型车,传感器在赛道上可能的状态有:在普通的赛道处、在起点处、在十字交叉线处,分别如下图(并未列出所有的状态图),下面将分别进行分析。 图13 激光传感器在普通赛道上状态图 图14 激光传器在起点处状态图 图15 激光传感器在十字交叉线处状态图根据上图很明显能够区分各个位置的状态。同时我们还选用K1来记录从左到右十四个激光传感器对应值

42、由0到1和由1到0的突变数。正常跑道如图13,K1=1或2,当弯道激光全扫描出去,但是左右标志位会使led0或led13为1,表示正在左右大弯道。这样K1=1,正常赛道为2。十字路口为0,起跑线为4。为了精确地识别起跑线和十字交叉线,在程序中,通过统计检测到黑线的传感器的个数及状态来区分两者。例如,在十字交叉线时,有大于4个传感器检测到黑线,且这些检测到黑线的传感器是连续的,中间没有间隔,这样就认为是十字交叉线;在起跑线时,有大于4个传感器检测到黑线,且这些检测到黑线按的传感器之间有间隔,这样就认为检测到的为起跑线,其程序流程图如图16所示 图16 路径识别流程图4.2.2 路径识别算法的设计

43、根据传感器得到车的重心偏离黑线的程度,还可以通过一定的算法,计算出舵机的转向角度。首先根据加权来计算出重心偏移量。led0-led13的对应的值为 -16 ,-14 ,-12 ,-10 ,-6 ,-4 ,-2 ,2 ,4 ,6 ,10 ,12 ,14 ,16(1)、将每个传感器进行加权处理,给相应各个传感器的权重值,。(2)、当传感器检测到黑线时相应的传感器返回所在的权重值,并计算所有传感器的平均加权值,即偏离程度。计算公式为: 式中,ledi为对应传感器的状态值,Sen_QuanZhongi为对应传感器的权重值,Sen_Jiaquan为传感器的加权平均值。for(i=0;i14;i+) Se

44、n_Jiaquan+=(ledi*Sen_QuanZhongi); /加权 Sen_FlagCount+=ledi; /记录压线激光束个数 if(i13&ledi!=ledi+1) k1+ ; Sen_Jiaquan=Sen_Jiaquan /Sen_FlagCount; 由上程序段即可以计算出此时模型车传感器的加权平均值,由此可以得到模型车的状态,为下一步控制决策提供必要的信息。(3) 建立偏离程度和舵机转动角度所对应的PWM脉宽关系的模型在这里我们认为舵机转动的角度是和PWM脉宽成线性的正比关系,因此以一次函数来唯一确定PWM脉宽与舵机转动角度之间的关系。建立的一次函数方程为: 式中,Tu

45、rnAngle为舵机应转的角度,PWMMiddle为车轮摆正是舵机PWM脉宽应赋的PWMDTYx的值,Sen_Jiaquan为由传感器状态求得的偏离程度,PWMHalf为舵机由中心摆到车轮允许的最大值PWMDTYx的变化值,Factor 为影响比例因数。由此,可以求出在不同的传感器状态下舵机应转的角度。4.3 转角和速度控制算法智能车要能在赛道上快速稳定的运行,除了前瞻能精确地检测到路径信息外,转向舵机和驱动电机的准确控制和其两者之间的良好配合也是非常重要的因素。当智能车在直道上时,驱动电机要能快速提速并尽量达到最大速度;当检测到入弯时,驱动电机要立刻减速并降到一个比较低的速度,以给微控制器及

46、舵机争取足够的时间来计算、调整,来获得正确的转向角度;在弯道内适当提速,并保持角度不变,为出弯地加速节约时间;准确判断到出弯后,舵机立刻回正,驱动电机以最大的加速度加速。下面将具体介绍转向舵机和驱动电机的控制方法。4.3.1 转向舵机控制算法智能车在运行过程中,对舵机的控制是一个自适应控制系统。要根据道路检测信息判别赛道的形状特征,计算出赛道的曲率半径,然后再建立起曲率半径与控制舵机转向的PWM信号相应的数学关系。这样,智能车进入弯道时才能准确控制运行方向。在上一节,介绍舵机的转角和PWM控制信号的占空比呈线性关系,但是由于舵机输出轴连接件等机械结构的关系,舵机的转角和前轮的转角并不成直线性关系,即PWM控制信号的占空比并不和前轮的转角成直线性关系。这样,就需要大量的实验以获取PWM控制信号

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号