Mini四轴自动控制(三) MPU6050-Arduino中文社区 - Powered by Discuz! Archiver

zxldwlsj 发表于 2018-8-25 21:08

Mini四轴自动控制(三) MPU6050

本帖最后由 zxldwlsj 于 2018-8-31 09:03 编辑

这一期主要介绍Arduino如何读取MPU6050的数据,当然网上有很多关于arduino读6050的资料。最重要的是Arduino有利用IIC读取6050数据的库文件,这里我把代码给出并做一下简单的注释。
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"

//实例化一个 MPU6050 对象,对象名称为 mpu
MPU6050 mpu;

//陀螺仪和加速度计数据暂存
int16_t gx, gy, gz, ax, ay, az;

//陀螺仪和加速度计数据转换成国标单位存放变量
float Gyro_x;
float Gyro_y;
float Gyro_z;
float Acc_x;
float Acc_y;
float Acc_z;

void setup()
{
Wire.begin();                            //加入 I2C 总线序列
delay(100);
mpu.initialize();                     //初始化MPU6050
delay(100);
}

void loop()
{
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);   //IIC获取MPU6050六轴数据 ax ay az gx gy gz
DataProcessing();
}
//***************DataProcessing*********************//
void DataProcessing()
{
//去掉偏移量
   Acc_x = ax-580;Acc_y = ay+120;Acc_z = az+1584;
   Gyro_x = gx-70; Gyro_y = gy-10; Gyro_z = gz-50;
   
//换算成国标单位m/s2与rad/s
   Acc_x = Acc_x/16384*9.8;
   Acc_y = Acc_y/16384*9.8;
   Acc_z = Acc_z/16384*9.8;
   Gyro_x = Gyro_x/131*3.1415926/180;
   Gyro_y = Gyro_y/131*3.1415926/180;
   Gyro_z = Gyro_z/131*3.1415926/180;
}


allen100 发表于 2020-2-17 16:45

楼主你的偏移量是怎么得到的?求教:loveliness:

zxldwlsj 发表于 2020-9-6 15:19

allen100 发表于 2020-2-17 16:45
楼主你的偏移量是怎么得到的?求教

自己测嘛 机身一定要放平
页: [1]
查看完整版本: Mini四轴自动控制(三) MPU6050