当前位置:   article > 正文

MPU6050实现记步功能_mpu6050计步器

mpu6050计步器

        首先先导入MPU6050的inv_mpu_dmp_motion_driver.h,inv_mpu.h,mpuiic.h,mpuiic.h这四个库文件。这四个文件都是MPU6050自带的库文件

        然后调用这两个初始化函数,这两个函数是有返回值的,当返回值为0时,模块初始化成功

  1. MPU_Init();
  2. mpu_dmp_init();

        注意:在使用MUP6050时为了保证初始化成功,需要将MPU6050放置于水平方向。

        或者可以将MPU6050的自检代码注释掉,应该只是对步数进行统计,注释掉不会影响统计步数

  1. //mpu6050,dmp初始化
  2. //返回值:0,正常
  3. // 其他,失败
  4. u8 mpu_dmp_init(void)
  5. {
  6. u8 res=0;
  7. MPU_IIC_Init(); //初始化IIC总线
  8. if(mpu_init()==0) //初始化MPU6050
  9. {
  10. res=mpu_set_sensors(INV_XYZ_GYRO|INV_XYZ_ACCEL);//设置所需要的传感器
  11. if(res)return 1;
  12. res=mpu_configure_fifo(INV_XYZ_GYRO|INV_XYZ_ACCEL);//设置FIFO
  13. if(res)return 2;
  14. res=mpu_set_sample_rate(DEFAULT_MPU_HZ); //设置采样率
  15. if(res)return 3;
  16. res=dmp_load_motion_driver_firmware(); //加载dmp固件
  17. if(res)return 4;
  18. res=dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation));//设置陀螺仪方向
  19. if(res)return 5;
  20. res=dmp_enable_feature(DMP_FEATURE_6X_LP_QUAT|DMP_FEATURE_TAP| //设置dmp功能
  21. DMP_FEATURE_ANDROID_ORIENT|DMP_FEATURE_SEND_RAW_ACCEL|DMP_FEATURE_SEND_CAL_GYRO|
  22. DMP_FEATURE_GYRO_CAL);
  23. if(res)return 6;
  24. res=dmp_set_fifo_rate(DEFAULT_MPU_HZ); //设置DMP输出速率(最大不超过200Hz)
  25. // if(res)return 7;
  26. // res=run_self_test(); //自检
  27. if(res)return 8;
  28. res=mpu_set_dmp_state(1); //使能DMP
  29. if(res)return 9;
  30. }else return 10;
  31. return 0;
  32. }

        获取行走步数只需调用这个函数

int dmp_get_pedometer_step_count(unsigned long *count);

注意:MPU6050采用的是7步计数法,当步数达到7步时才会开始计步。在调试时,摇晃的幅度尽量大一些,不然可能会统计不到步数。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/763493
推荐阅读
相关标签
  

闽ICP备14008679号