Weightlifting analysis tool Project

Hello Everyone

So, I started my Arduino adventure a few months ago, knowing nothing about programming or having any technical knowledge at all. But I guess you have to start at one point. I’ve now working through all the basic stuff, used a whole bunch of hours Googeling every single obstacle I’ve had, and now I want to start designing, what I wanted to do since I bought my Arduino.
The background to the idea of my project:

I’ve been a Olympic weightlifter for a long time, lifting in the German 1st division as the only dane in the whole league. One of the things that was different coming to Germany was the analystic tools for doing the sport. Since the sport is pretty “simple” (Lift the weight above your head), it’s all a mixture of physics and biomechanics in a short period of time, that can be measured and analyzed. In Germany we mostly used two tools for analyzing:

  • A spool attached to the ceiling, a string that you would place around the bar and with a display showing the maximum Velocity (the most important thing to measure), in the whole lift, and would automatically reset after a couple of seconds. I think this device dated back to the 1980’s but it was very useful

  • A video analystic tool, that would work with your computer, and giving you all sort of information. Showing the lift in slow-motion, Max V, the speed lost when going from the 1st pull (floor to under knees) and 2nd pull (knees to hip), all sort of things, drawing a graph to show the bar path. But it had the flaw like all other video analyzing tools, after each lift you had to get behind a computer, tell the camera the position of the bar, hoping for a good read + it took 20-25 minutes to get it all right.
    So I went down to the “nerd-store” (fully positive, love those guys) and asked for a way to combine all this.

My basic idea is:
Using an accelerometer/gyroscope, that works in two ways:

  1. Working with a battery powered small screen to show the maximum velocity, and resetting automatically. (The idea behind this is: In a given range (65-110%) of a persons 1RM (repetition max), you can make an linear regression that gives “Power = Velocity x Force”. Say you 1RM is 100 kgs in Snatch, which is possible to do at 180 cm/s with proper technique, and you want to train with 90 kgs in the pull, you should at least do 200 cm/s:
    100
    180 = 18000
    1800/90 = 200

  2. It should be able to, connected to a computer getting analog input:

  • Draw the bar path (2-axed with horizontal movement on the x-axis and vertical movement on the y-axis)
  • Draw a graph of the speed over time
  • From this point just a whole bunch of other awesome stuff, but the two first must be the most important. I’m open for Ideas but thinking that attached to a camera that automatically records and gives instant slow-motion replay would be cool.
    A major problem that I’m having regarding to 2) is:
    Is there any kind of software that would allow me to do this? To design my own page with the components that I need?
    Other obstacles:
    If the bar path should be drawn, Would there be a way for the gyroscope/accelerometer to ignore “tilt”, so that if it’s going in the y-direction, and the bar rolls, the y-direction would still come in as actual vertical movement. Maybe it would be possible to attach the gyroscope at the end of the bar, and having it work like the anti-turning “logo”-thing that is sometimes attached to wheels.

Since this is my first project, please share any experience or ideas that might come in handy (:
I have:

*Maybe some wrong expressions here, but I hope you get the idea.

// Simon

Defenitly do-able. At least from a component point of view.

As with all projects of this type, one starts with a "thrown together" prototype, to get some experience how the measurements look (and get it to work reporting "something" :cold_sweat: ) Wire it up on a breadboard and get the Arduino to send all the values out on Serial - as fast as it can. By using some other Serial window like Putty, you can spool it to a file, import in Excel and start looking at curves. Again, just as an initial experiment.

Then worry about how to make the board small and robust, wired or wireless (requiring a battery). You can also then (re)design the software to do some filtering of bad values. You can decide on the type of local display on the unit.

Good luck with the project.

The issue of the bar rotating seems like the biggest issue, to me. Since the whole sequence is relatively short you can probably get away with using a gyro to provide the orientation, as long as you are careful to eliminate drift while the bar is stationary. Although the code to manage the accel/gyro data will only be a few lines of arithmetic, the math underlying this is going to be by far the most complex part of your project. You might consider using one of the UAV/drone/quadrotor boards and open source flight control software as the basis for your project as these address a lot of the same problems.

It would be useful to include a bluetooth interface and write/find a smartphone app which can provide your user interface. Data publishing / sharing services exist which would enable user to upload their results from the phone to the internet and there is a lot of scope to expand on this side of things if that interests you such as overlaying telemetry on videos, data sharing with other team members, integrating with other fitness type data.

Consider providing real-time audio output of any parameters which your training is trying to optimise. For example if you need to get the vertical speed 'right', then provide a tone that indicates the vertical speed. (I'm thinking of the sink/rise tones that glider pilots use to detect thermals.) Having immediate feedback during the lift might be more effective as a training aid than peering at a screen afterwards.