如何以编程方式校准传感器,而不是手动设置 *#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+ 中以编程方式打开设备设置应用程序而不是应用程序设置

以编程方式在实时数据库中导入 JSON,而不是手动

如何以编程方式更改 WMI 的设置而不是使用 wmimgmt.msc snappin?

以编程方式设置图像的大小

如何以编程方式测试 ngrok 是不是已经在运行

如何拥有具有两种不同单元格类型的 UITableView 并以编程方式设置每个单元格布局,而不是通过情节提要?