用加速度计获得距离高度

时间:2013-10-27 08:28:41

标签: accelerometer core-motion

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

任何想法如何将加速度转换为速度或直接从加速度计获得速度?

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

2 个答案:

答案 0 :(得分:0)

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

正如您所说,您只能访问加速度。 h = v 0 2 /(2 * g)是正确的。要获得起始速度v 0 ,您需要integrate在整个时间内以数字方式加速。最棘手的部分是找到必要和充分的条件来确定时间间隔[t 1 ,t 2 ]。加速阶段何时开始,何时停止。

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

然而,不要期望这个应用程序能够进入商店,而Google Play的竞争对手则更快。

答案 1 :(得分:0)

<强>问题:

物理学给你带来了许多问题(速度除外),以获得结果。

  1. 投掷角度,相对于重力方向。除非你知道这个角度,否则你无法知道相对垂直距离。
  2. 整个投掷中的参考方向(您不能从设备本身中扣除加速度的速度,除非您考虑到手机加速时旋转的变化)。
  3. 然而!你可以决定假设某些事情,这会让这些恼人的问题消失!

    合理的假设:

    1. 再次捕获设备,其高度与投掷相同。
    2. 这个假设将问题简化为一个更简单的问题,我们只需要找到设备处于自由落体状态的持续时间,以确定投掷的相对高度。

      所有你需要做的事:

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

      然而,这还有一个小问题,因为加速度计可能不是位于手机的质量中心,所以它会在一个特定的方向上经历恒定的加速度(如果手机绕自身旋转),在整个自由落体期间。

      根据通话时间确定垂直投掷高度的数学对读者来说是一个练习: - )