android 传感器 频率,Android加速度传感器数值的过滤
加速度传感器测量设备的加速度,包括重力加速度。以下代码展示了如何获取缺省的加速度传感器的一个实例:
private SensorManager mSensorManager;
private Sensor mSensor;
...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
从概念上说,加速度传感器通过测量施于传感器上的作用力,并按以下关系来检测设备的加速度(Ad)。
Ad = - ∑Fs / mass
然而,重力总是会按以下关系影响测量的精度。
Ad = -g - ∑F / mass
因此,如果设备是平放在桌子上的(没有加速度),加速度计会读到g = 9.81 m/s2。同理,设备在自由落体或以 9.81 m/s2的加速度坠向地面时,加速度计会读到 g = 0 m/s2。因此,要测出设备真实的加速度,必须排除加速计数据中的重力干扰。这可以通过高通滤波器来实现。反之,低通滤波器则可以用于分离出重力加速度值。以下例程展示了它们的用法:
public void onSensorChanged(SensorEvent event){ //在本例中,alpha由 t / (t + dT)计算得来, //其中 t是低通滤波器的时间常数,dT是事件报送频率 final float alpha = 0.8; //用低通滤波器分离出重力加速度 gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0]; gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
//用高通滤波器剔除重力干扰 linear_acceleration[0] = event.values[0] - gravity[0]; linear_acceleration[1] = event.values[1] - gravity[1]; linear_acceleration[2] = event.values[2] - gravity[2];
}
注意:你可以使用很多技术来过滤传感器数据。以上例程只是使用了过滤器常量(alpha)来创建一个低通滤波器。这个过滤器常量是由时间常量(t)和传感器事件报送频率(dt)推导出来的,t大致等于过滤器触发传感器事件的间隔时间。为了演示,此例程使用0.8作为alpha的值。如果你要用这个过滤方法,你可能需选用其它的alpha值。
加速计使用了标准的传感器坐标系。这意味着,设备以原始方位平放在桌子上时,会发生以下状况:
如果你从左侧平推设备(它向右移),则x方向加速度为正值。
如果你从下侧平推设备(它向前移),则y方向加速度为正值。
如果以A m/s2的加速度向空中移动设备,则z方向加速度等于A +9.81,即设备加速度(+A m/s2)减去重力加速度(-9.81m/s2)。
静止设备的加速度值为+9.81,即设备加速度(0 m/s2)减去重力加速度(-9.81m/s2)。
一般情况下,加速度计已足够应付对设备移动情况的监测。几乎所有Android平台的手持和桌面终端都带有加速度计,它的能耗比其它运动传感器要少10倍。不过它有一个缺点,就是你不得不实现低通和高通滤波器,以消除重力影响并减少噪声数据。
Android SDK给出了一个应用示例,展示了加速度传感器的使用方法(Accelerometer Play)。
android 传感器 频率,Android加速度传感器数值的过滤相关推荐
- 机械传感器与半导体加速度传感器比对
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 机械传感器与半导体加速度传感器比对 前言 一.机械传感器与半导体传感器定义 二.机械传感器与半导体传感器对比 1.加速度传感器比机械传 ...
- android SENSOR_ACCELEROMETER 三轴加速度传感器
先看效果图: package org.ninetripods.mq.asdasdasdasdasdas; import android.content.Context; import android. ...
- Android移动开发-利用加速度传感器开发仿微信摇一摇功能的实现
加速度传感器是最常见的传感器,大部分Android手机都内置了加速度传感器,加速度传感器运用最广泛的功能就是微信的摇一摇功能,用户通过摇晃手机寻找周围的人,其它类似的应用还摇骰子.玩游戏等. 下面以摇 ...
- Android手机计步器中加速度传感器熄屏时的侦听
基于开源https://github.com/296777513/pedometer/ 在mate2上弄一个计步器,发现熄屏后,计步器无法工作,查阅资料发现某些手机上的加速度传感器熄屏时无法工作,这个 ...
- 手机中的传感器:重力感应器、加速度传感器、陀螺仪、电子罗盘和光线距离感应器
智能手机之所以受到大家的欢迎,与其具有的娱乐功能分不开,使得它不仅仅是个通话的工具.智能手机支持那么多的娱乐应用,归根结底在于它里面集成的各类传感器,主要有重力感应器.加速度传感器.陀螺仪.电子罗盘和 ...
- 8a 中断 传感器采集_加速度传感器的安装,你get了吗
加速度传感器的安装方法不同,对频响曲线的影响也有差异.加速度传感器的固有频率是否发生变化,取决于使用的安装方法(手持.磁铁.胶水.螺栓等). 从表1可知,用螺栓安装在打磨良好的干净平面上时,频响最高, ...
- android加速度传感器应用,如何在Android智能手机中使用加速度传感器...
您可能正在寻找的方程式是: Velocity = (Gravity*Acceleration)/(2*PI*freq) 正确使用此方程式(公制)的单位为 Gravity = mm/s squared ...
- Android中的传感器之---加速度传感器
加速度传感器 加速度传感器又叫G-sensor,返回x.y.z三轴的加速度数值. 该数值包含地心引力的影响,单位是m/s^2. 将手机平放在桌面上,x轴默认为0,y轴默认0,z轴默认9.81(由于地球 ...
- android 三轴加速度传感器【转】
一.手机中常用的传感器 在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用,具体如下:(Sensor类) #define SENSOR_TYPE_ACCE ...
- Android 手机获取加速度传感器加速度数据并自定义采样频率
原文链接:http://blog.csdn.net/llp1992/article/details/41786865 因为项目需要利用到了Android手机中的加速度传感器来获取三个加速度轴的加速度大 ...
最新文章
- AI 与区块链:两大热门技术,会碰撞出什么样的火花?
- fftw库 vs2019_FFTW库在VS 2010中的使用方法
- JPA学习---第五节:日期和枚举等字段类型的JPA映射
- 非静态内部类中为什么不能拥有静态成员?
- windows平台下vlc编译之一:编译环境构建(2008.12.03更新)
- python爬虫requests实战_Python爬虫之requests库网络爬取简单实战
- 602B. Approximating a Constant Range
- hadoop环境准备-大数据Week5-DAY6-1-hadoop
- 矩阵范数的等价性(原创)
- 我的世界源代码java复制_《我的世界》你做主,微软逐步开放源代码
- 2021-10-26
- Excel生成随机数(函数RAND)
- 转:德鲁克:放弃昨天,是变革的第一原则
- Java编程笔记16:深入容器
- cassandra多个数据中心实现异地容灾
- BPFT1.7,全名BaiduPanFilesTransfers免费的百度网盘批量转存工具【精】
- 物理环路造成网络风暴,无法访问交换机故障处理过程
- 云课堂智慧职教答案python_2020智慧职教云课堂Python编程基础答案完整满分单元测试答案...
- python赋值语句
- mysql-日志分析