ECE196Project

Welcome!

This is our webpage for our ECE 196 Project - Workout Buddy! UC San Diego - Jacobs School of Engineering Electrical and Computering Engineering Department of Athletics

Problem Statement:

Making “gains” in the gym is hard, especially when working out alone. Through loud music and intense exercises, we want to optimize workouts by tracking the quantity and quality of repetitions.

Meet the Team

Solution:

We are developing a cheap wearable device that tracks repetitions.

Design Flow:

Components Used:

PCB Design(Left), CAD Model + PCB (Middle), Seeed nRF52480 Sense (Right)

Design of Physical Device:

Using a Seeed nRF52840, we were able to create a compact bluetooth system to measure repetitions via embedded acceleration calculations.

Software Application:

Using SwiftUI, we created an iOS app that provides monitoring of the user’s repetitions based on data sent by the device and provides positive or negative comments based on the user’s preference. Our workshop, linked below, demonstrates how we integrated bluetooth into our app design and how it sent and received data.

Behind the Arduino

How exactly does the IMU track repetitions? The IMU can track acceleration in three direction, and we can unify these three quantities into another quantity known as the magnitude. If we square each of the x, y, and z, accelerations, we can get the total acceleration in a certain direction. One important note is the there will always be a magnitude of 1 present due to the normalized force of gravity calculated by the accelerometer. Since we are dealing with low acceleration states, we can subtract 1 from the total magnitude and make calculations with minimal error. The meat of the code lies in the “ticks” of the repetition. There are four points where acceleration will be 0, the bottom of the rep, the middle of the concentric motion, the top of the concentric motion, and the middle of the eccentric motion. This is because we are encouraging paused repetitions which increases muscle usage. The conditionals uses these checkpoints and keeps count whether it is at the top or bottom of the rep. Then divides this value by two to track the number of reps.

Updates:

11/16 Progress Report

Final Product:

Final Presentation

Video Demonstration

Workshop on Integration of Arduino Bluetooth and iOS

Going Forward:

Overall, we are satisfied with how our project turned out, given the time constraint. If we had more than 5 weeks, we would want to:

Resources