高通 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加速度传感器数值的过滤相关推荐
- Unity 高通AR发布到Android发生黑屏
这两天在做Unity 高通AR发布到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上弄一个计步器,发现熄屏后,计步器无法工作,查阅资料发现某些手机上的加速度传感器熄屏时无法工作,这个 ...
- 高通、猎户机型Android典型bootloader分析
1.bootloader是什么? 简单地说,bootloader 就是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到一 ...
- 使用高通QXDM工具实现Android设备网络制式更改(如仅注册LTE网络)(独家!)
修改网络制式需要用到高通的QXDM工具,该工具包下载链接如下: 链接:https://pan.baidu.com/s/1rRNicFvlRSstUhka2JSiOg 密码:pssp 具体操作步骤如下: ...
- 手机中的传感器:重力感应器、加速度传感器、陀螺仪、电子罗盘和光线距离感应器
智能手机之所以受到大家的欢迎,与其具有的娱乐功能分不开,使得它不仅仅是个通话的工具.智能手机支持那么多的娱乐应用,归根结底在于它里面集成的各类传感器,主要有重力感应器.加速度传感器.陀螺仪.电子罗盘和 ...
- 高通QAC4012平台 支持三大物联网标准
美国高通公司物联网解决方案QCA4012平台,该平台支持双频5GHz,内置1.5MB内存,并包含了一个全功能微控制单元(MCU),可在130MHz上运行,还支持Apple HomeKit.Google ...
最新文章
- laravel数据库操作
- python循环语句-python语句中Python循环语句(附代码)
- 实战SSM_O2O商铺_47【Redis缓存】清除缓存接口的开发
- IDEA新建maven项目漏掉webapp目录解决方法
- MongoDB最简单的入门教程之一 环境搭建
- 百万大奖参赛攻略 | 让程序员走向财富自由
- 基于C++的采用单链表判断算术表达式的合理性
- 计算机绘图户型设计摘要,cad2012计算机绘图
- SecureCRT创建串口连接
- linux 词霸,Ubuntu下使用原版金山词霸
- python怎么改路径_python更改路径
- spacy和en安装
- lodop打印html包含图片,使用lodop.js打印控件打印table并分页等
- SECTION 15 函数和函数式编程(二)
- 【python爬虫】京东商品分析
- java 性能 火焰图_性能调优工具-火焰图
- 电商交易之订单中心设计(一)
- 王者荣耀小游戏1.0震撼上线!C++版
- 互联网出海,从粗放圈地到落地深耕
- 美图M8美战版、椰子鞋等潮品被疯抢是一种怎样的消费观?