金轮法王 发表于 2015-8-3 12:58:58

浅谈mpu-6050


最近接触了一款六轴传感器mpu6050,它集成了3 轴MEMS 陀螺仪,3 轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP(Digital Motion Processor)。MPU-60X0对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±500,±1000,±2000°/秒(dps),加速度计可测范围为±2,±4,±8,±16g。一个片上1024字节的FIFO,有助于降低系统功耗。和所有设备寄存器之间的通信采用400kHz的I2C接口或1MHz的SPI接口(SPI仅MPU-6000可用)。对于需要高速传输的应用,对寄存器的读取和中断可用20MHz的SPI。另外,片上还内嵌了一个温度传感器和在工作环境下仅有±1%变动的振荡器。芯片尺寸4×4×0.9mm,采用QFN封装(无引线方形封装),可承受最大10000g的冲击,并有可编程的低通滤波器。关于电源,MPU-60X0可支持VDD范围2.5V±5%,3.0V±5%,或3.3V±5%。另外MPU-6050还有一个VLOGIC引脚,用来为I2C输出提供逻辑电平。VLOGIC电压可取1.8±5%或者VDD。 ----------------------------------------------------分割线---------------------------------------------------------------------------------这里我主要介绍一下mpu6050自带的数据运动处理器DMP:一、DMP是什么DMP就是内部的运动引擎,直接输出四元数,可以减轻外围微处理器的工作负担且避免了繁琐的滤波和数据融合。二、为什么要使用DMP最开始接触mpu6050想要得到三轴角度值,发现单独分析陀螺仪数据精度高,但时间长了会有漂移,加速度数据动态精度差,但没有长期漂移。能否综合利用陀螺仪和加速度计的特点,优势互补获得准确的姿态角度呢?通过查询资料发现Mpu6050处理数据最简单的有两种方法:1.通过原始数据的采集进行卡尔曼滤波做数据融合得到较为稳定的三轴角度2.通过mpu6050自带的DMP直接输出。显然使用DMP更加适合我这样的新手嘛!三、怎么使用DMP前面巴拉巴拉了一大串最重要的内容终于开始了:1.首先,按照产品数据库中的连线图完成mpu6050的连线,注意调用dmp需要将mpu6050的INT接到arduino的digital 2口。2.然后,从 https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050 搞到mpu6050库这个库比一般的mpu6050库多出来了几个文件:
MPU6050_6Axis_MotionApps20.h               六轴MotoinApps
MPU6050_9Axis_MotionApps20.h               九轴MotoinApps
Examples                                                   示例 3.打开库中自带的示例通过不同的定义实现输出不同结果:#define OUTPUT_READABLE_QUATERNION            显示实际的四元数(w,x,y,z)
#define OUTPUT_READABLE_EULER                     显示欧拉角
#define OUTPUT_READABLE_YAWPITCHROL          显示俯仰/滚动角(度)
#define OUTPUT_READABLE_REALACCEL         #define OUTPUT_READABLE_WORLDACCEL            #define OUTPUT_TEAPOT                  (默认的)配合teapot的processing演示的输出(后面两个功能没看懂...具体可以看实例代码中102-113行)数据的稳定性:得到的数据的噪声很小,pitch和roll的变动幅度在0.1度以内。
1.通过DMP示例代码输出的ypr角 4.可能出现的问题:如果运行其自带的例子MPU6050_DMP6,发现不能正确得到结果,数据是乱的,有一定规律,隔几个数就出现一个FIFO溢出错误,在arduino loop代码最后mpu.resetFIFO();采样数据就稳定了。陀螺仪数据需要自动校正,程序开始启动的一段时间里ypr角有误差,自动校正完成之后得到的数据才会稳定正确。目前还没找到很好的办法。yaw轴就没有相应的校正参考,陀螺仪的输出会漂移,需要yaw轴值可以拓展磁感传感器校正升级为九轴加速度传感器。使用mpu6050时发现电机的转动对它的干扰较大,建议使用干扰较小的电机或者进行一定的抗扰处理。


touchfree 发表于 2015-8-3 13:19:05

不错不错

金轮法王 发表于 2015-8-3 13:43:59

touchfree 发表于 2015-8-3 13:19
不错不错

:lol:lol:lol

山南水北阳光好 发表于 2023-10-7 16:59:59

请问有mind+的库吗?
页: [1]
查看完整版本: 浅谈mpu-6050