标题: 基于平衡车主板MPU6050数据读取------------moyuqilin [打印本页]

作者: moyuqilin    时间: 2016-1-31 21:14
标题: 基于平衡车主板MPU6050数据读取------------moyuqilin
      上次做了电机脉冲的采集,这回做MPU6050的数据读取。
      本以为MPU6050数据读取是个难点,特地挑了个好日子专门研究,在看过MPU6050的手册后,发现起始只要会了IIC的协议。MPU6050的数据读取就不是个问题,还好在之前跟着郭天祥老师的视频写了一回IIC的协议,这回操作起来就顺手的多了
      MPU6050采用IIC协议通讯,集成3轴陀螺仪和3轴加速度传感器,温度传感器,IIC地址1位可设置
      小车主板的IIC地址为0xd0,
      SCL接P4^6         SDA接P4^5
       在对MPU6050进行操作的时候需要将这两个引脚的模式设置一下,我在开始的时候没有设置,导致我都会来的都是FF,在这里我们将这引脚模式设为弱上拉模式,
       然后将IIC初始化,如果没有写过IIC,先去写一下IIC会好一点,
       对MPU6050初始化
       就是对MPU的几个寄存器写数据
       void MPU6050_init()                //MPU6050地址 0xd0
       {
            IIC_Write(0xd0,PWR_MGMT_1,0x00);        //解除休眠状态
            IIC_Write(0xd0,SMPLRT_DIV,0x07);        // //陀螺仪采样率,典型值:0x07(125Hz)
             IIC_Write(0xd0,CONFIG,0x04);                   //低通滤波频率,典型值:0x06(5Hz)
            IIC_Write(0xd0,GYRO_CONFIG,0x18);     //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
            IIC_Write(0xd0,ACCEL_CONFIG,0x01);        //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)
       }
      初始化可参考MPU6050的手册,我参考的是战舰 V3开发板附带的资料
      在初始化过后就可以读取数据了,读取数据就是从MPU6050的寄存器里读一个数据,数据都是由高八位和低八位寄存器组成
       用IIC读数据的方法,按照这些寄存器的地址去读,就可以读出来了
        MPU6050中还有一个叫做DMP的姿态结算的东西
        按照上述办法读取回来的是原始数据不是角度,需要进行姿态解算,具体我还未理解,接下来做整体对接的时候就要看数据的处理了,很烦的东西啊,还要分析什么加速度,平行四边形分析法,一下就把我带回了高中时候啊,
       下面附上我参考的资料和我自己写的程序
          11,ATK-MPU6050六轴传感器模块.zip (15.32 MB, 下载次数: 46)
          MPU6050.zip (50.02 KB, 下载次数: 30)


作者: jiajuntao    时间: 2016-3-1 17:30
具体采的数据是什么呢?能详细说明吗

作者: moyuqilin    时间: 2016-3-30 16:37
jiajuntao 发表于 2016-3-1 17:30
具体采的数据是什么呢?能详细说明吗

加速度计的数据和陀螺仪的数据,至于采那个轴的,因情况而定
作者: wwwasda12    时间: 2016-8-11 11:30
谢谢分享
作者: jiajuntao    时间: 2016-12-23 18:08
moyuqilin 发表于 2016-3-30 16:37
加速度计的数据和陀螺仪的数据,至于采那个轴的,因情况而定

谢谢,找到了一些模块和一些参考。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1