基于arduino的MPU6050的使用

摘要
是公司推出的全球首款整合性6轴运动处理组件,内部整合了3轴陀螺仪和3轴加速度传感器 。在制作自平衡小车和四轴六轴时需要用来做姿态的监控 。
本文核心记录使用 uno开发板获取三轴数据的基本操作
硬件接线
模块使用的数据接口协议是I2C总线协议,在中使用Wire类库来实现的访问 。
接线方式:
//VCC–5V
//GND–GND
//SCL–A5
//SDA–A4

基于arduino的MPU6050的使用

文章插图
【基于arduino的MPU6050的使用】//AD0-- (AD0引脚为地址选择引脚,悬空或者接GND,硬件地址为0x68,接VCC/高电平硬件地址为0x69)
//INT-- (中断引脚,如果用到可以接中端口,此处不接)
需要使用到的Wire库方法
示例1.从中读数据
// A code blockWire.beginTransmission(0x68); //开启MPU6050的传输Wire.write(0x3F); //指定需要读取数据的寄存器地址Wire.requestFrom(0x68, 2, true); //向器件发出2个字节数据的请求Wire.endTransmission(true); //结束传输,释放总线while ((Wire.available() < 2));//等待2字节数据存入缓冲区int val = Wire.read() << 8 | Wire.read();
示例.向中写数据
Wire.beginTransmission(0x68); //开启MPU6050的传输Wire.beginTransmission(0x68); //开启MPU6050的传输Wire.write(0x6B); //指定寄存器地址Wire.write(0); //写入一个字节的数据Wire.endTransmission(true); //结束传输释放总线
模块的访问
1.启动器件:在对进行各项操作前,需要先启动该器件,具体操作就是向它的0x6B写入一个字节的数据0 。
//向0x6B写入一个字节的数据0,启动器件void MPU_START(void){Wire.beginTransmission(0x68); //开启MPU6050的传输Wire.write(0x6B); //指定寄存器地址Wire.write(0); //写入一个字节的数据0Wire.endTransmission(true); //结束传输释放总线}
2.配置的倍率:默认加速度倍率±2g,默认角速度±250度/s 。寄存器0x1B和0x1C两个寄存器的bit4+bit3分别用来配置角速度倍率和加速度倍率,用f表示倍率 。
//角速度倍率更新配置void GYRO_COFIG(unsigned int f){Wire.beginTransmission(0x68); //开启MPU-6050的传输Wire.write(0x1B); //角速度倍率寄存器的地址Wire.requestFrom(0x68, 1, true); //请求读出原配置unsigned char acc_conf = Wire.read();//原配置读出acc_conf = ((acc_conf & 0xE7) | (f << 3));//倍率配置更新Wire.write(acc_conf);更新倍率写入Wire.endTransmission(true); //结束传输,释放总线}//加速度倍率更新配置void ACCEL_COFIG(unsigned int f){Wire.beginTransmission(0x68); //开启MPU-6050的传输Wire.write(0x1C); //加速度倍率寄存器的地址Wire.requestFrom(0x68, 1, true); //请求读出原配置unsigned char acc_conf = Wire.read();//原配置读出acc_conf = ((acc_conf & 0xE7) | (f << 3));//倍率配置更新Wire.write(acc_conf);更新倍率写入Wire.endTransmission(true); //结束传输,释放总线}
3.数据获取和换算:加速度角速度和温度数据均为16位数据,寄存器地址如下:
0x3B,加速度计的X轴分量ACCEL_X0x3D,加速度计的Y轴分量ACCEL_Y0x3F,加速度计的Z轴分量ACCEL_Z0x41,当前温度TEMP0x43,绕X轴旋转的角速度GYRO_X0x45,绕Y轴旋转的角速度GYRO_Y0x47,绕Z轴旋转的角速度GYRO_Z
从寄存器读取到的数据为2个字节的对应的数据分量,需要将获取的数据分量换算成相应的加速度和角速度 。
换算方法:
实际数值=对应数据分量/32768倍率
假设,角速度和加速度倍率配置均默认为0,则角速度倍率±250度/s,加速度倍率为±2g 。则X轴角速度和加速度分别为