打印
[新手入门]

关于mpu6050的DMP使用的疑问。

[复制链接]
2553|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ersh|  楼主 | 2016-4-16 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ersh 于 2016-4-16 14:46 编辑

最近在用STM32采集MPU6050的数据,经分析处理后做一些识别类的工作,不过暂时不是用于做四轴的,知道坛上用过这款传感器的比较多,所以来请教一下。
首先,我是直接淘了一个MPU6050的现成模块,mpu6050+mcu(估计是颗stm8)。猜测其原理如下:
模块的mcu通过i2c读取mpu6050的三轴线加速度以及三轴角速度,并通过一定的算法,获得了xyz的转动角(其中z轴不准),封装成帧后通过串口输出模块,我现在使用其实就是stm32直接串口通信读数据然后干自己的事而已,不过还是想弄清楚mpu6050的一些原理,因为模块mcu代码不开源,后续应用还是希望跳过它自己直接取6050的数据,那么问题来了——
看了官方的datasheet,介绍到6050是集成了dmp的,dmp的作用就是通过特定的算法求解姿态的
1.dmp这个功能是否通过i2c接口打开关闭?
2.假如我直接读dmp出来的数据,获得的是不是xyz三轴加速度、角速度、解算后的角度?而其中加速度和角度度本来就是传感器测出来的,dmp对这两者还会做什么处理么?例如一些平滑滤波,降噪。
3.既然有dmp可以使用,为什么很多飞行器、6050的应用资料、介绍也好,都是直接取原始数据然后再做一遍解算,求出roll pitch yaw,求角的时候涉及互补滤波、卡尔曼滤波(估计不一定全部用得上,我认为作用主要在于消去纯角速度积分带来的漂移,从而获得稳定的角度值),凡事总有原因,为什么还要特意做这么一下,难道说自带dmp的精度不够?
4.由于买回来的模块只有一份6050datasheet加寄存器手册(这两份东西也是一直流传于网上),但是里面关于dmp的应用其实并没有具体说明,例如如何打开,如何操作,输入输出是什么,是否还有一些相关文档?如果有估计我也不会有以上那么多不清楚的地方了。
谢谢各位。

相关帖子

沙发
michael_llh| | 2016-4-17 20:17 | 只看该作者
哥,一次问这么多问题,让别人怎么回答。DMP功能确实是6050带有的,可以通过IIC进行打开,datasheet的东西给你就是让你自己去理解,6050用的人很多,资料也很多,可以找到很多参考。并不是所有的datasheet都会给你非常详细的介绍。至于为什么现在很多的四轴中要自己读取6050的六个原始数据,个人觉得是因为从DMP输出的三个信号,我们没有办法判断时候有经过相关的滤波算法,所以这里我们就自己进行相关的数据滤波,对于现在高速的单片机而言,并不差这么点时间来运算这个东西。

使用特权

评论回复
板凳
ersh|  楼主 | 2016-4-18 10:26 | 只看该作者
michael_llh 发表于 2016-4-17 20:17
哥,一次问这么多问题,让别人怎么回答。DMP功能确实是6050带有的,可以通过IIC进行打开,datasheet的东西 ...

哈哈,感谢回复了好几个问题,因为问题是相关的,觉得没必要分几次去问。

使用特权

评论回复
地板
michael_llh| | 2016-4-18 15:44 | 只看该作者
ersh 发表于 2016-4-18 10:26
哈哈,感谢回复了好几个问题,因为问题是相关的,觉得没必要分几次去问。 ...

恩恩,关于6050的话参考资料很多的,你百度看下,会找到很多参考,可能没有那么容易搞清楚,但是慢慢看就懂了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

0

粉丝