极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 30087|回复: 9

mpu6050 受电机震动干扰, 是否正常的

[复制链接]
发表于 2014-12-16 21:30:08 | 显示全部楼层 |阅读模式
最近又再尝试做平衡车, 尝试不断收集数据时, 发觉 mpu6050 的数值总是不太稳, 在没加入滤波下, 有超过 15 度的变化.
只要把电样停了, 数据又回复正常.  一直以为是因为光耦做得不好, 电机产生的电流影响了主板的电路造成.

今天多花一点时间, 作了不同测试, 更换了不同的电机模块, 结果都是一样.  
再更换不同电机 (6V 及 12V), 结果也是一样.
最後尝试把电机拆出来看看, 发觉用手拿着电机时, 数据正常.
再小心测试, 把电机放离车身, 车身不受震动之下, 数据完全正常.
但只要把电机拿回来, 就是轻轻碰到车身, 让其震动传到 mpu6050 上, 数据又乱跳了.

这是我用串口收集的数据, 车仔在完全静止的状态.
最初 5 秒电机没开动, 数据比较稳动, 之後开动电机後量度了大约 10 分钟, 一直在乱跳.




我也有不少 滤波的资料, 要加上去也不会有困难, 我也知道一般使用时都会加上滤波.
但自己对硬件不熟悉, 想多了解一下, 确认一下是否正常反应, 会否是 mpu6050 出了问题.

请问 mpu6050 的数据因受到震动而乱跳, 否正常的?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-12-17 13:14:45 | 显示全部楼层
同求啊 是不是要经过卡尔曼滤波之类的啊 我也遇到同样问题
回复 支持 反对

使用道具 举报

发表于 2014-12-17 13:56:10 | 显示全部楼层
加速度受外部影响比较大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-17 14:08:20 | 显示全部楼层
SproutME 发表于 2014-12-17 13:56
加速度受外部影响比较大

但我这里显示的, 只是倾斜的角度.  是水平放的.
是直接从 mpu6050 的数据中计出来:

        accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);       
        angleX = atan2(ax, az) * 180 / PI;
        angleY = atan2(ay, az) * 180 / PI;
        angleZ = atan2(ax, ay) * 180 / PI;

angleZ 可以不理, 但 angleX 及 angleY 在没震动时, 即使接驳并开动了电机, 还是很稳定的.
请问你的车子, mpu6050 的数据会受震动而乱跳吗?  是否靠滤波修正好?
回复 支持 反对

使用道具 举报

发表于 2014-12-17 16:14:35 | 显示全部楼层
加速度本来就这样,受外界的力影响比较大,所以才要和角速度融合才能发挥作用。我拿着6050在手上晃动数据都会波动,这是正常现像。如果静止状态都有很大波动的话就是有问题了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-17 19:30:04 | 显示全部楼层
SproutME 发表于 2014-12-17 16:14
加速度本来就这样,受外界的力影响比较大,所以才要和角速度融合才能发挥作用。我拿着6050在手上晃动数据都 ...

如果拿着6050在手上晃动, 角度在不斷轉變, 數據變化也是正常.
我是在靜止的狀態下, 安裝在車架上的.
把電機拆走後開動, 沒接觸時是完全沒問題, 但我只是把電機輕輕接觸車架 (不是碰撞, 只是輕輕接觸到), 從電機上傳來震動, 車架是沒有動的.
回复 支持 反对

使用道具 举报

发表于 2014-12-19 09:33:51 | 显示全部楼层
Super169 发表于 2014-12-17 19:30
如果拿着6050在手上晃动, 角度在不斷轉變, 數據變化也是正常.
我是在靜止的狀態下, 安裝在車架上的.
把 ...

这种现象是很正常的,加速度对震动是非常敏感,与角速度做互补滤波后的角度就可使用了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 11:16:30 | 显示全部楼层
wujingyu 发表于 2014-12-19 09:33
这种现象是很正常的,加速度对震动是非常敏感,与角速度做互补滤波后的角度就可使用了

oh...或者我有点明白了, 想再确认一下, 不知我的理解是否正确.  

mpu6050 只是测量角速度, 而非直接量度水平角度.
而角因为量度的频率非常密, 震动产生的变化被放大了, 而得出的角度就出现很大的波动.



如果是这样的话, 加入滤波的作用就会很明显了.  
只是奇怪为何 6050 不是直接测量角度, 我一直以为角速度是由测量到的角度变化推算出来.  
所以车子震动时, 角度变化应该是有限的.  但现在得出的数字, 最大的竟然有刹那间超过 100 度 (不太可能吧, 几乎反转了).
而大部份数据, 都有 +/1 20 度以上的变化, 应该不可能接受的.

我尝试再加固 mpu6050 (希望减少自身震动的幅度, 因为我是插在面包板上, 而 mpu6050 本身只有一边针脚, 另一边是悬空的, 受震动而上下摆动的机会也很大), 另外再加上 kalman filter 後, 平放时受车子震动而产生的角度变化, 基本上在 5 度以内, 不知是否可接受.
回复 支持 反对

使用道具 举报

发表于 2014-12-19 14:05:47 | 显示全部楼层
Super169 发表于 2014-12-19 11:16
oh...或者我有点明白了, 想再确认一下, 不知我的理解是否正确.  

mpu6050 只是测量角速度, 而非直接量 ...

mpu6050有三轴加速度传感器,还有三轴角速度传感器(陀螺),根据加速度的三个分量可以计算出角度(这是在理想情况下,就像中学生做物理题一样),但小车在运动(震动)过程中有附加的加速度,所以根据加速度传感器计算出来的角度噪声就很大,而角速度相对来说受震动等方面的影响要小,但根据角速度的积分得出的角度就有累积误差,所以要将两者结合起来运用。
你这里的角度误差太大,可能还有别的因素,有可能系统的电源还不是很合理(没有彻底解决电源干扰问题),造成某种干扰。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 14:15:08 | 显示全部楼层
wujingyu 发表于 2014-12-19 14:05
mpu6050有三轴加速度传感器,还有三轴角速度传感器(陀螺),根据加速度的三个分量可以计算出角度(这是在 ...


谢谢你的资料.
我现在电机跟 arduino 已是分开供电共地.
如果把电机拿开, 同样开动的, 震动不传到车子上的话, 数据是没问题的. 我想, 电的影响应该相对比较细.
而且, 是很明显的, 只要把电机拿住, 轻轻碰到车身, 让震动传到车上, 数字就会立即大变起来.
也有可能是 mpu6050 的接线不好, 受震动影响.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 14:39 , Processed in 0.040911 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表