笔记整理自B站UP主江科大自化协教程《[10-2] MPU6050简介_哔哩哔哩_bilibili》,所用单片机也为教程推荐单片机。
MPU6050简介
如果芯片里再集成一个3轴的磁场传感器,测量XYZ轴的磁场强度,那就叫做9轴姿态传感器,如果再集成一个气压传感器,测量气压大小,那就叫做10轴姿态传感器,一般气压值反映的是高度信息,海拔越高,气压越低,所以气压计是单独测量垂直地面的高度信息的。
姿态角或者叫做欧拉角
以飞机为例,欧拉角就是飞机机身相对于初始三个轴的夹角,飞机机头下倾或者上仰,这个轴的夹角叫做俯仰,Pitch;飞机机身左翻滚或者右翻滚,这个轴的夹角叫做滚转,Roll;飞机机身保持水平,机头向左转向或者向右转向,这个轴的夹角叫做偏航,Yaw。欧拉角就表达了飞机此时的姿态。
要获得精确且稳定的欧拉角,需要多种数据融合起来,常见的数据融合算法,一般有互补滤波、卡尔曼滤波等,这节并不涉及姿态解算的内容,只是把传感器的数据读取出来显示在OLED上。
陀螺仪具有动态稳定性,不具有静态稳定性;加速度计是静态稳定,动态不稳定,这两种传感器的特性正好互补,进行互补滤波,这是姿态解算的大体思路。
MPU6050参数
0xD0是MPU6050的从机地址,融入了读写位的从机地址
如果说0x68是MPU6050的从机地址,这是直接把7位地址转换十六进制得到的,在实际发送第一个字节时,先左移1位,再或上读写位。
以上是两种从机地址的表示方式,无论哪种表示方式,得到I2C第一个字节都是一样的。
在下面的程序中,统一MPU6050的从机地址是0xD0
硬件电路
SCL和SDA,模块已经内置了两个4.7K的上拉电阻,所以在接线的时候,直接把SCL和SDA接在GPIO口就行了。
XCL和XDA,为了扩展芯片的功能,通常用于外接磁力计或者气压计,
AD0:接低电平,7位从机地址就是1101000;接高电平,7位从机地址就是1101001;电路中接了一个电阻默认下拉到低电平,所以引脚悬空的话就是低电平。
供电
MPU6050芯片的VDD供电是2.375~3.46V,属于是3.3V供电的设备,不能直接接5V,所以为了扩大供电范围,加了3.3V稳压器,这样接5V供电也是可以的。
MPU6050框图