机器人及车

更新时间:2024-01-11 07:55:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

激光制导

1 绪论

激光制导是精确制导家族中发展较晚但却进步神速的一个重要成员。激光制导是

用来控制飞行器飞行方向,或引导兵器击中目标的一种激光技术。激光制导与其它制导种类相比具有结构简单、作战实效成本低、抗干扰性能好、命中精度高等优点。不足的是受大气及战场条件影响较大,不能全天候工作等。

激光制导的基本原理是:用激光器发射激光束照射目标,装于弹体上的激光接收

装置则接收照射的激光信号或目标反射的激光信号,算出弹体偏离照射或反射激光束的程度,不断调整飞行轨迹,使战斗部沿着照射或反射激光前进,最终命中目标。

1.1 精确制导

制导方式是实现导引和控制飞行器按照特定规律,选择飞行路线去寻找和攻击目标的过程中所采用的手段和方法。常用的制导方式有自主式制导、遥控式制导、寻的制导、全球定位制导及复合制导等几大类。

1.1.1 寻的制导

它包括主动式寻的制导、半主动式寻的制导和被动式寻的制导。寻的制导常用的寻的器有微波(毫米波)雷达寻的器、红外寻的器、电视(可见光)寻的器和激光寻的器

[1]

寻的制导精度很高,但作用距离较短,故多用于末制导。精确制导武器的高精度

土要靠末段制导保证,远程精确制导武器都有术段制导,而末段制导大多采用寻的制导[2]。

1.1.2 遥控制导

遥控制导通过设在精确制导武器外部的制导站来测定目标和制导武器的相对位

置,然后引导精确制导武器飞向目标。它包括指令制导和波束制导两大类。

指令制导 系统由制导站和装在精确制导武器上的控制设备组成。制导站根据制

导武器在飞行中的误差计算出控制指令,指令通过有线或无线的形式传输到制导武器上有线指令制导系统主要用于射程几千米的反坦克导弹。无线指令制导的常见形式是微波雷达指令制导,由制导雷达测出目标和导弹的位置与速度,并根据这些数据计算出控制指令,然后发送出无线电遥控指令纠正导弹的飞行误差,直至命中目标。这种

1

激光制导

制导方式的作用距离比较远,弹上设备的成本较低,但易受干扰,而且制导距离越远,精度越低,因此适用于中段制导。

图1-1 指令制导示意图

波束制导系统由指挥站和精确制导武器上的控制装置组成。指挥站发现目标后,

对目标自动跟踪并通过雷达波束或激光波束照射目标,当精确制导武器进人波束后,控制装置自动测出其偏离波束中心的角度和方向,控制精确制导武器沿波束中心飞行,直至命中目标。波束制导系统的控制装置比较简单,成本低,并且可以同时制导数枚精确制导武器,而且由于控制装置直接接收波束能量,不易受干扰。这种制导方式的缺点是在整个攻击过程中,指挥站必须不间断地以波束照射目标,这样会使指挥站连同载体很容易受到对方攻击。

图1-2 波束制导示意图

1.1.3 匹配制导

匹配制导系统通常用来修正远程惯性制导的误差。它包括地形(高度)匹配制导和

2

激光制导

景像〔灰度)匹配制导。发射前预先把选定的飞行路线中段和末段下方的若干地区的地面特征图储存到弹上的计算机内,当导弹飞行到这些地区时,将探测器现场实测到的地面图像同预先储存的地面图像作相关对照,计算出导弹的飞行误差,形成控制指令,就能控制导弹沿预定的航线飞向目标。储存在弹上的地面图像由侦察卫星或侦察飞机预先测定,经过处理转换成数字信息后储存在弹上的计算机中。由于同一地域对于可见光、微波、红外、微光所表现的地面特征不尽相同,从而可构成各种地图匹配制导,如微波雷达图像匹配制导,可见光电视摄像匹配制导,激光雷达图像匹配制导,红外成像匹配制导等。匹配制导的制导精度与射程无关,可使射程为几千千米的导弹达到较高的命中精度。

1.1.4 惯性制导

惯性制导是一种只依靠弹上惯性部件提供制导数据,而不依赖外部信息的自主制

导方式。惯性制导技术主要用于弹道式导弹,它利用陀螺仪、加速度计等惯性元件来测量和确定导弹的运动参数,控制导弹飞行。它的精度随射程的增大而降低,所以只装有惯性制导系统的武器不可能成为精确制导武器。但是惯性制导最大优点是不受外界的干扰,只要它的精度能保证将制导武器引导至末制导系统的作用范围,就不失为一种简便可靠的中段制导方式。

1.1.5 卫星定位(GPS)制导

卫星定位制导也称“GPS”制导,是指制导武器接收全球定位系统中卫星播发的

导航信号,实现三维精确定位和获取速度、时间信息的制导方式。

美国的全球定位系统在1993年已全部完成并投人使用,这个由24颗卫星组成的定

位系统可用于各种军用与民用的定位与导航。如果在精确制导武器上安装全球定位系统的接收机,就可以在飞行过程中情确地测出自己的空间位置和匕行速度,用来修止惯性制导的误差C虽然其作用与地形匹配制导相似,但是攻击前的准备工作却简单得多,所以用全球定位系统制导来代替地形匹配制导,可改善远程精确制导武器的性能。

1.1.6复合制导

复合制导是采用两种或两种以上不同物理特性的探测器组成的制导系统。在制导

时,若探测器串行使用,为复合制导;若并行使用,为多模制导或并联复合制导。

任何一种制导方式都有其优缺以,如能取长补短则能趋利避害。一般,远程精确

制导武器都采用两种以上的制导方式构成复合制导系统,这样不仅能提高制导精度而

3

激光制导

目也能增强抗干扰能力。如法国的“飞鱼”反舰导弹,发射后先按惯性制导做超低空掠海飞行,在接近目标时才转为雷达主动寻的制导;前苏联的SA-4防空导弹,发射后先用作用距离比较远的指令制导,飞行末段转用精度较高的半主动雷达寻的制导;美国的“战斧”巡航导弹,在整个飞行过程中除用惯性制导外,中段制导过去是用地形匹配制导,而现在改用全球定位系统来修正惯性制导的误差。

复合制导系统虽然比较复杂、体积大、成本高,而且因元器件多降低了系统的可

靠性,但是随着科学技术的发展,复合制导系统的小型化、低成本、高可靠性会逐步得到解决。

1.2 精确制导技术的发展趋势

未来的精确制导武器除了进一步增大射程,提高命中精度,缩短任务规划时间,增强攻击目标选择能力外,提高抗干扰能力和全天候作战能力,实现人工智能化、模块化、通用化和提高突防能力应成为今后重要的发展方向。

从技术和性能的角度分析,精确制导武器未来的发展趋势主要是[3]:

(1)采用新的制导技术,提高命中精度,缩短任务规划时间和增强目标选择能力。

未来的巡航导弹可能采用惯性加GPS加红外成像制导,这样可取消地形匹配和景像匹配系统,进行任务规划就不需要大量的电子图像信息。激光雷达、合成孔径雷达和毫米波寻的技术将来也可能用于巡航导弹的制导。

(2) 采用新型发动机和高能高密度燃料,大幅度增加射程。研制隐身性能更好的制导武器,进一步提高突防能力。通过综合利用雷达、红外和声学等隐身技术,未来巡航导弹的雷达反射截面、红外信号特征和噪声将进一步减小,使防御系统对其进行探测和跟

(3) 研制新的计算机算法,提高制导武器的进攻能力。如通过在任务规划系统采用新的计算机算法和建立导弹之间的通信链路,未来的巡航导弹能够利用通信链路在飞行中进行数据交换,识别特定目标和进行毁伤评价,如果原定目标被摧毁,能够重新选择航线攻击备选目标.从而显著增加作战效能。

(4)采用模块化设计,提高不同军种间的通用性,即一弹多用,可降低研制经费,

缩短研制周期,并且有利于使用和维修保养。

(5)今后还要研制巡航导弹的领弹,领弹在攻击时提供开路先锋,对目标定位,导

引后续导弹对目标实施攻击。领弹可回收和重复使用。

4

激光制导

1.3 激光制导的三种方式

在众多的精确制导方式中最引人注目、发展最快的要数激光制导了。激光制导具有其他精确制导方式所无法比拟的许多优点,因此最具发展潜力。激光制导与控制武器具有制导精度高;抗干扰能力强;可与红外或雷达等构成复合制导;体积小、重量轻。

激光制导方式有半主动寻的式、主动寻的式和波束式( 驾束式)三种。目前激

光制导武器中大都采用半主动激光制导方式,即导引头与激光照射装置分开配置于两地,前者随弹飞行,后者置于弹外。激光照射器用来指示目标,故又称激光目标指示器。导引头通过接收目标反射的激光或直接接收照射激光,引导导弹飞向目标[4]。

1.3.1 半主动式激光制导

半主动式激光回波制导系统的工作过程是:激光发射机作为信号源装在地面、车

船或飞机上,发射激光束为制导武器指示目标,弹上的激光导引头接收目标反射的激光信号,并跟踪目标上出现的激光光斑,引导战斗部飞向激光光斑,最终命中目标。半主动式回波制导广泛应用于各种武器的制导系统中,如激光制导炸弹、激光制导导弹、激光制导炮弹等,是所有制导武器中制导精度最高的。例如,美制海尔法激光制导导弹就是半主动激光制导导弹的典型代表,主要用于攻击坦克、战车、雷达等地面军事目标。

图1-3 激光半主动寻的系统

5

激光制导

1.3.2 主动式激光制导

这种制导方式是将激光照射器和目标寻的器都装在弹上,由激光照射器发射激光,目标寻的器接收目标反射回的激光信号,再通过弹上控制系统将弹体引向目标。

1.3.3 波束式激光制导

激光波束制导又称激光驾束制导,其工作过程是:激光制导系统瞄准目标并连续

发射激光,位于弹尾的激光接收器接收激光,控制弹体像“骑”着激光一样沿光束中心飞行。激光束指向哪儿,弹体就飞到哪儿,紧紧“咬”住目标不放,直到命中。但激光驾束制导必须在通视条件下才能实现,因而适合短程作战使用,射程一般在3 km 以内。瑞典RBS-70 便携式导弹即属此类,由于其命中率极高,已成为反低空飞机的得力武器。

图1-4 激光驾束制导示意图

2 知识准备

激光制导是一个复杂的系统工程,在实验室进行模拟试验必须具备必要的知识储

备和硬件实验设备。以下我就激光制导实验所涉及到的一些专业的必备知识和一些设备作一下简单介绍。

2.1氦氖激光器

氦氖激光器是具有连续输出特性的气体激光器。虽然它的输出功率一般来说并不很高,通常只有几毫瓦,最大也不过百毫瓦,但由于它的光束质量很好;光束发散角很小,一般能达到衍射极限;相干长度是气体激光器中最长的,另外由于器件结构简单,操作方便,造价低廉,输出光束又是可见光。基于上述优点,使氦氖激光器在精

6

激光制导

密计量、准直、导航、全息照相、通信、激光医学等方面得到了极其广泛的应用。氦氖激光器是放电激励的气体激光器的典型代表[5]。它的工作过程、制造工艺及设计器件的方法等对其它气体激光器都可以作为参考。

氦氖激光器的几种结构形式:

(a) 内腔式He-Ne激光器结构图

(b)外腔式He-Ne激光器结构图

(c)半外腔式He-Ne激光器结构图

图2-1 He-Ne激光器结构图

按照组成激光共振腔的两块反射镜相对于激光放电管安置方式是否是直接接触,氦氖激光器可分为三种结构形式。如图2-1所示。图中(a)为内腔式,两块反射镜直接贴在放电管两端,这种形式的最大优点是使用方便,反射镜贴好后就不能再调整,其缺点是由于发热或外界扰动等原因而造成放电管发生形变,使两块反射镜的位置发生相对变化,导致共振腔失调,因而使输出频率及功率发生较大的变化[6]。

图中(b)是外腔式,组成共振腔的两块反射镜与放电管完全分离,反射镜安装在专门设计的调整支架上,放电管两端用布儒斯特窗片以布儒斯特角密封。这种结构的优点是能避免因放电管形变而引起的共振腔失调,同时获得线偏振光。这对某些应用和光学研究是必要的。其缺点是需要不断调整腔镜,使其输出最佳,使用不如内腔式方便。

图中(c)是半外腔式,它的放电管一端直接贴反射镜,另一块反射镜与放电管分离。输出光束也是线偏振光,其性能介于(a)和(b)两者之间。

7

激光制导

2.2 摄像器件的工作原理

1摄像头简介

摄像头(CAMERA)又称为电脑相机、电脑眼等,它作为一种视频输入设备,在过去被广泛的运用于视频会议、远程医疗及实时监控等方面。近年以来,随着互联网技术的发展,网络速度的不断提高,再加上感光成像器件技术的成熟并大量用于摄像头的制造上,这使得它的价格降到普通人可以承受的水平。普通的人也可以彼此通过摄像头在网络进行有影像、有声音的交谈和沟通,另外,人们还可以将其用于当前各种流行的数码影像、影音处理。 2摄像头的分类

摄像头分为数字摄像头和模拟摄像头两大类。模拟摄像头可以将视频采集设备产生的模拟视频信号转换成数字信号,进而将其储存在计算机里。模拟摄像头捕捉到的视频信号必须经过特定的视频捕捉卡将模拟信号转换成数字模式,并加以压缩后才可以转换到计算机上运用。数字摄像头可以直接捕捉影像,然后通过串、并口或者USB接口传到计算机里。现在电脑市场上的摄像头基本以数字摄像头为主,而数字摄像头中又以使用新型数据传输接口的USB数字摄像头为主,目前市场上可见的大部分都是这种产品。除此之外还有一种与视频采集卡配合使用的产品,但目前还不是主流。

由于个人电脑的迅速普及,模拟摄像头的整体成本较高等原因, USB接口的传输速度远远高于串口、并口的速度,因此现在市场热点主要是USB接口的数字摄像头。以下主要是指USB接口的数字摄像头。 3摄像头的工作原理

摄像头的工作原理大致为:景物通过镜头(LENS)生成的光学图像投射到图像传感器表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过USB接口传输到电脑中处理,通过显示器就可以看到图像了。

注1:图像传感器(SENSOR)是一种半导体芯片,其表面包含有几十万到几百万的光电二极管。光电二极管受到光照射时,就会产生电荷。

注2:数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号

8

激光制导

通过USB等接口传到PC等设备。

本实验中所用的摄像头是一款CCD摄像头,输出的是PAL制式的模拟复合视频信

号。

2.3复合视频信号

1.复合视频(Composite-Video)

由于分量视频信号各个通道间的增益不等或直流偏置的误差,会使终端显示的彩色产生细微的变化。同时,可能由于多条传输电缆的长度误差或者采用了不同的传输 路径,这将会使彩色信号产生定时偏离,导致图像边缘模糊不清,严重时甚至出现多个分离的图像[7]。

插入NTSC或PAL编解码器使视频信号易于处理而且是沿单线传输,这就是复合视频。复合视频格式是折中解决长距离传输的方式,色度和亮度共享 4.2MHz(NTSC)或5.0-5.5MHz(PAL)的频率带宽,互相之间有比较大的串扰,所以还是要考虑频率响应和定时问题,应当避免使用多级编 解码器,复合视频的传输特性如下: - 传输介质:单根带屏蔽的同轴电缆

- 传输阻抗:75欧姆常用接头:BNC接头、莲花(RCA)接头 - 接线标准:插针=同轴信号线,外壳公共地=屏蔽网线(见图1-6)

图2-2

2. 色差信号(Y,R-Y,B-Y)

图2-3

对视频信号进行处理而传输图像时,RGB分量视频的方式并不是带宽利用率最高的方法,原因是三个分量信号均需要相同的带宽。

9

激光制导

人类视觉对亮度细节变化的感受比彩色的变化更加灵敏,因此我们可以将整个带宽用于亮度信息,把剩余可用带宽用于色差信息,以提高信号的带宽利用率。 将视频信号分量处理为亮度和色差信号,可以减少应当传输的信息量。用一个全带宽亮度通道(Y)表示视频信号的亮度细节,两个色差通道(R-Y和B-Y)的 带宽限制在亮度带宽的大约一半,仍可提供足够的彩色信息。采用这种方法,可以通过简单的线性矩阵实现RGB与Y,R-Y,B-Y的转换。色差通道的带宽限 制在线性矩阵之后实现,将色差信号恢复为RGB分量视频显示时,亮度细节按全带宽得以恢复,而彩色细节会限制在可以接受的范围内。

色差信号也有多种不同的格式,有着不同的应用范围,在普遍使用的复合PAL、SECAM和NTSC制式中,编码系数是各不相同的。

2.4 步进电机

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。

反应式步进电机原理

由于反应式步进电机工作原理比较简单。下面先叙述三相反应式步进电机原理。

A、结构:

电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A’与齿5相对齐,(A’就是A,齿5就是齿1)

B、旋转:

如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移

10

激光制导

过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3て,此时齿4与A偏移为1/3て对齐。如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3て这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A??通电,电机就每步(每脉冲)1/3て,向右旋转。如按A,C,B,A??通电,电机就反转。

由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定。

不过,出于对力矩、平稳、噪音及减少角度等方面考虑。往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3て改变为1/6て。甚至于通过二相电流不同的组合,使其1/3て变为1/12て,1/24て,这就是电机细分驱动的基本理论依据。

不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m??(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制——这是步进电机旋转的物理条件。只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。

C、力矩:

电机一旦通电,在定转子间将产生磁场(磁通量Ф)当转子与定子错开一定角度产生力F与(dФ/dθ)成正比 S 其磁通量Ф=Br*S Br为磁密,S为导磁面积 F与L*D*Br成正比L为铁芯有效长度,D为转子直径 Br=N?I/R N?I为励磁绕阻安匝数(电流乘匝数)R为磁阻。

力矩=力*半径

力矩与电机有效体积*安匝数*磁密 成正比(只考虑线性状态)因此,电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。

一个二相电机的内部绕组与四相电机完全一致,小功率电机一般直接接为二相,而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。

11

激光制导

3方案论证及各功能模块的实现

3.1 方案论证

3.1.1 制导方式选择

(1) 全主动式激光制导。这种制导方式是将激光照射器和目标寻的器都装在弹上,由激光照射器发射激光,目标寻的器接收目标反射回的激光信号,再通过弹上控制系统将弹体引向目标[8]。

由于目标物体与周围环境相互影响,这种制导方式必须能够对目标物体进行图象识别,需要强大的数字视频信号处理器和相当复杂的程序算法。这样复杂的系统工作不可能在短短的几个月之内完成。

(2) 波束式激光制导

激光波束制导又叫激光驾束制导,其工作过程是:激光照射器先捕捉并跟踪目标,给出目标所在方向的角度信息,然后经火控计算机控制弹体发射架,以最佳角度发射导弹,使它进入激光波束中(进人波束的方向要尽可能与激光束轴线的方向一致)。弹体在飞行过程中,弹上激光接收机接收到激光器直接照射到弹上的激光信号,从中处理出制导所需的误差量,即弹体轴线与激光束轴线的偏离方向和大小,并将这个误差量送入弹的控制系统,由控制系统控制弹的飞行方向和姿态,始终保持弹与激光照射光束的重合,最终将战斗部引导于目标上。此种制导方式就像让导弹骑在激光束上滑行一样,所以俗称\驾束制导\[9]。

这种制导方式需要强大的功率激光器,但我系实验室不具备这样的激光器。而且这种制导方式需要整个导引系统都处于激光束的照射范围之内,这就要求激光束的束腰半径比较大,我系实验室不具备这样的激光器。

(3) 半主动式激光制导

半主动式激光回波制导系统的工作过程是:激光发射机作为信号源装在地面、车船或飞机上,发射激光束为制导武器指示目标,弹上的激光导引头接收目标反射的激光信号,并跟踪目标上出现的激光光斑,引导战斗部飞向激光光斑,最终命中目标。半主动式回波制导广泛应用于各种武器的制导系统中,如激光制导炸弹、激光制导导弹、激光制导炮弹等,是所有制导武器中制导精度最高的[10]。

12

激光制导

由于这种方法简单易行且各种实验设备基本具备,我采用了半主动式激光制导的方式导引小车的行进。

3.1.2 激光探测器的选择

(1) 四象限探测器

人们把四个性能完全相同的探测器按照直角坐标要求排列成四个象限做在同一芯片上中间有十字形沟道隔开,即所谓四象限管,其结构示意图如图3-1所示。

图3-1 四象限探测器结构示意图

四象限探测可作为二维方向上目标的方位定向,用于军事目标的探测或工业中的定向探测。用脉冲激光器作光源(加固体脉冲激光器),它发出脉冲松窄(ns量级脉宽)而峰值功率很高的激光脉冲,用它照射远处军事日标(坦克、车辆等)。被照射的目标对光脉冲发生漫反射,反射回来的光由光电接收系统接收。接收系统由光学系统和四象限管组成[11]。四象限管放在光学系统后焦面附近,光轴通过四象限管十字沟道中心。远处日标反射光近似于平行光进入光学系统成像于物镜的后焦面上,四象限管的位置团略有离焦,于是接收到目标的像为—圆形光斑。当光学系统光轴对准目标时,圆形光斑中心与四象限管中心重台。四个器件因受照的光斑面积相同,输出相等的脉冲电压。经过后面的处理电路以后,没有误差信号输出。当日标相对光轴在x、y方向有任何偏移时.目标像的圆形光班的位置就在四象限管上相应地有偏移,四个探测器因受照光斑面积不同而得到不同的光能量,从而输出脉冲电压的幅度也不同[12]。

经过调查,市场上的民用四象限探测器较少,而军用品的价格又非常高,因此不适合采用这种探测器件。

(2) CCD成像器件

13

激光制导

电荷耦合器件(Charged Coupled Device)简称CCD,最早出现在70年代初,由美国贝尔实验室的W.S.Boyle和G.E.Smith首先提出,后来被Amllo等人的实验所证实;CCD的优点是结构精细。体积小,坚实可靠并且在低电压下工作。经过二十多年的发展,CCD主要应用于下面两个领域,一是电子计算机或其他数字系统中用作信息存贮相信息处理;二是用于摄像装置,其作用是把光学图像转换为电子图像,再通过存贮、自扫描输出时间序列的电信号[13]。日前,在固体摄像器中发展最快、应用最广的是电荷耦合器件。

我设计了外围电路对视频模拟信号进行行场分离等处理之后,能够成功的实现目标的探测与定位。因此我才用了CCD摄相头作为目标激光探测器。

3.2 激光定位模块

3.2.1 目标定位信息的提取

摄象机输出的复合视频信号输入LM1881的视频输入引脚,即经内部电路的处理分离出场同步脉冲和行同步脉冲,1脚输出行同步脉冲,3脚输出场同步脉冲(如图3-2所示)。行、场同步脉冲分别输入74LS126的A、B两个三态门的输入端,目标定位单片机的P1.0与P1.1分别通过控制A、B两个三态门而控制两路信号的导通,A、B两个三态门的输出端连在一起与单片机外部中断1(INT0)相连。T0与LM1881的1脚(行同步脉冲)直接相连。

在摄象机输出的复合视频信号中,行同步脉冲与场同步脉冲以及场消隐脉冲都是

低电平,每行的图象信号则是随着外界光强的增加而增加。因此目标亮点的捕捉是通过电压比较器与复合视频信号中的行视频信号进行比较而捕捉到高电平脉冲,我用NE555作电压比较器,555的基准电压输入端5脚外引一个10K的电位器接地,通过调节电位器就可以改变比较电压了。当复合视频信号出现高于Vcmp的高脉冲时,555的输出脚3脚便会立刻出现一个由高电平到低电平的负跳变,这一信号输入到单片机的外部中断1(INT1)引发中断,单片机在程序中配合行、场同步脉冲通过记数、定时等程序处理之后便可计算出目标亮点在整幅图象中的偏移位置即目标物体的二维坐标。

14

123 Rvideo2COMP VID IN1COMP SYNC7T0VCCRes2620CgndCap510pF6RST3VERT SYNC5COMP SYNC OODD/EVEN OCrstCap0.1uFRrstRes2680KGNDLM1881N4VERT SYNC OBACK PORCHU1881VCC8CvideoCap0.1uFVIDEO_IN场脉冲控制(P1.0)行脉冲控制(P1.1)U126VCCVCC14激光制导 图3-2 脉冲分离与电压比较电路原理图 VCC141013OE1OE2OE3OE4U555VCCDISC377INT18VERT SYNC2COMP SYNC59124652RSTTHRCVOLTTRIGGNDLM555CNOUT1A1A2A3A4GND15 VcmpY1Y2Y3Y436811INT0RcmpRPot1KDM74LS126AN

激光制导

3.2.2 目标二维坐标的计算

上述目标定位信息提取电路提取出行同步脉冲、场同步脉冲和目标亮点脉冲,这

些信号分别输入目标定位单片机的外部中断0(INT0)、定时/计数器0(T0)和外部中断1(INT1)。

单片机上电复位后,首先进行初始化:设定定时/计数器工作模式、串口工作模

式和外部中断触发方式等。程序如下:

上电初始化程序

START: LCALL CLRAM ;清内存

MOV TCON,#05H;INT0,INT1为下降沿触发方式 MOV SCON,#40H ;设置串口工作模式为方式1 MOV TIME,#255 ;延时 LCALL DELAY

MOV TMOD,#25H ;设置定时器工作模式 MOV TH0,#00H MOV TL0,#00H

MOV TH1,#0FDH ;设置波特率 MOV TL1,#0FDH MOV X_DISNUM_L,#00H MOV X_DISNUM_H,#00H MOV Y_DISNUM_L,#00H MOV Y_DISNUM_H,#00H MOV DIS_H_X,#00H MOV DIS_L_X,#00H MOV DIS_H_Y,#00H MOV DIS_L_Y,#00H MOV DIS_NUM_X,#00H MOV DIS_NUM_Y,#00H

SETB X_Y ;先测量Y方向的坐标 CLR HANG ;关行同步脉冲 CLR CHANG ;关场同步脉冲

CLR NEW_COME;新数据到来标志位无效 CLR DIS_X_OR_Y;先显示x坐标 SETB EX0 ;开外部中断0 CLR EX1 ;关外部中断1 SETB EA ;开中断 CLR TR0 SETB TR1 SETB TI

初始化之后程序进入主程序(坐标计算)。首先测量Y方向坐标,使P1.0 置位P1.1置零即选通场脉冲输入INT0,定时/计数器T0为计数状态,当有一个场同步脉冲下

16

激光制导

降沿到来时引发一次外部中断,在INT0的中断服务程序(如下)中将T0的TH0、TL0清零,同时打开INT1使亮点高脉冲能够引发中断。INT0的中断服务程序退出之后T0开始计数行同步脉冲,INT1开始等待下降沿的到来。当激光目标亮点进入摄像头的成像范围之内时在行视频信号的某一行中便会出现高脉冲,此脉冲立刻引发外部中断1(INT1)产生中断,在INT1的中断服务程序(如下)中首先关T0计数器,将 TH0、TL0存3入DIS_H_Y、DIS_L_Y两个变量中,随后关闭INT0和自身并清零X_Y标志位(告诉主程序该测X方向的坐标了),然后中断退出。

INT0中断处理程序 START_COUNT: MOV TH0,#00H MOV TL0,#00H SETB TR0

CLR IE1 ;关INT1中断标志 SETB EX1 RETI

INT1中断处理程序 LINE_DO: CLR TR0 CLR EX0 CLR EX1 JB X_Y,LINE_Y LINE_X: MOV DIS_H_X,TH0 MOV DIS_L_X,TL0

SETB X_Y ;该测量Y方向坐标了 SETB NEW_COME RETI

LINE_Y: MOV DIS_H_Y,TH0 MOV DIS_L_Y,TL0

CLR X_Y ;该测量X方向坐标了 RETI

主程序(如下)时刻判断X_Y标志位的状态,如果发现X_Y为0则立刻改变工作状

态改测X方向的坐标。首先清零P1.0置位P1.1(选通行同步脉冲进入INT0),然后设定定时/计数器T0的工作模式为计时模式,开INT0中断,等待中断下降沿的到来。如果INT0引脚出现下降沿则INT0产生中断,在中断服务程序中首先清零TH0、TL0开始计时,开外部中断1(INT1),随后中断退出等待激光定位脉冲的到来。如果激光定位亮点进入摄像头的视野,则在某一行便会出现高脉冲,这一脉冲立刻引发INT1产生中断,在INT1的中断服务程序中关T0计时器并将TH0、TL0分别送入DIS_H_Y、

17

激光制导

DIS_L_Y,然后关INT0和自身置位X_Y标志位(告诉主程序该测Y方向的坐标了),因为此时X方向和Y方向的坐标都已测量过了,最后还要置位NEW_COME标志位(告诉主程序X、Y坐标已经测量过了,以是最新数据)。

主程序

MAIN: JB X_Y,Y_CHECK;如果X_Y标志位有效则去测Y方向坐标,否则测X方向坐标 MOV TMOD,#21H CLR CHANG SETB HANG JNB IE0,X_NEXT CLR IE0 X_NEXT: SETB EX0 LJMP GO_ON Y_CHECK:MOV TMOD,#25H CLR HANG SETB CHANG JNB IE0,Y_NEXT CLR IE0 Y_NEXT: SETB EX0

GO_ON: JB DIS_X_OR_Y,XS_Y;如果DIS_X_OR_Y有效去显示y方向坐标,否则显示x方向坐标 LCALL DISPLAY_X CPL DIS_X_OR_Y LJMP EN_CHECK XS_Y: LCALL DISPLAY_Y CPL DIS_X_OR_Y EN_CHECK:

JNB SEND_EN,MAIN;如果不允许发送数据则不发送

主程序如果发现X_Y标志位置位则又会改变工作状态改测Y方向的坐标。首先置位P1.0清零 P1.1(选通场同步脉冲进入INT0),然后设定定时/计数器T0的工作模式为计数模式,开INT0中断,等待中断下降沿的到来。然后重复上述过程。

在主程序的最后会判断NEW_COME标志位,如果NEW_COME置位并且主控单片机允

许发送数据则开始通过串口发送X、Y坐标数据,在发送数据的过程中关闭所有中断,数据发送完毕之后重新开始测量二维坐标。

目标定位程序控制流程图如图3-3所示。

18

激光制导

初始化设置(定时/计数器器模式、中断模式等) 测Y 方向坐标(定时器为计数模式) N Y方向定位脉冲是否到来? Y 测X 方向坐标(定时器为定时模式) N X方向定位脉冲是否到来? Y 是否有新数据的到来? N 是否允许发送数据? Y Y X、Y定位信息通过串口输出 N 图3-3 目标定位程序控制流程图

19

激光制导

3.3 目标锁定与跟踪模块

3.3.1 直流电机驱动

小车的行走由两轮驱动,每个轮子由一个直流电机控制。电机由一个专用驱动板驱动可实现电机的加速,减速,转向。控制原理如图3-4所示:

主 控 单 片 机 方向 PWM(速度) 起停 输出 直流 电机 直流电机 驱动板 编码盘处理

图3-4 电机的加速,减速,转向控制原理图

3.3.2 步进电机驱动

装在小车前方的定位捕捉摄像头水平方向的转动可由小车的两个轮子的正反转来控制,垂直方向的转动由一个步进电机通过皮带传动来控制。

我采用的步进电机是感应子式四相步进电机,由于市场上的专用步进电机驱动电路价格比较高,而低档的驱动板又不能满足此项目的控制要求。因此我自己设计了一块电机驱动板,此驱动板以L298N作为驱动芯片,AT89C2051作为控制器,通过编程可以方便的控制步进电机,并且通过修改其程序还可以控制直流电机。其电路原理图如图3-5所示。

20

21RX2DTX3DINT60INT71T08T19VSSVSVmotor4+SWRSTVCCCVCCCrst1=value20uFRST11ISENARwi1ISENBRPotRwi21KRPot1KRwcmp1RPot10KA-激光制导 +Header 3I-protect12Header 2Header 4Ri=Value4.7kINT1电流保护A电流保护BINT0INT1T0T11234INT/TMotor ServoDm6Diode 11DQ03DiADiBDiode 1N4001Diode 1N4001电流保护A电流保护BDm8Diode 11DQ03ATitleA-图3-5 电机驱动控制原理图 L298NDC-motor-contolmotor_a_fx1motor_a_pwm2motor_b_fx3motor_b_pwm4Header 44123456OUT1OUT2OUT3OUT4Header 6VCCRwcmp2RPot10K11

2VCC34VCC20motor_a_pwmU298VCCVCC94Vmotormotor_b_pwmRupA=value4.7KRupB=value4.7KD571012IN1IN2IN3IN4EN AEN B311电流保护A115OUT1OUT2OUT3OUT4U324ALM324N2OUT13OUT21O3UT31O4UT4Rcmp1=Value10KISENA2motor_a_pwm6motor_b_pwm111918171615motor_a_fx14motor_b_fx1312Dm1Diode 11DQ03Motor-aOUT1OUT2Cm1=Value104Motor ServoC8GNDISEN AISEN BDm3Diode 11DQ03DC-motor-driveOUT11OUT22OUT33OUT44Header 4Dm2Diode 11DQ03Dm4Diode 11DQ03STEP-motor-driveVmotor5Rcmp2=Value10KISENB62U324BLM324N7电流保护BVmotorSTEP-motor-contolRXD1TXD2INT03Header 3VCCDm5Diode 11DQ03Motor-bOUT3OUT4Dm7Diode 11DQ03Cm2=Value104BASizeA4Date:File:2322-May-2007Sheet of D:\\protel files\\机器人开发模块\\机器人开发D模ra块wn. dBdyb:4NumberRevision1CXTAL1U2051DRST1RSTVCC=value30pFC2XTALYXTAL45XTAL2XTAL1=value30pFP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1VCCP31.71P3.7P1.7P1.6P1.5P1.4P1.3P1.2P1.1/AIN1P1.0/AIN010GNDAT89C2051VCCVCCSW-PBRRST=value4.7K12Header 221

VmotorVmotor12Header 2VCCMOD_CSBP3.7123 1D激光制导 VmotorU324ALM324N1电流保护A Dm3Diode 11DQ032051单片机的P1.7、P1.6、P1.5、P1.4分别Dm1Diode 11DQ03Motor-aA+-与L298N的IN1、IN2、IN3、IN4相连,在程序中Cm1=Value104能够实现四个端口的轮流导通,从而可以控制步进电机的起停和转向。RXD与TXD分别控制电机的COUT1OUT2CCMotor ServoDm2Diode 11DQ03Dm4Diode 11DQ03起停和转向。在电机停转的情况下,向INT0脚输入脉冲可以单步控制步进电机。 P1.1与 P1.0分别与L298N的ENA与ENB相连,U324BLM324N7电流保护BVmotor在直流电机控制模式下可以由单片机或外部发送Dm7Diode 11DQ03Cm2=Value104A-CCDm5Diode 11DQ03Motor-b+PWM来控制直流电机的转速。P1.3与P1.4分别控制电机A与电机B的方向。 B 3OUT3OUT4由于电机的线圈有强大的电感,在断电之后电Motor Servo2Dm6Diode 11DQ03Dm8Diode 11DQ03流不会马上减小为零,此时如果没有放电回路会4在外围产生强大的反向电动势,很容易将芯片击穿,因此在外围添加保护电路是必要的。常用的CRupB=value4.7Kmotor_b_pwmU29Size8A4IN1NumberTitle图3-6 电机续流二极管接线图 保护电路是加续流二极管,接法如图3-6所示。 ADpwm 由于电机在转动过程中有可Vmotor能会堵转,在这种情况下通过电机571012IN2Date:IN3File:IN4EN AEN BVSSVS22-May-2007OUT1OUT2OUT3OUT4VCC94VmotorVCCRevisionSheet of D:\\protel files\\机器人开发模块\\机器人开发模块Drawn .dBydb:pwm6pwm112OUT13OUT21OUT331OUT441154Rcmp1=Value10KISENA234U324ALM324N11电流保护A线圈的电流会非常大,不仅容 Dm1Diode 11DQ03Motor-a8GNDL298NISEN AISEN BISENBRwi2RPot1K11ISENARwi1RPot1K 易烧坏驱动芯片,而且还有A+-Dm3Diode 11DQ03tor-driveOUT1OUT2OUT3OUT4Rwcmp1RPot10K可能烧坏电机,因此电流保护电路OUT1OUT2是必需的。 L298N的ISEN A与Motor ServoISEN B就是专门的电流保护引脚,Dm2Dm4配合一些外围电路就可以方便的Diode 11DQ03Diode 11DQ03VCCCm1=Value104CVCC 4Rcmp2=Value10KISENB654motor-driveVmotorOUT1OUT2OUT3OUT4U324BLM324N27电流保护B实现过流保护。通过外接一个0.5欧姆的电阻,由于电流在电阻上产Vmotor生压降,输出电压,在通过调节外围电压比较器的别的比较电压就可以实现不同电流大小的保护。电Motor-b+Rwcmp2RPot10KVCC11VCC 6Dm5Diode 11DQ03Dm7Diode 11DQ03Cm2=Value104B图INT/TINT0INT1T0T11234Header 4Ri=Value3-7 电机过流保护电路 4.7kINT1A 路的具体接法如图3-7所示。 Motor Servo DiADiBDiode 1N4001Diode 1N4001电流保护A电流保护B22 Dm6Diode 11DQ03Dm8Diode 11DQ03-OUT3OUT4激光制导

其电机驱动板PCB如图3-8所示

图3-8 电机驱动板PCB

3.3.3 电机控制程序简介

由于电机驱动需要驱动步进电机或直流电机,因此需要有一个模式选择,在程序

的开始便是一个模式选择,通过判断P3.7的高或低来选择工作模式,外围电路则是一个跳线,通过一个插针就可以方便的选择工作模式。P3.7为高电平时为步进电机工作模式,低电平时为直流电机工作模式。其程序如下:

工作模式选择程序 if(P3_7==1) {

mod=STEP; TR0=1; } else { mod=DC; if(P1_3==LEFT) {

dc_a_last_fx=LEFT; } else {

dc_a_last_fx=RIGHT; }

if(P1_2==LEFT) {

23

激光制导

dc_b_last_fx=LEFT; } else {

dc_b_last_fx=RIGHT; } }

经过模式选择之后控制程序进入主程序,若为步进电机工作模式则还需设定定时

/计数器(T0)工作模式为计自动重装定时时模式,定时器的初值设定为TH0=0 、TL0=0即每256个机器周期中断一次,当然如果没256个机器周期就发一个步进脉冲一般的步进电机是无法在如此高的步进频率下工作的。这就需要在T0的中断服务程序中再设一个二级计数器来降低步进频率,并且通过调节计数比较值就可以改变步进频率,也就改变了步进电机的转速。由于所用的步进电机是四相式的,需要使A、B、C、D四相线圈轮流导通,若要改变电机的转向则只需使线圈的导通顺序相反即可。这些工作都在T0的中断服务程序中进行。其程序代码如下:

T0中断服务子程序

void time0() interrupt 1 using 0 {

step_motor_count++;//步进电机T0中断次数计数 if(P3_0==1) {

if(step_motor_count>=step_motor_speed)//判断计数是否满 {

if(P1_num<=2)

{

P1_num++; } else {

P1_num=0; }

if(P3_1==LEFT) {

P1=c[P1_num];

step_motor_count=0;//计数值清零 } else {

P1=c[3-P1_num];

step_motor_count=0;//计数值清零

24

激光制导

} } else { ; } } else {

P1=0xfc;//步进电机停止转动 IE0=0; EX0=1;

step_motor_count=0; } }

若工作模式为直流电机模式,则控制程序就相对简单。只需在主程序中判断

P3.4(电机A刹车控制)、P3.5(电机B刹车控制)、P1.3(电机A方向控制)、P1.2(电机B方向控制)的状态即可改变两路电机转向。而外部PWM则直接输入L298N的ENA和ENB就可以控制电机的转速。值得注意的是虽然L298N的ENA和ENB引脚为低电平时电机即断电,但这不等于电机“刹车”,因为此时电机的电源输入端是开路的,电机由于惯性还会转动一段时间,由于电机线圈是开路的,线圈产生的自感电动势无法通过回路产生阻尼电流,所以电机是不会马上停下来的。这样以来刹车就显得尤其重要了,这方面需要在控制程序中处理即:在ENA和ENB为高电平的情况下是L298N的OUT1、OUT2和OUT3、OUT4同时为高或同时为低。这样以来电机线圈就可以在外部形成通路产生阻尼,电机很快就会停下来。

另外在直流电机工作模式下还有一点值得非常注意。由于直流电机在断电的瞬间线圈电流不会立即减小为零,会在外部形成很高的反向电动势,此时如果突然切换电机的转向,电源电压和电机自感产生的电动势是起相互加强作用的,外界电动势会非常的高,此时很容易将外部器件击穿。防止出现这种情况的有效方法是在电机转向切换时在转向之前先刹车,然后再转向,由于刹车后电机线圈不存在自感电动势,也就不会出现上述危险。这方面的处理同样需要在程序中处理。 直流电机的控制主程序如下:

void dc_mod() {

if(I_over==0) {

25

激光制导

if(P3_4==1) {

if(P1_3==LEFT) {

if(dc_a_last_fx==RIGHT) {

P1=P1&0x3f; delay(250); } else { ; }

dc_a_last_fx=LEFT; dc_a_turn_left(); } else {

if(dc_a_last_fx==LEFT) {

P1=P1&0x3f; delay(250); } else { ; }

dc_a_last_fx=RIGHT; dc_a_turn_right(); } } else {

P1=P1&0x3f; delay(300); }

if(P3_5==1) {

if(P1_2==LEFT) {

if(dc_b_last_fx==RIGHT) {

P1=P1&0xcf; delay(250);

26

激光制导

} else { ; }

dc_b_last_fx=LEFT; dc_b_turn_left(); } else {

if(dc_b_last_fx==LEFT) {

P1=P1&0xcf; delay(250); } else { ; }

dc_b_last_fx=RIGHT; dc_b_turn_right(); } } else {

P1=P1&0xcf; delay(300); } } else { P1=0xfc; } }

无论在步进电机模式还是直流电机模式下都有一个至关重要的问题,这就是过流

保护的问题,也就是防止流过电机和驱动芯片的电流过大。这一点需要外部电路和程序共同完成,外部电路探测到电流超过设定值之后会引发单片机的INT1产生中断,在INT1的中断服务程序中关步进电机或直流电机。这样就起到了保护驱动芯片和电机的作用。

电机控制程序的控制流程图如图3-9所示

27

激光制导

初始化设置 工作模式选择 步进电机控制 直流电机控制 Y 是否需要过流保护 N 是否需要过流保护 N Y 关直流电机 关步进电机 等待定时中断 电机是否要转向 Y 刹车 继续保持 N 延时1秒 延时1秒 电机转向

图3-9 电机控制程序的控制流程图

3.4 键盘与显示模块

为了能够在探测到目标的同时能够显示出来,我又设计了一块键盘显示电路板,通过它既可以探测定位目标并把数据发送给主控处理器又可以通过八个数码管实时显示目标的二维坐标。其电路原理图如图3-10所示。

其主控制器是一个AT89S52单片机,单片机的P0口提供数码管的显示数据,由

于所采用的数码管是共阳极的,当P0口的某一位为低电平时对应的显示位段亮。八个数码管的亮灭有P2口控制,P2口的每一位都控制一个PNP三极管(S9012)的通断(低电平导通),显示的时候采用了扫描显示的方式,由于人眼的视觉暂留效应当扫描速度很快时看起来便是连续的。单片机的P1口的高4位与低4位组成键盘扫描矩阵,

28

2Crst1=value20uFRST121P2.4=Value2KLEDcom5LEDcom6LEDcom7DP1LED0P1.4P1.5P1.6P1.7=Value2K=Value2K=Value2KRds5Q5PNPP2.5P2.6P2.7Q6PNPQ7PNPRds6Rds7Rds8Dp3Diode 1N4002LS1CP1=value50uFCP4=value103RP1=value1002

345678UC51VCCDS1KKR1=Value200P0.0R2=Value200P0.1R3=Value200P0.2R4=Value200P0.3R5=Value200P0.4R6=Value200P0.5R7=Value200P0.6R8=Value200P0.7DKKKKKK3LEDcom48abcdefgdpDS2DS3DS41918XTAL1XTAL2VCCRupVCC40YXTALP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7Header 9Dpy Blue-CCDpy Blue-CCDpy Blue-CCDpy Blue-CC3P90.03P80.13P70.23P60.33P50.43P40.53P30.63P20.7abcdefgDPabcdefgDPabcdefgDPabcdefgDPVCCRST93129ALE30RSTEA/VPPPSENALEQ1CSRds1=Value2KLEDcom1DS5KKVCCCS5Q5CSKKKKKK3LEDcom88Header 3VCCDS6DS7DS8LEDcom2LEDcom3LEDcom4Q1CS123Q1PNPP2.1=Value2K=Value2K=Value2KVCCCS1VCCP2.2P2.3Q2CSQ2PNPQ3PNPQ4PNPRds2Rds3Rds4Q2CSQ3CSQ4CS987654321a7b6c4d2e1f9g10dp53LEDcoam178b6c4d2e1f9g10dp53LEDcoam278b6c4d2e1f9g10dp53LEDcoam378b6c4d2e1f9g10dp5P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7P2.0CS2123Header 3CS6Q6CSVCCVCCQ3CS1P1.02P1.13P1.24P1.35P1.46P1.57P1.68P1.7CS3123Header 3CS7Q7CSVCCVCCCS4Q4CS123Header 3CS8Q8CSRXD10TXD11INT012INT113T014T115WR16RD17P3.0/RxDP3.1/TxDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD20VSS89C51P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15a7b6c4d2e1f9g10dp5123Header 3abcdefgDPDpy Blue-CCVCCOUTQ5CSQ6CSQ7CSQ8CSCP3=value30uF3CDpy Blue-CCDpy Blue-CCDpy Blue-CCabcdefgDPabcdefgDPabcdefgDP3LEDcoam578b6c4d2e1f9g10dp53LEDcoam678b6c4d2e1f9g10dp53LEDcoam778b6c4d2e1f9g10dp52P12.02P22.12P32.22P42.32P52.42P62.52P72.62P82.7123Header 3123Header 3123Header 3Q8PNPLEDcom8P1.0SW1SW-PBP1.1SW-PBSW-PBSW2SW3SW4SW-PBSW5SW-PBP1.2SW-PBSW6SW7SW-PBSW8SW-PBBSW9SW-PBP0.3SW10SW-PBSW11SW-PBSW12SW-PBSW13SW-PBSW14SW-PBSW15SW-PBSW16SW-PBATitleSizeA3Date:File:345622-May-2007Sheet of D:\\protel files\\机器人开发模块\\机器人开发D模raw块n. dBdyb:78NumberRevision12VCCCXTAL1=value30pFSWRSTCXTAL2DSW-PBRRST=value4.7K=value30pFP3P2P1P012345678RXDTXDINT0INT1T0T1WRRD12345678P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7Header 8Header 8Header 8Header 8Dp2U7805CPOWER1INDiode 1N4002GND键盘显示电路板PCB如图3-11所示

JPOWERCP2=value1037805Header 2激光制导

P3口通过插针引出,可以与外部通信和引入外部中断等控制信号。 可以形成16个按键,并且P1口通过插针引出可以将键盘引出方便控制。单片机的

图3-10 键盘显示原理图 29

SpeakerPVCCVCCJPOWER212POWERHeader 2123Header 3BA 12激光制导

图3-11键盘显示电路板PCB

3.5 红外线探测模块

由于在小车跟踪目标的过程中不可避免地会遇到障碍物,为了避免与障碍物相撞在小车上加上适当的避障传感器是必不可少的。常用的障碍物探测方式有红外线与超声波两种方式。由于我们的专业是光电方向,对红外线有较深刻的研究,因此我选择了红外线探测障碍物。

该模块主要是由红外线发射电路和红外线接收电路组成。外界控制脉冲通过TX(红外发射引脚)引脚控制红外线的发射,外界控制脉冲输入三极管的基极控制红外发光二极管的导通与否,红外发光二极管发出经过调制的红外线光脉冲。前方若有障碍物,便会有红外光反射回来,反射回的红外线会激发红外接收二极管,使红外接收二极管的反向电阻下降,从而使其输出端产生压降,反射回的调制的红外线光脉冲会产生同频率的接受信号,该信号经运放放大之后经过电压比较之后产生输出信号。其电路原理图如图3-12所示。

30

激光制导 2K470100K10K1K+5V开关量输出0.012M2M10K4.7K10K1K27K10K1K123654GND注意: 当需要单片机来调整灵敏度时所用的端口要具备三态功能灵敏度控制1灵敏度控制2灵敏度控制3红外线发射红外线传感器图3-12 红外线探测模块原理图 3.6 主控制板的设计 主控制板是一块通用的51单片机控制板,而不是一块专用电路。这样能够充分扩大电路的应用范围。为了使设计的主控制板尽量能够通用,单片机的四个通用I/O口都通过插针引出。 P0口是一个地址与数据公用的8为I/O口,在外部扩展总线时需要所存地址数据,因此P0口与一个74LS373相连,在地址锁存信号ALE的下降沿将低8位地址数据锁存入74LS373。 为了能够方便的控制外设,控制板上还加了一个74LS138做外设选通控制信号,2P2.4-P2.7 作为138的译码输入端,这样在程序中通过一条“MOVX”34指令就可以对外设进行读或写[14]。

单片机内部集成了一个全双工UART,但大部分UART串行通信需要满足RS232电平,还需在外部加一个MAX232电平转换芯片。

主控制板的整体原理图如图3-13所示。

31

=value30pFCXTAL2YXTAL1918XTAL1XTAL2Crst1=value20uFRST=value30pFVCCRST93129ALE3010GND74LS373RSTEA/VPPPSENALEHeader 8Header 8SWINT0INT0SW-PBSWINT1U138P2.4P2.5P2.6ABC123JCSINT1SW-PBSWT0T0SW-PBSWT120T1SW-PBJP138CS321138CSHeader 3VCC89C5174LS138VSSP2.7E1E2E3138CS456P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.71P1.02P1.13P1.24P0.35P1.46P1.57P1.68P1.7SW-PB1SWRST2217805Dp3Diode 1N4002LS1CP1=value50uF2

234U373UC51CXTAL1VCCA0-7Q1Q2Q3Q4Q5Q6Q7Q82A05A16A29A31A241A551A661A971234567812345678P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7123456789Header 9A8-15P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD739P0.038P0.137P0.236P0.335P0.434P0.533P0.632P0.7D1D2D3D4D5D6D7D8347813141718VCCVCCRupOELEVCC4011A1LEVCC20DCVCCU232VCCVS+VS-Header 8104TXD1110R1IN13815T1INT2INR1INR2INGNDMAX232BRS232U78051INGNDCP2=value103RP1=value100CP3=value30uFCP4=value103OUT3VCCT1OUTT2OUTR1OUTR2OUT16C1+C1-C2+C2-Cmax226Cmax11041T41OUT71041R2XD9RXD10TXD11INT012INT113T014T115WR16RD17P3.0/RxDP3.1/TxDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1521P2.022P2.123P2.224P2.325P2.426P2.527P2.628P2.7Y0Y1Y2Y3Y4Y5Y6Y71234567815141312111097CS0CS1CS2CS3CS4CS5CS6CS7Cmax413Cmax5104451DVCCRRST=value4.7KP0P1C12345678P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.712345678P1.0P1.1P1.2P0.3P1.4P1.5P1.6P1.7Header 8Header 8激光制导

P2P3Cmax3104图3-13主控制板原理图

DP1LED0TitleSizeA4Date:File:2332

12345678P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.712345678RXDTXDINT0INT1T0T1WRRDBHeader 8Header 8Dp2POWER1110Diode 1N4002JPOWER16R1IN27T1OU3T8495Header 2D Connector 9POWERSpeakerAPVCCVCCJPOWER212POWERNumberRevisionAHeader 2123Header 330-May-2007Sheet of D:\\protel files\\机器人开发模块\\机器人开发D模raw块n. dBdyb:41 激光制导

主控制板的PCB如图3-14所示。

图3-14主控制板PCB图

3.6 被引导小车的设计

由于小车上要承载五快电路板,两个大功率直流电机,一个步进电机以及定位摄像头等,所以小车不能太小,我选择的小车的长为50cm,宽为28cm。

在小车探测目标时需要在原地旋转,所以小车的转弯控制需要特殊的设计,一般

的小车包括公路的真实汽车绝大部分都是控制前轮的转动来实现转弯,两个后轮只作动力驱动。我所采用的小车的转弯是通过让小车的两个后轮反向转动来实现的,也就是说两个后轮分别各由一个直流电机驱动,而两个前轮则是两个万向轮。

为了减小摩擦使小车后轮转动平稳,小车的两个后轮转动轴上各装有两个轴承。

经过测试转动性能基本能满足功能要求。

直流电机与后轮之间的传动采用了皮带传动,车轮传动滑轮的直径为11cm,直流

电机的齿轮的直径为1cm,减速比为:11:1,经过测试电机能够平稳的驱动车轮转动。

33

激光制导

由于小车还需要装激光探测摄像头,小车的前半部分留有充足的空间安装摄像头

支架,小车摄像头支架安装在距车头9.5cm的部位,长12cm、宽7.6cm高25.2 cm(能够扩大视野探测目标),在支架中间留有安装摄像头的空间。

激光目标信息的水平方向的探测通过让小车原地旋转来实现,而垂直方向的探测

则需要使摄像头做上下的旋转,因此也需要一个电机来驱动。我选择了一个步进电机来驱动,传动也是通过皮带。步进电机装在小车的最前方通过皮带与摄像头转动轴上的滑轮相连。由于摄像头不能无限制的旋转,摄像头的旋转轴上还装有位置传感器,不过位置传感器不是什么器件,只不过是两个探针,摄像头的金属旋转轴是接地的,当转轴上的金属叶片接触到探针时,由于探针与单片机的I/O引脚相连平时为高电平,此时便会拉低,这样就起到了转轴位置探测的作用。

小车的后半部分的面积比较大,是为安装各个控制电路板所留的。在控制电路板

的下层是安放电池的位置。供电电池是一块2.2AH的铅酸蓄电池。

此小车由我与马玉光同学共同合作设计完成。 小车的整体构造示意图如图3-15所示。

34

激光制导

红外线探测模块 万向轮 CCD摄像头 激光定位模块 步进电机驱动板 主控制板 定位信息提取模块 直流电机驱动板 图3-15小车整体构造示意图 35

激光制导

3.7 各功能模块的综合

在以上氦氖激光器、激光定位与目标捕捉器、步进电机、直流电机、步进电机驱动板、直流电机驱动板、键盘显示电路板、主控制板与被引导小车都具备的情况下就可以综合各功能模块进行半自主式激光制导的模拟了。

以上各功能模块统一由一个AT89S52进行控制,其控制示意图如图3-16所示。

目标 CCD 摄像头 垂直探 测步进 电机 目标探 测与定 位模块 主 左轮 直流 电机 左轮 直流 电机 驱动 控 制 器 AT89S52 右轮 直流 电机 驱动 右轮 直流 电机 编码盘 编码盘

图3-16 综合控制示意图

36

激光制导

主控制板控制其它所有模块,在系统上电之后,主控制器首先向目标探测模块发

出开始探测的命令并随后启动水平方向的扫描即小车原地旋转,当目标探测模块探测到目标时便会通过串口向主控制器发送二维坐标数据。主控制器收到数据之后首先分析水平方向坐标是否处于整幅图象的中心(170)附近,如果是则停止小车的旋转,否则继续旋转直到坐标处于于整幅图象的中心附近。水平方向的扫描完成之后主控制器启动垂直方向扫描即向目标探测模块发出开始探测的命令并同时启动步进电机使摄像头作垂直方向的转动,与此同时主控制器不断分析垂直方向的坐标数据,如果坐标处于垂直方向整幅图象的中心位置(70)附近则停止扫描。随后小车原地停止,准备跟踪目标。

紧接着主控制器向两个后轮驱动发出同方向前进的命令,此时小车开始跟踪目

标。在跟踪目标的同时,目标探测模块会一直探测目标的坐标并将数据发送个主控制器,主控制器根据目标二维坐标与小车前进轴线偏离的程度适时调整两个车轮的转速,从而保持始终向目标前进。

若前进的过程中目标丢失即目标不在摄像头的成像范围之内,则主控制器会使小

车原地停下,然后原地旋转探测水平方向目标的坐标,过后探测垂直方向的坐标。待目标重新进入视野之内后便重新开始跟踪。

以上过程循环进行便实现了激光半主动式指导的模拟。 主控制器控制程序见附录

主控制器控制流程图如图3-17所示

37

激光制导

初始化设置 (定时器、计数器工作模式,外部中断模式等) 向激光定位模块发送启动探测命令 启动垂直扫描步进电机与水平扫描直流电机 N 是否接受到定位数据? Y 锁定目标 提取定位二维坐标信息 开始目标追踪 Y 目标是否离开跟踪视野? N 继续跟踪目标 N 是否追踪到目标? Y 停止追踪并实时监视目标

图3-17 综合控制流程图

38

激光制导

结论与展望

本项目实验利用氦氖激光器作为导引信息源,以摄像头作为目标探测寻的器,利

用地面小车作为追踪主体,比较成功的实现了激光半主动式激光制导的模拟,得出了一些比较有价值的结果。

1.激光制导在实际实验条件不具备的条件下完全可一以地面小车作为载体进行

模拟,同样可以收到很好的实验效果。在本实验中地面小车可以实现在30米之内的自动制导。

2.利用模拟摄像头可以代替四象限探测器作为激光目标寻的器,且实际效果不

亚与四象限探测器。水平方向的分辨率可以达到300,垂直方向的分辨率可以达到120(与目标探测处理器的主频成正比)。完全可以满足一般的制导精度。 3.环境光对寻的器的干扰影响比较大,实验环境的周围环境光必须较暗,否则

会极大的影响制导的准确性,实验中经过测试电压比较器的比较电压不能低于1.60V,否则环境光会造成很大的干扰。

4.激光的亮度比较高,一方面容易对人眼造成伤害,另一方面也容易暴露目标,

在军事应用中容易受到敌方的攻击。

5.如果在照射目标的激光束加入编码,在激光寻的器中加入编码校对,会极大

的提高系统的抗干扰性能。

综合以上结论我得出:激光半主动式制导方式是一种比较先进的制导方法,具有其它制导方法所不具备的一些优点。

由于时间有限,本实验只进行到此,还有许多后续实验有待进行。比如: 1、照射目标的激光束加入编码,提高寻的器的抗干扰性能。 2、提高跟踪的精度。

3、防止跟踪过程中目标丢失。

4、提高安全性,改用对人眼无害的红外激光制导。 这些后续实验会在我以后的研究中继续进行。

39

激光制导

致 谢

本课题经过几个月的努力已基本完成,由于该课题比较前沿,操作起来相当复杂。在此过程中得到了许多老师、同学及有关单位的支持和帮助,在此我向他们表示感谢。

首先,感谢指导我毕业设计的任宇芬老师,从课题的设想与立项到实验的具体操作,她都费尽心血。该课题是当前高科技领域研究的热门方向,有许多技术难题还未解决,有许多方面我都理解得不够透彻,从理论到实践都得到了老师的耐心教导。

其次,感写我系领导,为我们提供了开放实验室以及各种元器件材料,使我们的实验得以顺利进行,特别要感谢郝军红老师,在实验室他给了我很多的指导。在此我向他们表示我最真诚的谢意!

再次,感谢计算机与通信工程学院的张尧老师,他为我开放了实验室,使一些在在我系无法进行的一些实验得以进行,在设计过程中帮助我解决了许多困难。

最后,感谢所有参与我毕业设计考核和答辩的老师们!

40

激光制导

参考文献

[1]江月松,《光电技术与实验》,北京理工大学出版社, 2000年9月 [2]蓝信钜,《激光技术》,科学出版社,2000年8月第一版

[3]江月松 李亮 钟宇,《光电信息技术基础》, 北京航空航天大学出版社 2005年12月第1版 [4]陈钰清 王静环,《激光原理》,浙江大学出版社

[5]何桥 段清明 邱春玲等,《单片机原理与应用》,中国铁道出版社 [6]康华光等,《电子技术基础》,高等教育出版社

[7]施德恒,激光半主动寻的制导导弹发展综述,红外技术,2000年9月,Vol.22,No.5 [8]魏伟波 火力与控制指挥 精确制导技术研究 2006年2月第31卷第2期

[9]谭千里,半导体光电,四象限探测器组件在激光制导技术中的应用,2005年4月第26卷第2期

[10]张合新 孙鹏 孟飞 激光在高精度制导武器中的应用,激光与红外,2004 年2 月 第34 卷 第1 期:7-8

[11]赵江 徐锦 徐世录,激光制导武器,飞航导弹,2006 年第6 期:26-30

[12]姜娜 何俊发,激光制导武器原理简介,战术导弹控制技术,2004年No.1( 总44期):62-63 [13]姚秀娟 彭晓乐 张永科,几种精确制导技术简述,激光与红外,2006年5月,第36卷第5期:338-340

[14]魏伟波 苟筱亭 精确制导技术研究,火力与指挥控制,2006年2月第31卷第2期:5-11

41

激光制导

附 录 主控制器控制程序

#include #include

#define dc_motor_speed_num 15 #define l_pwm P1_1 #define r_pwm P1_3 #define l_dc_fx P1_0 #define l_dc_start P2_0 #define r_dc_fx P1_2 #define r_dc_start P2_1 #define step_fx P1_4 #define step_pwm P1_5 #define get_xy_en P1_7 #define FRONT 1 #define BACK 0 #define RUN 1 #define STOP 0 #define UP 1 #define DOWN 0

#define DC_CHECK_SPEED 9 #define DC_GO_SPEED 8 #define STEP_CENTER_SPEED 60 #define CAMERA_UP P2_2 #define CAMERA_DOWN P2_3 #define HW_FRONT_L_TX P0_1 #define HW_FRONT_R_TX P0_0 #define HW_L_TX P0_3 #define HW_R_TX P0_2 #define HW_FRONT_L_RX P2_5 #define HW_FRONT_R_RX P2_4 #define HW_L_RX P2_7 #define HW_R_RX P2_6

void delay(register int a); void x_check(); void y_check(); void go();

42

激光制导

void follow_x(unsigned int y); void follow_y(unsigned int x);

unsigned

l_dc_motor_count,r_dc_motor_count,l_dc_motor_cmp,r_dc_motor_cmp,step_motor_count,hw_count; unsigned char i,a[5],no_data,l_dc_speed,r_dc_speed,step_speed; char

int center_check; unsigned int x,y;

bit ok,dc_motor_pwm_sign,step_start; main() {

l_dc_start=STOP; r_dc_start=STOP; step_start=STOP; dc_motor_pwm_sign=1; l_dc_speed=DC_CHECK_SPEED; r_dc_speed=DC_CHECK_SPEED; l_dc_motor_count=0; r_dc_motor_count=0; l_dc_motor_cmp=l_dc_speed; r_dc_motor_cmp=r_dc_speed; step_motor_count=0; hw_count=0;

IT0=1;//外部中断INT0触发方式为下降沿触发方式IT1=1;//外部中断INT1触发方式为下降沿触发方式TMOD=0X21;//设置定时器工作模式 TH0=0xfe; TL0=0;

TH1=0xFD;//设置波特率 TL1=0xFD; PCON=0X00;

SCON=0X50;//设置串口工作模式 ES=1; //允许串口中断 PS=1; ET0=1; TR0=1; TR1=1; EA=1; i=0;

ok=0;//数据接收完毕标志位无效

get_xy_en=0;//不允许目标探测模块发送数据

a[0]=0;//接送数据数组清零

43

激光制导

a[1]=0; a[2]=0; a[3]=0; a[4]=0;

while(1) {

step_start=STOP; l_dc_start=STOP; r_dc_start=STOP;

x_check();//水平方向上寻找目标 //y_check();//垂直方向上寻找目标 go();//目标跟踪

step_start=STOP;//目标丢失后关电机 l_dc_start=STOP; r_dc_start=STOP; delay(4); } }

/********T0中断服务子程序:直流电机PWM发送、步进电机步进脉冲发送和红外线探测脉冲发送********************/

void time0() interrupt 1 using 0 { TL0=0; TH0=0xfe;

l_dc_motor_count++;//直流电机T0中断次数计数 r_dc_motor_count++;

step_motor_count++;//步进电机T0中断次数计数 hw_count++;

if(dc_motor_pwm_sign==1)//判断是否允许发直流电机PWM {

if(l_dc_motor_cmp==l_dc_speed)//判断是否该轮到发高电平 {

if(l_dc_motor_count>=l_dc_motor_cmp)//判断是否该电平反转 {

l_dc_motor_count=0; //直流电机T0中断计数归零 l_pwm=0;//发低电平

l_dc_motor_cmp=dc_motor_speed_num-l_dc_speed;//该发低电平了 } else {

44

激光制导

l_pwm=1;//继续发高电平 } } else {

if(l_dc_motor_count>=l_dc_motor_cmp)//判断是否该电平反转 {

l_dc_motor_count=0;//直流电机T0计数归零 l_pwm=1;//发高电平

l_dc_motor_cmp=l_dc_speed;//该发高电平了 } else {

l_pwm=0;//继续发低电平 } }

if(r_dc_motor_cmp==r_dc_speed)//判断是否该轮到发高电平 {

if(r_dc_motor_count>=r_dc_motor_cmp)//判断是否该电平反转 {

r_dc_motor_count=0; //直流电机T0中断计数归零 r_pwm=0;//发低电平

r_dc_motor_cmp=dc_motor_speed_num-r_dc_speed;//该发低电平了 } else {

r_pwm=1;//继续发高电平 } } else {

if(r_dc_motor_count>=r_dc_motor_cmp)//判断是否该电平反转 {

r_dc_motor_count=0;//直流电机T0计数归零 r_pwm=1;//发高电平

r_dc_motor_cmp=r_dc_speed;//该发高电平了 } else {

r_pwm=0;//继续发低电平 } } }

45

激光制导

else {

dc_motor_pwm_sign=0;//直流电机PWM发送标志置零 }

if(hw_count>=3)//红外线脉冲发送 {

HW_FRONT_L_TX=!HW_FRONT_L_TX; HW_FRONT_R_TX=!HW_FRONT_R_TX; HW_L_TX=!HW_L_TX; HW_R_TX=!HW_R_TX; hw_count=0; }

if(step_start)//步进电机步进脉冲发送 {

if(step_motor_count>=step_speed) {

step_pwm=!step_pwm; step_motor_count=0; } } }

/**************串口中断服务子程序************/ void tx() interrupt 4 using 0 { if(RI) {

a[i]=SBUF; RI=0;

if(i==4)//如果一祯数据接收完毕则停止接收 { P1_7=0; i=0;

ok=1;//数据接收标志位有效 } else { i++; } } }

46

激光制导

/*****************水平方向目标探测函数**************/ void x_check() {

l_dc_speed=DC_CHECK_SPEED;//设定探测速度 r_dc_speed=DC_CHECK_SPEED+2;

l_dc_fx=FRONT; //左右轮转向相反 r_dc_fx=BACK; l_dc_start=RUN; r_dc_start=RUN; while(1) {

get_xy_en=1; //允许目标探测模块发送数据 if((l_dc_fx==FRONT)&&(r_dc_fx==BACK)) {

if(HW_R_RX) //如果右边有障碍物则转换方向 {

l_dc_start=STOP; r_dc_start=STOP; delay(2);

l_dc_speed=DC_CHECK_SPEED+3; r_dc_speed=DC_CHECK_SPEED; l_dc_fx=BACK; r_dc_fx=FRONT; l_dc_start=RUN; r_dc_start=RUN; } } else {

if(HW_L_RX) //如果左边有障碍物则转换方向 {

l_dc_start=STOP; r_dc_start=STOP; delay(2);

l_dc_speed=DC_CHECK_SPEED; r_dc_speed=DC_CHECK_SPEED+3; l_dc_fx=FRONT; r_dc_fx=BACK; l_dc_start=RUN; r_dc_start=RUN; } }

47

激光制导

if(HW_R_RX&&HW_L_RX)//如果左右两边都有障碍物则停止 {

l_dc_start=STOP; r_dc_start=STOP; } else {

l_dc_start=RUN; r_dc_start=RUN; }

if(ok) //如果数据接收完毕则判断数据 {

get_xy_en=0; ok=0;

y=a[2]*256+a[3];

if((y>=150)&&(y<=190))break;//如果目标处于小车水平方向中间位置则停止探测 } }

l_dc_start=STOP; r_dc_start=STOP; delay(2); }

/**************垂直方向上目标探测函数*******************/ /*void y_check() {

step_speed=STEP_CENTER_SPEED;//设定步进电机的探测速度 step_fx=UP; step_start=RUN; while(1) {

if(CAMERA_UP==0)//如果摄像头向上转到预定位置则反向 {

step_fx=DOWN; }

if(CAMERA_DOWN==0)//如果摄像头向下转到预定位置则反向 {

step_fx=UP; }

get_xy_en=1; //允许目标探测模块发送数据 if(ok) //如果数据接收完毕则判断 {

get_xy_en=0;

48

激光制导

ok=0;

x=a[0]*256+a[1];

if((x>=50)&&(x<=70))break;//如果目标处于小车垂直方向中间位置则停止探测 } }

step_start=STOP; }*/

/*****************目标跟踪函数******************/ void go() {

l_dc_speed=DC_GO_SPEED;//设置直流电机跟踪速度 r_dc_speed=DC_GO_SPEED; l_dc_fx=FRONT; r_dc_fx=FRONT; l_dc_start=RUN; r_dc_start=RUN;

step_speed=STEP_CENTER_SPEED;//设置步进电机跟踪速度 step_fx=UP; step_start=RUN; while(1) {

get_xy_en=1; //允许目标探测模块发送数据

if(ok) //如果数据接收完毕则进小车路线调整 {

get_xy_en=0; ok=0;

x=a[0]*256+a[1]; y=a[2]*256+a[3];

follow_x(y);//水平方向跟踪速度调整 follow_y(x);//垂直方向跟踪速度调整 if(a[4]==0xff) {

no_data=0; }

else//如果跟踪目标丢失则丢失次数计数器加1 {

no_data++; delay(30); } } else { }

49

激光制导

if(no_data>=5)//如果丢失次数大于等于5次则停止跟踪 {

no_data=0; break; } } }

/*************水平方向跟踪速度调整函数***************/ void follow_x(unsigned int y) {

if(HW_FRONT_L_RX||HW_FRONT_R_RX)//如果左前方或右前方有障碍物则停止跟踪 {

l_dc_start=STOP; r_dc_start=STOP; }

center_check=y-170;//计算在水平方向上的偏离程度 if(center_check>=0)//如果目标偏左这小车向左转 {

if(center_check>=100) {

l_dc_speed=DC_GO_SPEED+5; r_dc_speed=DC_GO_SPEED-5; }

else if(center_check>=80&¢er_check<100) {

l_dc_speed=DC_GO_SPEED+4; r_dc_speed=DC_GO_SPEED-4; }

else if(center_check>=60&¢er_check<80) {

l_dc_speed=DC_GO_SPEED+3; r_dc_speed=DC_GO_SPEED-3; }

else if(center_check>=40&¢er_check<60) {

l_dc_speed=DC_GO_SPEED+2; r_dc_speed=DC_GO_SPEED-2; }

else if(center_check>=20&¢er_check<40) {

l_dc_speed=DC_GO_SPEED+1; r_dc_speed=DC_GO_SPEED-1; }

50

本文来源:https://www.bwwdw.com/article/c0ko.html

Top