4

我已经搜索了几个小时,但仍然没有找到我的问题的明确答案。场景是这样的:用户尽可能高地扔 iPhone,我想测量 iPhone 的高度。我想将加速度计与 Core Motion 一起使用,并且我成功地实现了一个简单的系统,它可以为我提供 3 轴上的加速度。虽然这是一个加速。根据我的物理知识,计算最大高度的公式是 (V0^2)/2*g,其中 V0 是起始速度。虽然我有加速度。

知道如何将加速度转换为速度或直接从加速度计获取速度吗?

我知道这不是一个完全与编程相关的问题,但我只是想对此有所帮助:)

4

2 回答 2

0

首先,已经有一款应用程序可以完全满足您的需求:Send Me To Heaven。你不会在 Apple 的 App Store 中找到它,因为它从未通过审查,猜猜为什么 ;-)

正如您所说,您只能使用加速度。h = v 0 2 /(2*g) 是正确的。要获得起始速度 v 0,您需要随时间对加速度进行数值积分。最棘手的部分是找到确定时间间隔 [t 1 , t 2 ] 的充分必要条件。加速阶段什么时候开始,什么时候停止。

另一件要考虑的事情是避免欺骗那些只绕轴旋转几秒钟,然后模拟飞行阶段的用户。在那里你也可以考虑着陆阶段:当用户抓住设备时,你应该注册一个强烈的减速。

但是,不要指望这款应用会进入商店,而在 Google Play 上,竞争对手的速度会更快。

于 2013-10-27T13:51:31.933 回答
0

问题:

为了得到结果,物理学给你施加了许多问题(速度除外)。

  1. 投掷的角度,相对于重力方向。你无法知道相对垂直距离,除非你知道这个角度。
  2. 整个投掷过程中的参考方向(您不能从设备本身的加速度中扣除速度,除非您考虑到手机加速时的旋转变化)。

然而!您可以决定假设某些事情,这将使这些烦人的问题消失!

合理假设:

  1. 该设备再次被抓住,在它被抛出的相同相对高度。

这个假设将问题简化为一个更简单的问题,我们只需要找到设备自由落体的持续时间,以确定投掷的相对高度。

所有你需要做的:

确定设备是否处于自由落体状态相对容易,因为总重力接近 0 m/s^2。

但是,这仍然存在一个小问题,因为加速度计可能不在手机的质心处,所以它会在一个特定的方向上经历一个恒定的加速度(如果手机围绕自己旋转),在整个自由落下。

根据通话时间确定垂直投掷高度的数学留给读者作为练习:-)

于 2014-01-07T06:32:34.137 回答