一 系统简介
1.简介
MPU-60x0 是全球首例 9 轴运动处理传感器。它集成了 3 轴MEMS陀螺仪,3 轴MEMS加速度计,以及一个可扩展的数字运动处理器 DMP(Digital Motion Processor)。MPU-60x0 对陀螺仪和加速度计分别用了三个 16 位的 ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为 ±250,±500,±1000,±2000°/秒(dps),加速度可测±2,±4,±8,±16g。
2.特性
-
可读取加速度和角速度
-
可读取温度
-
可计算出倾斜角
二 源码解析
1.获取温度信息如下所示:
short temp_per = MPU_Get_Temperature();
2.获取倾斜角和加速度信息如下所示:
MPU_Get_Accelerometer(&aacx,&aacy,&aacz); MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz); aacx = aacx + X_ACCEL_OFFSET; aacy = aacy + Y_ACCEL_OFFSET; aacz = aacz + Z_ACCEL_OFFSET; gyrox = gyrox + X_GYRO_OFFSET; gyroy = gyroy + Y_GYRO_OFFSET; gyroz = gyroz + Z_GYRO_OFFSET;
3.计算倾斜角度信息如下所示:
/****************************************************************************** * 函数介绍: 计算 x, y, z 三轴的倾角 * 输入参数: 无 * 输出参数: data:角度结构体 * 返回值 : 无 ******************************************************************************/ void MPU6050_Get_Angle(mpu6050_angle *data,short aacx,short aacy, short aacz) { float f_aacx = float(aacx)/16384.0; float f_aacy = float(aacy)/16384.0; float f_aacz = float(aacz)/16384.0; /* 计算x, y, z 轴倾角,返回弧度值*/ data->X_Angle = acos(f_aacx); data->Y_Angle = acos(f_aacy); data->Z_Angle = acos(f_aacz); TRACE("x_angle:%d y_angle:%d ",short(data->X_Angle),short(data->Y_Angle)); /* 弧度值转换为角度值 */ data->X_Angle = data->X_Angle * (double)57.29577; data->Y_Angle = data->Y_Angle * (double)57.29577; data->Z_Angle = data->Z_Angle * (double)57.29577; }
三 效果展示
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |