赞
踩
首先先导入MPU6050的inv_mpu_dmp_motion_driver.h,inv_mpu.h,mpuiic.h,mpuiic.h这四个库文件。这四个文件都是MPU6050自带的库文件
然后调用这两个初始化函数,这两个函数是有返回值的,当返回值为0时,模块初始化成功
- MPU_Init();
- mpu_dmp_init();
注意:在使用MUP6050时为了保证初始化成功,需要将MPU6050放置于水平方向。
或者可以将MPU6050的自检代码注释掉,应该只是对步数进行统计,注释掉不会影响统计步数
- //mpu6050,dmp初始化
- //返回值:0,正常
- // 其他,失败
- u8 mpu_dmp_init(void)
- {
- u8 res=0;
- MPU_IIC_Init(); //初始化IIC总线
- if(mpu_init()==0) //初始化MPU6050
- {
- res=mpu_set_sensors(INV_XYZ_GYRO|INV_XYZ_ACCEL);//设置所需要的传感器
- if(res)return 1;
- res=mpu_configure_fifo(INV_XYZ_GYRO|INV_XYZ_ACCEL);//设置FIFO
- if(res)return 2;
- res=mpu_set_sample_rate(DEFAULT_MPU_HZ); //设置采样率
- if(res)return 3;
- res=dmp_load_motion_driver_firmware(); //加载dmp固件
- if(res)return 4;
- res=dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation));//设置陀螺仪方向
- if(res)return 5;
- res=dmp_enable_feature(DMP_FEATURE_6X_LP_QUAT|DMP_FEATURE_TAP| //设置dmp功能
- DMP_FEATURE_ANDROID_ORIENT|DMP_FEATURE_SEND_RAW_ACCEL|DMP_FEATURE_SEND_CAL_GYRO|
- DMP_FEATURE_GYRO_CAL);
- if(res)return 6;
- res=dmp_set_fifo_rate(DEFAULT_MPU_HZ); //设置DMP输出速率(最大不超过200Hz)
- // if(res)return 7;
- // res=run_self_test(); //自检
- if(res)return 8;
- res=mpu_set_dmp_state(1); //使能DMP
- if(res)return 9;
- }else return 10;
- return 0;
- }
获取行走步数只需调用这个函数
int dmp_get_pedometer_step_count(unsigned long *count);
注意:MPU6050采用的是7步计数法,当步数达到7步时才会开始计步。在调试时,摇晃的幅度尽量大一些,不然可能会统计不到步数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。