Data is everywhere and it is an essential part of modern life. Presently, there is a major lack of options to obtain quantitative data of lifting exercises. That’s where SPA33 comes in. We created this device with the goal of providing athletes and coaches with numerical and useful data regarding their exercises. With this data, it is possible to find the users’ strengths and weaknesses and most importantly, help them reach their maximum potential.
What it does
Our device is composed of an MKR1000 dealing with the sensor, LEDs and data storage as well as an Arduino-Uno which handles the LCD displaying count and time. SPA33 relies primarily on an accelerometer that provides values for accelerations in the x, y and z directions. With this data, we were then able to compute tilt about the axis to provide visual feedback to the user through the red and green LEDs. Simultaneously, this data is stored on an on-board SD card which allows the user to retrieve it and work with it post-exercise.
Challenges we ran into
During the process of designing and building the SPA33, we encountered several barriers, but together, we overcame them. During the process of designing and building the SPA33, we encountered several barriers, but together, we overcame them. The first challenge was figuring out how to detect a rep. To do this, we ran some tests and determined the acceleration thresholds, and used these and some boolean variables to increase count. This led to another challenge, which was displaying this information in an LCD. For this, we had to use another Arduino and extend the functionality of the Arduino's built-in functions for time to display the reps together with time. Lastly, we had trouble writing data to the SD card. Writing data, including the time to open and close the file, takes a long time relative to the rate at which we produced data. To work around this, we wrote data to arrays, then wrote arrays as a whole to the SD card.
Accomplishments that we're proud of
Given our limited set of skills, we are above all proud of the final working product. Not only it is functional, but it also provides real and useful tools for its users. Additionally, being able to make all different aspects of the product work together is something that the team is really pleased with. Specifically, it is worth mentioning two features of the product: the SD card writing and the stopwatch feature. These features required a lot of expertise, and making them work as intended was a great accomplishment for the team.
What we learned
We can classify our learning in more than one category. First, we learned a lot of technical skills and gained knowledge about circuits and coding. We had, to put the circuit together, which was gained experience in electronics. Then, we also had to write code in the Arduino IDE and integrate both Arduinos. This taught us a lot about microcontrollers but also about programming. Dealing with the SD port was also a very important learning experience on how data is stored and written, and what are the shortcuts we can take to make this process easier. The second area of learning was teamwork and other "soft" skills. We feel like much of our success can be attributed to the fact that we split tasks, then came together. One of us handled the calculations and coding for tilt and rep counting. The other setup the second Arduino, keeping track of time and using an LCD display to show time and reps. Another worked on the storage and visualization of data, handling the SD card and all of the problems associated with it.