问题标签 [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.
javascript - How to check for a device/browser that fully supports the deviceorientation event?
I have a HTML5 compass that works quite ok. Now I need a smart way to distinguish between "pseudo deviceorientation enabled" browsers (as desktop chrome and FF) and real candidates like iPhone/Android/iPad Browsers that use the device's magnetometor.
My current solution is a basic check for the DeviceOrientationEvent and touch support:
Is that enough? I'm not really sure about devices "with touch support but no magnetometer", as for example chrome on a mac book has touch support, and a fake deviceorientation?
ios - '[CLLocationManager headingAvailable]' 返回 FALSE
我遇到以下问题。
CLLocationManager 标题可用
这总是返回错误,表示标题永远不会更新(函数根本不运行),而“didUpdateToLocation”工作得很好。
我正在使用 iPhone 6.1 模拟器。奇怪的是位置工作,我能够得到长/纬度而不是标题。
任何帮助将不胜感激 - 谢谢!
neural-network - 可以使用一组向量作为神经网络的输入吗?
希望这里有一些神经网络负责人可以提供帮助!(:
背景:我正在使用加速度计在空中绘制形状,我想知道是否可以使用神经网络来检测我绘制的形状。
假设我有一个预定义的“词汇表”,包含 3 种可能的形状(例如,圆形、椭圆形、八字形)。我画了很多圈,收集得到的加速度计数据,并对其进行预处理以产生一组 N (x,y,z) 向量。(x、y、z 是加速度值。)
最后,我有一个具有 3 个布尔输出(圆形、椭圆形、图 8)的神经网络。
我的问题: 我的输入应该是什么?
我能想到的唯一解决方案:有 3N 个输入(x1、y1、z1、x2、y2、z2、...、xN、yN、zN)。
我的担忧:这样的解决方案并没有告诉神经网络 x1、y1、z1 彼此相关,它们具有相同的时间戳。据我了解,应该以某种方式向神经网络提供有关这种“关系”的信息。那有必要吗?如果是,在这种特定情况下是否可以这样做,以及如何做到这一点?对于这个从加速度计数据进行形状检测的问题,神经网络完全是错误的解决方案吗?
arduino - 使用 Arduino micro 读取 MPU-9150 断板的原始数据
我们正在尝试将 MPU-9150 断路板连接到 arduino micro,我们使用了 sparkfun 文档 ( https://github.com/sparkfun/MPU-9150_Breakout/tree/master/firmware ) 中建议的示例代码来阅读原始数据。我们的 Vcc 始终为 3.3V。我们的波特率为 9600。这是串口监视器显示的内容。所有 9DOF 值都为零
当我们使用 Arduino 游乐场中建议的代码时:http: //playground.arduino.cc//Main/MPU-9150这就是我们得到的。现在所有值都是-1
........我们也很确定这些联系。我们真的不知道我们哪里做错了。Vcc、GND、SCL 和 SDA 均已连接。任何评论将不胜感激。
sensors - 什么是磁力计倾斜补偿,为什么需要它?
在阅读有关磁力计/磁场/“罗盘”传感器的信息时,通常会说需要传感器倾斜补偿,例如通过使用加速度计来获得正确的测量结果。(请注意,我在这里不是在谈论硬铁和软铁效果。)所有这些来源都使用二维指南针进行澄清,当倾斜时,它不起作用。
当使用 3D 磁力计(例如 HMC5883L)时,我的理解是它们提供指向(或沿)最强磁场方向的 3D 矢量,在地球的情况下,它应该指向磁北。
我的印象是,我可以使用加速度计测量的重力矢量和磁力计“北”矢量的叉积来获得确定参考系所需的所有轴,并由此获得局部方向。
那么,什么是倾斜补偿,为什么需要它?
java - 尝试使用 9dof imu 查找距离
我正在做一个研究项目来确定举重杆在做清洁时的加速度、速度和距离。我研究过使用 9dof imu 传感器,但我发现计算杆行进的距离并不准确,因为传感器在提升到地面期间并不总是平行并且存在双重积分问题。我曾考虑使用超声波测距仪来获取距离,但是,如果连接到杆,我们会遇到与上述相同的问题。我想要一些其他的想法。
java - Android 上的设备方向
我正在尝试在 Galaxy Note 2 上获取设备方向。这是我的 onSensorChanged() 方法的代码,但 RotationMatrix 不断返回 false,因此不计算方向。我花了几个小时浏览文档和谷歌搜索解决方案,但它们都提供了类似的实现,我似乎无法理解我做错了什么。
出于测试目的,我刚刚将 Azimut 输出到控制台。
这是 LogCat:
ios - CMMotionManager 未提供任何值
我目前正在尝试开发一个从 CMMotionManager 中提取磁力计数据的 iOS 应用程序。我创建了一个非常简单的测试应用程序,但即使是该应用程序也无法在我的 iPhone 5 上运行。代码如下:
问题是处理程序根本不会被调用。同样,调用[motionManager startMagnetometerUpdates]
然后轮询magnetometerData
也不起作用(它返回 nil)。执行[motionManager isMagnetometerActive]
结果总是false
.
我被困在这里,有什么想法吗?我不明白为什么代码不应该工作。我必须以任何方式首先请求访问指南针吗?CMMotionManager 的文档除了我所做的事情之外没有提及任何内容。
ios - Apple 的 iPhone 磁力计校准工作正常吗?
我目前正在开发一个 iPhone 应用程序(在 iPhone 5、iOS 7、Xcode 5 上),它需要非常准确地确定当前的态度。CMDeviceMotion 的“态度”并不能满足这些要求,因为苹果的传感器融合算法似乎过于依赖漂移相当快的陀螺仪(根据我的经验)。这就是为什么我决定读出裸露的传感器数据,然后我想自己将其结合到传感器融合算法中。
当询问磁力计数据时,有两种可能性:
通过 CMMotionManager 中的 CMMagnetometerData
通过 CMDeviceMotion 中的 CMCalibratedMagneticField,Apple 说
此属性返回的 CMCalibratedMagneticField 为您提供了设备附近的总磁场,没有设备偏差。与 CMMagnetometer 类的磁场属性不同,这些值反映了地球磁场加上周围磁场,减去设备偏置。
原则上(2.)正是我想要的。
如果磁力计数据正确校准,则有一个非常简单的测试。为简单起见,可以将自己限制在两个维度上。当设备仰卧时,B_x^2 + B_y^2 的组合必须是常数,与设备指向的方向无关。它必须正好等于地球磁场的水平分量(假设设备附近没有其他磁场)。因此,当将位于其背面的设备进行 360 度转动时,B_x 上的测量数据 B_y 应该显示一个圆圈。有关详细信息,请参见此处。
现在重点:CMCalibratedMagneticField 的数据不会导致圆圈!
有人对此有解释吗?或者有谁知道,CMCalibratedMagneticField 是如何产生的?在执行设备的“八字形”运动时,磁力计是否从上方链接的意义上进行校准,或者该运动有什么好处?
顺便提一句。为什么“八形”运动而不是围绕它的三个轴翻转设备,这将允许按照上面链接中的描述进行校准?
对于这个问题的任何澄清,我将非常高兴......谢谢!
android - 通过加速度计和磁场传感器检测 Android 设备的倾斜和晃动
目前,我完全被大学练习所困扰。过去几天我一直在努力,也做了很多研究,但要么我正在尝试做一些不可能的事情,要么我在推理上遇到了可怕的错误。
我的目标是什么?- 我想实现一个 Android 应用程序 (android:minSdkVersion="8"),它可以通过 OSC 发送反馈消息(正面或负面)。反馈发送不仅可以通过单击一些按钮(那个很简单;-),还可以通过摇晃和倾斜设备来实现。
摇动意味着将智能手机从右向左旋转或反过来——就像摇头一样。倾斜意味着上下旋转设备 - 就像点头一样。
由于我的设备不是市场上最新鲜的,我只能使用加速度计和磁场传感器(我没有陀螺仪或其他东西)。
我基于谷歌搜索的想法是听加速度计和磁场事件,并使用旋转矩阵来计算角度之间的增量。x 轴上的某个 delta 将被解释为倾斜(点头),而 y 轴上的某个 delta 将被解释为摇晃。由于到目前为止我没有取得好的结果,我问自己这是否是正确的方法?!
目前我的 SensorEventListener 看起来像这样:
奇怪的是,无论我如何移动或摇晃手机,y 和 z 增量始终为 0.0。
我希望有人可以提示我的代码或我的想法有什么问题。
提前致谢!