Introduction: Finger Muscles Visualization With EMG

This project shows how to see activity of muscles in real time - with great precision - and what data can be received with this system. Everything is based around uECG - a small device originally intended for ECG measurements, but with added function of EMG measuring - and visualizing with its LED color/intensity.

Step 1: What Is EMG?

EMG is electrical activity of muscles - any muscle motion occurs when motor neurons of the brain send certain signals via nerves to the muscle, and muscle cells respond to it - both by contracting, and by producing some electrical signal. This signal is measured on the skin surface - so when a pair of electrodes is placed over a certain muscle, we will see electrical activity there when it moves. Video here shows it in quite a straightforward way

Step 2: How Many Channels?

Generally speaking, the more EMG channels we can measure, the better idea of what is going on we'll get. Each finger is controlled not by a single muscle, but by interaction of several muscle groups - some of them can be directly measured from the skin, and some lay deeper and signal from them won't be very clear. Practically, with 4 channels - by measuring activity of 4 different muscle groups - many finger motions can be directly seen in a form of LEDs pattern, and even more can be detected using machine learning methods on PC.

Step 3: Data Analysis

The system generates 2 types of data - signal spectrum using FFT, and calculated from this spectrum activity level - a single number indicating how active a muscle is at this particular moment of time. Calculation is based on relation of higher to lower frequencies in the spectrum: muscle activity generates signal in, roughly, 50...500Hz area - and higher activity means that average frequency goes up. So by calculating relation of higher to lower spectral bins we get quite reasonable estimate of activity level.
Attached image shows an example of this activity - we can clearly see that some muscles are working at this moment, some are relaxed, and combination of active/relaxed muscles gives rather good idea about what fingers are moving

Step 4: How To, Well, Make It?

This is based on uECG device - with Mark II firmware version - and you'll need a kit with several devices, one receiver station, and, just in case, an st-link programmer to repair firmware if something goes very wrong :)
Base station is plugged into USB, devices automatically connect to it, and a node.js-based software displays - and records - EMG data in realtime.
What is really good about this system - it's completely open source. Hardware schematics, firmware source code and PC side code is available and open for any modifications:
So this is a tool that allows anyone interested to actually use EMG for something (without a mess of wires, batteries and inevitably poor signals).