0

我正在使用 arduino uno、gy-521 mpu 6050 和 Jeff Rowberg 库。虽然代码是完美的,但结果却不尽如人意。我正在使用 RealAccel 选项,但是当我将加速度计向右移动时,由于向右移动,数据首先是正确的正数增加。但是一旦我停止移动设备,就会出现负值。在大多数情况下,正值和负值的值相等,这意味着如果我在停止移动后将加速度计向正方向移动相当于“100”,那么还会有多个其他负值加起来约为 ' -100' 值。我认为这是因为对于每个动作都有相反和平等的反应,但如果不是,我想知道为什么会发生这种情况,即使是这种情况,也必须有办法解决这个问题,对吧?我之前通过多个 if 语句解决了这个问题,基本上说如果最后 7 个数字中的任何一个是正数(因为噪音),那么接下来的 x 个数字将为零,但我想听听这个问题的任何其他想法或解决方案。谢谢你。

4

1 回答 1

1

如果你在一个方向上加速一个物体,这个物体永远不会减速或停止。它将永远朝着这个方向前进。减速或停止的唯一方法是负加速度。在你的情况下,你的负数等于正数是正确的——这是因为你从零速度开始,以零速度结束。

我认为您实际上是在尝试计算该方向上的速度,该方向将从 0 开始,超过 0,然后返回 0。要获得该数字,请将 time=0 的总和(加速度 *(时间差))加到任何值时间你需要速度。这称为加速度的黎曼和。

如需进一步阅读,请查找“一维运动学”。

于 2016-01-07T03:20:44.010 回答