加速度计姿态与运动检测
加速度传感器可以用来检测物体的加速度,这个加速度包括了物体本身运动的加速度以及由于重力产生的加速度,前者主要用于检测物体的运动,而后者主要用于检测物体的姿态。
本篇中我们会介绍如何通过加速度计内部集成的功能实现更理想的超低功耗电池供电设备的姿态与运动检测,以便能更好的平衡性能与耗电这个电池供电设备的重要需求。
软的还是硬的,电池供电物联网设备设计初始的抉择
典型的电池供电的物联网设备一般包含了感知单元(各种传感器),边缘计算单元(微控制器),无线连接单元(蓝牙BLE,NBIOT,LPWLAN等)以及相应的人机界面和电源管理部分,电池视使用场景需要工作十年或者数天,传感器本身的超低功耗以及数据处理的超低功耗有助于延长电池寿命,减少带宽用量并因此降低成本,是智能物联网设备方案设计中的重要考量。
图1. 典型物联网系统框图
电池供电的物联网产品,部分采用不可充电的纽扣电池,而部分需要更强运算功能的需要采用可充电锂电池,在有限的电池资源下如何延长电池寿命,对于传感器部分,常用的方式通常有两种:
● 采用超低功耗的微处理器,通过利用传感器本身自带的FIFO功能,减少微处理器周期唤醒的次数和唤醒时间。
● 利用传感器本身的搭载的低功耗边缘计算功能,最大限度的降低微处理器的功耗。
图2. 常用电池电压和容量
以上两种方式取决于系统的需求,得益于微处理器能耗比的提高特别是近年来亚阈值电压(低于0.5V)微处理器的推广以及传感器Always on需求下的大容量FIFO的普及,纯软件的方式,可以在保证低功耗的情况下灵活处理数据应对需求的变化和算法的改进。而针对特定需求在传感器内部采用硬件实现的功能,比如静止检测、运动检测、屏幕翻转、失重、位置识别、单双击,计步,抬手亮屏,睡眠监测等等,用户只需简单配置算法对应的寄存器即可开始检测,一旦检测到目标事件,传感器通过中断管脚唤醒微处理器进行相应的处理,这种方式可以用户无需自行开发验证算法,可以更简便的使用传感器实现相应的功能,并能获得更低的功耗。
下图解释了微处理器配合加速度计的32级FIFO进行双击检测和微处理器配合硬件双击检测的加速度计的工作时序,由于加速度计硬件实现双击检测,微处理器只需要在获得加速度计中断后很短的时间确认,而无需周期唤醒去读取FIFO数据并进行双击的计算判别。
图3. 双击FIFO模式和中断模式处理器工作时序
上海矽睿科技的加速度传感器可以提供静止检测、运动检测、屏幕翻转、位置识别、单双击,计步,抬手亮屏等等功能,我们将针对姿态和运动检测需要的运动检测,静止检测以及用于无按键人界界面响应的双击进行介绍,并补充如何利用这些硬件特性配合微处理器软件在低功耗下更好的检测姿态的改变以及位移的改变。
图4. 双击/计步器/抬手亮屏功耗对比
运动和静止检测
加速度计的运动和静止检测可以判定搭载加速度计的物件是静止的,还是从静止转换到移动状态,以及是如何移动的,物体感受到的震动的方式,物体的姿态是什么样的,以及物体被旋转了多少角度或者被移动了多远的距离。所有的方向、摇晃、单击、双击、下落、倾斜、运动、定位、冲击的识别都可以依据加速度计的相关数据来判定。
加速度计的运动状态检测常见的用途有:
● 检测由静到动,比如车辆防盗系统中可以用加速度计判定异常的震动;电表水表汽表检测非法打开测量设备;手机里面依据震动加上角度判断识别手机是否被用户拿起了;车载视频监控检测到车辆启动自动录像操作,遥控器被拿起后进入快速连接状态等等;
● 检测由动到静,主要是用于依靠这个状态信息进行相应的控制,比如玩具如果在设定时间内是静止的,自动关机节省电源等等;
● 检测动的方式,比如TWS耳机或者电子烟上使用敲击的方式来实现无按键控制,比如计步检测,撞击检测,双击实现类似电源开关或者打开费电的射频单元等等。
运动检测(motion detection)主要包含了Anymotion detection(有效运动检测),Signification Motion Detection(大幅度有效运动检测),no motion(静止检测)以及Tap(单击/双击/三击),Pedometer(计步器) 。
除了Pedometer(计步器)之外,其他的几种运动检测都依赖于加速度计在相邻两个时间点的变化值,实现的计算量很小,功耗很低,另外由于加速度计在相邻两个时间点的间隔时间很短(4ms~100ms),由于重力产生的加速度不会快速变化,因此信号斜率检测的方式对于设备的初始姿态不敏感,而且对于芯片本身的零偏不敏感,而且可以指定任意的XYZ轴作为检测轴,是一种很方便高效的检测方式。
下图为Anymotion detection(有效运动检测),no motion(静止检测)的示意图。
图5. Anymotion detection 时序图
斜率定义为两个相邻时间点的加速度计值:Slope(t2)=(acc(t2)−acc(t1)),输入允许是XYZ的任意一轴或者多轴的组合,需要设置斜率的阈值(Threshold)以及超过该阈值需要持续的时间(Duration),如果芯片检测到符合这个设置的波形,将会提供一个中断给微处理器,微处理器可以通过读取相关的中断寄存器确认是Anymotion detection中断,并可以读取状态寄存器获取下面信息:
1) 最先满足触发条件的是哪个轴 ;
2) 触发的信号是正方向的还是负方向的。
阈值(Threshold)与持续时间(Duration)的设置依赖于芯片的ODR,对于Anymotion detection的检测,可以以较低的ODR实现,而较低的ODR可以获得良好的功率控制。Duration可以选择的点数目最多4个点,阈值最小为16LSB(3.9mg@FS+/-2G),阈值最大为4G@FS=+/-8G,因此该检测器可以检测很小的运动,也可以设置为检测很强烈的撞击,可以根据应用的需求进行相应的设置。
no motion detection(静止检测)的设置与Anymotion detection的设置类似,需要使能检测轴,设置阈值以及检测时间,任何一个轴满足条件后,都会有no motion的中断。
图6. QMA7981在不同模式下和ODR下的功耗
Signification Motion Detection(大幅度有效运动检测)是Anymotion detection的加强版,主要应用于持续的震动检测场景,以排除偶尔的震动导致的系统唤醒。取决于应用类型,这个大幅度有效运动检测可以直接使用加速度计内置的Signification Motion Detection亦或计步器数据。
图7. Signification Motion Detection时序图
图7为Signification Motion Detection(大幅度有效运动检测)的时序图,检测到Anymotion 后,间隔T-skip时间后,如果在一个设定的检测时间内又有Anymotion信号,则认为是Significant Motion。
利用加速度计响应敲击动作来做人机界面控制或者系统功耗管理也是一种常用的方式,考虑到系统的容错性和易使用性,双击和三击是较常用的操作。
图8. TAP时序图
TAP有几个重要的参数:
● ShockTime:在该时间内,加速度计的斜率必须超过阈值Shock Threshold。
● QuietTime:在该时间内,加速度计的斜率必须小于阈值Quiet Threshold。
对于双击,还需要保证后面的一击出现的时间必须在Duration time之内。由于加速度计对于敲击的响应,与设备的外型和敲击动作有关,因此不同的设备,有些参数需要做细微的调整(比如TWS耳机的敲击的加速计输出值要远大于手机敲击时加速度计的输出值)。常用的设置如下:
姿态与位移检测
利用加速度计可以得到准确的静态姿态信息,利用去除重力加速度后的线性加速度分量,可以粗略的计算位移信息。在仅依靠加速度计的情况下,动态的姿态和位移的检测的精度都是比较有限的,难点在于动态特别是快速情况下如何有效的获取准确的重力加速度,利用多传感器数据融合可以较好的解决这个问题,要求高的应用,可以考虑上海矽睿科技的惯性单元IMU QMI8610。
加速度计用于测量物体的姿态,主要是包括俯仰角(Pitch ,按照安卓的定义是绕X轴旋转的角度)和横滚角(Roll,按照安卓的定义是绕Y轴旋转的角度),用于水平检测或者倾斜检测,有要求精度很高的应用如倾角仪,设备的水平检测等,也有简单的应用比如电子价签需要根据摆放的方向自动旋转屏幕,摄像头的图像圆转,比如车辆的倾倒检测,上坡检测,设备的姿态变化的识别也可以用于无按键模式下的输入,用于取代低功耗磁传感器的开关作用。
图9. 安卓Pitch/Roll定义
需要准确的Pitch/Roll的角度可以按照下面的方法计算av=sqrtf(acc_data[x]*acc_data[x]+acc_data[y]*acc_data[y]+acc_data[z]*acc_data[z]);
计算 pitch 俯仰角度、roll 翻滚角度:
#define R2D 57.2957795131f
pitch = asinf(-acc_data[1]/av)*R2D;
roll = asinf(acc_data[0]/av)*R2D;
运动状态下的姿态角的计算,需要将线性加速度去除后再进行计算,常用的方法是对加速度计数据进行低通滤波(例如gravity[x] = alpha * gravity[x] + (1 - alpha) * acc_data[x];),从而获取与重力加速度相关的Gravity的值,然后再计算Pitch/Roll角度。在复杂运动状态下,仅仅依靠加速度计估算线性加速度从而获得真实的重力值,目前尚无性能特别好的办法,要求高的可以采用IMU惯性单元做数据融合,依靠陀螺仪数据确认夹角。(详细软件算法包:请找QST FAE申请)
利用加速度计传感器,测量物体沿着某个平面的移动距离,可以采用低通滤波器去除重力加速度后获得线性加速度,然后通过对线性加速度进行二次积分获取设备的移动位置,从而判断设备是否被移动,在车辆的防盗应用中有应用需求,在该种应用中,考虑到加速度计的采样速率,震动噪声以及加速度计二次积分的误差,需要增加一个启动阈值判断和终值零速判断,从而提高精度减小误差。
结束语
电池供电设备通过加速度计进行姿态与运动检测,充分利用加速度传感器内部集成的硬件算法,能更好的平衡性能与耗电这个电池供电设备的重要需求,在直接使用内部的硬件集成的算法无法实现的需求,可以通过采用硬件触发检测配合软件获取加速度传感器的原始数据进行附加计算,通过减少微控制器唤醒的时间和频率的方式,可以降低功耗,延长电池使用寿命。
责任编辑;zl
评论
查看更多