获取6050原始数据
MPU6050的原始数据分析 个人经验来讲,如果对IIC总线协议很熟悉的情况下,获取6050的原始数据就不是什么太大的难题,毕竟再怎么复杂也只是一个传感器而已,就像你打电话给传感器,要它的数据,然后它返回给你,仅此而已。 首先,要了解6050是干什么的: MPU-6000(6050)为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时间轴之差的问题,减少了大量的封装空间。(来自百度百科) 简单说,就是该传感器能获取XYZ三个轴方向的角速度和加速度,包含6个16位的ADC来表示这些值,关于传感器的测量原理,可以简单想象类似下图的模式,是不很直观。 当然,用过AD转换的童鞋都知道,这个是会有精度问题的,6050也一样,而且受到的噪声影响更大,但本次不讨论这个问题,仅讨论怎么获取原始数据 话不多说,上代码 初始化代码实现 /*--------MPU6050地址宏定义---------*/ #define MPU6050_SLAVEAddr 0xd0 //IIC写6050地址 #define MPU6050_ACCAddr 0x3B //MPU加速度读值地址 #define MPU6050_GYROAddr 0x43 //陀螺仪读值地址 #define MPU_Remove_Sleep 0x6B //解除休眠地址 #define MPU_GYRO_Smple