首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从磁性传感器获取信息

从磁性传感器获取信息
EN

Stack Overflow用户
提问于 2010-11-28 07:17:06
回答 1查看 6.4K关注 0票数 4

我正在监听传感器值,并在我的处理程序中使用

代码语言:javascript
复制
    if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
       for (i=0;i<3; i++) mag[i] = event.values[i];

开发人员文档说,对于Sensor.TYPE_MAGNETIC_FIELD,你会得到:“所有的值都以微特斯拉(uT)为单位,并测量X,Y和Z轴上的环境磁场。”

如何将这些信息转换为方位角、俯仰角和滚动角?如何将其转换为罗盘磁航向?

在完成矩阵变换后,是否仅提供从方向传感器和加速度传感器获得的相同信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-28 10:25:54

如果可以访问加速度计,则可以使用getOrientation()方法,该方法返回通过两个传感器确定并通过getRotationMatrix()方法计算的方位角、俯仰和侧滚。

编辑

回复评论...我现在明白你的问题了。抱歉的。仅使用三轴磁强计,除非设备与地球表面平行,否则无法准确获得方位、俯仰和滚动。还记得使用指南针,让它a)在主轴上,这样你就可以看到并手动补偿倾斜,或者b)密封在液体中,这样你就可以让气泡水平到达中心了吗?要获取方位角,请执行以下操作:

代码语言:javascript
复制
azimuth = arctan(y/x)

现在,如果你倾斜手机,x/y平面感知中的误差可能会变得很大。现在,您需要计算出倾斜度(使用加速计),然后测量Z轴的磁场强度,然后使用这三个轴进行补偿。这实际上就是您所知道的getRotationMatrix()和getOrientation()。

我认为Sensor.TYPE_ORIENTATION在API8中被弃用的部分原因是因为本身没有单独的方向传感器。它是磁场和加速度感应的结合。

我找到了一篇很好的论文,涵盖了所有的内容:

http://www.ssec.honeywell.com/position-sensors/datasheets/sae.pdf

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4294449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档