锻炼记录仪

来自Microduino Wikipedia
跳转至: 导航搜索
Language English

目的

设定锻炼时间,蜂鸣器就会响起,只有完成规定数量的运动才能关闭,利用Motion模块记录你的动作并计数。

原理

通过RTC设定运动时间,到了时间蜂鸣器就响。通过姿态传感器检测运动变化来计数,达到规定数量的运动才关闭蜂鸣器。平时OLED显示屏上显示显示当前日期和时间,运动状态下显示还需要运动的运动量。

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Hub/zh 1 传感器转接板
mCookie-Motion/zh 1 姿态检测模块
mCookie-OLED/zh 1 显示模块
mCookie-RTC/zh 1 时钟模块
mCookie-BM/zh 1 电池管理
mCookie-Duo-V/zh 1 扩展板
Microduino-Buzzer/zh 1 蜂鸣器
  • 其他设备:
    • 电池1个
    • 乐高外壳

准备

  • Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。
  • Setup 2:点击Files > Examples > mCookie > _305_PersonalTrainer, 加载程序。
  • Setup 3:加载代码,选择好板卡和COM端口下载程序。出现下载成功(Done Uploading)提示,表示程序已经写进CoreUSB模块中了。

软件调试

  • 运动判断
change_gx = (abs(gx) + abs(gy) + abs(gz)) / 3;
  //Serial.println(change_gx);
  if (change_gx > 80 && !sport_en)
    sport_en = true;
  else if (change_gx <= 10&&!sport_num)
  {
    timer_0 = millis();
    sport_num = true;
  }
  if (sport_num)
  {
    if (millis()-timer_0 > 1000)
    {
      change_gx = (abs(gx) + abs(gy) + abs(gz)) / 3;
      if (change_gx <= 10)
      {
        sport_num= false;
        sport_en = false;
        timer_0 = millis();
      }
    }
  }
  • 运动计数
if (sport_change != sport_en && time_en)
  {
    if (sport_en)
    {
      Sport_num -= 1;
      tone(buzzer_pin, 300);
      if (Sport_num == 0)
      {
        time_en = false;
        noTone(buzzer_pin);
      }
    }
    //else
    //  noTone(buzzer_pin);
    //Serial.println(sport_en);
    sport_change = sport_en;
  }

搭建硬件

  • Setup1:将Buzzer蜂鸣器模块接到Hub的D6的引脚上。
  • Setup 2:将激活后的电池盒与BM模块相连.
CoreUSB Ble steup2.jpg
  • Setup 3:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。

调试代码

1.初次使用需要通过程序为RTC模块设定初始时间,找到上图这段代码,按照当地时间进行设置,将程序通过CoreUSB载入RTC模块。

2.载入完成后,在这段代码前面加上 //,整段代码会变成灰色,此时再次将程序载入RTC模块,之后就可以自行纪录时间了。

3.找到上图这段代码,可以设定锻炼时间,设定好之后载入CoreUSB模块,之后一到这个时间,蜂鸣器就会响。

4. 找到上图这段代码,可以设定锻炼次数,设定好之后载入CoreUSB模块,蜂鸣器一响,屏幕就会切换到运动次数显示,完成后蜂鸣器就会停止。不要偷懒啊!

结果

可以对仰卧起坐、哑铃等运动计数。

视频