问题标签 [magnetometer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
841 浏览

android-ndk - 绕过 Android Invensense Motion Library 创建自定义磁力计校准

我希望从磁力计芯片中获取原始值,如未校准、未更改的原始值,直接从 I2C 接口获取。我已经追踪到 HAL 的 android java、本机源代码和 invensense 代码 API,发现对于 Galaxy Nexus(使用 Yamaha GMR 磁力计),invensense 应用了“自适应滤波器”、阈值滤波器(死区),然后执行实时磁力计校准以补偿硬铁和软铁偏差。我想绕过该校准算法并用我自己的算法替换它。

有没有办法在串行通信代码之后但在校准之前截取磁力计数据?您可以通过 Android NDK 访问 invensense 库吗?

目前正在开发: - Galaxy Nexus - Android 4.0 ICS - Eclipse IDE,windows 环境

0 投票
1 回答
616 浏览

iphone - 如何使用 iphone 磁力计值计算来自墙壁插座的电流电压值?

我想使用 iphone 计算通过壁式插座的电流。我正在使用 CMMotionmanagerFramework,我得到了 X、Y、Z 值,这些值我可以通过使用我想计算电压水平的那些值来计算周围的磁场的墙上插座。请给我答案。

0 投票
2 回答
766 浏览

iphone - CMCalibratedMagneticField 不更新

CMCalibratedMagneticField一直返回0

CMAcceleration返回值,CMMagnetometerData也返回值。只是CMCalibratedMagneticField不需要,我需要它,因为它是没有偏差的磁场。

我在 iPhone 4S 上进行测试。

0 投票
2 回答
3582 浏览

android - 获取全局坐标中的磁场值

对于 Android 应用程序,我需要跨全球(世界)坐标系的轴进行磁场测量。以下是我将如何(猜测)实现这一点。如有必要,请纠正我。另外,请注意,问题是关于任务的算法部分,而不是关于传感器的 Android API - 我对后者有经验。

第一步是获取TYPE_MAGNETIC_FIELD传感器数据(M)和TYPE_ACCELEROMETER传感器数据(G)。第二个应该根据 Android 的文档使用,但我不确定它是否不应该TYPE_GRAVITY代替(再次作为G),因为加速度计似乎提供的不是纯重力。

下一步是通过 获得旋转矩阵getRotationMatrix(R, I, G, M),其中RI是相应的旋转和倾斜矩阵。

现在是最值得怀疑的部分:为了将M向量转换为世界坐标系,我想乘以[R * I] * M.

我不确定这是将磁场读数转换为另一个基础的正确方法。另外,我不知道是否remapCoordinateSystem应该补充替代上述内容。

如果已经存在一些可以执行此操作的源代码,我将不胜感激发布链接,但我不想为这个特定任务使用大型通用库(例如,用于增强现实支持),因为我会喜欢让它尽可能简单。

附言

为了清楚起见,我想到在原始帖子中添加一些信息。

让我们假设一个设备放在桌子上并不断地从它的磁传感器中读取数据。每个测量值包含 3 个值,表示 X、Y、Z 轴上的磁场,它们是设备的局部坐标系。我认为我可以忽略环境场波动(通过低通滤波器平滑),因此这 3 个值应该在设备保持在原位时几乎保持不变。如果我们围绕任何轴旋转设备,值会改变,因为我们改变了局部坐标系。但是该字段本身实际上并没有改变。因此,我想将本地 X、Y、Z 场测量值转换为这样的 X'、Y'、Z',只要设备没有从其位置移动(仅旋转),无论设备旋转如何,它们都会保持各自的值。

我已经实现了上面描述的算法,并且通过建议的转换获得了值 X'、Y'、Z' 的规律和显着变化,所以它有问题。

聚苯乙烯

有时我会在 SO 上找到与我的问题完全相同的副本 -如何获得磁场矢量,与设备旋转无关?- 但不幸的是,答案包含我的建议,并且该问题的 OP 确认它们不起作用。

0 投票
1 回答
2225 浏览

google-maps - 将谷歌地图北转换为磁北

我正在构建一个连接到 android 应用程序的 Django 站点。android 部分是一个导航器,该站点允许使用图像构建您自己的地图。

在这些地图的构建过程中,用户可以通过在谷歌地图实例上旋转地图图像来设置方位。

我正在使用 css 旋转图像,所以 0° 是图像“原样”,而 360° 是图像倒置:所以北方是“向上”。

android应用程序不会使用gps系统,所以我必须在磁场上中继以显示地图随着用户的移动而旋转(为了检测用户的移动我有另一种方法,但这不是问题所必需的),我在此页面上发现磁北不是谷歌地图中显示的,我必须对这些值进行一些更正,但我不知道如何。

有人可以帮我将图像的旋转度数转换为北磁度数吗?

0 投票
1 回答
1558 浏览

android - 如何将Android磁力计读数转换为世界坐标空间?

我正在 Android 传感器上编写一些程序,我对磁力计传感器的读数感到困惑。

磁力计报告手机三个轴上的磁场强度。我观察到在同一位置,如果手机的航向发生变化,磁读数会发生巨大变化。但是,在我的理解中,无论手机的放置姿势如何,特定位置的地球磁场都应该是相对稳定的。

所以,我的问题是,有没有办法将原始读数从 3 轴磁力计传感器转换到世界坐标系?加速度计和方向数据也可在手机上获得。如果是这样,我怀疑即使手机的航向发生变化,转换后的磁力也应该是相同的。

我参考了 Android 源代码,特别是 getOrientation() 函数和 getRotationMatrix() 函数。我希望从他们的代码实现中得到一些帮助。但我不是很明白。有人能解释一下这些函数的算法原理吗?

函数代码链接:http: //www.netmite.com/android/mydroid/cupcake/frameworks/base/core/java/android/hardware/SensorManager.java

谢谢!我真的很急于解决这个问题。

0 投票
3 回答
5173 浏览

iphone - 如何实现 iOS 金属探测器应用程序?

我想实现一个金属探测器应用程序,它会对手机周围的磁场做出反应。

如何从 iPhone 上的磁力计读取磁场读数?有没有人有直接访问磁力计读数的示例代码?

谢谢!

0 投票
1 回答
2647 浏览

calibration - 存在永久磁场的磁力计校准

在我们正在开发的定制 Android 设备中,磁力计放置在非常靠近内部扬声器的位置。扬声器中的永磁体会影响磁力计的值。x,y,z 值正在达到磁力计可以报告的最大值。

重新校准可以解决这个问题吗?是否应该为此使用硬铁校准技术?这可以在磁力计驱动程序中处理还是只能在固件中完成?

0 投票
2 回答
8412 浏览

android - 安卓手机中的磁力计传感器获取方向

这是旨在使我的Android手机在某些条件为真时振动的代码。它应该振动直到方位角(我从磁力计获得)不在给定范围内。

但无论我将手机指向哪个方向,它都不会振动。它进入if语句,但从不进入while语句。并且振动功能正在工作(即手机没有坏)。我的目的是寻找东南西北。

我究竟做错了什么?

0 投票
4 回答
2542 浏览

ios - ios磁力计:校准视图的力显示

作为机械罗盘的用户,我注意到磁力计提供的航向通常偏离 45 度或更多,尽管在这种情况下没有出现校准显示。

如果我在户外测试或使用我的应用程序,我会在指南针视图出现时校准磁力计。这行得通,看来这是必要的。

我不想向我的应用程序的用户显示一个不准确的航向,当可以通过使用八字形运动进行频繁校准来实现或多或少准确的航向时。

有没有人知道每次我的指南针视图出现时强制显示磁力计校准视图的解决方案?

我在这里搜索了所有(?)帖子,只有一个人有类似的想法,但没有答案。