come from : https://blog.csdn.net/wangwangmoon_light/article/details/52207405
管脚 名称 说明
VCC 3.3-5V (内部有稳压芯片)
GND 地线
SCL MPU6050 作为从机时 IIC 时钟线
SDA MPU6050 作为从机时 IIC 数据线
XCL MPU6050 作为主机时 IIC 时钟线
XDA MPU6050 作为主机时 IIC 数据线
AD0 地址管脚,该管脚决定了 IIC 地址的最低一位
INT 中断引脚
当 AD0 管脚接低电平的时候,从机地址是 0xD0。
从 MPU6050 的寄存器中 ,我们可以得到答案,MPU6050 作为一个 IIC 从机设备的时候,有 8 位地址,高7 位的地址是固定的,就是 WHO AM I 寄存器的默认——0x68,最低的一位是由 AD0 的连线决定的。
我们还需要将那些数据根据数学方面的东西转化为姿态有关的四元数和欧拉角。
这个过程有两种办法,一种你可以去学下数学,然后编程把我们上面获取的原始数据转化为四元数和欧拉角;
另一种是直接用MPU6050 内部的 DMP。
这里我们介绍后者。
DMP 是什么意思? DMP 就是指 MPU6050 内部集成的处理单元,可以直接运算出四元数和姿态,而不再需要另外进行数学运算。DMP 的使用大大简化了四轴的代码设计。DMP 是数字运动处理器的缩写,顾名思义 mpu6050 并不单单是一款传感器,其内部还包含了可以独立完成姿态解算算法的处理单元。如在设计中使用 DMP 来实现传感器融合算法优势很明显。首先,invensense 官方提供的姿态解算算法应该比像楼主这样的小白要可靠的多。其次,由 DMP 实现姿态解算算法将单片机从算法处理的压力中解放出来,单片机所要做的是等待DMP 解算完成后产生的外部中断,在外部中断里去读取姿态解算的结果。这样
单片机有大量的时间来处理诸如电机调速等其他任务,提高了系统的实时性。
四元数就是 4 个数,经过 DMP 或 数学+软件 你就可以得到四元数,四元数就是 4 个数,可以表征姿态,经过几个数学公式之后就可以的出姿态,姿态包括 pitch,roll,yaw。
4.1 S REGISTERS 3 13 TO 6 16 – – SELF TEST REGISTERS 自检寄存器
4.2 REGISTER 5 25 – – SAMPLE RATE DIVIDER 采样频率分频器
4.3 REGISTER 6 26 – – CONFIGURATION 配置
4.4 REGISTER 7 27 – – GYROSCOPE CONFIGURATION 陀螺仪配置
4.5 REGISTER 8 28 – – ACCELEROMETER CONFIGURATION 加速度计配置
4.6 REGISTER 1 31 – – MOTION DETECTION THRESHOLD 运动检测阀值
4.7 REGISTER 5 35 – – FIFO ENABLE FIFO 使能
4.8 REGISTER 6 36 – – I2C MASTER CONTROL I2C 主机控制
4.9 S REGISTERS 7 37 TO 9 39 – – I2C SLAVE 0 0 0 0 CONTROL I2C 从机 0 0 0 0 控制
4.10 S REGISTERS 0 40 TO 2 42 – – I2C SLAVE 1 1 1 1 CONTROL I2C 从机 1 1 1 1 控制
4.11 S REGISTERS 3 43 TO 5 45 – – I2C SLAVE 2 2 2 2 CONTROL I2C 从机 2 2 2 2 控制
4.12 S REGISTERS 6 46 TO 8 48 – – I2C SLAVE 3 3 3 3 CONTROL I2C 从机 3 3 3 3 控制
4.13 S REGISTERS 9 49 TO 3 53 – – I2C SLAVE 4 4 4 4 CONTROL I2C 从机 4 4 4 4 控制
4.14 REGISTER 4 54 – – I2C MASTER STATUS I2C 主机状态
4.15 REGISTER 5 55 – – INT PIN / / / / S BYPASS ENABLE CONFIGURATION
INT 引脚/ / / /效 旁路有效 使能配置
4.16 REGISTER 6 56 – – INTERRUPT ENABLE 中断使能
4.17 REGISTER 8 58 – – INTERRUPT STATUS 中断状态
4.18 S REGISTERS 9 59 TO 4 64 – – ACCELEROMETER MEASUREMENTS
加速度计测量值
4.19 S REGISTERS 65 AND 6 66 – – TEMPERATURE MEASUREMENT
温度测量值
4.20 S REGISTERS 7 67 TO 2 72 – – GYROSCOPE MEASUREMENTS
陀螺仪测量值
4.21 S REGISTERS 3 73 TO 6 96 – – EXTERNAL SENSOR DATA 外部传感器数据
4.22 REGISTER 9 99 – – I2C SLAVE 0 0 0 0 DATA OUT I2C 从机 0 0 0 0 数据输出
4.23 REGISTER 0 100 – – I2C SLAVE 1 1 1 1 DATA OUT I2C 从机 1 1 1 1 数据输出
4.24 REGISTER 1 101 – – I2C SLAVE 2 2 2 2 DATA OUT I2C 从机 2 2 2 2 数据输出
4.25 REGISTER 2 102 – – I2C SLAVE 3 3 3 3 DATA OUT I2C 从机 3 3 3 3 数据输出
4.26 REGISTER 3 103 – – I2C MASTER DELAY CONTROL I2C 主机延时管理
4.27 REGISTER 4 104 – – SIGNAL PATH RESET 信号通道复位
4.28 REGISTER 5 105 – – MOTION DETECTION CONTROL 运动检测控制
4.29 REGISTER 6 106 – – USER CONTROL 用户配置
4.30 REGISTER 7 107 – – POWER MANAGEMENT 1 1 1 1 电源管理 1 1 1 1
4.31 REGISTER 8 108 – – POWER MANAGEMENT 2 2 2 2 电源管理 2 2 2 2
4.32 REGISTER 114 AND 5 115 – – FIFO COUNT REGISTERS FIFO O O O 计数寄存器
4.33 REGISTER 6 116 – – FIFO READ WRITE FIFO 读写
4.34 REGISTER 7 117 – – WHO AM I I I I 我是谁
https://blog.csdn.net/wangwangmoon_light/article/details/52207405
MPU6050初始化的步骤:
1)初始化IIC接口
初始化与MPU6050连接的SDA和SCL数据线
2)复位MPU6050,让MPU6050内部的所有寄存器恢复默认值
通过对电源管理寄存器1(0x6B)的bit7写1实现,复位后,电源管理寄存器1恢复默认值(0x40),然后必须设置该寄存器位0x00,以唤醒MPU6050,进入正常工作状态。
3)设置角速度传感器和加速度传感器的满量程范围
设置两个传感器的满量程范围(FSR),分别通过陀螺仪配置寄存器(0x1B)和加速度传感器配置寄存器(0x1c)设置,我们一般设置陀螺仪的满量程范围为±2000dps。
4)设置其他参数,关闭中断,关闭AUX IIC接口,禁止FIFO,设置陀螺仪采样率和设置数字低通滤波器等
配置中断,由中断使能寄存器(0x38)控制;设置AUX IIC接口,用户控制寄存器(0x6A)控制;设置FIFO,由FIFO使能寄存器(0x23)控制;陀螺仪采样率,由采样率分频寄存器(0x19)控制;设置数字低通滤波器,由配置寄存器(0x1A)控制。
5)配置系统时钟源并使能角速度传感器和加速度传感器
由电源管理寄存器1(0x6B)控制,一般选择x轴陀螺PLL作为时钟源,以获得更高精度的时钟。
SCL和SDA是连接MCU的IIC接口,MCU通过这个IIC接口来控制MPU6050,另外还有一个IIC接口:AUX_CL和AUX_DA,这个接口可用来连接外部从设备,比如磁传感器,这样就可以组成一个九轴传感器。
6)使能角速度传感器(陀螺仪)和加速度传感器。由电源管理寄存器2(0x6C)控制
6)
7)
8)
9)
/*********************************************/
http://m.elecfans.com/article/578850.html
陀螺仪(Gyroscope、GYRO-Sensor)也叫地感器,传统结构是内部有个陀螺,如下图所示(三轴陀螺),三轴陀螺仪的工作原理是通过测量三维坐标系内陀螺转子的垂直轴与设备之间的夹角,并计算角速度,通过夹角和角速度来判别物体在三维空间的运动状态。三轴陀螺仪可以同时测定上、下、左、右、前、后等6个方向(合成方向同样可分解为三轴坐标),最终可判断出设备的移动轨迹和加速度。
也就是说陀螺仪通过测量自身的旋转状态,判断出设备当前运动状态,是向前、向后、向上、向下、向左还是向右呢,是加速(角速度)还是减速(角速度)呢,都可以实现,但是要判断出设备的方位(东西南北),陀螺仪就没有办法。
传统的陀螺仪属于机械式的,随技术发展,还有出现了振动式陀螺仪、激光陀螺仪、微机电机械陀螺仪等,无论是在体积微型化、测量精度和易用性上都有大大提高。
加速计(Accelerometer、G-Sensor)也叫重力感应器,实际上是可以感知任意方向上的加速度(重力加速度则只是地表垂直方向加速度),加速计通过测量组件在某个轴向的受力情况来得到结果,表现形式为轴向的加速度大小和方向(XYZ),这一点又有点类似于陀螺仪,但陀螺仪的更多关注自身旋转情况(原位运动),加速计则主要是测量设备的受力情况,也就是三轴运动情况,尽管加速计也可能在某个小范围换算出角速度的可能,但设计原理决定似乎更适合于空间运动判断。
两者看起来很接近,不过加速度计只能侦测物体的移动行为,并不具备精确侦测物体角度改变的能力,陀螺仪可以侦测物体水平改变的状态,但无法计算物体移动的激烈程度。