一、MPU6050简介
MPU6050是一个6轴姿态传感器(3轴加速度计和3轴陀螺仪传感器),可以测量芯片自身X、Y、Z轴的加速度、角度参数,通过数据融合,可以得到姿态角。
二、简介分析
1.常见的姿态传感器以及它的组成部分:
![在这里插入图片描述](https://img-blog.csdnimg.cn/43fde2d19eb745228a8e55cd738558b0.png)
2.姿态角(欧拉角):
简单地描述以飞机为例,飞机机身对应三个轴的夹角,机头下倾或者上仰,这个轴的夹角叫俯仰(pitch)。飞机机身左翻滚或者右翻滚,这个轴的夹角叫做滚转(roll),飞机机身向左转向或者向右转向,这个轴的夹角叫做偏航(raw)。 所以欧拉角就是表述姿态的一个参数。为了保持飞机的姿态平稳,必须要得到一个精确且稳定的欧拉角。一种传感器不能获得精确且稳定的欧拉角,要获得精确稳定的欧拉角,需要多个传感器进行数据融合。常见的数据融合算法有互补滤波、卡尔曼滤波等。
3. X、Y、Z轴的定义:
横向的是x轴,纵向的是Y轴,垂直与芯片的是Z轴。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8c1a683dd4744177b067db0ee991a5a5.png)
4.加速度计:
以下图为例,中间是一个具有一定质量,左右有弹簧的小滑块,小滑块移动时,滑块上的电位器也跟着移动,通过电位器的电压,就能够知道滑块的加速度值。 这个加速度计实际上是一个弹簧测力计,根据牛顿第二定律F=ma,想要测量加速度a,只需要找一个单位质量的物体,测量它所受的力F就行了。 在MPU6050中,X、Y、Z轴都具有一个加速度计,以下面的图为例,假设芯片里有6个测力的秤组成一个正方体,正方体内部放一个大小正好的单位质量小球,小球压在一个面上,就会产生对应轴的数据输出。如果压在上面为正值,压在下面为负值,6个面测的力就是3个轴的加速度值。 加速度计具有静态稳定性,不具有动态稳定性。假设芯片向左倾斜放置,底面和左面都受力,求一个三角函数,就能得到向左的倾角。但是这个倾角只有在静态时生效。因为加速度分重力加速度和运动加速度,如果此时芯片运动起来,这个三角函数的倾角就会受运动加速度的影响。(向前加速运动时,芯片的底面和左面也受力,无法判断芯片的状态是向左倾斜放置还是向前加速。)
5.陀螺仪传感器:
陀螺仪:一个旋转物体的旋转轴所指的方向在不受外力影响时,是不会改变的。 如图所示,中间是一个有一定质量的旋转轮,外面是3个轴的平衡环,当中间的旋转轮高速旋转时,根据角动量守恒原理,这个旋转轮具有保持它原有角动量的趋势。这个趋势可以保持旋转轴方向不变,当外部物体转动时,内部的旋转轴方向不会转动。这会在平衡环连接处产生角度偏差,如果在连接处放一个电位器,测量电位器的电压,就能得到角度了。 但是MPU6050陀螺仪,并不能直接测量角度。芯片内部的陀螺仪测量的时角速度,分别表示了此时芯片绕X、Y、Z轴旋转的角速度。对角速度进行积分,就可以得到角度。通过角速度积分得到的角度也有局限性,当物体静止时,角速度会因为噪声无法完全归零,经过积分的累积,噪声会导致计算出来的角速度产生缓慢的偏移。但是这个角度不会受物体运动的影响。 加速度计具有静态稳定性,陀螺仪具有动态稳定性,这两种传感器的特性正好互补。所以取长补短,进行互补滤波,就能获得稳定的姿态角了。
三、MPU6050参数
16位ADC采集传感器的模拟信号,量化范围:-32768~32767。加速度计满量程范围选择:±2、±4、±8、±16(g) g表示重力加速度1g=9.8m/s²陀螺仪满量程选择:±250、±500、±1000、±2000(°/sec) 每秒钟旋转了多少度 (如果测量的物体运动非常剧烈,可以把满量程选择大一些,如果运动比较平缓,可以选择更小的量程,这样分辨率会更大。)可配置的数字低通滤波器 (在这个芯片可以配置寄存器来选择对输出的数据进行低通滤波)可配置的时钟源和可配置的采样分频 (为AD转换和芯片内部其他电路提供时钟,控制分频系数,可以控制AD转化的快慢。)I2C从机地址:当AD0=0时,地址为1101000,当AD0=1时,地址为1101001,AD0是板子引出来的引脚,可以调节I2C从机地址的最低位。 (16位表示时,有两种方式,①是把1101000转成16进制0x68,但是因为还有一位读写位,一般使用(0x68 |