MPU6050首例整合性6轴的姿态模块(转)

源:MPU6050首例整合性6轴的姿态模块

      Mpu6050为全球首例整合3轴陀螺仪、3轴加速器、含9轴融合演;MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。       MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。

      MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。

应用:

  运动感测游戏;现实增强;电子稳像 (EIS: Electronic Image Stabilization)      

     光学稳像(OIS: Optical Image Stabilization);行人导航器;“零触控”手势用户接口;姿势快捷方式

认证市场:

    智能型手机;平板装置设备;手持型游戏产品;游戏机;3D遥控器;可携式导航设备

特征   

1、以数字输出6轴或9轴的旋转矩阵、四元数(quaternion)、欧拉角格式(Euler Angle forma)的融合演算数据。   

2、具有131 LSBs/°/sec 敏感度与全格感测范围为±250、±500、±1000与±2000°/sec 的3轴角速度感测器(陀螺仪)。   

3、可程式控制,且程式控制范围为±2g、±4g、±8g和±16g的3轴加速器。   

4、移除加速器与陀螺仪轴间敏感度,降低设定给予的影响与感测器的飘移。   

5、数字运动处理(DMP: Digital Motion Processing)引擎可减少复杂的融合演算数据、感测器同步化、姿势感应等的负荷。   6

、运动处理数据库支持Android、Linux与Windows   

7、内建之运作时间偏差与磁力感测器校正演算技术,免除了客户须另外进行校正的需求。   

8、以数位输出的温度传感器   

9、以数位输入的同步引脚(Sync pin)支援视频电子影相稳定技术与GPS   

10、可程式控制的中断(interrupt)支援姿势识别、摇摄、画面放大缩小、滚动、快速下降中断、high-G中断、零动作感应、触击感应、摇动感应功能。   11、VDD供电电压为2.5V±5%、3.0V±5%、3.3V±5%;VDDIO为1.8V± 5%   

12、陀螺仪运作电流:5mA,陀螺仪待命电流:8A;加速器运作电流:8A,加速器省电模式电流: 8A@10Hz   

13、高达400kHz快速模式的I2C,或最高至20MHz的SPI串行主机接口(serial host interface)   

14、内建频率产生器在所有温度范围(full temperature range)仅有±1%频率变化。   

15、使用者亲自测试   

16、10,000 g 碰撞容忍度   

17、为可携式产品量身订作的最小最薄包装 (4x4x0.9mm QFN)   

18、符合RoHS及环境标准MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合

  演算技术:InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。  从MPU6050的技术文档里我们可以看得出来一些重要参数出来!如果比例数是多少,芯片的特性都是可以看得出来的!

 

第一张是MPU6000与MPU6050芯片的比较!

第二张是MPU6000与MPU6050芯片的最小驱动电路的连接!

 第三张是陀螺仪的设计规范表格!

 

 第四张是加速度的设计规范表格!

下面是arduino与MPU6050的小模块的连线图:   

    A4接SDA     A5接SCL   vcc接3v3商家说可以接5v但是保守起见还是接了3.3v   GND接GND不过mpu受温度的影响精度相差比较大!   

注意:本模块采用的是IIC通信方式,所以我们只需要连接四跟线就可以完成电路的连接,简单方便!

1.关于6050 陀螺仪和加速度计 的角速度和角度计算。   

    A.陀螺仪角度计算,很多帖子中都提到了用的是积分,但是我这里还是重新讲下。

      angle_n = angle_n-1 + (Gyro-C_Gyro)*R_Gyro;

      (1)angle_n  当前角度值,它的单位是度(°)  

      (2)angle_n-1 上一次计算出的角度值  

      (3)Gyro 陀螺仪敏感轴偏转值,也就是当前敏感轴读数         

                 (4)C_Gyro 陀螺仪零点偏移值,这个值的测量方法是:将陀螺仪敏感轴水平放置静止时的读数,我的零点偏移值是水平、垂直、倒置,分别取1024次,作平均值得出的,读数是-177.8865041,但是最后在程序实践中,调整到-99.90。或许还有别的办法,自己看着办吧。                          (5)R_Gyro 是陀螺仪比例。飞思卡尔的参考中提到这个值是可以计算出来的,下面我会提供下载,大家自己去看看怎么算的,但是在其论坛和调试手册中都提到,这个比例值还是实验法测量出来的比较准确。     

    B.加速度仪 角度计算。   

    加速度仪的角度计算有很多方法,论坛里就有2中。但是都用到了三角函数,数学没学好,照抄了也不行。参考了飞思卡尔的计算方法后大概是这样的。                   Angle_Z = (az-C_Z)*R_Z;         

               (1)angle_z 加速度计敏感轴Z轴产生倾角计算出的角度,单位度(°)   

      (2)az 是加速度仪 Z轴读数   

      (3)C_Z Z轴零点偏移量 测量方法和陀螺仪的一样。   

      (4)R_Z 加速度计Z轴比例   

    C.反复试验,MPU6050加速度计Z轴对应的是陀螺仪的X轴。不知道是不是我的有问题,还是就这么设计的?

 

posted @ 2015-06-23 17:07  酒醉的Tiger  阅读(612)  评论(0编辑  收藏  举报