-
-
First band
-
The wristband [baseline demo]
-
Meteor Front End
-
Video being played
-
Block Diagram
-
4 wearable bands and one head gear
-
Band showing the vibration motor and play/pause button
-
Stick Figure depicting lunges
-
Stick Figure depicting lunges
-
Stick Figure performing Bicep curl [red indicates that user is doing it wrong for both arms]
-
Stick Figure
Inspiration
For people who do not have time to go to the gym, dumbbell is an ideal way of doing exercise at home to keep fit. But it is a problem to find proper tutorial videos to follow, not to mention getting customized guidance based on their performance. We want to develop a system that could track user's activity and provide effective advice according to their own level of fitness.
What it does
First of all, the system provides provision to play/pause the video using the wrist band, so that the user could easily control the pace of their exercise. Also, the system would track user's activities in dumbbell exercise and compare user's performance to the expectation in the tutorial videos. It will then smartly switch between different videos according the evaluation result from our algorithm based on machine learning. For example, if the user has difficulty finishing the moves in the video (such as doing the moves at a significantly lower frequency than the tutorial video), the system would smartly switch to a video that fits the actual level of the user to maximize the effectiveness of the exercise.
How we built it
Week1: We collected data from the IMU using a Particle Photon device. This device sends the data to a python server using sockets which will be used later for machine learning. The python server will forward the data to a MeteorJS server.
Week2: Made a wearable wristband by taping all the components on a velcro strap. Then, we made a power management circuit which powers the Particle photon using a 9V battery.
Power Management Circuit: This circuit is similar to Arduino Uno's power management circuit. It comprises of two decoupling capacitors, one at the input side and the other at the output side. The voltage level is brought down to 3.3v using a voltage regulator.
Created a database of videos.
Week3: Integrated wearbale wristband embedded with an IMU, power management circuit and a photon to acquire data of the user working out with a dumbbell. Managed to get user's activity data based on the acceleration.
The data from the IMU is wirelessly transmitted to a python server as UDP packets which performs the necessary computation. The server provides for live visualization of the acquired data and simultaneously inserts the data into a Mongo database [pymongo].
Week4: Built the prototype of our client-based MeteorJS application that delivers video content [in this case workout videos using dumbbells] which the user follows during his/her workout routines. Established the communication functionalities between the server and the client for future switching functionality. While the videos are playing, the communication will remains active to support the video switching.
Week5: Improved the GUI of the MeteorJS. Implement the prototype of switching algorithm based on user's activity. The app interacts with the server and depending on how the user is performing during the working smooth swicthing of videos takes place. Further optimization and action classification are expected for the switching algorithm.
Also, we integrated a button to the wrist band and implemented corresponding methods to support this button in our MeteorJS app. The user now can control the video to play/pause using this button on wrist band.
Challenges we ran into
Hardware: Given that our product would be wearable, we need to make our circuit components compact and easy to wear. We need to select proper components, sensors and power supply and then integrate them into a working product.
Software: Precise code is need to enable Particle Photon-Python Server-MeteorJS Client communication with minimal delay. Meanwhile, the activity classification algorithm needs to be powerful enough to control the video switching based on user's performance.
Accomplishments that we're proud of
What we learned
What's next for Cloud-based dumbbell activity tracker
- Implement a machine learning algorithm to increase the rate of accuracy of the system.
- Improve the accuracy of the activity tracking.
- Further management of our video database - including adding more videos, classify the videos based on intensity, etc.
- Optimize our switching algorithm. Make sure the switching is triggered at the right time and to the optimal destination video.
- More test to guarantee the performance.
Built With
- 9v-battery
- adafruit-9dof-imu
- c++
- i2c
- meteor.js
- particle-photon
- pygame
- python
- scikit-learn
Log in or sign up for Devpost to join the conversation.