MPU6050(初步调试代码:度数相差初步调试代码:度数相差1-2度度)
补偿原理是取当前倾角和加速度获得倾角差值进行放大,然后与陀螺仪角速度叠加后再积分,从而使倾角最跟
踪为加速度获得的角度0.5为放大倍数,可调节补偿度;gyro_time为系统周期10ms。
************************************************************************/
#define YCC_GYRO_GLOBALS
#include "stm32f10x.h"
#include "main.h"
#include <stdio.h>
#include <math.h>
#include <string.h>
//定义MPU6050内部地址********************
#define SMPLRT_DV 0x19 //采样率分频,典型值:0x07(125Hz)
#defineCONFIG0x1A //低通滤波频率,典型值:0x06(5Hz)
#define GYRO_CONFIG0x1B //陀螺仪自检及测量范围及高通滤波频率,典型值:0x18(不自检,2000deg/s)
#define ACCEL_CONFIG0x1C //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)
#define AX_H0x3B //储存最近的X,Y,Z轴加速度计测量值
#defineAX_L0x3C
#defineAY_H0x3D
#defineAY_L0x3E
#defineAZ_H0x3F
#defineAZ_L0x40
#defineTEMP_H0x41 //储存最近温度传感器的测量值
#define TEMP_L0x42
#define GX_H0x43 //储存最近的X,Y,Z轴陀螺仪感应器的测量值
#define GX_L0x44
#define GY_H0x45
#define GY_L0x46
#define GZ_H0x47
#define GZ_L0x48
#define PWR_M0x6B //电源管理,典型值:0x00(正常启动)
#define FIFO_COUNT_H0x72 //必须按从高到低的顺序读取
#define FIFO_COUNT_L0x73
#define WHO_AM_I0x75 //IIC地址寄存器(默认数值:0x68,只读)
#defineMPU6050_Addr 0xD0 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改
//******角度参数************
static float Angle_x,Angle_y,Angle_z; //小车最终倾斜角度
static float Accel_x,Accel_y,Accel_z; //小车加速度计算角度
评论0