May 15 2014

Hercubit is a smart wearable and personal trainer for your arm with real-time visualization feedback on your computer or mobile screen.

For all those times you can't make it to the gym or need to take a break from work to get the blood flowing, Hercubit will get you moving because it knows what you need to do and can tell how much you're doing.

The hardware was a femtoduino (a very small Arduino clone) an accelerometer and a bluetooth 2.0 board. We connected them togeher on a breadboard and soldered the connetctions. It was light enough to wear comfortably for a normal exercise. See image below

The front-end software is composed of progress tracking, personal goal management, and competitions. The features were a result of months of user research on how people exercise and how they keep track of progress. The technology stack involved HTML, CSS, jQuery, D3.js and web sockets.

The backend software is a variety of Python, Arduino code, HTML, CSS, JavaScript, and D3.js. Arduino code runs on the wearable device, streaming accelerometer, gyroscope and magnetometer data to the computer's serial port. From the serial port, Python listens for incoming data and constatnly checks data for peaks and dips (like a pedometer) and then checks the data against a classifier to determine the type of exercise. The classifier is created beforehand using Python, SciKitLearn and a Support Vector Machines. The mores sample data given to the classifier beforehand, the more accurate it becomes. Additionally, I built out a set of features for distinguising gestures with around 90% accuracy.

Here shows a slice of data from a bicep curl repetition being passed through the peak detection software I made.

Lastly, the backend will send identified exercises to the frontend via a python server with web sockets. This server updates the HTML, and D3.js based frontend (web browser based).

This is our Final Project video submission for the UC Berkeley 2014 MIMS degree.

  View Hercubit