UPDATE June 19th, 2017: This Project Is Resurrected In a More General Use Concept, which you can read about here. A Wearable IoT Development Board for Body Sensing and Cloud Applications.
My product goal was to get an integrated microcontroller digital/analog SEMG pod put together to measure the electrical signals coming from your muscles when you innervate them. In that aspect, I succeeded. The unit combines an Arduino to control the digital circuitry, mainly a digital pot, which adjusted the gain for the analog circuitry, which is a bunch of diff amp and op amp circuits, to read in the SEMG signal (Surface ElectroMyographic) signal from the skin. A half wave rectifier took care of the negative aspects of the signal, and then it was further smoothed with filters to create something that you can use in digital circuitry. The arduino's primary function is to control the digital pot, and to map and output the resulting signal to an LED driver, which displayed your muscle signal level on the LED's.
It was the first step towards the eventual goal of creating a wearable, synthetic spinal/neural networked, body sensing platform, which you can read more about here:
The Wearable Synthetic Spine, and the School of Hardware Startup Hard Knocks - Lesson 1
You can see the circuit design progression from start to finish here.
The basis of this product is my Senior Design Project, titled, A Smart Suit for Microgravity Environments which I worked on with the MIT Aero Astro Lab, and the Boston University Neuromuscular Research Center from 1997 to 2000! Holy crap that was a long time ago.
What I built at the time was an SEMG activated force arm, essentially a robotic arm that was strapped to an Astronaut's arm, and it used nitinol wires, SMA's, as artificial muscles to apply an opposing force to the arm. The whole idea was to stress the arm in the opposite direction of movement so that the astronaut's muscles didn't deteriorate.
I used the Hill muscle model to build an artificial muscle arm, and the SEMG signals I collected were processed at the time in Matlab and Simulink.
You can see it in action here.