MPU6050简介
-
MPU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角(欧拉角),常应用于平衡车、飞行器等需要检测自身姿态的场景。
-
3轴加速度计(Accelerometer):测量X、Y、Z轴的加速度
简称Accel或者Acc或者A,
在X,Y,Z轴分别布置了加速度计 -
3轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度
简称Gyro或者G,MPU6050参数
-
16位ADC采集传感器的模拟信号,量化范围:-32768~32767
-
加速度计满量程选择:±2、±4、±8、±16(g)
-
陀螺仪满量程选择: ±250、±500、±1000、±2000(°/sec)
-
可配置的数字低通滤波器
如果输出数据抖动太厉害,可以加一点低通滤波,这样输出数据就会平缓一些。 -
可配置的时钟源
-
可配置的采样分频
-
I2C从机地址:1101000(AD0=0)
1101001(AD0=1)
十六进制表示会有两种表示方式,以1101000为例,第一种就是单纯的把这7位二进制数转换为十六进制,这里110 1000第四位和高三位切开,转换位十六进制就是0x68,I2C时序高7位是从机地址,最低位是读写位,所以在发送从机地址0x68时,要先把0x68<<1左移一位,然后按位或上读写位;另一种是把0x68左移1位之后的地址当做从机地址,左移之后就是0xD0,这个时候要写就直接把0xD0当做第一个字节,如果要读就把0xD0或上0x01,即0xD1当做第一个字节。硬件电路
XCL、XDA是芯片里面的主机I2C通信引脚,设计这两个引脚是为了扩展芯片功能,在6轴传感器不够用的时候,XCL、XDA可以扩展外接磁力计或者气压计,当接上磁力计或者气压计之后,MPU6050可以直接访问这些扩展芯片的数据,把这些扩展芯片的数据读取到MPU6050,在MPU6050里面会有DMP单元进行数据融合和姿态解算。
MPU6050框图
寄存器
-
SMPLRT_DIV,采样频率分频器,里面的8位为一个整体作为分频值,这个寄存器可以配置采样频率的分频系数,分频越小内部AD转换就越快,数据寄存器刷新就越快。
-
CONFIG,配置寄存器,外部有两部分,外部同步设置和低通滤波器配置。
-
GYRO_CONFIG,陀螺仪配置寄存器,高三位是XYZ轴的自测使能位,中间两位是满量程选择位,后面三位没用到。
-
ACCEL_CONFIG,加速度计配置寄存器,高三位是自测使能位,中间两位是满量程选择位,后面三位用来配置高通滤波器。
-
ACCEL_XOUT_H ACCEL_XOUT_L
ACCEL_YOUT_H ACCEL_YOUT_L
ACCEL_ZOUT_H ACCEL_ZOUT_L ,加速度计的数据寄存器 -
TEMP_OUT_H TEMP_OUT_L ,温度传感器数据寄存器
-
GYRO_XOUT_H GYRO_XOUT_L
GYRO_YOUT_H GYRO_YOUT_L
GYRO_ZOUT_H GYRO_ZOUT_L,陀螺仪数据局寄存器 -
PWR_MGMT_1,电源管理寄存器1,Bit7设备复位,Bit6睡眠模式,Bit5循环模式,Bit3温度传感器失能,Bit2,1,0三位选择系统的时钟来源。
-
PWR_MGMT_2,电源管理寄存器2。
-
WHO_AM_I,ID号,寄存器只读