mpu6050判断自由落体状态的方法

mpu6050判断自由落体状态的方法

mpu6050在静止状态时,三个轴方向上的加速度值为有一个方向上的加速度大小为g,其余两个方向上为0。当mpu6050处于自由落体状态时,三个轴方向上的加速度值均为0(实际情况可能会有微小偏差)。

//将加速度传感器的原始数据(数字信号)转换为模拟信号(m/s^2):

 //获取转换后的加速度值, g自定义重力加速度值
void Get_Accelerometer(void)
{ 
      short aacx,aacy,aacz;		//加速度传感器原始数据
      MPU_Get_Accelerometer(&aacx,&aacy,&aacz);	//得到加速度传感器数据
      acc_x=2\*g\*aacx/32768;  //转换后的加速度值
      acc_y=2\*g\*aacy/32768;
 	  acc_z=2\*g\*aacz/32768;
}

//延迟自由落体状态触发。

//延迟自由落体状态触发。time:自定义t++执行最小次数,用于延迟事件触发。acc_lim:自定义自由落体最小阈值
while(1)
	{ 
                  Get_Accelerometer();
                  t = 0;
                  while(acc_z <= acc_lim && acc_x <= acc_lim  && acc_y <= acc_lim) { 
                        t++;
                        delay_ms(1);
                        if(t == time) 触发事件;
                        Get_Accelerometer();
                  }                 
	} 	

    原文作者:SwaveYu
    原文地址: https://blog.csdn.net/Bobbo666/article/details/108027404
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞