加速度传感器测量设备的加速度,包括重力加速度。以下代码展示了如何获取缺省的加速度传感器的一个实例:

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. Unity 高通AR发布到Android发生黑屏

    这两天在做Unity 高通AR发布到Android的时候发生黑屏现象 后来发觉是不调用摄像头而不是黑屏(所谓黑屏是因为摄像头背景就是黑色的) 最后发觉是高通的文件夹出现错误 重新复制之前备份的一个高通 ...

  2. 机械传感器与半导体加速度传感器比对

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 机械传感器与半导体加速度传感器比对 前言 一.机械传感器与半导体传感器定义 二.机械传感器与半导体传感器对比 1.加速度传感器比机械传 ...

  3. android SENSOR_ACCELEROMETER 三轴加速度传感器

    先看效果图: package org.ninetripods.mq.asdasdasdasdasdas; import android.content.Context; import android. ...

  4. Android移动开发-利用加速度传感器开发仿微信摇一摇功能的实现

    加速度传感器是最常见的传感器,大部分Android手机都内置了加速度传感器,加速度传感器运用最广泛的功能就是微信的摇一摇功能,用户通过摇晃手机寻找周围的人,其它类似的应用还摇骰子.玩游戏等. 下面以摇 ...

  5. Android手机计步器中加速度传感器熄屏时的侦听

    基于开源https://github.com/296777513/pedometer/ 在mate2上弄一个计步器,发现熄屏后,计步器无法工作,查阅资料发现某些手机上的加速度传感器熄屏时无法工作,这个 ...

  6. 高通、猎户机型Android典型bootloader分析

    1.bootloader是什么? 简单地说,bootloader 就是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到一 ...

  7. 使用高通QXDM工具实现Android设备网络制式更改(如仅注册LTE网络)(独家!)

    修改网络制式需要用到高通的QXDM工具,该工具包下载链接如下: 链接:https://pan.baidu.com/s/1rRNicFvlRSstUhka2JSiOg 密码:pssp 具体操作步骤如下: ...

  8. 手机中的传感器:重力感应器、加速度传感器、陀螺仪、电子罗盘和光线距离感应器

    智能手机之所以受到大家的欢迎,与其具有的娱乐功能分不开,使得它不仅仅是个通话的工具.智能手机支持那么多的娱乐应用,归根结底在于它里面集成的各类传感器,主要有重力感应器.加速度传感器.陀螺仪.电子罗盘和 ...

  9. 高通QAC4012平台 支持三大物联网标准

    美国高通公司物联网解决方案QCA4012平台,该平台支持双频5GHz,内置1.5MB内存,并包含了一个全功能微控制单元(MCU),可在130MHz上运行,还支持Apple HomeKit.Google ...

最新文章

  1. laravel数据库操作
  2. python循环语句-python语句中Python循环语句(附代码)
  3. 实战SSM_O2O商铺_47【Redis缓存】清除缓存接口的开发
  4. IDEA新建maven项目漏掉webapp目录解决方法
  5. MongoDB最简单的入门教程之一 环境搭建
  6. 百万大奖参赛攻略 | 让程序员走向财富自由
  7. 基于C++的采用单链表判断算术表达式的合理性
  8. 计算机绘图户型设计摘要,cad2012计算机绘图
  9. SecureCRT创建串口连接
  10. linux 词霸,Ubuntu下使用原版金山词霸
  11. python怎么改路径_python更改路径
  12. spacy和en安装
  13. lodop打印html包含图片,使用lodop.js打印控件打印table并分页等
  14. SECTION 15 函数和函数式编程(二)
  15. 【python爬虫】京东商品分析
  16. java 性能 火焰图_性能调优工具-火焰图
  17. 电商交易之订单中心设计(一)
  18. 王者荣耀小游戏1.0震撼上线!C++版
  19. 互联网出海,从粗放圈地到落地深耕
  20. 美图M8美战版、椰子鞋等潮品被疯抢是一种怎样的消费观?

热门文章

  1. java spu sku_SPU与SKU区别小结
  2. INFOR-CRB环境搭建
  3. bottom sheets_Excel 2013中的SHEET和SHEETS函数
  4. android 模拟摄像头,在安卓模拟器中使用 VCam
  5. 【毕业设计】深度学习图像风格迁移算法研究与实现 - python 卷积神经网络
  6. win10无法识别的usb设备前一个设备不正常的解决方法
  7. U3D DotH教程2
  8. 测绘大地测量乙级资质新申请条件及办理流程
  9. WINCC与STEP7的仿真连接_过路老熊_新浪博客
  10. unity3d做俄罗斯方块