Platformio,ESP32和MPU6050运动检测灵敏度

时间:2019-06-28 09:15:08

标签: esp32 platformio mpu6050

我将MPU6050中断引脚连接到ESP32(Wemos D1 mini)GPIO34引脚 检测运动和零运动中断。我不需要(也不想) 在每个loop()调用中读取加速度计数据。

我观察到一些奇怪的行为。

  1. 无论我设置的阈值是多少,它仍然过于敏感,即使移动很小也会中断(甚至最大值255)。我是否正确理解最大检测灵敏度为0.5 g(512 mg),阈值单位为2mg?
  2. 当持续时间为9(或更短)时,即使很少移动也会触发中断。当达到10(或更高)时,无论我多么努力地摇动设备,中断都不会触发。为什么MPU6050会检测到运动持续9ms而不检测10ms,因为持续时间的单位是1 ms(在1kHz时)?
  3. 唤醒同样适用。我将ESP32设置为在PIN 34上的中断时唤醒,然后使其进入睡眠状态。一点动都醒了。我尝试了各种阈值和持续时间。

该应用的代码可在GitHub https://github.com/anycode/platformio-mpu6050-test

上找到

有人可以解释如何正确设置范围,标度,阈值和持续时间,以仅检测剧烈运动(例如冲击)。我阅读了Jeff Rowberg的MPU6050库,I2C库,MPU6050规范的源代码并注册了映射,却没有找到任何解决我的问题的方法。

0 个答案:

没有答案