Inspiration

The muscle sensing kit reminded me of my goals for maintaining good posture throughout a global pandemic that ties us to our chairs for more hours than we already have been. Whether it be by sitting in a desk chair for another two hours to listen to the 22nd Zoom lecture of this semester or sitting at that same desk to do homework for more hours after, having proper posture is key to good health and concentration. This muscle sensing kit might just provide the means for helping people become more aware of their posture.

What it does

The muscle-sensing board connects to the Arduino and feeds it a rectified and integrated electromyography (EMG) signal from the electrodes connected to a certain muscle. The electrode colors black, blue, and red, correspond to reference, end, and middle locations respectively. End and middle are located on the muscle of interest, while the reference provides a non-muscular reference point. By taking these measurements and sending that signal to the Arduino, a computer connected to running MATLAB can collect that data from the Arduino and plot it as relative muscle exertion over time. A user can then start measurements and watch a real-time correspondence of their movements to the plot, or allow the measurements to continue over a set time period and then receive a plot and integrated value of muscle exertion over that time period.

How I built it

The muscle sensing kit included modular pieces, where after experimenting with many, I settled on using the extended cable board stacked atop the main sensing board. This permitted me to use external electrodes rather than putting the entire board on my arm. This board is connected to the breadboard to allow for sending recorded signals to the Arduino. First, I programmed the Arduino board to recognize these inputs and print them out into the Serial Monitor. Then, I programmed MATLAB to connect to the Arduino while it ran its code, where MATLAB treats the Arduino as a Serial input. MATLAB then waits for an input from the Arduino and then calls a function to normalize the data so it records muscle data from 0 to 1, and plots it with the current date and time. Lastly, once a data collection set is complete, I programmed it to integrate the relative muscle exertion over that time period to give a relative idea of how much total muscle exertion was achieved.

Challenges I ran into

While I have used both the Arduino and MATLAB IDEs before, combining MATLAB with Arduino was a fun challenge. Rather than using MATLAB in a traditional manner, with some research, I was able to figure that I could instead treat it as a Serial input from which I could read values. However, even upon figuring that out, the problem was that MATLAB would only read values line by line, so even if the Arduino had many more lines of new data values, MATLAB may not reflect that immediately. I was able to overcome this challenge by incorporating code that automatically calls a function once it recognizes that there is a new input from the Arduino. As such, MATLAB is now able to keep up with the output from the Arduino.

Accomplishments that I am proud of

I am proud that I was able to overcome the challenges listed above. They have taught me how to properly search for documentation on programming tasks that I may not be familiar with. Moreover, by analyzing different elbow angles when using a computer mouse, ranging from 90 degrees to ~65 degrees, depending on the chair height, I was able to measure a noticeable difference in bicep exertion.

What I learned

We use our muscles a lot! At first, I thought the data could be noisy, but simply moving my computer mouse up and down recorded a full exertion of my bicep, which I can affirm by visually observing the behavior of that muscle. It is critical for us to monitor the way we use our muscles so we avoid over-straining or causing repetitive motion injuries.

What's next for Posture Analysis through Muscle Sensing

The posture analysis through muscle sensing can be expanded upon to analyze exercise efficiency automatically. By measuring the exertion of muscles over time, and identifying periodic patterns, such as through the repetitions performed at a gym, the system would be able to automatically count exercise repetitions and identify if the muscle reached its full exertion, and for how long, to determine the overall workout efficiency. In terms of posture analysis, the project can also benefit from offering more in-depth insights from the data. An example could be that after recording a certain muscle group for a day, it can identify moments of a day where that muscle group was over-exerted for too long, such as a back muscle from slouching. Offering these insights could be valuable for ensuring better posture with little user interaction.

Built With

Share this project:

Updates