Win8传感器—加速度计、陀螺仪、指南针
今天整理一下上周做的有关传感器的东西;
做的这个项目是MFC的,vs2010,但是运行平台是带win8系统的平板,win8还是完全支持MFC的。surface和tablet2,最近测试发现surface和tablet2性能相差很大,surface快很多,而且今天tablet2触屏都坏掉了,真是中看不中用,关键自己写的调用摄像头还不能调节分辨率。。。ps:只有平板设备上有传感器这些东西,笔记本什么的都没有。
又扯远了,关于这个项目的东西前面的博客也介绍过了,下面直接开始说加速度计吧。
1 加速度计
加速度计传出的参数是3个,分别代表了XYZ三个方向上的加速度值,单位是g(9.8N/kg)。
当平板处于静止状态的时候,总的加速度值为g(只受到重力加速度),而当平板的XY轴正好与大地面水平时,则输出的XY方向加速度为0,Z方向加速度为g。
下面是我在网上找的几个图,形象化描述了加速度计运作的原理:
图1:假设了一个完全不受重力的情况下,加速度计中的小球悬浮,对周围的墙没有任何压力(xyz三个轴的数据为0)
图2:这张图就是我刚刚表达的特殊情况,当平板完全与水平地面平行静止,加速度计仪器中的小球(假设)如这张图情况,重力完全在Z轴,Z轴输出的值为1g。
图3:一般情况下,我们拿着平板的时候都是稍微有点倾斜的,那么总的重力加速度1g分配到了3个轴方向上,就如这张图,分配到了x负方向上0.71g和z负方向上0.71g。
计算倾斜角
通过以上分析,我们通过传感器接口得到3轴方向上的加速度值,通过数学运算,是可以获得平板坐标系轴的倾斜角的。但是前提是没有其他加速度影响,受力平衡(静止)!
根据加速度值获得角度值的数学公式也很容易推导,下图中R的方向为重力的方向(铅垂方向),各个轴对应的加速度值为Rx、Ry、Rz首先可以算出各个轴与重力方向所成的夹角:
X轴与重力方向夹角: xAngle = arctan(sqrt(Ry*Ry + Rz*Rz) / Rx);
Y轴与重力方向夹角: yAngle = arctan(sqrt(Rx*Rx + Rz*Rz) / Ry);
Z轴与重力方向夹角: ZAngle = arctan(sqrt(Rx*Rx + Ry*Ry) / Rz);
为了得到角度即为倾斜角和横滚角,经过调试,得到正确的公式如下:
倾斜角 = -atan2(Rx,sqrt(Ry*Ry + Rz*Rz))*180.0/π;
横滚角 = atan2(sqrt(Rx*Rx + Ry*Ry),Rz))*180.0/π;
陀螺仪的作用
通过加速度计我们已经得到了X Y Z的倾角,但是前两天查阅的资料发现,很多应用都还要用到陀螺仪,例如3维模拟设备的移动情况,坐标轴中显示物体倾斜角的变化等。这些地方用到陀螺仪是为了让模型更吻合,让曲线运动更平滑。其实得到的倾斜角度在运动的瞬间也是更准确的。
加速度计的数据不是100%准确的。因为加速度计只有在静止情况下的数据才是较为准确的,可以不借助陀螺仪,在计算的时候假设了只有竖直向下重力加速度。
3指南针
指南针其实是传感器中最简单的了,因为它不用通过任何计算,得到的值就是与磁北或真北的夹角,但是这个问题整整困扰了我一个多星期,直到今天才解决。
指南针传感器的类别是:SENSOR_CATEGORY_ORIENTATION,平板设备上有的是SENSOR_TYPE_COMPASS_3D.得到值有很多,具体可以参考:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd318987(v=vs.85).aspx
好吧,,,更新一下,
=====================================================================
通过微软提供的Compass接口获得的值一直是不准确的,偶尔准确。。。。
下载了一些Win8的应用,指南针的值也是不准确的。
联系了联想的客服,客服看了这些应用也觉得不准确,但是他们坚持说自己平板电脑上的硬件没有问题。。。
无语,也就是目前win8平板上,指南针的问题还是没有解决。。
2013-07-10 by sun
=====================================================================
相关代码整理:
http://download.csdn.net/detail/very_caiing/6432141
Win8传感器—加速度计、陀螺仪、指南针相关推荐
- ICM-42605 6轴MEMS加速度计陀螺仪运动传感器数据的读取
ICM42605传感器简介 ICM426056轴MEMS运动传感器是集成了3轴陀螺仪和3轴加速度计的运动跟踪器件.陀螺仪支持8个可编程满量程范围设置(从±15.625dps到±2000dps).加速度 ...
- 关于惯性传感器(陀螺仪、加速度计)的选取
关于惯性传感器(陀螺仪.加速度计)的选取 陀螺仪的选取 加速度计的选取 陀螺仪的选取 在做惯性导航模块或者飞控的时候第一件事就是器件的选取,这个是第一步也是很重要的一步,因为他不仅关系到硬件成本还关乎 ...
- 手机中的传感器:重力感应器、加速度传感器、陀螺仪、电子罗盘和光线距离感应器
智能手机之所以受到大家的欢迎,与其具有的娱乐功能分不开,使得它不仅仅是个通话的工具.智能手机支持那么多的娱乐应用,归根结底在于它里面集成的各类传感器,主要有重力感应器.加速度传感器.陀螺仪.电子罗盘和 ...
- 惯性导航原理(一)-航位推算+加速度计+陀螺仪+IMU+INS
文章目录 导航定位原理分类 航位推算(Dead-Reckoning) 牛顿运动定律 惯性传感器--加速度计 力反馈原理 加速度计种类 惯性传感器--陀螺仪 转子陀螺-陀螺定轴性 振动陀螺-哥氏效应(C ...
- 安卓传感器全解:注册、注销传感器、监听传感器,距离传感器、方向传感器、陀螺仪、加速计、磁场、气压传感器
全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓传感器全解:注册.注销传感器.监听传感器.距离传感器.方向传感器.陀螺仪.加速计.磁场.气压传感器. 注册.注销.监听传感器 1.自定义传感器监听 ...
- Mission Planner初学者安装调试教程指南(APM或PIX飞控)4——校准加速度计、指南针、遥控器、设置飞行模式
目录 1.加速度计校准. 2.指南针校准. 3.遥控器校准. 安装完固件后,无人机并不能马上解锁起飞,必须进行校准加速度计.指南针.遥控器,下面就逐一进行校准,该环境使用的是APM2.8.Missio ...
- Android-方向传感器(制作指南针)
方向传感器(制作指南针) Android中的方向传感器可以准确的判断出手机在各个方向的旋转角度,利用这些角度就可以编写出像指南针.地平仪等有用的工具.下面,我来制作一个简单指南针.先附上代码: Act ...
- 【传感器大赏】6轴加速度计陀螺仪
Grove-6 Axis AccelerometerAndGyroscope Grove - 6-Axis Accelerometer&Gyroscope 是一种把 Grove 接口和集成传感 ...
- 维特智能蓝牙5.0加速度计陀螺仪传感器倾角电子罗盘磁力计仰卧起坐
1.项目介绍 仰卧起坐检测项目是应用于中小学生或部队训练时,对仰卧起坐这个项目的监测.实现的功能包括以下方面: 引导用户规范动作,也就是动作必须达标才能算完成一个动作,平躺要躺平,坐起要到达90°. ...
最新文章
- django drf Filter
- 【POJ - 3037】Skiing (Dijkstra算法)
- python面试题总结(5)--数据类型(字典)
- 论文浅尝 | 一日看尽长安花--NLP可解释研究梳理
- [转帖]ISE与Modelsim联合观察中间信号
- 计算机最低分怎么英语,编写一个学生类 有年龄 英语、数学、计算机三门成绩 求平均分、最高分、最低分...
- CoffeeScript中的三元操作
- Discuz 7.0版块横排显示版块图标和版块简介的方法
- JUC总览,来自汪文君整理
- Matlab实现和使用神经网络的几种方式详细讲解--附代码可下载
- 二阶rc无源低通滤波器matlab,二阶rc无源低通滤波电路
- 肠道微生物组测试说明解读
- Sematic库系列一
- 动画交互设计软件:Principle for Mac
- 小程序如何生成二维码海报?
- 洛谷 P4094 [HEOI2016/TJOI2016]字符串 后缀数组+二分+主席树
- 使用canvas生成一个圆形的图片
- 分布式系统测试的难点与分析
- java滑雪,AcWing 901. 滑雪-java
- 磁盘恢复工具OO DiskRecovery的使用