• 大小: 2KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签:

资源简介

基于mpu6050计步器算法

资源截图

代码片段和文件信息




#define P_P_DIFF 1000 /* 波峰-波谷的差值,即3D阈值 */
#define RISING_EDGE  1 /* 上升沿状态 */
#define FALLING_EDGE 0 /* 下降沿状态 */
#define FAST_WALK_TIME_LIMIT_MS 200  /* ms */
#define SLOW_WALK_TIME_LIMIT_MS 10000 /* 10s 内没有走一步 结束计步 */
#define STEP_OK 7 /* 7步法则 */

unsigned int lastPos = 0; /* 旧数据 */
unsigned int newMax = 0 newMin = 0; /* 波峰-波谷 */

bool walkSta = FALSE; /* 获得一次峰值状态 */
bool walkOkSta = FALSE; /* 连续10s内走了7步 有效行走状态 */
bool pSta = RISING_EDGE; /* 3D数据波形状态 */

long lastTime = 0; /* 上一次 walkSta 的时间 */
unsigned char stepOK = 0; /* 初始计步门限  滤除干扰 */
unsigned long stepCount = 0; /* 步数值 */

/*****************************************************************
** input: 3 axis or angle
** output: step count
** user read:
3 axis is filter value.
******************************************************************/
unsigned long Step_Count(float axis0 float axis1 float axis2){
unsigned int nowPos = 0;
int ppDiff = 0;
int timeDiff = 0;
/* 获取3D IMU */
nowPos = (unsigned int)powf(sqrtf(axis0) + 

评论

共有 条评论

相关资源