用于工程训练的多功能智能小车设计_第1页
用于工程训练的多功能智能小车设计_第2页
用于工程训练的多功能智能小车设计_第3页
用于工程训练的多功能智能小车设计_第4页
用于工程训练的多功能智能小车设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE5第一章各部件的工作原理目录摘要自主反应式智能系统是一种应用广泛的控制系统。对电路的分析和验证工作依靠智能化来完成,效率高。因此它的研究与开发是一项非常有意义的工作。本小车以MSP430超低功耗单片机为核心,在SHARK二型小车的基础上研究小车避障寻迹的设计和实现方法,完成障碍检测、避障、寻迹功能。充分运用了430单片机的功能。本论文介绍了智能小车的机械结构及相应的硬件电路和实现算法。在机械结构上,对普通的小车作了改进,即用一个万用轮来代替两个前轮,使小车的转向更加灵敏。利用反射式红外传感器来寻迹、红外一体化接收头来检测障碍物的位置,通过改变单片机产生的PWM方波的占空比,使其能在设计范围内可实现任意角度黑线和任意角度移动,还可以实现避障的功能。在算法上,利用矢量分解法、PID算法等对小车的运行进行控制并能有效的改善其运行轨迹。关键字:MSP430寻迹避障PWMAbstractIndependence’srespondingtypeintelligencesystemisakindofappliedextensivecontrolsystem.Analyzingelectriccircuitandverifyingaworkdependsontheintelligencetocomplete,itsefficiencyishigh.Soitsresearchanddevelopmentisaverymeaningfulworks.Withthecoreof430microcomputerandatthefoundationofSHARK,theNo.3smallcarcancompleteanobstacleexamination,avoidingstumblingblockandlookingforvestigefunction,makingfulluseof430microcomputer.Thisthesisintroducedmachinestructure,homologoushardwareelectriccircuitandthecalculatewayoftheintelligencesmallcar.Makingimprovementtothecommoncaronthemachinestructure,weuseaperfectwheeltomakethecarturningmoreeasily.Andweusesomesensorstolookforvestigeandavoidstumblingblock.BychangetheemptyratioofPWM,thecarcanarbitrarilymovewithanyangleoftheblacklinewithinthescopeofthedesign.Onthecalculateway,weusevectordecompositionmethod、PIDtocontrolthecarandimproveitstrack.Keyword:MSP430lookingforvestigeavoidingstumblingblockPWMPID目录TOC\o"1-2"\h\z\u第一章绪论 第二章各部件的工作原理 42.1前轮(导向轮) 42.2后轮 52.3电机 12.4反射式红外传感器 22.5红外一体化接收头 4第三章硬件电路 63.1电机驱动电路 63.2反射式红外传感器电路 83.3红外一体化接收头电路 103.4处理器电路 12第四章电路原理图 15第五章控制算法 165.1黑线位置判别 165.2巡线算法 165.3搜线算法 175.4障碍物位置判别 185.5转弯控制 19第六章相关软件 20第七章总结 21附录 错误!未定义书签。第一章绪论根据美国玩具协会的调查统计,今年来全球玩具销售量增幅与全球GDP增幅大致相等。而全球玩具市场的内在结构比重却发生了重大变化:传统玩具的市场比重在逐步缩水,高科技含量的电子玩具蒸蒸日上。美国玩具市场的高科技电子玩具的年销量额2004年较2003年增长52%,而传统玩具的年销售额仅增长3%。英国玩具零售商协会选出的2001年圣诞节最受欢迎的十大玩具中,有七款玩具中配有电子元件。从这些数字可以看出,高科技含量的电子互动式玩具已经成为玩具行业发展的主流。本人在二型小车的基础上进行了改进,增加了避障电路,并在原来的电机驱动电路的基础上增加了H桥集成功放电路,可以使电机实现正反转功能。该智能寻线避障小车模型是一辆完全由PCB拼装的小车。所有的机械结构和零部件都安装固定在电路板上。因此完全不需要机械加工,非常适合业余机器人爱好者自制。本文简述了智能巡线避障小车的设计思路和实现过程。包括小车的机械结构、电路、软件、控制算法、调试方法等。可作为一般的设计参考。小车的左右后轮分别由2只6V直流减速电机提供动力;前导向轮是一只万向轮。430单片机的PWM发生器产生4路(分为两组)占空比可变的方波,经三极管进行扩流后分别驱动后轮左右电机。控制4路PWM的比例,不仅可以调节小车向前运动的速度,还可通过4路PWM占空比的差异,改变小车运动方向。5只反射式红外传感器位于小车前方,3只位于小车后方,垂直探测地面的黑线。由传感器采回的数据求出黑线偏移量,由PID算法计算出转弯量,再计算PWM发出两轮的速度差,控制小车沿轨迹行驶。小车离意外开黑线时,传感器无数据,还有相应的错误处理和寻线程序。小车周围还分布有7个红外一体化接收头来实现测距功能,将物体与小车的距离分为八个阶段,当物体离小车很近时实行相应的程序以躲避障碍,并用反射式红外传感器查找黑线位置,避免其脱离。第二章各部件的工作原理2.1前轮(导向轮)前轮是决定小车能否灵活拐弯的关键部分。这辆小车和汽车不同,不是靠前轮摆舵来控制转弯,而是靠左右后轮速度差来实现转弯控制。这样前轮实际上是从动轮。下图中,当小车左轮的速度高于右轮时,小车右转弯;反之,当小车右轮的速度高于左轮时,小车左转弯。前轮的速度可以分解为前进的速度和水平侧移的速度。普通的定轴的前轮PAGE28第一章各部件的工作原理目录只能垂直方向前进,水平方向是无法左右滑动的。因此小车不可能实现拐弯(实际的结果是:因为前轮不能活动,右轮也成了从动轮,两轮速度一样,直线前进)。所以前轮一定要能够侧滑,并能转向。最简单的方法是使用万向轮。一般机械上使用的万向轮非常的笨重,实验效果很不理想。这里我们设计了一种简易的万向轮:用一根镀锌铁丝弯成半圆形作为支架,穿一个小轮。当小车右转弯时,小轮相对于支架左滑动(其实是小轮因为地面摩擦而不动,支架右滑),转弯角也随之改变;小轮还会根据转弯量自动地调整到合适的角度。这种结构小轮是自由的,只要有轻微的力,就能使小轮滑动,转向非常灵活。图1.1前轮的结构需要注意的是万向轮的安装。要将U型半圆支架平行于地面,否则当小车左右转时极易发生坍塌现象。而且前轮对小车的运行轨迹影响很大,所以出了在安装时要保证U型支架平行于地面外,还需要对U型支架作相应的处理,比如润滑、将U型支架两端持平,以及还应保证前轮的活动空间,避免与前端的传感器和后端的电池盒发生碰撞、摩擦。实际我们所用的万用轮中间的孔较大,所以很容易发生侧移,我们可以用皮箱下面的小轮来代替现在我们所用的前轮,效果可能会好很多。2.2后轮两块2mm厚的PCB板通过2支沉头螺栓定为一体,构成了后轮的主体。用小锉刀沿两板夹缝,挫一道V型槽,上一条O型橡胶圈,就构成一只轮胎。后轮的固定采用过盈配合。轮的中心孔为2.8mm,比电机轴略小0.2mm。PCB板挖空2个圆孔,并用狭缝和中心孔贯通,构成一个有弹性的“卡缝”。将电机轴用力推入轮中心孔,PCB由于弹性形变会略微扩张,弹力将轴紧紧抱死。图1.2后轮的结构由图可见,轮上下有两个小孔,还可以利用传感器来检测小车的运行速度,并不时的调整小车的速度,也可以以此来减少两轮的速度差,使小车能很好的沿直线运动。并可以很准确的改变两轮的速度来实现其转弯等动作。另外也可以设计一定的反馈电路,小车可以通过反馈环直接调整两轮的速度差而不需要经过单片机的处理,减轻了单片机的负担。现在的缺点是O型圈很容易脱落,可用704硅橡胶固定。另外为了固定O型圈,需要用挫来加工V型槽。可改为3块PCB构成轮子,中间一块半径略小2mm。小车在前进中会因为抖动而使轮子与电机滑脱,除了用704硅橡胶2.3电机电机是我们的生活中不可缺少的动力源,常用的有交流电机和直流电机。这里小车的动力采用直流减速电机直接驱动,省去了齿轮组、传动部件等复杂的机械结构。这里选择了6V/300rpm的电机,速度和力矩都比较适中。直流电机的构造:在绕有线圈的铁芯(转子)的外周,有相同数目的定子(永久磁铁)相向包围。通过整流器的电刷转子断续地得到电流,转子与定子的永久磁铁反复相吸、排斥,结果无论他们的相互位置如何,转子始终能够沿着一定的方向回转。在永久磁铁(NS)之间的线圈有电流通过时,产生电磁力,对应于永久磁铁产生的磁场,N极产生向上的力,S极产生向下的力。结果导致线圈旋转。在线圈旋转的同时,整流器也随之旋转,这样就能保证电流流向的自动切换以便维持转子向同一方向的连续转动。于是,线圈中不断地产生相同方向的旋转力。直流电机中的电刷与整流器实际上属于机械接触,由于在转轴转动的过程中他们的接触状态不断发生变化,往往产生电气噪声,这可能成为诱发CPU电路误动作的原因,因此为了克服噪声干扰,一般在电机电源端子上并联一个电容器。电机的安装采用焊接。电机背面2个电源端子用粗铜丝焊在电路板上,克服电机自由转动。电路板上刻有一比电机略长的槽口,卡住电机,用拉紧的铜丝焊在电路板将电机固定,克服前后运动。图1.3电机改进:减速电机成本高,且300rpm以上的电机需12V供电,不方便。竞速车可改为录音机的磁带驱动电机(约3000rpm,车轮要减小)。用于固定电机的铜丝一般应用多股细铜丝线。若用单股而比较粗的铜线的话有可能会因为小车的抖动而使电机发生滑动,从而需要不断的对电机进行加固。2.4反射式红外传感器反射式红外传感器ST188采用高发射功率红外广电二极管和高灵敏度光电晶体管组成。检测距离可调整范围为4-15mm;采用非接触检测方式。可用于IC卡电度表脉冲数据采集、集中抄表系统数据采集和传真机纸张检测等。图1.4反射式红外传感器工作原理反射式红外传感器中包含一个发射器LED和一个光探测器(光敏二极管/光敏三极管)。着两个元件被封装在同一个塑料壳体中,并且排列成适合他们工作的理想位置。LED发出的一束光被一个表面反射后又回到探测器中。图1.4是反射式红外传感器的工作原理图。封装在矩形壳体中的是发射器LED(由左侧的白色方块表示)和探测器装置(在右侧)。虚线表示光线从发射器LED中发出并反射回探测器;探测器检测到的光强大小取决于物体表面的反射率,而这一光强就是传感器的输出值。如图所示,选通信号(高电平)经过三极管扩流后送到传感器的K脚,如果检测到黑线,传感器C脚输出高电平;否则输出为低电平。图1.5反射式红外传感器及其检测距离与转换效率的关系图反射式传感器在高度受控的理想环境下的工作性能更好,因为影响它输出的外界因素有很多,如环境光的变动、传感器与被探测物体之间的距离,以及被探测物体的反射率等。为了减少环境光的干扰,首先需要调整传感器的方位使环境光不能直接射到探测器。反射式红外传感器ST188的最佳探测距离为6-14mm。所以将传感器垂直于地面并且调整传感器与地面的距离,大约在10mm左右。传感器引脚很细,容易晃动,需要穿过一块支撑板以增加强度;同时还可以通过铜柱的高度或增加垫片来细调传感器离地面的距离。图1.6传感器安装图2.5红外一体化接收头电视机、唱机等家电中广泛使用红外线遥控器。红外遥控器发出38KHz调制的红外线,在接收端,被一体化红外接收头接收,解调出原始键码值。因为红外遥控使用广泛、成熟、大批量,所以相关红外接收、发射元件价格很低。本方案使用通用遥控器的一体化红外接收头作为检测元件。图1.7一体化红外接收头工作原理一体化接收头内部集成有带通滤波器,它只允许大约38kHz的红外信号通过。这种仅对38KHz敏感的特性,有助于消除环境光对遥控器接收的影响。如图,当红外线发射管(IRLED)发出的38KHz的红外线被一体化接收头接收时,接收头输出“0”。当没有侦测到红外线,或非38KHz红外线(如日光灯干扰),输出“1”利用一体化红外接收头在38KHz附近灵敏度的衰减的特性,可以实现测距功能。图2显示的是某品牌的红外线探测器(PanasonicPNA4602M)在38KHz附近的灵敏度如果红外LED发送频率为42kHz,接收头的灵敏度是频率为38.5kHz的20%左右。在非38KHz频率下,探测器的灵敏度下降,为了让探测器探测到红外线的反射,物体必须离探测器更近,才能使反射的红外光更亮。图1.8接收头在38KHz附近灵敏度曲线那么,最高灵敏度的频率可以探测最远距离的物体,较低灵敏度的频率可以探测较近距离物体。距离探测功能得以实现。选择8个不同频率,从最高灵敏度到最低灵敏度进行依次探测。首先尝试最高灵敏度频率,如果物体被探测到了,就让仅次于它的高灵敏度频率测试,观察是否可以探测到。依赖于不能再让探测器检测到的红外线频率,我们就可以大致推断物体距离处于哪个区域。图1.9红外线测距原理如果需要更高的分辨率,还可通过扫频法找到临界频率,从而更精确的得到物体位置。下表是本人实测的频率距离关系(测量条件:红外发光管通过5mA电流,用一张A4的白纸当障碍物):频率38KHZ41KHZ44KHZ48KHZ54KHZ60KHZ67KHZ69KHZ距离34.0cm30.0cm25.0cm20.0cm15.0cm10.0cm5.0cm2.5cm表1频率距离关系该方法的缺点是精度差,且对物体颜色深浅比较敏感。对于地图绘制等精度要求较高的场合不适用。但对于机器人避障功能或路径选择来说,已经足够。第三章硬件电路3.1电机驱动电路此部分是整个小车的大脑,是整个小车运行的核心部件,起着控制小车所有运行状态的作用。通常选用单片机作为小车的核心控制单元。这里选用MSP430X149单片机(如下有介绍)。考虑到小车必须能够前进、倒退、停止,并能灵活专性,在左右两轮各装一个电机分别进行驱动。当左轮电机转速高于右轮电机转速时小车向右转,反之则向左转。为了能控制车轮的转速,左右两轮的转速,可以采取PWM调速法,即由单片机的TAi和TBi输出一系列频率固定的方波,再通过功率放大来驱动电机,在单片机中编程改变输出方波的占空比就可以改变加到电机上的平均电压,从而可以改变电机的转速。左右两轮两个电机转速的配合就可以实现小车的前进、倒退、转弯等功能。这里采用简单小电流H桥集成功放电路。如图所示:该电路上半部分采用S9013NPN三极管,下半部分采用S9012PNP三极管。它是一个既可靠又简单的电路,它的接口很简单,一是因为它仅有两个输入(A和B);二是因为当H桥集成功放电路的两边都导通时也不会造成电源短路(因为同边上下的三极管不会同时导通)。该H桥集成功放电路比任何将PNP三极管安置在上边的电路(该电路不会发生自动偏压)的效率都更高。该H桥集成功放电路工作时,若将A端置为高电平,而将B端置为低电平,电机将按一定的方向转动(参见图)。若将A端和B端电位对调,电机将朝另一方向转动。如果A端和B端的电位相同,电机将自由旋转。电路控制的真值示于表中。“0”为低电平,“1”为高电平。图2.1电机驱动电路如图所示,将PWM_L1加到A端,PWM_L2加到B端。当PWM_L1为高PWM_L2为低时,MG2通电开始顺时针转动;当PWM_L1为低PWM_L2为高时MG2逆时针转动。控制PWM_L1和PWM_L2信号高低电平的时间比,就可以控制MG2的转速。同样的方法控制右轮。利用左右轮的速度差还可以转向。需要注意的是:被二极管分流到电源两端的电力将造成主板电压的瞬变或噪声。更严重的是当采用PWM信号控制电机时,每次关断都会产生这种影响。如果导通三极管又重新开启,同时反向电动势电流仍然存在,结果三极管将直接导通电源正极和地。这一现象时间的长短取决于续流二极管的关断时间。这一电流称作过冲电流,它同样会产生噪声。基于以上原因,一条重要的对策是需要在H桥集成功放电路上加高速的旁路电容(瓷质电容或钽电容)来保护电路中的电子元件乃至电池。旁路电容的作用是平滑电流脉动和电源电压的瞬变。当电压出现尖峰时,电容将迅速地吸收这一能量,从而使电压保持恒定。当电压降低时,电容将向电路中回馈能量,从而使电压有所回升。改进:该电路是用PWM来控制电机的。经试验验证该电路只有开关的作用,从单片机出来的PWM电压大约在3.5V左右,加到电机两边最多只有3V,这远远低于其耐压,因此转速也很慢,稍有摩擦就转不动了。因此需要再增加两个三极管来进行扩流,具体电路如下所示:图2.2改进的电机驱动电路3.2反射式红外传感器电路这里的寻迹是指小车在白色地板上寻黑线行走,通常采用的方法是红外探测法。即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被安装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不倒红外光。单片机就是否反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测的距离有限,一般最大不应超过15cm。这里用反射式红外传感器ST188。当小车在白色地面行驶时,装在车下的红外发射管发射红外线信号,经白色反射后,被接收管接收,一旦接收管接收到信号,输出端将输出低电平;当小车行驶到黑线时,红外线信号被黑色吸收后,将输出高电平,从而实现了通过红线检测信号的功能。将检测到的信号送到单片机的I/O口,当I/O口检测到的信号为高电平时,表明红外光被地上的黑线吸收了,表明小车处在黑色的引线上;同理,当I/O口检测到的信号为低电平时,表明小车行驶在白色地面上。为了提高控制精度,要求传感器排列紧密,越紧越好。但传感器排列紧密,传感器发射管的光线可能会从地面反射进入临近传感器的接收管。所以不能同时开启这些传感器。其分布如图所示:图2.3传感器分布电路为消除传感器之间的干扰,可将传感器分为五组。前排三组,后排两组(因为PID算法的和小车车身有关,而且后退寻迹不符合实际,所以3个后排的寻迹传感器省去)。由P_SEN0~PSEN5控制着电源。下图是传感器电路的一部分。图2.4反射式红外传感器电路传感器采取脉冲扫描式读。例如某时刻P_SEN1高电平,其余P_SEN2~5低,这样1、4号传感器的红外发射管亮,其余传感器不发射红外线。等待数据稳定后,读取1、4号传感器的数据。然后关闭1、4号传感器,打开2、5号传感器电源,依次类推,读取8个传感器的数据。图2.5反射式红外传感器工作原理这样可以保证任何时刻都不会有临近的传感器同时工作。从而保证了相邻传感器之间不会互相干扰。同时,红外发射管是除了电机之外耗电最大的器件,脉冲工作方式可以大大减少耗电量。3.3红外一体化接收头电路为了感应360度范围内的障碍物,传感器排布采用如下结构。图2.6红外测距环的传感器布置上图注意应把发射管安在接受管后面,防止小车行走时被破坏。每个传感器组由一只红外发射管、一只一体化红外接收头,和一只电容构成。可以测量该方向是否存在障碍物和判断障碍物的距离。电容用来稳定电路,防止电源和地发生短路。硬件原理:采用一片MSP430X149作为控制器。利用TIMERA的频率发生器模式,产生38KHz附近的若干频率,从P6.5输出方波。该方波经过晶体管Q18扩流来增加驱动能力,给7个红外LED供电。为防止互相干扰,7只LED轮流点亮,每次只亮一只LED,由IRE选择哪支红外LED被点亮。如果接收到反射回来的红外线,接收端将输出TTL电平,被单片机接收,然后执行相应的避障措施。如果未接收到任何信号,将一直输出高电平。因为一体化接收头只对38kHz的方波敏感,而且它内部带有带通滤波器,所以需要在发送38kHz的时候发送一段时间关闭一段时间,否则传感器会认为它是外界光而将返回的信号当作干扰信号而忽略掉。图2.7红外一体化接收头工作原理为了避免各个传感器之间的相互干扰,需要轮流打开接收器。另外,因为发光管发出的光是沿四面八方发送的,而且只要打开电源发射管就会工作,所以也为了避免因别的发光管带来的干扰,需要将发光管包的严严实实的。如图所示为红外一体化接收头的作原理:上拉电阻一般选用1KΩ,如果选用较大的电阻,其上拉的效果也不是很明显,有点大材小用的效果;如果选用较小的电阻,有可能方波的低电平就不会下拉到0附近。通过作试验,我们将上拉电阻选用300Ω的电阻,结果38KHZ的方波的低电平大约在1V左右,这时单片机有可能会将它也看作高电平,也就是说相当于一直输出的是高电平。另外,还可以调整串联电阻的大小来调整传感器的测距范围。电阻越大,测量距离越小;电阻越小,测量距离越大。但因为单片机接收到的电流一般在5mA左右,所以串联电阻也不能很小,否则会烧坏单片机。经过试验,我们测得上拉电阻为1KΩ串联电阻为100Ω时它的测量距离最远,可达到3米以上。这七个传感器所起的作用是不同的。前排三个传感器用来检测前方是否有障碍物。若中间的传感器检测到障碍物,左前方的传感器再检测左边是否有障碍物:如果没有小车左转弯;如果有,再判断右边是否有障碍物:如果没有,则小车右转弯;如果有小车将向后退,在后退的过程中传感器还在不断的检测障碍物,一旦发现左边(或右边)没有障碍物时,小车将向左(或右)转弯。小车中间的两个传感器用来改变小车的转弯半径,避免小车在转弯的过程中撞到障碍物。小车后排的两个传感器是在小车后退的过程中防止小车撞到后面物体得到。因此,根据传感器所起的作用的不同,它们所要测量的距离方为也不同。所以分别给它们不同的串联电阻。经试验我们可以将前面三个传感器的串联电阻装成300Ω的;左右两边的1KΩ;后面的2KΩ。3.4处理器电路小车采用一片MSP430X149作为控制器。它具有3路PWM控制器和串口。用到410个I/O口,其中:红外一体化接收头传感器输入7个输出口8个,反射式红外传感器输入口8个控制口5个、电机控制口4个、JTAG占用4个I/O口。MSP430X149的特点是:有五种节电模式;16位RISC结构,125ns指令周期;6个8位并行端口,且2个8位端口有中断能力;保密熔丝的程序代码保护;具有2个捕获/比较寄存器的16位定时器TIMER_A,TIMER_B;两通道串行通信接口可用于异步或同步模式;串行在系统编程;多达60KBFLASHROM和2KBRAM等等。图2.7单片机工作原理系统采用32KHz晶振作为定时采样用,主时钟用800K左右的DCO。另外留有JTAG口可以现场编程。并且还有19个引脚未用到,将来还可以扩展其功能。在做PCB板时已将这些引脚引出,可以直接使用。定时器TIMERA由一个十六位定时器和多路比较/捕获通道组成。每一个比较/捕获通道都可以十六位定时器的定时功能为核心进行单独的控制。它还具有以下特性:·输入时钟可以有多种选择,可是慢时钟,快时钟以及外部时钟。·虽然没有自动重载时间常数功能,但产生的定时脉冲或PWM信号没有软件带来的误差。·不仅能捕获外部事件发生的时间还可以锁定其发生时的高低电平。·可实现串行通信;完善的中断服务功能;4种计数功能选择;8种输出方式选择和支持多时序控制等。TIMERA共有4种计数模式:停止模式、增计数模式、连续计数模式和增/减计数模式。我们用TIMERA的增计数模式来产生38KHZ的方波。具体原理为:捕获/比较寄存器CCR0用作TIMERA增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65536的连续计数情况。计数器TAR可以增加计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。图2.8说明了增计数模式的计数过程。当定时器的值等于CCR0的值时,设置标志位CCIFG0(捕获比较中断标志)为1,而当定时器从CCR0计数到0时,设置标志位TAIFG(定时器溢出标志)为1。图2.8增计数模式计数过程中还可以通过改变CCR0的值来重置技术周期。当新周期大于旧周期时,定时器会直接增计数到新周期;当新周期小于旧周期时,改变CCR0时的定值器时钟相位会影响定时器响应新周期的情况。时钟为高时改变CCR0的值,则定值器会在下一个时钟上升沿返回到0,如果时钟为低时改变CCR0的值,则定时器接受新周期并在返回到0之前,继续增加一个时钟周期。可以随时间变化任意改变PWM信号的占空比,具体的做法是:●保持CCR0的值不变(周期不变)●改变CCRx值(改变占空比)图2.9增计数模式时的输出实例.TIMERA的输出模式由模式控制位OMx0、OMx1和OMx2决定,共有8种输出模式。除模式0外,其他的输出都在定时器时钟上升沿时发生变化。这里我们将输出模式选为输出模式7。用该方式产生占空比为50%的38KHZ的方波;也可以通过改变CCRx的值来改变电机的转速,使其实现转弯、后退等动作。TIMERB的工作原理和TIMERA的相仿。第四章电路原理图三型寻迹避障智能小车由机械结构、寻迹电路、避障电路、电机控制模块和处理器电路五部分组成。机载计算机外部控制命令输入机载计算机外部控制命令输入微控制器MSP430X149反射式红外传感器电路实现寻迹发送38KHZ脉冲发送PWM控制电机的转速红外一体化接收头实现避障图3.1总体结构图如图所示为小车的工作原理。打开电源时先初始化电机驱动电路、一体化接收头电路和反射式红外传感器电路。刚开机时小车的初速度很大,有可能不会沿着黑线运行,所以先让它空跑一段时间。小车在遇到障碍物之前,会沿着轨迹前进,遇到左拐弯时实行拐弯程序。若在跑道上放置障碍物,小车实行相应的避障程序。绕过障碍物时小车再继续按轨迹前进。这有点理想化,实际中不会很完美的将避障和寻迹两部分接合起来,所以对寻迹算法有很高的要求,要求当小车在绕开障碍物时一旦检测到黑线就能立刻反应过来按照黑线的轨迹来运行。我们将红外一体化接收头和反射式红外传感器分为两组。第一组包括前排的三个和之间的两个一体化接收头以及五个反射式红外传感器,主要是在小车前进中用来检测黑线和障碍物位置的;另外一组是在小车后退时用到的。这两组传感器分别作用,即在前进中开启第一组,后退时再开启另外一组。这样可以有效的利用单片机,也不会造成程序的混乱。第五章控制算法5.1黑线位置判别地面的黑线是导引线,位置读取和计算的准确度、稳定性将直接影响小车的控制和运行。下图是实际运行中出现的情况,黑块表示感应到黑线的传感器。传感器的排列比较密,可能1~2个传感器都能踩到黑线;转弯处车身倾斜甚至2~3个传感器都能踩到黑线。应该求黑线的中心位置作为结果。图4.1反射式红外传感器的运算图计算的方法是从左数,找到第一个黑色传感器编i,再从右数,找到第一个黑色传感器编j。(i+j)/2就是黑线中心位置。这样算出来的结果中有小数部分,用起来不太方便,因此我们将结果放大10倍,再减去之间位置时算出来的值。5.2巡线算法小车是一个非常典型的惯性系统。对于这一类被控对象,PID算法能简单有效的进行控制。对PID算法做个简单的说明:假设小车中心线在黑线中心线上,偏差为0,小车正常行驶。如果某时刻检测到黑线偏左,就要向左转弯;如果检测到黑线偏右,就要向右转。偏得越多,就要向黑线方向打越大的舵角。这就是比例控制(P)遗憾的是,这种方法并不能将小车稳定在线上,因为小车有惯性。假设黑线偏左,说明小车偏右了,需要左传舵,等到小车回到中心的时候,停止转舵,可是小车的惯性会使车身继续左转,直到冲过黑线,黑线又偏右。然后控制过程反复,车身是在左右摇摆中向前行走的。这种摇摆叫做“超调”,超调越大,控制越不稳定,容易出轨。为了克服惯性,最简单的办法是任何控制动作都提前一点。适当调整提前量可以抵消惯性;另外,即使偏移量相同的情况下,在不同半径的弯道,也需要不同的舵角。这些都是比例控制不能实现的。我们除了位置信息之外,还需要知道轨迹的变化趋势。为了实现提前控制,在时间上,除非延长传感器,否则没有办法提前获知转弯。那么我们只能在控制量上想办法。一个函数的导数,反映了该函数的变化趋势。同样我们可以用黑线位置的微分值来提前得到变化趋势。用本次位置减去前次位置求出差值,就大致知道偏移量的变化趋势。将该差值和比例相加后一起作为控制量,即可实现提前控制。这就叫做比例微分控制(PD控制)下图是小车的控制系统框图:图4.2PID控制算法传感器位置求出后,减去中心值,得到和中心的偏差量。该偏差量乘以比例系数得到比例控制量。并且计算相邻若干次偏差量之间的差值,乘以微分系数,得到微分控制量。将比例控制量和微分控制量相加,作为最终的舵角控制量。积分控制在此系统中没有使用,原因是舵角到位置之间本身就是积分关系的,另外积分控制有相当大的滞后,对控制稳定性不利。一般在调节P和D时需要先调节P的值,因为比例系数较微分系数对小车的影响更大。在调节P的值时可以先将D的值置为0。当发现小车在偏离黑线却可以很快的转回来时,P就调的差不多了;D的调节相对简单。5.3搜线算法当小车因惯性、超调、控制失败、环境干扰、黑线中断等原因冲出黑线后,需要启用错误处理算法,重新搜寻黑线。这里用了一个最简单的方法:当判断传感器没有读到黑线位置时,不运算也不输出,这样小车就会保持冲出黑线前最后一刻的姿态,继续前进。如果黑线中断或被遮挡,小车会沿原定路线走,如果小车因为超调、惯性拐出跑道,会继续满舵转圈寻找黑线。这种方法简单,但很多情况下会找不到跑道,在原地打转。所以我们应该改进算法,使小车在若干秒满舵转圈仍然找不到黑线时就放大转圈半径等。还有,小车如果在转弯时的速度太快,小车来不及处理,很容易脱离轨道,而且现在我们所采取的程序是让小车在转弯时如果弯度太大,一个轮的速度就会为0,而另外一个的则是全速前进。在走直线时,小车的速度也稍有减慢。所以我们需要对程序进行相应的修改,让小车在走直线时能全速前进;在拐弯时速度能慢下来。5.4障碍物位置判别1.方案一:如图所示,将障碍物与小车之间的距离分为以下八挡。当小车的正前方离障碍物的位置小于参数30时,将电机反转一定时间然后从左边绕开它,继续向前行进;同理,可以实现躲避左边、右边、后边的障碍物。并用反射式红外传感器来检测黑线的位置,使小车能按黑线前进。图4.3障碍物距离与参数的关系图用矢量合成法来计算障碍物与小车之间的距离,并将其转换为上图所示的关系。具体如下:图4.4矢量合成法计算距离如上图所示,将每个传感器的数据看成一个推力矢量,并将它们分解在X轴和Y轴上,Fx=F*cosa,Fy=F*sina。注意:由障碍物产生的矢量由传感器指向测距环中心,而由光线产生的矢量由测距环中指向传感器。将各个矢量分解在X轴和Y轴上后,求X轴和Y轴上的矢量和,将Y轴上的矢量和作为两轮的共同速度,而将X轴上的矢量和作为两轮的差速度,这样就能使小车产生避障的动作。这样算下来精度不是很高,而且传感器的位置本来就没有对某个点完全对称。2.方案二:用上面的算法会增加复杂性。最简单的方法是通过改变串联电阻的方法来改变传感器的测距范围,这样,既可以有效地躲避障碍物,而且也不用增加算法来判断离障碍物的位置,可以更加准确的躲避障碍物。5.5转弯控制前文已述,只要改变左右两轮的速度比,即可控制小车的转弯方向。软件上占空比可设置为0~100.0%,分别对应到寄存器数据的0~1000。按右图控制左右轮PWM寄存器的值,即可控制转向。图4.5电机转向及转速控制改进:这种方法的速度控制是开环的。占空比和实际速度、实际转弯角之间并是很不严格的线性。加上电机的差异、负重的不同、电池电量的差别、轮胎大小的差别都会造成速度的差异。虽然上面的巡线算法可以将这些误差都包进反馈环而得以校正,但会造成控制性能的下降。车轮上可以安装反射辐条,或者打孔,用红外传感器计算脉冲频率而测量速度,并做速度反馈,将轮速严格保持在指令给定的速度上,控制性能会有明显提高。相关软件软件部分我分为两步来单独实现寻迹和避障功能。寻迹部分现在只开了前面的五个反射式红外传感器,对于单独进行寻迹功能来说这已经足够了。小车不需要进行后退,所以后面的传感器没必要打开。若需要打开,其算法和计算五个传感器的算法是一样的。红外一体化接收头现在也只用到前面的三个,用来执行简单的避障功能。若发现前面有障碍物,就判断左边是否有障碍物,若没有就左转来避开障碍物;若有就判断右边是否有障碍物,若没有就执行右转弯程序;若有就后退直到发现左边或右边没有障碍物为止,然后再向左或右转弯。若前面没有障碍物而左边或右边有,小车就转90°然后继续前进。其具体的程序参见附录。总结现在小车已经能够独立的完成寻迹和避障功能了。虽然有时候它不能很完整的走完所规定的路线,但从它转弯、直走的轨迹上来说,已经基本上是按轨迹很完美的前行,左右摆动的幅度也不是很大,所以还是给人一种比较完美的感觉。另外,可能在安装上有点纰漏,使小车的运行轨迹总是很不稳定,前一秒钟是一种状态,后一秒有可能就是另外一种状态,所以需要不停的对小车进行修改。在实际操作中,我发现我们所使用的万用轮对小车的影响很大。比如在让它走直线时,有可能你在放下的那一刻它的前轮就是往某方向偏的,所以只要你一松开小车,它就会沿着那个方向前进。而且支撑前轮的U型支架对小车的转弯影响很大,在调试时如果发现小车按某方向转弯时特别的流场,而沿着另外那个方向却很难转的过来,并且程序上两者是完全对称的,这时就要调整U型支架了,使小车按两个方向都能很流场的转弯。通过现在对小车的研究,它不仅能单独的实现寻迹和避障功能,而且可将两者有效的结合起来,不过还需要对它的机械结构做一定的修改,使其运行起来更加稳定,转弯也更灵活,真正的实现直线加速、转弯减速,并能在走直线时还可以实现避障功能。这样的小车是纯PCB做成的,成本比较低,也很适合业余爱好者的操作,并且它是初学者动手能力的很好的锻炼,将来也有可能成为小朋友亲睐的对象,只要让小朋友随便画一个图形,它都可以沿图形运行。附录A电路原理图电路PCB图目录TOC\o"1-3"\h\z第一章总论 1第一节项目背景 1第二节项目概况 2第三节可研报告编制依据及研究范围 4第二章项目建设的必要性 6第三章外部和内部环境分析 8第一节外部环境分析 8第二节xx镇社会经济环境分析 11第三节xx镇发展的机遇与挑战分析 14第四节xx镇发展的优势与劣势分析 16第五节项目风险分析 18第四章建设条件 20第一节项目选址 20第二节场址条件 20第五章发展战略和总体规划 22第一节发展战略目标 22第二节战略实施措施

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论