随着科技的发展,我们经常看到有人用平衡车代步、使用无人机进行航拍。但这些是怎么实现的呢?平衡车和无人机在使用的时候是怎样保持平衡与稳定的呢?
其实,平衡车和无人机在内部都用到陀螺仪传感器和加速度计传感器,用来检测车体的姿态以及运动时发生的变化,再通过各方面的共同协调配合,从而保持平衡车和无人机的平衡与稳定。本文主要介绍MPU6050的原理及应用。
MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,内带3轴陀螺仪和3轴加速度传感器(3+3=6,因此我们常说是6轴传感器,如果再加上个3轴磁力计,就一共是9轴传感器),并且含有一个第二IIC接口(XCL和XDA),可用于连接外部磁力传感器,利用自带数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主IIC接口,可以向应用端输出完整的9轴姿态融合演算数据。有了DMP,我们可以使用InvenSense公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度 。
MPU6050芯片一共有24个引脚
完整引脚定义如下:
从表中能看到,有些引脚是复用的。
MPU6050本身是可以支持IIC或者SPI接口来读取数据的,但是不同的模块可能引出来的接口不一样,比如我们常用的引出8脚带IIC接口的模块如下:
其引出的8个引脚定义表如下:
其中,SCL 和 SDA 是连接 MCU 的 IIC 接口,MCU 通过这个 IIC 接口来控制 MPU6050,另外还有一个 IIC 接口:AUX_CL 和 AUX_DA,这个接口可用来连接外部从设备,比如磁传感器,这样就可以组成一个九轴传感器。VLOGIC 是 IO 口电压,该引脚最低可以到 1.8V,我们一般直接接 VDD 即可。AD0 是从 IIC 接口(接 MCU)的地址控制引脚,该引脚控制IIC 地址的最低位。如果接 GND,则 MPU6050 的 IIC 地址是:0X68,如果接 VDD,则是0X69,注意:这里的地址是不包含数据传输的最低位的(最低位用来表示读写)。例 0x68:1101000 + 最低位表示读写,构成8位的IIC地址。
模块自带了 3.3V 超低压差稳压芯片,给 MPU6050 供电,因此外部供电可以选择:3.3V / 5V 都可以。模块通过 P1 排针与外部连接,引出了 VCC、GND、IIC_SDA、IIC_SCL、MPU_INT 和 MPU_AD0 等信号,其中,IIC_SDA 和 IIC_SCL 带了 4.7K上拉电阻,外部可以不用再加上拉电阻了,另外 MPU_AD0 自带了 10K 下拉电阻,当 AD0悬空时,默认 IIC 地址为(0X68)。
MPU6050的固连参考坐标如下图所示:
MPU6050具有如下特性:
① 以数字形式输出 6 轴或 9 轴(需外接磁传感器)的旋转矩阵、四元数(quaternion)、欧
拉角格式(Euler Angle forma)的融合演算数据(需 DMP 支持)
② 具有 131 LSBs/°/sec 敏感度与全格感测范围为±250、±500、±1000 与±2000°/sec
的 3 轴角速度感测器(陀螺仪)
③ 集成可程序控制,范围为±2g、±4