如何以编程方式校准传感器,而不是手动设置 *#0*#?
Posted
技术标签:
【中文标题】如何以编程方式校准传感器,而不是手动设置 *#0*#?【英文标题】:How can I calibrate sensors programmatically, instead of manually setting of *#0*#? 【发布时间】:2017-02-14 10:06:18 【问题描述】:您好,我正在编写一个 vr 应用程序,但它在纸板上有偏差。
我找到了解决方案,即使用密码“#0#”进行传感器校准。
但我想以编程方式编写代码
对传感器进行自检以校准它们。
我搜索了但找不到智能手机传感器校准的api。
所以我搜索了传感器校准的示例或源代码,但找不到。
请告诉我一些用于传感器校准的 api 或逻辑。
【问题讨论】:
请edit您的问题显示what you have tried so far。您应该包含您遇到问题的代码的minimal reproducible example,然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。 【参考方案1】:“校准”是指使用加速度计“调整重力”,并为陀螺仪和/或位置和外部变换传感器“建立基础变换”?
没有某种参考,例如磁力计(在某些时候必须根据本地磁场数据进行校准)或预先校准的外部传感器数据(例如 Rift、Vive 和 PSVR 使用) ,您无法在没有人工干预的情况下校准运动传感器。
您可以通过全屏演示/文本向用户建议他们在一个舒适的位置静止片刻,或者在您收集数据时显示“正在校准...”屏幕,从而建立一个基础,但这与您真正可以进行校准一样自动化。
遗憾的是,您将不可避免地在陀螺仪和加速度计数据中“漂移”,而没有磁力计(手机中通常不存在)或其他形式的校正(如重新校准,由按下按钮触发)。这在硬件层面是不可避免的——没有什么可以避免的。
在长时间测量漂移后,您可以创建一个软件调整解决方案,方法是在您收集数据时要求用户将设备放在表面上一段时间。
【讨论】:
感谢您的建议。我只是想以编程方式校准测试页,但我不知道该怎么做。我得出一个结论,我应该在硬件或固件级别进行编程。我想我现在不能这样做。以上是关于如何以编程方式校准传感器,而不是手动设置 *#0*#?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 8.0+ 中以编程方式打开设备设置应用程序而不是应用程序设置