摘要:介绍了ADI公司的三轴惯性测量传感器ADISl6355的功能、结构和特点。基于STM32F103VB单片机设计了硬件电路,对该传感器数据进行采集,并利用无线数据传输模块把数据发送回计算机。使用该电路对四轴飞行器姿态进行检测,根据实验数据,利用两种不同的方法实现了飞行器姿态的估计。
关键词:ADISl6355;四轴飞行器;姿态检测
引言
四轴飞行器是一种具有4个对称旋翼的直升机,具有垂直起降、结构简单、操纵方便、机动灵活等优点。随着传感器技术和控制理论的不断发展,尤其是微电子和微机械技术的逐步成熟,使四轴飞行器的自主飞行控制得以实现。姿态控制是四轴飞行器飞行控制系统的基础,而姿态的检测是姿态控制的关键,姿态检测的精确程度直接决定了姿态控制的效果。ADI公司的三轴惯性测量传感器ADISl6355是一个由三轴陀螺和三轴加速度计组成的惯性感应系统。它能够准确地检测运动物体绕三个轴向的角速度和线加速度,在导航与控制、平台稳定、运动控制、图像稳定、机器人等领域有着广泛的应用。本文利用ST公司的STM32F103VB单片机对ADISl6355的数据进行采集,通过无线数据传输模块把传感器数据发送回计算机,并对四轴飞行器的姿态进行了估计与分析。
1 惯性测量传感器ADISl6355
ADISl6355是ADI公司推出的一款具有-40~85℃温度范围内校准、SPI接口输出的六自由度惯性测量传感器,出厂前已经对产品的零偏和灵敏度进行了全温校准。ADISl6355具有三轴陀螺和三轴加速度计。三轴陀螺和加速度计具有14位分辨率,陀螺的测量范围可配置为±75°/s、±150°/s、±300°/s,加速度计的测量范围为±10g,传感器带宽达350 Hz。ADISl6355的输出零偏稳定性为0.015°/s,温度系数为0.008(°/s)/℃,角度随机游走为4.2°/s,适于精度要求较高的应用。ADISl6355的结构框图如图1所示。传感器内部完成了信号的采集、校准与滤波处理,具有自检功能,还有1路ADC输入、1路DAC输出和2路数字I/O。SPI接口能够输出3个角速率信号、3个线加速度计信号、3个温度传感器信号和电源电压信号。
[pagebreak]
2 应用电路设计
ST公司的32位STM32系列微控制器是专门为微控制系统、工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域而设计的。ST-M32F103VB是一款基于ARMv7-M体系结构的32位标准处理器,工作频率高达72 MHz,具有3个通用定时器、1个高级控制定时器、7个独立的DMA通道、1个USB接口、3个USART接口、2个SPI接口和2个I2C接口。STM32F103VB的外围电路仅需要外部晶振和少数电容,内部自带的USB接口便于调试和下载。
2.1 ADlSl6355接口电路
ADISl6355与STM32F103VB通过标准SPI接口进行连接,其硬件接口电路如图2所示。ADIS16355的SCLK、DOUT、DIN、CS、RST脚分别与ST-M32F103VB的SPll~SCK、SPll_MISO、SPll_MOSI、SPll_NSS、PB0脚连接。ADISl6355的VCC脚经0.1μF的电容接地,用于滤除干扰。
STM32F103VB的SPI接口配置为全双工主模式,每帧传输16位数据,每帧先发送MSB。时钟极性配置为空闲状态时,SCK保持高电平;时钟相位配置为数据采样从第二个时钟边沿开始。通信的波特率配置为64分频,为1.125 MHz。为提高SPI的速度,降低CPU资源的使用率,采用了SPI的DMA模式,SPI接收到的数据直接存储在定义好的数组里。STM32F103VB的SPI接口配置程序如下:
2.2 无线数据传输模块及其接口
无线数据传输模块使用的是nRF2401芯片,它工作于2.4GHz ISM频段,输出功率和通信频道可通过程序进行配置。该模块功耗非常低,以-5 dBm的功率发射时工作电流只有10.5 mA,接收时工作电流只有18 mA。实际使用时其无线传输距离可达30 m,最大传输速率可达1000 kbps。单片机和无线数据传输模块的连接使用普通的I/O口,其电路设计如图3所示。无线数据传输数模块的DATA为双向引脚,与其相连接的PEll引脚应配置为输入模式。
[pagebreak]
2.3 电源模块
电源模块主要为STM32F103VB、ADISl6355和无线数据传输模块供电,其电路设计如图4所示。锂电池提供的11.1 V电源经ASMlll7-5.O转换为5 V,再经过ASMlll7-3.3转换为3.3 V。其中,5 V为ADISl6355提供电源,3.3 V为STM32F103VB和无线数据传输模块提供电源。Dl是用于电源指示的LED,Rl为O.5 A可恢复保险。
3 四轴飞行器姿态估计
四轴飞行器的姿态主要指它在地面坐标系中的3个姿态角,即俯仰角、横滚角和偏航角。其中,俯仰角和横滚角可以通过对陀螺的角速度积分得到,也可通过3个轴向的加速度推算出来,但偏航角只能对角速度积分得到。由于在四轴飞行器测试平台上检测姿态,对偏航角先不做要求。根据参考文献,四轴飞行器的姿态控制系统模型中3个轴向的加速度可表示为:
其中,u、v、w为机体坐标系下3个轴向的线速度,p、q、r为机体坐标系下绕3个轴的角速度,θ、φ为四轴飞行器的俯仰角和横滚角,U1为总的升力,m为飞行器的质量。在试验平台上检测时,四轴飞行器的位置固定不变,上式可简写成:
其中,为加速度计测得的加速度,通过式(2)可推算得到俯仰角和横滚角如下:
配置陀螺的测量范围为±300°/s,1 min内测得的ADISl6355三个轴的角速度、加速度和温度曲线如图5所示。在约19 s时使飞行器绕x轴进行滚转运动,在约45 s时使飞行器恢复到刚开始的静止状态。由图5可知,静止时角速度的输出范围为±2°/s,x、y轴加速度计的输出范围为±O.015 g,温度由26℃到30℃逐步上升。若把陀螺的测量范围配置为±75°/s,静止时的角速度输出范围为±l°/s,但很容易超出±75°/s的范围,因此±75°/s的测量范围不适用于四轴飞行器姿态检测。
对角速度进行积分得到飞行器的三个姿态角,如图6所示。通过式(3)由加速度信息推算的两个角度如图7所示。对比图6和图7可知,由角速度积分得到的角度最终不是静止时的0°。原因是陀螺存在漂移,随着时间的积累,测量的误差会在积分中一直累加,而由加速度信息推算出来的角度就不存在漂移。图7中约第24 s时,y轴角度出现一个峰值(高达70°),而实际的旋转角度只在±30°之间,其原因是振动引起加速度值突增,导致推算出的角度过大。
结语
实际使用中,加速度计对振动非常敏感,应根据应用的场合对加速度数据进行处理。四轴飞行器具有4个无刷电机,实际飞行时电机引起的振动非常大,如果简单地通过加速度来推算角度就会出现很多图7中第24 s的尖点,与实际情况不符合。可以通过对加速度进行均值滤波得到改善。对陀螺角速度的积分可利用加速度推算出的角度值进行修正。
本文使用STM32F103VB单片机对惯性测量传感器ADISl6355进行数据采集,并通过无线数据传输模块把数据发送回计算机。利用ADISl6355对四轴飞行器姿态进行检测,可分别利用角速度信息和加速度信息对飞行器姿态进行估计,两种方法各有优缺点,在实际使用时要综合进行考虑。