Exercise Recorder

From Microduino Wiki
Revision as of 08:30, 19 January 2016 by Admin (talk) (Equipment)
Jump to: navigation, search
Language: English  • 中文

Objective

You can set exercise time and when it comes to the pre-set time, a buzzer will ring. Only after completing the required times of exercise can the buzzer stop. Here we adopt Microduino-Motion module to record your motion and count.

Exercise record-image.jpg

Principle

Setting exercise time with Microduino-RTC and when it comes to the pre-set time, a buzzer will ring. Only after completing the required exercise frequency can the buzzer stop. Here we adopt Microduino-Motion module to record your motion and count, and an OLED display module to show the current time and amount of exercise.

Exercise record-sch.jpg

Equipment

Module Number Function
mCookie-CoreUSB 1 Core board
mCookie-Hub 1 Sensor pin board
mCookie-Motion 1 Attitude detection module
mCookie-OLED 1 Display module
mCookie-RTC 1 Real time clock
mCookie-BM 1 Battery management
mCookie-DuoV 1 Extension board
Microduino-Buzzer 1 Buzzer sensor
  • Other Equipment
    • One battery
    • LEGO shell
Exercise record-module.jpg

Preparation

  • Setup 1:Connect the CoreUSB and PC/Mac with a USB cable, open Arduino IDE.
CoreUSB Ble pc.jpg
  • Setup 2:Click Files > Examples > mCookie > _305_PersonalTrainer, upload the program.
305 PersonalTrainer load.jpg
  • Setup 3:Load the code, select the right board and COM port for program download. When it pops up a notice of "Done Uploading", it means the program has been written into the CoreUSB module.
305 PersonalTrainer load-ok.jpg

Software Debugging

  • Motion detecting
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();
      }
    }
  }
  • Motion counting
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;
  }

Hardware Buildup

  • Setup1:Connect Microduino-Buzzer to the D6 pin of Microduino-Hub.
Exercise record 6.jpg
  • Setup 2:Connect the activated battery box and the BM module.
CoreUSB Ble steup2.jpg
  • Setup 3:Stack all modules together freely and complete the circuit buildup part.
Exercise record steup3.jpg

Code Debugging

Exercise record debug1.jpg

1.For the first use of Microduino-RTC, you need to set the initial time through programs, find the code section based on the picture above, set according to the local time and load the program into the RTC module through the CoreUSB module.

Exercise record debug2.jpg

2.After that, you can add "//" in the front of the code section and the code will turn gray. At this time, please re-load the program into RTC module and then you can record time freely.

Exercise record debug3.jpg

3.Find the code section above, set the exercise time, load the code into the CoreUSB module after the setting, you'll find when it comes to this time, the buzzer will go alarm.

Exercise record debug4.jpg

4. Find the code section above, set the exercise frequency, load the code into the CoreUSB module after the setting. When the buzzer goes on, the screen will switch to the display of the sports frequency. The buzzer will not stop until you complete the pre-set exercise frequency.

Result

This project can be used in exercise counting for sit-up, dumbbell lifting and so on.

excercise

Video