当前位置首页 > 实验视频

六轴运动传感器的加速度、角速度和倾斜角度

更新时间:2024-01-01

下载地址

免费下载!

[!--downpath--]

资源介绍

一、简介nyZ物理好资源网(原物理ok网)

根据六轴运动传感的原始数据,估算设备当前状态的加速度、角速率和倾斜角度。本项目的主控芯片是(SDK:SDK17.0.2.),但算法通用,读取原始数据的完整工程来自艾克姆,已上传个人主页。nyZ物理好资源网(原物理ok网)

二、初始化和寄存器配置nyZ物理好资源网(原物理ok网)

通常在唤起之前就会用MCU读一下设备地址以监测设备以及通讯是否正常:nyZ物理好资源网(原物理ok网)

// !< WHO_AM_I register identifies the device. Expected value is 0x68.
#define ADDRESS_WHO_AM_I          (0x75U) 
bool mpu6050_verify_product_id(void)
{
    uint8_t who_am_i;
    if (mpu6050_register_read(ADDRESS_WHO_AM_I, &who_am_i, 1))
    {
        if (who_am_i != MPU6050_WHO_AM_I)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return false;
    }
}
nyZ物理好资源网(原物理ok网)

上述函数返回true后加速度的五个公式,才可以开始配置寄存器初始化:nyZ物理好资源网(原物理ok网)

#define MPU_PWR_MGMT1_REG		  0x6B	//电源管理寄存器1
#define MPU_SAMPLE_RATE_REG		  0x19	//采样频率分频器
#define MPU_CFG_REG				  0x1A	//配置寄存器
#define MPU_INT_EN_REG			  0x38	//中断使能寄存器
#define MPU_GYRO_CFG_REG		  0x1B	//陀螺仪配置寄存器
#define MPU_ACCEL_CFG_REG		  0x1C	//加速度计配置寄存器
//唤醒MPU6050
(void)mpu6050_register_write(MPU_PWR_MGMT1_REG , 0x00); 
  
//设置采样率(Sample Rate = Gyroscope Output Rate / (1 + SMPLRT_DIV)):1KHz 
(void)mpu6050_register_write(MPU_SAMPLE_RATE_REG , 0x07);
//设置低通滤波器,截止频率是1K,带宽是5K 
(void)mpu6050_register_write(MPU_CFG_REG , 0x06); 
//关闭中断							
(void)mpu6050_register_write(MPU_INT_EN_REG, 0x00); 	
//陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
(void)mpu6050_register_write(MPU_GYRO_CFG_REG , 0x18); 
//配置加速度传感器量程 +-2G s,不自检 
(void)mpu6050_register_write(MPU_ACCEL_CFG_REG,0x00); 
nyZ物理好资源网(原物理ok网)

三、加速度、角速率估算公式1.加速度nyZ物理好资源网(原物理ok网)

某个轴的加速度a=Range*G*ACC/32768.其中G是当地重力加速度,ACC是该轴的加速度原始数据,Range是由配置加速度阻值时写入的参数决定的,关系如下:nyZ物理好资源网(原物理ok网)

按照初始化时写入的数据,不自检,=00=0,这儿Range=2:nyZ物理好资源网(原物理ok网)

//配置加速度传感器量程 +-2G s,不自检 
(void)mpu6050_register_write(MPU_ACCEL_CFG_REG,0x00); 
nyZ物理好资源网(原物理ok网)

2.角速率nyZ物理好资源网(原物理ok网)

某个轴的角速率g=Range*Gyro/32768.Gyro是这个轴的角速率原始数据,Range是由配置角速率阻值时写入的参数决定的,关系如下:nyZ物理好资源网(原物理ok网)

按照初始化时写入的数据,不自检,=11=3,这儿Range=2000:nyZ物理好资源网(原物理ok网)

//陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
(void)mpu6050_register_write(MPU_GYRO_CFG_REG , 0x18);
nyZ物理好资源网(原物理ok网)

四、倾斜角度公式nyZ物理好资源网(原物理ok网)

倾斜角度根据加速度原始数据估算,公式如下:nyZ物理好资源网(原物理ok网)

#define x                         0
#define z                         1
	
Angle[x] = atan2(AccValue.X, AccValue.Y)*180/3.14f;
Angle[z] = atan2(AccValue.Z, AccValue.Y)*180/3.14f;
nyZ物理好资源网(原物理ok网)

该公式适用的初始姿态是竖直的,也就是的Y轴竖直向下时是初始状态加速度的五个公式,此时的角度为0。Angle[x]是x轴与竖直平面的倾角度数,Angle[z]是z轴与水平平面的倾角度数。nyZ物理好资源网(原物理ok网)

参考:(16条消息)关于的数据获取、分析与处理的博客-CSDN博客读取nyZ物理好资源网(原物理ok网)

发表评论

最新列表

最热列表

统计代码放这里