0 引言
微型飞机的飞行速度在其飞行过程中不仅是被控量,同时也是是对飞行姿态进行控制的重要参考数据之一,因此有必要对这个数据进行精确测量。特别是在近地飞行过程中,对飞行路径、避障能力、降落速度等要求更为严格,因此对飞行速度进行精确测量显得尤为重要。目前对微型飞机的飞行速度的测量一般有以下几种方法:
(1)基于惯性传感器的方法。通过对加速度积分来获得速度数据。但由于惯性传感器存在零点漂移,积分过程也存在误差,长时间使用会有很大的积累误差。因此,在使用的过程中必须使用其他测量方式对零点漂移和积分积累误差进行校正。
(2)基于GPS的方法。此类方法需要借助外部设备,一般都比较昂贵,并需另行安装其他定位参考点。因此在测量过程中,测量精度受定位方式限制,使用环境受限。
(3)基于空速计的方法。空速计一般使用在飞行速度较高的场合,易受气流影响,测量结果并非是飞机相对于地面的速度,而只是相对于大气的速度,因此后续处理过程复杂。
(4)基于光流法测速。这是一种直接测量微型飞机飞行速度的方式,测量精度高,不存在积累误差,而且不需要借助于外界的定位工具。但是光流法测速一般需要使用图像传感器、数字信号处理器等硬件设备,结构复杂。在高空环境下,光流法测量误差也较大。本文针对低空飞行环境,以集成了图像采集电路和数字信号处理器的ADNS2610为传感器,设计了结构简单,成本低,体积小,重量轻的微型飞机速度测量系统。为了简化设计,本文检测的是微型飞机在飞行高度不变时的水平飞行速度,因此本文设计的飞行速度检测方式只能是其他的飞行速度检测方式的一种补充。
1 系统原理和整体方案设计
该测速系统的工作原理是光流法。由于采用的传感器芯片ADNS2610集成了图像采集功能和数据处理功能,传感器的输出数据就是图像的位移量 Delta_X和Delta_Y,其中Delta_X是图像在X方向上的位移量,Delta_Y是图像在Y方向上的位移量。将位移量Delta_X和 Delta_Y除以位移时间T,就得到图像的移动速度:
式中:VX1是指图像在X方向上的移动速度;VY1是指图像在Y方向上的移动速度。将图像的移动速度乘以高度系数a,就可以得到微型飞机的移动速度,即:
式中:VX和VY分别指微型飞机在X方向上和Y方向上的飞行速度;a的值等于透镜和地表之间的距离H与透镜和感光面之间的距离h之比,即a=H/h,高度H通过超声波测距的方式测量得到,其测量精度会对VX和VY的计算精度产生影响。
系统主要包括硬件电路部分、用于支持图像采集的透镜系统以及软件部分。硬件电路部分主要是支持传感器的系统电路以及与传感器进行通信的接口。透镜系统部分主要用来使光学传感器获得需要的图像数据。软件部分主要用来获取位移信号和计算微型机飞机的飞行速度。
2 硬件电路设计
2.1 芯片介绍
本文采用的传感器芯片ADNS2610主要用于光电鼠标。它集成了图像传感器和数字信号处理器,以及输入输出数据的串行接口,可以直接输出X和 Y方向上的位移量。这种传感器采用光学导航技术,通过检测到的图像的移动变化来计算得到传感器的移动方向和距离。如图1所示,芯片主要包括串口、振荡器、图像处理器、电源管理、LED控制等模块。把图像传感器和数字信号处理器结合起来是本传感器的一大特色,使得结构大大简化。集成度更高,也更加紧凑。
ADNS2610的主要特征如下:
(1)精确的光学导航技术;
(2)小巧紧凑的结构(10 mm×12.5 mm的引脚);
(3)二维运动量的检测;
(4)简单通用的控制器接口;
(5)高达12 inch/s的运动检测;
(6)400 cpi的解析度;
(7)高可靠性;
(8)高速运动传感器;
(9)串口寄存器。
2.2 电路设计
图2是该系统的硬件电路结构框图。微型飞机的飞行控制系统的主控芯片为MSP430F449。
整个系统的硬件电路如图3所示。其中SDIO是串口数据输入/输出端口;SCK是串口的时钟端口。时钟信号由主控制器MSP430F449发出。当向SDIO端口写入读/写地址以后,数据就通过这个端口写入或读出。ADNS-2610的输出电压为5 V,而MSP430的I/O端口输入高电平最高为3.6V,因此要对ADNS-2610的SDIO输出电平降压,使之符合MSP430对输入电平的要求。如图3所示,通过外接分压电阻的方式降低ADNS-2610的SDIO端口的电压。ADNS-2610的SCK端口只接收时钟信号。ADNS-2610接收的高电平信号电压范围是2~5 V,而MSP430输出的高电平信号为3V,符合ADNS对高电平的要求,因此不用考虑电平的调整。
3 透镜系统设计
透镜焦距的选择对于整个系统的设计至关重要,因为它决定了微型飞机在使用本测速系统时的高度范围。微型飞机使用光流法测速的场合主要是在近地飞行过程中,因此选用的透镜系统的物距应该适合近地飞行时使用。为了节约成本,选用了电脑上常用的一种摄像头上的透镜系统,其焦距为4mm,其物距范围为几厘米到几米,完全能满足要求。该系统透镜与ADNS2610的感光面的距离是可以连续调节的,这样就可以方便地调节成像的清晰度。
在实际使用过程中,透镜与感光面的距离一旦确定就不再改变。这样虽然随着飞机高度的变化,成像清晰度可能会有所改变,但是只要在限定的高度范围内,成像的清晰度是能够保证的,因此不影响测速,并且还能够简化计算过程。
因为图像的最大移动速度为12inch/s以及透镜焦距为4mm,可以推导出测速时微型飞机的最大相对于地面飞行角速度为76.2 rad/s。
4 软件设计
测速软件包括主控芯片的初始化、位移量的读取、速度的计算这几个模块。系统的初始化主要针对控制芯片MSP430F449的相应控制引脚而言,包括设置I/O端口、输出频率、存储区间等。根据ADNS2610的数据手册,在读数据的过程中,在发送完最后一个地址位后,微控制器的SDIO端口必须进入高阻态。这里把MSP430的相应引脚设置为输入状态,可以满足对微控制器的高阻态要求。程序软件设计的总流程图如图4所示。
读数据的过程由微控制器来驱动,时序如图5所示。
每条读数据命令包含2个字节,第1个字节代表地址,最高位为O。在数据传输过程中,SDl0的数据在时钟下降沿被设置,在时钟上升沿被接收。在向ADNS2610传输数据的过程中,时钟脉冲和数据的变化之间有一定的时序关系,如图6所示。在地址位传输结束后,微控制器的SDIO端口必须被设置为高阻态,并且串口的时钟必须要有不小于100μs的延迟,如图7所示(图5中的detail“A”)。最后一个数据位传输结束以后,ADNS2610会进入高阻态,这时SCK和SDIO之间的时序关系如图8所示(图5中的detail“B”)。根据时序要求可以看出,如果以读取X和Y方向上移动量各1次为 1个周期T,那么周期T大于200μs。
向ADNS2610写数据的时序图如图9所示,也是先传送地址位再传送数据位。其中地址位的最高位为1。SCK和SDIO的信号脉冲时序要求如图6所示。需要注意的是,写数据结束以后,必须延时100μs以上才能够进行下一次读或者写操作。
以X轴为例给出速度的计算过程。传感器的分辨率为400 cpi,所以Delta_X的单位为O.0025inch。如果周期T的单位为s,则:
Y轴的速度计算过程和X轴相同。
图像的解析度是400 counts/inch,图像的最大移动速度是12inch/s,因此最大的计数速度是4800counts/s。Delta_X和Delta_y的绝对值最大为127,因此最大的读数周期为0.0265s。
5 调试
调试主要包括硬件调试、软件调试、透镜系统调试3个部分。硬件调试主要考虑硬件之间的连接。为了降低信号线的电感特性,缩短阶跃响应时间,引线 SCK和SDIO要尽可能短,并且中间连接的电阻尽量考虑使用贴片电阻。另外MSP430和ADNS要共地,这样它们的高低电平之间才有共同的基准。软件调试分为3个步骤:时序验证、图像读取、读取周期验证。
时序验证是通过示波器来验证SCK信号和SDIO信号的时序,以及地址和数据是否正确。可以通过实现点亮LED灯等功能来验证发送和接收软件的正确性。实验结果证明向ADNS写数据的程序是符合要求的。接下来的调试步骤就是读取图像,以验证读数据程序的正确性,并为调焦做准备。为了方便调试,直接采用光电鼠标的透镜系统和支撑结构。图10是读取到的图像和原始图像的对比,其中图10(a)是利用传感器拍摄的图像,图10(b)是对原始图像扫描后的结果,扫描分辨率是2 400 dpi。使用的透镜像距和物距之比是1:1,因此拍摄的图像和原图的大小也是1:1。传感器的分辨率是400 cpi,图像分辨率是18×18像素,因此图像的大小是(18/400)inch×(18/400)inch,即1.143 mm×1.1 43 mm。
传感器图像的灰度等级成64个等级,0是全黑,63是全白。传感器内置了自动增益电路调整快门值。使得最亮的部分的灰度值在55左右。软件调试的第三步是验证实际读取周期。读取Delta_X和Delta_Y各1次为1个周期,通过示波器来读取这个周期值。
透镜系统的调试主要是调整透镜的中心和传感器感光面之间的距离,以达到系统在几厘米到几米的高度上成像清晰。图11显示了透镜系统调试完成后拍摄的图片和拍摄用的原图,其中图11(a)像距未调好时拍摄的图片,图11(b)是像距调整后传感器拍摄的图片,图11(c)是拍摄用的原图的扫描件,原图在扫描时配上标尺以表明原图的尺寸。
根据地面上实际图形的大小和镜头与地丽的距离,可以计算出传感器感光面与透镜中心的距离,根据此距离,就可以计算出a,再根据前面的公式可以计算出微型机的飞行速度。
6 结语
本文所设计的检测系统,采用集成式传感器芯片,降低了微型飞机检测系统的设计成本,减轻微型机飞行重量。调试结果表明,该检测系统在微型机近地飞行时,能够实现对微型飞机的水平飞行速度测量,从而可提高微型机的飞行稳定性,并为微型飞机实现自主控制打下基础。当然该系统的使用也有一定的限制条件。它的数据读取周期大于200μs,因此实时性较差。另外它的使用高度也是一个限制,当微型机的飞行高度越高时,系统的分辨率也就会相应降低。因此只能作为其他测速方式的一种补充,主要是在微型飞机近地飞行和降落时发挥最大作用。