资讯详情

陀螺仪 MPU6050 解决不同方式安装

陀螺仪 MPU6050 以不同的方式解决安装(基于安装(基于不同的方式)STM32库函数)

?


1、背景

???传感器(姿态传感器/角度传感器)需要水平放置和安装。如图1所示,陀螺仪水平安装PCB在底板上。其中,陀螺仪本身 x-y轴 已在其模块上标记,其z轴可通过右手定则获得(食指沿x轴,中指沿y轴,z轴沿拇指指向) 在这里插入图片描述

??? ??? ??? ??? ??? ? ??? ? ??? ???

1. 重力沿 z轴     /* Don't remove gravity! */     if (accel[2] > 0L)      0是x轴,1是y轴,2是z轴,DMP默认程序写的是accel[2],         accel[2] -= 65536L;  因此,只有将芯片水平放置,才能使z轴与G重合 mpu_run_self_test 函数自检成功     else         accel[2]  = 65536L; 2.重力沿 x轴     if (accel[0] > 0L)           accel[0] -= 65536L;       else         accel[0] += 65536L;
       
3.重力沿 y轴
    if (accel[0] > 0L)  
        accel[0] -= 65536L;  
    else
        accel[0] += 65536L;


2、需求与解决

    

陀螺仪方向设置
默认方向
static signed char gyro_orientation[9] = { 
         1, 0, 0,
                                           0, 1, 0,
                                           0, 0, 1};
                                           
1.将默认方向更改为:系统方向与 x-y-z不同;  系统 xs 为 z , 系统 ys 为 y ,系统  zs 为 -x
static signed char gyro_orientation[9] = { 
         0, 0, 1,   
                                           0, 1, 0,
                                          -1, 0, 0};

           

第一步:更改重力方向
static int get_st_biases(long *gyro, long *accel, unsigned char hw_test)
{ 
        
	...
	...
	/* Don't remove gravity! */ // 调整重力方向
    if (accel[0] > 0L)        0是x轴,1是y轴,2是z轴,DMP默认程序写的是accel[2],
        accel[0] -= 65536L;   所以只能通过将芯片水平放置让z轴和G重合才能让mpu_run_self_test函数自检成功
    else
        accel[0] += 65536L;
    ...
}

第二步:更改陀螺仪方向
// 系统方向与 x-y-z不同; 系统 xs 为 z , 系统 sy 为 y ,系统 sz 为 -x
static signed char gyro_orientation[9] = { 
         0, 0, 1,   
                                           0, 1, 0,
                                          -1, 0, 0};

      


标签: 陀螺仪传感器mpu

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台