G-Sensor的一些概念,基于android

Android Sensor概述 文章目录Sensor分类Sensor axesMobile device axesAutomative axesMEMSaccelerometers/gravitygyroscopesmagnetometersilluminationbarometertemperatureproximity Sensor就是传感器,提供高精度的原始数据,比如操作系统,手势,倾斜等动作就是利用重力传感器的数据来判断... 阅读详情
期天在家没有事情,一边翻译sdk中onSensorChanged 的解释,一遍摸索G1下onSensorChanged 第二个参数values的含义:
总结如下,发完赶紧吃饭!
  1. public abstract void onAccuracyChanged (int sensor, int accuracy)
复制代码
Called when the accuracy of a sensor has changed. See SensorManager for details.
Parameters:
sensor  The ID of the sensor being monitored
accuracy  The new accuracy of this sensor.  


当sensor的"精确度"发生改变的时候,该方法会被回调,详细信息请参看 SensorManager 类
参数:
sensor  被监视的sensor的ID
accuracy 关于此sensor的新精确度描述
  1. public abstract void onSensorChanged (int sensor, float[] values)
复制代码
Called when sensor values have changed. The length and contents of the values array vary depending on
which sensor is being monitored. See SensorManager for details on possible sensor types.

当sensor的值发生改变的时候被回调,values数组的元素个数和其中的内容取决于哪个sensor正在被监视,sensor的可
用类型请参看SensorManager类



Definition of the coordinate system used below.

The X axis refers to the screen's horizontal axis (the small edge in portrait mode, the long edge in
landscape mode) and points to the right.
The Y axis refers to the screen's vertical axis and points towards the top of the screen (the origin is
in the lower-left corner).
The Z axis points toward the sky when the device is lying on its back on a table.
X轴:和屏幕平行并且指向右边的轴(在portrait中使用"小边角",在landscape模式中使用"长边角")
Y轴:和屏幕垂直并且指向屏幕上方的轴(坐标原点在左下角)
Z轴:当设备(手机)背面着地放在桌子上的时候,指向天空的方向就是Z轴


IMPORTANT NOTE: The axis are swapped when the device's screen orientation changes. To access the
unswapped values, use indices 3, 4 and 5 in values[].

一定要大家注意的:坐标系是跟随手机屏幕的方向改变而改变的,values数组中下标为3、4、5的3个元素,使用的是恒
定的坐标系,(和尚注:你可以通过这三个元素得到一个不变的坐标,游戏开发中可能会用到)


(和尚注:此方法的第一个参数sensor可能是
SensorManager.SENSOR_ORIENTATION
SensorManager.SENSOR_ORIENTATION
中的一个)
解释如下:
SENSOR_ORIENTATION, SENSOR_ORIENTATION_RAW:
All values are angles in degrees.
values[0]: Azimuth, rotation around the Z axis (0<=azimuth<360). 0 = North, 90 = East, 180 = South, 270 =
West
values[1]: Pitch, rotation around X axis (-180<=pitch<=180), with positive values when the z-axis moves
toward the y-axis.
values[2]: Roll, rotation around Y axis (-90<=roll<=90), with positive values when the z-axis moves
toward the x-axis.


所有的值都是以角度为单位的
values[0]:经度,以Z轴为中心旋转(0-360之间),北方=0,东方=90,南方=180,西方=270
(和尚注:这个方向指的是google标志所对的方向,为了测试这个值,手都酸了(*^__^*) )
values[1]: 着地点(终于选了一个合适的词),以X为轴转动(-180到180),Z轴向Y轴方向运动的相对偏移量
(和尚注:当手机垂直放在面前的时候为-90,当你面对着手机屏幕看天花板的时候为180/-180,当手机屏幕朝上放在水平
的桌子上的时候为0,当手机的USB口朝向天花板垂直放置的时候为90)
values[2]: 转动,以Y为中心转动(-90到90),Z轴向X轴方向运动的相对偏移量
(和尚注:这个运动其实就是我们所说的"垂直屏幕和水平屏幕的切换")




Note that this definition of yaw, pitch and roll is different from the traditional definition used in
aviation where the X axis is along the long side of the plane (tail to nose).
需要注意的是在传统意义上的航空定位中,X轴指的是飞机的机身,而这里的yaw、pitch、roll和它是不一样的,这里的
X轴指的是飞机的水平翼
(和尚注:SDK中的这个解释对于西方人可能有帮助,对于我们可能会更加迷茫,我相信我上边已经说的够清楚了。)


SENSOR_ACCELEROMETER:
All values are in SI units (m/s^2) and measure contact forces.
这个模式下,所有的值都是用国际标准单位,并且能反映出相关力度
values[0]: force applied by the device on the x-axis
values[1]: force applied by the device on the y-axis
values[2]: force applied by the device on the z-axis
values[0]:在X轴方向的力度
values[1]:在Y轴方向的力度
values[2]:在Z轴方向的力度


Examples:
When the device is pushed on its left side toward the right, the x acceleration value is negative (the
device applies a reaction force to the push toward the left)
When the device lies flat on a table, the acceleration value is -STANDARD_GRAVITY, which correspond to
the force the device applies on the table in reaction to gravity.
which correspond to the force the device applies on the table in reaction to gravity.

例如:
当手机按照螺丝钉拧紧的方向"转动"时,X速度就是负的(反之X就是正的)(和尚注:不是按照原文翻译的,意思一样)
当手机放在水平的桌面上的时候,"加速度"值为-STANDARD_GRAVITY(和尚注:SDK中STANDARD_GRAVITY为:Standard
gravity (g) on Earth,次数为负的STANDARD_GRAVITY)

(和尚注:通过反复测试,借助DDMS的截图,得出如下结论,一句话:
SENSOR_ACCELEROMETER模式下,手机的重力被3个轴所分担,values[0]、values[1]、values[2]分别记录3个坐标轴上承
受的重力大小
更易懂的解释:
正常模式下:
  
如果手机的重力都由htc标志的长侧边承担,那么values[0]为-9.8
如果手机的重力都由htc标志对面的长侧边承担,那么values[0]为9.8
如果手机的重力都由USB口的一面承担,那么values[1]为-9.8
如果手机的重力都由USB口对面的窄面承担,那么values[1]为9.8
如果手机的重力都由的背部(Google标志的一面)承担values[2]为-9.8
如果手机的重力都由的手机屏幕承担values[2]为9.8
9.8为g的值
)


Note: the magnetic field's Z axis is inverted.

注意,磁场的Z轴是倒置的(和尚注:不知何意)



简单说说Android G-sensor 的优化 <br />     近期在2.2中解决某个G-sensor的Bug的时候,意外的发现2.3其实已经对这类问题进行了优化,借鉴于2.3的源码,给了我不少帮助。 2.3中主要是扩展了对旋屏180°的扩展,这个也许对手机来说没什么实际作用,但是对于平板电脑,却意味深长喽!!!<br />    <br />     首先是 int getCurrentRotation() ,不仅仅只针对mRotation ,还增加了对lastRotation的考究,单单就是这点,就方便了我们做很多事情,可以很方便的增加很多判断 阅读详情

相关推荐

Android上Sensor移植的总结

    Sensor作为Android系统的一个输入设备,对Android设备来说是必不可少的。Sensor主要报告G-Sensor、LightsSensor、ProximitySensor、TemperatureSensor等。由于各个Sensor的移植大同小异。本文就主要对G-Sensor和LightSensor进行说明。Sensor的移植主要包括三部分的工作:Linux Kernel中相关设备的驱动开发、Android中HAL中相关库的开发以及Android中应用层中测试程序的开发。一、Linux K

Sunny的小窝 1万+

手机传感器简述

Android手机中常用的传感器

Mansoの空间 1519

g_sensor工作原理

1.使G-sensor正常工作需要做的事: G-sensor driver文件包括: driver/i2c/chips/lis331dl.c     //驱动源文件 driver/i2c/chips/sensorioctl.h   //传感器头文件 include/linux/lis331dl.h        //lis331类型传感器头文件 并在/kernel/arch/arm/ma

mliubing2532的专栏 5508

android gsensor 坐标,获取Android设备的方向,Sensor和SensorManager实现手机旋转角度

带有g-sensor的Android设备上可通过API获取到设备的运动加速度,应用程序通过一些假设和运算,可以从加速度计算出设备的方向获取设备运动加速度的基本代码是:SensorManager sm = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);sm.registerListener(new SensorEve...

weixin_42371234的博客 1881

加速度传感器_G-sensor_重力传感器(accelerometer)原理

加速度传感器_G-sensor_重力传感器(accelerometer)原理

重力传感器算法

g-sensor 计算屏幕旋转角度的原理公式,adxl346 datasheet 中文资料。

陀螺仪、加速计、磁力计等传感器汇总

<br /> <br />陀螺仪就是内部有一个陀螺,它的轴由于陀螺效应始终与初始方向平行,这样就可以通过与初始方向的偏差计算出实际方向。手机里陀螺仪实际上是一个结构非常精密的芯片,内部包含超微小的陀螺。<br />加速计是用来检测手机受到的加速度的大小和方向的,而手机静置的时候是

农场老马的专栏 7万+

Pspice安装教程:Windows系统完整指南(含环境变量设置)

详细讲解在Windows系统中完成Pspice安装的全过程,涵盖安装步骤与关键的环境变量设置,帮助用户顺利运行仿真工具。适合初学者快速上手pspice安装教程中的核心环节。

weixin_42230607的博客 1175

Gsensor左右摇晃方向判断,与敏感度

1.当摇晃手机时重力传感器的三轴(x,y,z)所搜集到的数据是高速变化的 2.当:从onSensorChanged()方法传入的参数中可以获取传感器时刻采集到的三轴值 3.加速度传感器又叫G-sensor,返回x、y、z三轴的加速度数值。 该数值包含地心引力的影响,单位是m/s^2。 将手机平放在桌面上,x轴默认为0,y轴默认0,z轴默认9.81。 将手机朝下放在桌面上,z轴为-9.81

u010949962的专栏 9772

TESSY创建单元测试或集成测试工程

我们以tessy5.1为例,给大家展示单元测试和集成测试工程的创建过程。

空气中的告白专栏 1682

从NASA DataPort下载到PyTorch Dataset:手把手处理USGS光谱库的AVIRIS数据

本文详细介绍了如何从NASA DataPort下载USGS光谱库的AVIRIS高光谱数据,并将其转化为PyTorch Dataset对象。内容涵盖数据获取、预处理、辐射定标及高效数据加载技巧,特别针对AVIRIS数据的水吸收波段剔除和波段分组标准化进行了重点讲解,为环境监测、地质勘探等领域的研究者提供实用指南。

weixin_30607659的博客 281

安卓开发 G-Sensor

最近项目要加入加速度传感器模块,所以这几天一直在

chenzhiyong12345的专栏 1218

验证码破解2.0:Python+CV大模型搞定滑块/点选验证

核心创新:基于YOLOv8+SAM CV大模型的端到端验证码破解方案,无需人工设计特征,适配多种验证码类型;核心价值高成功率:滑块验证≥95%,点选验证≥90%,远超传统CV方案;低延迟:单验证码破解≤2秒,满足高并发采集需求;行为模拟:生成符合人类操作的轨迹,绕过行为检测;易扩展:统一架构支持新增验证码类型,仅需少量标注数据微调;技术要点采用YOLOv8实现快速目标检测,SAM实现像素级分割;生成物理规律的人类轨迹,模拟真实操作行为;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1261

android系统之sensor学习

Sensor作为Android系统的一个输入设备,对Android设备来说是必不可少的。Sensor主要包括G-Sensor、LightsSensor、ProximitySensor、TemperatureSensor等。这里主要对G-Sensor模块进行解析。 我的平台是AML8276,android系统是4.0.4,kernel是3.0,所用的gsensor是kionix_a

yunjinwang的专栏 8205

57、各向异性材料力学问题的分析与求解

本文系统分析了各向异性材料在扭转和平面变形问题中的力学行为,介绍了基于应力和位移的求解方法,包括应力函数推导、位移场假设、艾里应力函数法等。通过具体示例,如椭圆截面杆的扭转和各向异性板的均匀拉伸,展示了求解过程,并讨论了各向异性材料在工程应用中的意义及未来研究方向。

7h6j5k4l3的博客 204

【Python爬虫教程】第3篇-解决使用reqeusts遇到的ProxyError异常

Python request代理错误提示“HTTPSConnectionPool, Cannot connect to proxy, no such file or directory”

分享技术,记录思考和感悟 1507

Android sensor 实用篇

<br />1.Sensor Type<br />      重力感应/加速度传感器 (G-Sensor)<br />       光感应   (Light-Sensor) <br />      温度感应<br />      方向感应<br />      磁场、<br />      临近性<br /><br />2.如何实现Sensor编程<br />     a.获取系统服务(SENSOR_SERVICE)返回一个SensorManager 对象<br />           sensorman

念茜的博客 8369

USB 网卡——RNDIS 控制消息流程

在其控制端点上获取控制消息时,设备必须在通信类接口的中断 IN 端点上返回通知,每当设备可以返回控制消息时,主机就会轮询该通知。需要注意的是,如果设备由于某种原因收到GET_ENCAPSULATED_RESPONSE,并且无法使用控制端点上的有效数据做出响应,则应返回设置为 0x00 的单字节数据包,而不是 stall 控制端点。下表中定义了此传输。收到 RESPONSE_AVAILABLE 通知后,主机使用下表中定义的GET_ENCAPSULATED_RESPONSE 传输从控制端点读取控制消息。

tyustli 371

Android Sensor架构和原理分析

https://blog.youkuaiyun.com/u010164190/article/details/51908477 本文主要描述了在android2.3平台G-sensor相关软硬件的体系架构和实现原理,按照Applications、Framework、HAL、Driver和Hardware五大层次分别介绍。 1.系统架构 (Architecture) 1.1 Android体系架构图 ...

haigand的专栏 5186

浅聊开关电源6:大学生电赛(电源类)之LCL并网滤波器设计(PCB设计,STM32F4xx程序与Simulink仿真)

关于LCL并网滤波器设计的一些小分享

xjtuymh的博客 3651

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

关于android2.3调试g-sensor

我转载的地址:http://www.code007.org/?p=497 关于android2.3调试g-sensor 由于工作上的需要,特地写了这么一份关于调试g-sensor的内容. 1.首先确定你要调试的设备的屏幕的横竖屏如何设置。 在代码中我们主要的流程如下: os 启动后 : WindowManagerService.java中ENABLE_SCREEN

chujidiy的专栏 1293

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android中G-Sensor流程

1.使G-sensor正常工作需要做的事:G-sensor driver文件包括:driver/i2c/chips/lis331dl.cdriver/i2c/chips/sensorioctl.hinclude/linux/lis331dl.h并在/kernel/arch/arm/mach-s3c6410/mach-ur6410.c文件中i2c chanel1的结构变量i2c_devs1[] __

huabinbin110的专栏 878

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android 14 高通平台G-sensor方向不对,如何修改G-sensor默认方向

Android 14 高通平台新板子出来发现G-sensor方向不对,高通平台的驱动如何修改G-sensor默认方向。查询代码发现按以下方法可以实现。

zzq1996的专栏 538

android g-sensor相关流程

<br />1.使G-sensor正常工作需要做的事:<br /><br />G-sensor driver文件包括:<br /><br />driver/i2c/chips/lis331dl.c<br />driver/i2c/chips/sensorioctl.h<br />include/linux/lis331dl.h<br /><br />并在/kernel/arch/arm/mach-s3c6410/mach-ur6410.c文件中i2c chanel1的结构变量i2c_devs1[] __in

joard_yang的专栏 1127

Android中G-Sensor相关流程

1.使G-sensor正常工作需要做的事: G-sensor driver文件包括: driver/i2c/chips/lis331dl.c driver/i2c/chips/sensorioctl.h include/linux/lis331dl.h 并在/kernel/arch/arm/mach-s3c6410/mach-ur6410.c文件中i2c chanel1的结构

程序交流中心 1152

android sensor 驱动,android驱动sensor框架

1. sensor架构之App层;架构2. sensor架构之Framework层;spa3. sensor架构之Libraries层;code4. sensor架构之HAL层;对象5. sensor架构之Driver。blog1. sensor架构之App层接口下面以g-sensor为例,写一个简单的apk,看一下sensor在App层究竟是如何工做的,通常须要下面四个步骤来实现一个sensor...

weixin_29029831的博客 678
上一篇: DirectShow应用程序快速入门
下一篇: lib和dll文件的区别和联系
DecJ
博客等级 码龄18年 537粉丝 25原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值