1、摘 要SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
2、bbbagraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionParagraphFormatLin
3、eSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraSelec Abstract摘要走迷宫智能小车主要是基于自主反应式智能系统原理。利用反射式红外传感器来导引,采用与地面颜色有较大差别的导引线,红
4、外一体化接收头来检测障碍物的位置,通过改变单片机产生的PWM方波的占空比,使其能在设计范围内可实现任意角度移动,实现小车识别路线,进行自主迷宫探路,判断并实现自动避障,选择正确的行进路线。驱动电机采用直流电机,电机控制方式为单向PWM开环控制。控制核心采用MSP430单片机,仅用一块单片机就实现了信号采集,路线判断,电机控制。该技术可以应用于无人工厂,仓库,服务机器人等领域。总体规划 对于走迷宫小车控制系统设计主要有三个方面:一、控制电路设计;二、传感器选择以及安放位置设计;三、程序设计。从总的方面来考虑,传感器的使用数量应该尽量少以减少单片机的信号处理量,但是又必须能使小车行驶自如。控制电路
5、要根据选用的电机和传感器来设计,主要考虑稳定性,抗干扰性。关键词:MSP430 迷宫算法 避障寻迹 PWMSelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbb
6、bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbagraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci222222222222222
7、2222222ngLinesToPoints2SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraSelec ABSTRACTAbstract
8、 A maze-running intelligent car is mainly based on the principle of automatic response intelligent system. It uses reflective infrared sensor to guide and the pilot wires are vary different from the ground in color. It uses infrared receiver to detect the position of the obstacle and is by change of
9、 PWM square-wave produced by MCU to realize arbitrary angle moving among the designed range and indentifying the route. It can touches maze automatically, judge and avoid the obstacle automatically, and choose the right marching route. It uses DC Motor as the driving motor. The control mode of the m
10、otor is unidirectional PWM open-loop control. This control makes MSP430 MCU as its core. It only uses one MCU to realize the signal collection and route estimation and motor control. This Technology can be applied in the fields such as unmanned factory and warehouse and Service Robot. The overall pl
11、an: The design of the control system of maze-running intelligent car mainly includes three parts:First: the design of the control circuit; Second: the choosing of the sensor and the design of the mount position; Third: Program Design. From a overall perspective, you should use the sensors as few as
12、possible so as to reduce the signal processing amount of the MCU and at the same time you must make the car march freely. The control circuit must be designed according the motors and sensors chosen, mainly take the stability and the noise immunity into account. Keywords: MSP430 maze algorithm obsta
13、cle avoidance PWM 目 录 i 目录第一章绪论1第二章 各部件的工作原理32.1 前轮(导向轮)32.2电机42.3反射式红外传感器52.4红外一体化接收头6第三章硬件电路113.1电机驱动电路113.2反射式红外传感器电路133.3红外一体化接收头电路143.4 处理器电路16第四章电路原理图19第五章控制算法215.1黑线位置判别215.2巡线算法215.3搜线算法235.4障碍物位置判别235.5转弯控制255.6 迷宫探路控制26第六章相关软件29第七章总结357.1 本文总结357.2 进一步的工作35致谢37参考文献39附录一41附录二42 第一章 绪论 1第一章绪
14、论当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能,监控等系统已经得到充分的发展与应用,智能机器人也就应运而生。同时,在建设以人为本的和谐社会的过程中,智能服务机器人能够完成考古发掘,海底揭密,宇宙探索等危险作业,以保证人身安全。国家中长期科学和技术发展规划纲要一文指出:智能服务机器人是在非结构环境下为人类提供必要服务的多种高技术集成的智能化装备。以服务机器人和危险作业机器人应用需求为重点,研究设计方法、制造工艺、智能控制和应用系统集成等共性基础技术。重点研究低成本的自组织网络,个性化的智能机器人
15、。20062020年,既是国家中长期技术发展计划实现阶段,也是我们最具有活力和最激情洋溢的时段。该智能小车模型是一辆完全由PCB拼装的小车。所有的机械结构和零部件都安装固定在电路板上。因此完全不需要机械加工,非常适合实验阶段机器人的研制。本文简述了智能巡线避障小车自主走迷宫的设计思路和实现过程。包括小车的机械结构、电路、软件、控制算法、调试方法等。可作为一般的设计参考。小车的左右后轮分别由2只6V直流减速电机提供动力;前导向轮是一只万向轮。430单片机的PWM发生器产生4路(分为两组)占空比可变的方波,经三极管进行扩流后分别驱动后轮左右电机。控制4路PWM的比例,不仅可以调节小车向前运动的速度
16、,还可通过4路PWM占空比的差异,改变小车运动方向。5只反射式红外传感器位于小车前方,3只位于小车后方,小车周围还分布有7个红外一体化接收头来实现测距功能,将物体与小车的距离分为八个阶段,当物体离小车很近时实行相应的程序以躲避障碍,并用反射式红外传感器查找黑线位置,避免其脱离。 第二章 各部件的构成原理 3第二章 各部件的工作原理2.1 前轮(导向轮)前轮是决定小车能否灵活拐弯的关键部分。这辆小车和汽车不同,不是靠前轮摆舵来控制转弯,而是靠左右后轮速度差来实现转弯控制。这样前轮实际上是从动轮。下图中,当小车左轮的速度高于右轮时,小车右转弯;反之,当小车右轮的速度高于左轮时,第二章 各部件构成原
17、理7小车左转弯。前轮的速度可以分解为前进的速度和水平侧移的速度。普通的定轴的前轮只能垂直方向前进,水平方向是无法左右滑动的。因此小车不可能实现拐弯(实际的结果是:因为前轮不能活动,右轮也成了从动轮,两轮速度一样,直线前进)。所以前轮一定要能够侧滑,并能转向。最简单的方法是使用万向轮。一般机械上使用的万向轮非常的笨重,实验效果很不理想。这里我们设计了一种简易的万向轮:用一根镀锌铁丝弯成半圆形作为支架,穿一个小轮。当小车右转弯时,小轮相对于支架左滑动(其实是小轮因为地面摩擦而不动,支架右滑),转弯角也随之改变;小轮还会根据转弯量自动地调整到合适的角度。这种结构小轮是自由的,只要有轻微的力,就能使小
18、轮滑动,转向非常灵活。图2.1前轮的结构需要注意的是万向轮的安装。要将U型半圆支架平行于地面,否则当小车左右转时极易发生坍塌现象。而且前轮对小车的运行轨迹影响很大,所以出了在安装时要保证U型支架平行于地面外,还需要对U型支架作相应的处理,比如润滑、将U型支架两端持平,以及还应保证前轮的活动空间,避免与前端的传感器和后端的电池盒发生碰撞、摩擦。实际我们所用的万用轮中间的孔较大,所以很容易发生侧移,我们可以用皮箱下面的小轮来代替现在我们所用的前轮,效果可能会好很多。2.2电机电机是我们的生活中不可缺少的动力源,常用的有交流电机和直流电机。这里小车的动力采用直流减速电机直接驱动,省去了齿轮组、传动部
19、件等复杂的机械结构。这里选择了6V/300rpm的电机,速度和力矩都比较适中。直流电机的构造:在绕有线圈的铁芯(转子)的外周,有相同数目的定子(永久磁铁)相向包围。通过整流器的电刷转子断续地得到电流,转子与定子的永久磁铁反复相吸、排斥,结果无论他们的相互位置如何,转子始终能够沿着一定的方向回转。在永久磁铁(NS)之间的线圈有电流通过时,产生电磁力,对应于永久磁铁产生的磁场,N极产生向上的力,S极产生向下的力。结果导致线圈旋转。在线圈旋转的同时,整流器也随之旋转,这样就能保证电流流向的自动切换以便维持转子向同一方向的连续转动。于是,线圈中不断地产生相同方向的旋转力。直流电机中的电刷与整流器实际上
20、属于机械接触,由于在转轴转动的过程中他们的接触状态不断发生变化,往往产生电气噪声,这可能成为诱发CPU电路误动作的原因,因此为了克服噪声干扰,一般在电机电源端子上并联一个电容器。电机的安装采用焊接。电机背面2个电源端子用粗铜丝焊在电路板上,克服电机自由转动。电路板上刻有一比电机略长的槽口,卡住电机,用拉紧的铜丝焊在电路板将电机固定,克服前后运动。图2.3电机改进:减速电机成本高,且300rpm以上的电机需12V供电,不方便。竞速车可改为录音机的磁带驱动电机(约3000rpm,车轮要减小)。用于固定电机的铜丝一般应用多股细铜丝线。若用单股而比较粗的铜线的话有可能会因为小车的抖动而使电机发生滑动,
21、从而需要不断的对电机进行加固。2.3反射式红外传感器反射式红外传感器ST188采用高发射功率红外广电二极管和高灵敏度光电晶体管组成。检测距离可调整范围为415mm;采用非接触检测方式。可用于IC卡电度表脉冲数据采集、集中抄表系统数据采集和传真机纸张检测等。图2.4反射式红外传感器工作原理反射式红外传感器中包含一个发射器LED和一个光探测器(光敏二极管光敏三极管)。着两个元件被封装在同一个塑料壳体中,并且排列成适合他们工作的理想位置。LED发出的一束光被一个表面反射后又回到探测器中。图1.4是反射式红外传感器的工作原理图。封装在矩形壳体中的是发射器LED(由左侧的白色方块表示)和探测器装置(在右
22、侧)。虚线表示光线从发射器LED中发出并反射回探测器;探测器检测到的光强大小取决于物体表面的反射率,而这一光强就是传感器的输出值。如图所示,选通信号(高电平)经过三极管扩流后送到传感器的K脚,如果检测到黑线,传感器C脚输出高电平;否则输出为低电平。图2.5反射式红外传感器及其检测距离与转换效率的关系图反射式传感器在高度受控的理想环境下的工作性能更好,因为影响它输出的外界因素有很多,如环境光的变动、传感器与被探测物体之间的距离,以及被探测物体的反射率等。为了减少环境光的干扰,首先需要调整传感器的方位使环境光不能直接射到探测器。反射式红外传感器ST188的最佳探测距离为6-14mm。所以将传感器垂
23、直于地面并且调整传感器与地面的距离,大约在10mm左右。传感器引脚很细,容易晃动,需要穿过一块支撑板以增加强度;同时还可以通过铜柱的高度或增加垫片来细调传感器离地面的距离。图2.6传感器安装图2.4红外一体化接收头电视机、唱机等家电中广泛使用红外线遥控器。红外遥控器发出38KHz调制的红外线,在接收端,被一体化红外接收头接收,解调出原始键码值。因为红外遥控使用广泛、成熟、大批量,所以相关红外接收、发射元件价格很低。本方案使用通用遥控器的一体化红外接收头作为检测元件。图2.7 一体化红外接收头工作原理一体化接收头内部集成有带通滤波器,它只允许大约38 kHz 的红外信号通过。这种仅对38KHz敏
24、感的特性,有助于消除环境光对遥控器接收的影响。如图,当红外线发射管IR LED)发出的38KHz的红外线被一体化接收头接收时,接收头输出“0”。当没有侦测到红外线,或非38KHz红外线(如日光灯干扰),输出“1”利用一体化红外接收头在38KHz附近灵敏度的衰减的特性,可以实现测距功能。图2显示的是某品牌的红外线探测器(Panasonic PNA4602M)在38KHz附近的灵敏度如果红外LED发送频率为42 kHz,接收头的灵敏度是频率为38.5 kHz的20%左右。 在非38KHz频率下,探测器的灵敏度下降,为了让探测器探测到红外线的反射,物体必须离探测器更近,才能使反射的红外光更亮。图2.
25、8 接收头在38KHz附近灵敏度曲线那么,最高灵敏度的频率可以探测最远距离的物体,较低灵敏度的频率可以探测较近距离物体。距离探测功能得以实现。选择8个不同频率,从最高灵敏度到最低灵敏度进行依次探测。首先尝试最高灵敏度频率,如果物体被探测到了,就让仅次于它的高灵敏度频率测试,观察是否可以探测到。依赖于不能再让探测器检测到的红外线频率,我们就可以大致推断物体距离处于哪个区域 第三章 硬件电路图2.9 红外线测距原理第三章 硬件电路15如果需要更高的分辨率,还可通过扫频法找到临界频率,从而更精确的得到物体位置。下表是本人实测的频率距离关系(测量条件:红外发光管通过5mA电流,用一张A4的白纸当障碍物
26、):频率38KHZ41KHZ44KHZ48KHZ54KHZ60KHZ67KHZ69KHZ距离34.0cm30.0cm25.0cm20.0cm15.0cm10.0cm5.0cm2.5cm 表1 频率距离关系该方法的缺点是精度差,且对物体颜色深浅比较敏感。对于地图绘制等精度要求较高的场合不适用。但对于机器人避障功能或路径选择来说,已经足够。第三章硬件电路3.1电机驱动电路此部分是整个小车的大脑,是整个小车运行的核心部件,起着控制小车所有运行状态的作用。通常选用单片机作为小车的核心控制单元。这里选用MSP430X149单片机(如下有介绍)。考虑到小车必须能够前进、倒退、停止,并能灵活专性,在左右两轮
27、各装一个电机分别进行驱动。当左轮电机转速高于右轮电机转速时小车向右转,反之则向左转。为了能控制车轮的转速,左右两轮的转速,可以采取PWM调速法,即由单片机的TAi和TBi输出一系列频率固定的方波,再通过功率放大来驱动电机,在单片机中编程改变输出方波的占空比就可以改变加到电机上的平均电压,从而可以改变电机的转速。左右两轮两个电机转速的配合就可以实现小车的前进、倒退、转弯等功能。这里采用简单小电流H桥集成功放电路。如图所示:该电路上半部分采用S9013NPN三极管,下半部分采用S9012PNP三极管。它是一个既可靠又简单的电路,它的接口很简单,一是因为它仅有两个输入(A和B);二是因为当H桥集成功
28、放电路的两边都导通时也不会造成电源短路(因为同边上下的三极管不会同时导通)。该H桥集成功放电路比任何将PNP三极管安置在上边的电路(该电路不会发生自动偏压)的效率都更高。该H桥集成功放电路工作时,若将A端置为高电平,而将B端置为低电平,电机将按一定的方向转动(参见图)。若将A端和B端电位对调,电机将朝另一方向转动。如果A端和B端的电位相同,电机将自由旋转。电路控制的真值示于表中。“0”为低电平,“1”为高电平。图3.1电机驱动电路如图所示,将PWM_L1加到A端,PWM_L2加到B端。当PWM_L1为高PWM_L2为低时,MG2通电开始顺时针转动;当PWM_L1为低PWM_L2为高时MG2逆时
29、针转动。控制PWM_L1和PWM_L2信号高低电平的时间比,就可以控制MG的转速。同样的方法控制右轮。利用左右轮的速度差还可以转向。需要注意的是:被二极管分流到电源两端的电力将造成主板电压的瞬变或噪声。更严重的是当采用PWM信号控制电机时,每次关断都会产生这种影响。如果导通三极管又重新开启,同时反向电动势电流仍然存在,结果三极管将直接导通电源正极和地。这一现象时间的长短取决于续流二极管的关断时间。这一电流称作过冲电流,它同样会产生噪声。基于以上原因,一条重要的对策是需要在H桥集成功放电路上加高速的旁路电容(瓷质电容或钽电容)来保护电路中的电子元件乃至电池。旁路电容的作用是平滑电流脉动和电源电压
30、的瞬变。当电压出现尖峰时,电容将迅速地吸收这一能量,从而使电压保持恒定。当电压降低时,电容将向电路中回馈能量,从而使电压有所回升。改进:该电路是用PWM来控制电机的。经试验验证该电路只有开关的作用,从单片机出来的PWM电压大约在3.5V左右,加到电机两边最多只有3V,这远远低于其耐压,因此转速也很慢,稍有摩擦就转不动了。因此需要再增加两个三极管来进行扩流,具体电路如下所示:图3.2改进的电机驱动电路3.2反射式红外传感器电路这里的寻迹是指小车在白色地板上寻黑线行走,通常采用的方法是红外探测法。即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红
31、外光遇到白色纸质地板时发生漫反射,反射光被安装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不倒红外光。单片机就是否反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测的距离有限,一般最大不应超过15cm。这里用反射式红外传感器ST188。当小车在白色地面行驶时,装在车下的红外发射管发射红外线信号,经白色反射后,被接收管接收,一旦接收管接收到信号,输出端将输出低电平;当小车行驶到黑线时,红外线信号被黑色吸收后,将输出高电平,从而实现了通过红线检测信号的功能。将检测到的信号送到单片机的I/O口,当I/O口检测到的信号为高电平时,表明红外光被地上的黑线吸收了
32、,表明小车处在黑色的引线上;同理,当I/O口检测到的信号为低电平时,表明小车行驶在白色地面上。为了提高控制精度,要求传感器排列紧密,越紧越好。但传感器排列紧密,传感器发射管的光线可能会从地面反射进入临近传感器的接收管。所以不能同时开启这些传感器。下图是传感器电路的一部分。其中6和7好传感器是用来记录车轮转过的圈数,以便于记录下小车走过的路径距离。图3.3反射式红外传感器电路传感器采取脉冲扫描式读。例如某时刻P_SEN1高电平,其余P_SEN25低,这样1、4号传感器的红外发射管亮,其余传感器不发射红外线。等待数据稳定后,读取1、4号传感器的数据。然后关闭1、4号传感器,打开2、5号传感器电源,
33、依次类推,读取5个传感器的数据。这样可以保证任何时刻都不会有临近的传感器同时工作。从而保证了相邻传感器之间不会互相干扰。同时,红外发射管是除了电机之外耗电最大的器件,脉冲工作方式可以大大减少耗电量。3.3红外一体化接收头电路 为了感应360度范围内的障碍物,传感器排布采用如下结构。图3.4 红外测距环的传感器布置上图注意应把发射管安在接受管后面,防止小车行走时被破坏。每个传感器组由一只红外发射管、一只一体化红外接收头,和一只电容构成。可以测量该方向是否存在障碍物和判断障碍物的距离。电容用来稳定电路,防止电源和地发生短路。硬件原理:采用一片MSP430X149作为控制器。利用TIMERA的频率发
34、生器模式,产生38KHz附近的若干频率,从P6.5输出方波。该方波经过晶体管Q18扩流来增加驱动能力,给7个红外LED供电。为防止互相干扰,7只LED轮流点亮,每次只亮一只LED,由IRE选择哪支红外LED被点亮。如果接收到反射回来的红外线,接收端将输出TTL电平,被单片机接收,然后执行相应的避障措施。如果未接收到任何信号,将一直输出高电平。因为一体化接收头只对38kHz的方波敏感,而且它内部带有带通滤波器,所以需要在发送38kHz的时候发送一段时间关闭一段时间,否则传感器会认为它是外界光而将返回的信号当作干扰信号而忽略掉。为了避免各个传感器之间的相互干扰,需要轮流打开接收器。另外,因为发光管
35、发出的光是沿四面八方发送的,而且只要打开电源发射管就会工作,所以也为了避免因别的发光管带来的干扰,需要将发光管包的严严实实的。如图所示为红外一体化接收头的作原理:上拉电阻一般选用1K,如果选用较大的电阻,其上拉的效果也不是很明显,有点大材小用的效果;如果选用较小的电阻,有可能方波的低电平就不会下拉到0附近。通过作试验,我们将上拉电阻选用300的电阻,结果38KHZ的方波的低电平大约在1V左右,这时单片机有可能会将它也看作高电平,也就是说相当于一直输出的是高电平。另外,还可以调整串联电阻的大小来调整传感器的测距范围。电阻越大,测量距离越小;电阻越小,测量距离越大。但因为单片机接收到的电流一般在5
36、mA 左右,所以串联电阻也不能很小,否则会烧坏单片机。经过试验,我们测得上拉电阻为1K串联电阻为100时它的测量距离最远,可达到3米以上。 这七个传感器所起的作用是不同的。前排三个传感器用来检测前方是否有障碍物。若中间的传感器检测到障碍物,左前方的传感器再检测左边是否有障碍物:如果没有小车左转弯;如果有,再判断右边是否有障碍物:如果没有,则小车右转弯;如果有小车将向后退,在后退的过程中传感器还在不断的检测障碍物,一旦发现左边(或右边)没有障碍物时,小车将向左(或右)转弯。小车中间的两个传感器用来改变小车的转弯半径,避免小车在转弯的过程中撞到障碍物。小车后排的两个传感器是在小车后退的过程中防止小
37、车撞到后面物体得到。因此,根据传感器所起的作用的不同,它们所要测量的距离方为也不同。所以分别给它们不同的串联电阻。经试验我们可以将前面三个传感器的串联电阻装成300的;左右两边的1K;后面的2K。3.4 处理器电路小车采用一片MSP430X149作为控制器。它具有3路PWM控制器和串口。用到410个I/O口,其中:红外一体化接收头传感器输入5个输出口8个,反射式红外传感器输入口5个控制口5个、电机控制口4个、JTAG占用4个I/O口。MSP430X149的特点是:有五种节电模式;16位RISC结构,125ns指令周期;6个8位并行端口,且2个8位端口有中断能力;保密熔丝的程序代码保护;具有2个
38、捕获比较寄存器的16位定时器TIMER_A,TIMER_B;两通道串行通信接口可用于异步或同步模式;串行在系统编程;多达60KB FLASH ROM 和2KBRAM等等。图3.5单片机工作原理系统采用32KHz晶振作为定时采样用,主时钟用800K左右的DCO。另外留有JTAG口可以现场编程。并且还有19个引脚未用到,将来还可以扩展其功能。在做PCB板时已将这些引脚引出,可以直接使用。定时器TIMERA由一个十六位定时器和多路比较捕获通道组成。每一个比较捕获通道都可以十六位定时器的定时功能为核心进行单独的控制。它还具有以下特性:输入时钟可以有多种选择,可是慢时钟,快时钟以及外部时钟。虽然没有自动
39、重载时间常数功能,但产生的定时脉冲或PWM信号没有软件带来的误差。不仅能捕获外部事件发生的时间还可以锁定其发生时的高低电平。可实现串行通信;完善的中断服务功能;4种计数功能选择;8种输出方式选择和支持多时序控制等。TIMERA共有4种计数模式:停止模式、增计数模式、连续计数模式和增减计数模式。我们用TIMERA的增计数模式来产生38KHZ的方波。具体原理为:捕获比较寄存器CCR0用作TIMERA增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65536的连续计数情况。计数器TAR可以增加计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)
40、时,定时器复位并从0开始重新计数。图2.8说明了增计数模式的计数过程。当定时器的值等于CCR0的值时,设置标志位CCIFG0(捕获比较中断标志)为1,而当定时器从CCR0计数到0时,设置标志位TAIFG(定时器溢出标志)为1。图3.6 增计数模式计数过程中还可以通过改变CCR0的值来重置技术周期。当新周期大于旧周期时,定时器会直接增计数到新周期;当新周期小于旧周期时,改变CCR0时的定值器时钟相位会影响定时器响应新周期的情况。时钟为高时改变CCR0的值,则定值器会在下一个时钟上升沿返回到0,如果时钟为低时改变CCR0的值,则定时器接受新周期并在返回到0之前,继续增加一个时钟周期。可以随时间变化
41、任意改变PWM信号的占空比,具体的做法是:保持CCR0的值不变(周期不变)改变CCRx值(改变占空比)图3.7增计数模式时的输出实例.TIMERA的输出模式由模式控制位OMx0、OMx1和 OMx2决定,共有8种输出模式。除模式0外,其他的输出都在定时器时钟上升沿时发生变化。这里我们将输出模式选为输 第四章 电路原理图11出模式7。用该方式产生占空比为50的38KHZ的方波;也可以通过改变CCRx的值来改变电机的转速,使其实现转弯、后退等动作。TIMERB的工作原理和TIMERA的相仿。第四章电路原理图三型寻迹避障智能小车由机械结构、寻迹电路、避障电路、电机控制模块和处理器电路五部分组成。(见
42、附录三)机载计算机外部控制命令输入微控制器MSP430X149反射式红外传感器电路实现寻迹发送38KHZ脉冲发送PWM控制电机的转速红外一体化接收头实现避障 图4.1总体结构图如图所示为小车的工作原理。打开电源时先初始化电机驱动电路、一体化接收头电路和反射式红外传感器电路。刚开机时小车的初速度很大,有可能不会沿着黑线运行,所以先让它空跑一段时间。小车在遇到障碍物之前,会沿着轨迹前进,遇到左拐弯时实行拐弯程序。若在跑道上放置障碍物,小车实行相应的避障程序。绕过障碍物时小车再继续按轨迹前进。这有点理想化,实际中不会很完美的将避障和寻迹两部分接合起来,所以对寻迹算法有很高的要求,要求当小车在绕开障碍
43、物时一旦检测到黑线就能立刻反应过来按照黑线的轨迹来运行。我们将红外一体化接收头和反射式红外传感器分为两组。第一组包括前排的三个和之间的两个一体化接收头以及五个反射式红外传感器,主要是在小车前进中用来检第五章 控制算法21测黑线和障碍物位置的;另外一组是在小车后退时用到的。这两组传感器分别作用,即在前进中开启第一组,后退时再开启另外一组。这样可以有效的利用单片机,也不会造成程序的混乱。第五章控制算法5.1黑线位置判别Posit=(i+j)/2Posit=0.5Posit=-0.55Posit=0 地面的黑线是导引线,位置读取和计算的准确度、稳定性将直接影响小车的控制和运行。下图是实际运行中出现的
44、情况,黑块表示感应到黑线的传感器。传感器的排列比较密,可能12个传感器都能踩到黑线;转弯处车身倾斜甚至23个传感器都能踩到黑线。应该求黑线的中心位置作为结果。图5.1反射式红外传感器的运算图计算的方法是从左数,找到第一个黑色传感器编i,再从右数,找到第一个黑色传感器编j。(i+j)/2就是黑线中心位置。这样算出来的结果中有小数部分,用起来不太方便,因此我们将结果放大10倍,再减去之间位置时算出来的值。5.2巡线算法小车是一个非常典型的惯性系统。对于这一类被控对象,PID算法能简单有效的进行控制。对PID算法做个简单的说明:假设小车中心线在黑线中心线上,偏差为0,小车正常行驶。如果某时刻检测到黑
45、线偏左,就要向左转弯;如果检测到黑线偏右,就要向右转。偏得越多,就要向黑线方向打越大的舵角。这就是比例控制(P)遗憾的是,这种方法并不能将小车稳定在线上,因为小车有惯性。假设黑线偏左,说明小车偏右了,需要左传舵,等到小车回到中心的时候,停止转舵,可是小车的惯性会使车身继续左转,直到冲过黑线,黑线又偏右。然后控制过程反复,车身是在左右摇摆中向前行走的。这种摇摆叫做“超调”,超调越大,控制越不稳定,容易出轨。为了克服惯性,最简单的办法是任何控制动作都提前一点。适当调整提前量可以抵消惯性;另外,即使偏移量相同的情况下,在不同半径的弯道,也需要不同的舵角。这些都是比例控制不能实现的。我们除了位置信息之外,还需要知道轨迹的变化趋势。为了实现提前控制,在时间上,除非延长传感器,否则没有办法提前获知转弯。那么我们只能在控制量上想办法。一个函数的导数,反映了该函数的变化趋势。同样我们可以用黑线位置的微分值来提前得到变化趋势。用本次位置减去前次位置求出差值,就大致知道偏移量的变化趋势。将该差值和比例相加后一起作为控制量,即可实现提前控制。这就叫做比例微分控制(PD控制)下图是小车的控制系统框图:图5.2PID控制算法传感器位置求出后,减去中心值,得到和中心的偏差量。该偏差量乘以比例系数得到比例控制量。并且
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100