我使用的是一台arduino uno,一台gy-521 mpu 6050和Jeff Rowberg库。虽然代码是完美的,但结果并不令人满意。我使用的是RealAccel选项,但是当我将加速度计向右移动时,由于向右移动,数据首先是正确的正数递增。但是一旦我停止移动设备,就会出现负值。在大多数情况下,正值和负值都是相等的,这意味着如果我将加速度计移动到正方向,一旦我停止移动,也会有多个其他负值加起来大约为‘-100’值。我假设这是因为对于每个动作,都有相反和相等的反应,但如果不是,我想知道为什么会发生这种情况,即使有这种情况,也一定有办法绕过它,对吧?我之前通过多个if语句解决了这个问题,基本上是说,如果最后7个数字中的任何一个是正的(因为噪声),那么下一个x个数字将是零,但我希望听到任何其他想法或解决方案,这个problem.Thank你。
发布于 2016-01-07 11:20:44
如果在一个方向上加速对象,对象将永远不会减速或停止。它将永远朝着这个方向发展。减速或停止的唯一方法就是负加速度。你是对的,在你的例子中,负数等于正数--这是因为你从速度0开始,到速度0结束。
我认为你实际上是在试图计算那个方向的速度,它从0开始,超过0,然后回到0。为了得到这个数字,从time=0到你需要速度的任何时间求和(accerations *(时间差))。这被称为加速度的黎曼和。
要进一步阅读,请查找“一维运动学”。
https://stackoverflow.com/questions/34646713
复制相似问题