close-circle
Close
0%
0%

SynthaSense Suit: Control Stuff With Your Muscles

A better human computer interface. A wearable sensor suit for controlling stuff using SEMG and body movement.

Similar projects worth following
close
The SynthaSense Suit incorporates human body movement sensors, including an SEMG pod that measures the level of muscle activation. Been working on this for almost 5 years now, after a hiatus of 9 years. It's the first step towards the goal of creating a wearable, synthetic spinal/neural networked, body sensing platform. It's a far better human/machine interface for robotics, VR, and prosthetics than what I've seen out there.

This was the basis of my startup that went bust. I ran out of money and got dicked around by people who I formerly trusted for far too long. Still, I learned a ton from that experience, like who to trust, what advice is solid, and what advice is pure $#!t. I believe documenting your failures so you learn from them is far more important than success, so my loss is your gain.

This project is resurrected into something more capable and general use, in 2017.

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.

  • 1 × Mark 1 - Arduino layout for Atmel328P
  • 1 × Mark 1 - TLC5940NT LED driver
  • 1 × Mark 1 - MCP Digital 100kOhm pot
  • 1 × Mark 1 - A whole bunch of instrumentation op amps
  • 1 × MArk 1 - INA121 Differential Amplifier

View all 10 components

  • The SynthaSense Suit, Mark 2

    David Nghiem05/13/2016 at 16:38 0 comments

    I've been working on evaluating platforms for the Mark 2 version of the SynthaSense Suit. Yup, it now has a name. I have these requirements.

    • It needs to be 32 bit
    • The design of the system needs to be open sourced.
    • It has to have an RTOS
    • It needs to have a neural network
    • It needs to be wifi and bluetooth LE capable
    • It needs to be mesh capable

    Now, initially, I was going to build a completely custom system incorporating a microcontroller, and an artificial intelligence chip. I was very, VERY surprised to find out that the Arduino101 already incorporates a 128 node neural network into its design! And it already has an RTOS running on it. And even better yet, the board design is open sourced! With EagleCAD files! Holy crap! This saves me a ton of work. So, the next step is to get rid of the blinking LED's, and to incorporate the Arduino101 design with the analog designs into a custom board to start prototyping the Mark 2 of the sensor suite.

  • Moving the Synthetic Spine Muscle Suit Forward

    David Nghiem04/18/2016 at 19:55 0 comments

    I haven't been on site as often as I've been intensively getting a startup up and running, which happens to be a combination app/hardware startup. That said, I'm still messing around with the biosuit sensor device. Several things I want to add this time around is an angle sensor to create a correlation between limb angle and the SEMG signal, and I've moved on to pure atmel controller programming. I've had enough with the Arduino, and it's been high time to take the training wheels off. Which is good, because I can move right into ARM controller programming for my stuff.

    I am continuing my original vision for the suit as per my Grand Vision.

    This time around, I'm going to be building this set of augmented reality goggles, and integrating it with the suit. For the suit, I'm adding in a bunch of different sensors in addition to SEMG. Like angle sensing and an IMU.

    http://www.thingiverse.com/thing:721498

    The original concept was to create a more suitable human/machine interface. I've never been a fan of smartphones, or interacting with a computer with very nonintuitive external devices. Not to mention, I'm karate/dancer/kinetic motion person, so for me, human body movement should be the natural way to interact with technology. Building a full on smart sensing suit comes a lot closer to that ideal.

  • Algorithms, Code, and Cases

    David Nghiem04/20/2015 at 21:15 0 comments

    This week we address algorithms, code, and appearance. Or cases.

    Let's start with code. For a device like this, where we're not interested in doing any kind of medical work - plus we don't want nor need to deal with the FDA - and it's just involved in controlling digital outputs for lights, artificial muscles, servos, etc, you don't need a lot of accuracy. The Arduino's 10 bit ADC is sufficient for most project needs when it comes to that. That greatly simplifies our processing. The basic functional requirement is to read in the SEMG signal, map the signal out to the PWM ports of the TLC5940NT in ascending order, and allow for software interrupts using soft IRQ's for button push instances so that when the button is pushed, the MCP42XX digital pot either lowers the resistance or increases the resistance to increase or decrease the gain so we don't oversaturate the final output signal.


    The Atmega328P we're using is the low powered one, which works at 3.3V. Obviously if our signal overshoots 3.3V, we won't get a useful reading, so having the gain adjustable on the fly is necessary.


    Right now, as it is, the program is a hack, due to the preliminary board being manufactured proof of concept. So, a lot of the dedicated serial channels that the Arduino uses isn't standardized across the board. Instead of the I2C port, which is the Analog 4 and 5 ports, we have it occupied by the switches for the MCP42XX, which is the SPI digital Pot. For the SPI, which typically is PWM 11, 12, and 13, we have that taken up by the TLC5940NT.


    That's a real mess.

    Anyway, here is the flowchart program for the circuitry.

    And here's the code. Starting with the main function in the Arduino.

    #include <PinChangeInt.h>
    #include <DigiPot.h>
    #include <Tlc5940.h>
    
    #define Int_Pin1 A1  // assign Analog1 to be the Interrupt Pin 1, Up Pin
    #define Int_Pin2 A2  // assign Analog2 to be the Interrupt Pin 2, Down Pin
    
    #define analogPin A0  // select Pin 0 for analog input
    
    volatile int state = LOW;
    volatile int state2 = LOW;
    
    int StateUp;  // the button up state
    int StateDn;  // the button down state
    int PressUpNum;  // the number of button presses for the up button
    int PressDnNum;  // the number of button presses for the down button
    
    int valueUp;  // The previous value of the Up button
    int valueDn;  // The previous value of the Down button
    
    int slider = 5;  //setup variables for the digital pot 0
    int val;
    
    DigiPot mcp4251(5, 6, 7);  // Start instance mcp4251
    /* Format: DigiPot <instance>(CS, SCK, SDI) */
    
    uint8_t latest_interrupted_pin;
    uint8_t interrupt_count[2]={0};  // Setup two interrupt pins
    
    void setup() {
      StateUp = digitalRead(Int_Pin1);  // Read in the initial state
      StateDn = digitalRead(Int_Pin2);  // of the Interrupt Pins
      
      PCintPort::attachInterrupt(Int_Pin1, digipot_slider, CHANGE);  // Call the Interrupt  
      PCintPort::attachInterrupt(Int_Pin2, digipot_slider, CHANGE);  // Call the Interrupt
      
      mcp4251.clear(0);  // Clear the pot 0
      mcp4251.clear(1);  // Clear the pot 1
      
      Tlc.init();
      Tlc.clear();
      //Serial.begin(9600);
      
    }
    void loop() {
      
      muscle_semg_read();
      //Serial.println(slider);
    }
    
    void digipot_slider() {
      
      valueUp = digitalRead(Int_Pin1);  // read in the current state 
                                     // of the button up pin
      valueDn = digitalRead(Int_Pin2);  // read in the current state
        
    /* Start of the Decision Tree for Up and Down Buttons */
      
      if (valueUp != StateUp) {  // if the value changed
        if (valueUp == HIGH) {        // and if the button is on
          if (0 < slider < 10) {
          // PressUpNum++;            // Add one to the number of presses
          slider++;
          
          // Serial.println(PressUpNum);
          // Serial.println(slider);
          } 
        }
      }
      StateUp = valueUp;        // make the buttState current
      
      if (valueDn != StateDn) {  // if the value changed
        if (valueDn == HIGH) {    // and the button returned (pull up)
           if (0 < slider < 10) {
             // PressDnNum++;
             slider--;
             // Serial.println(PressDnNum);
             // Serial.println(slider);
           } 
        }
      }
      StateDn = valueDn;      // make the buttState current
      
      if (slider < 0) {
        slider = 0;
      } else if (slider > 9) {
     slider...
    Read more »

  • Honey, I shrunk the SEMG Pod, and Artificial Muscle Madness

    David Nghiem04/08/2015 at 16:31 0 comments

    Ah, weight. It's the perennial First World problem, in an overly politically correct society. And it's the part of the circuit that we want to vastly reduce and size down.

    After we refined the circuitry, it was time to lay out the board and manufacture the PCB. We got to this point because as I attempted to make another basement, wire jumpered, ghetto board, my left over solder slag caused shorts and fried chips. I talked to Al, and he said to not even bother, since the proof of concept was solid, and I extensively tested my other hand made board. It was time to make something cleaner, smaller, and better.

    I'm a total dunce when it comes to PCB board design and software, like Altium Designer or EagleCAD, which is what Aleks had access to. However, for circuit schematics, I used gEDA, which is an excellent piece of software for anyone who isn't rolling in cash to do their circuit schematic.

    Artificial Muscle Control

    It's about this time that I really started thinking through the applications for my concept, and the first concept that came to my mind, was in robotics. Which brings me back to my ancient 1990's thesis, A Smart Suit for Microgravity Environments

    Digital control of artificial muscles is a tricky problem. The problem with the current solutions out on the market today for artificial muscles, at least the kinds that make me think of an artificial muscle, is that they're not really digitally controllable. That's Shape Memory Alloys, IE. Nitinol wire, or shape memory polymers. Every Shape Memory substance requires heat or heat production for it to do the bending and contorting that makes it a muscle. And the problem with heat is the lag time for the material to absorb enough heat to result in a hysteresis, where the crystal structure, or whatever structure starts to rearrange itself into a different geometric form, resulting in a contracting element.

    And because the hysteresis is heat dependent, and depends on the overall amorphous shape of the SMA/SMP, you don't get good control over the element. Now contrast that with biological muscles.

    The Digital Nature of Biological Muscles

    Biological muscles are formed of muscle fibers that ratchet against each other, with a myosin and actin element. Think car jack hoists. Much like a ratchet, they work in discrete steps with each other. You know what the crazy thing is about biological muscles? They're far better structurally for something resembling digital control.

    That's because muscle fibers have a discrete nature. They use calcium ions, which have a defined energetic value, to initiate the muscle innervation. Basically, the entire muscle fiber is in a potential state, except it's covered with a sheet of tropomyosin. Each calcium ion tugs a bit of that sheet away, exposing binding sites on myosin. The actin filament instantly latches onto those myosin sites, creating a muscle ratcheting effect, aka the contraction.

    You can read more about how the muscle works here.

    How Skeletal Muscles Work

    Each calcium ion, and each actin/myosin unit makes a defined, structural, energetically activated biomechanical unit. Say that 6 times fast. Anyway, that makes it a clear analog to digital.

    On top of that, not all of your muscle fibers activate at once when you innervate them. The only time you really see your muscles innervate almost at once is when you induce a massive shock to the muscle. That's why you hear stories of people who accidentally touched a massive circuit, get knocked out and find themselves 15 feet away. It wasn't a massive spark or explosion that knocked them back there. It was the shock that triggered their muscles to contract violently all at once. Now, if the contraction caused them to rigidly hold the electrical source, most likely they'd be dead. If the contraction caused them to leap back and let go of the source, more likely they'll still be alive. And when they woke up, that is, if they weren't dead, they felt really really sore. I know I did when I got hit!

    Working with Artificial...

    Read more »

  • A Lesson in SEMG and Analog Physiological Sensing Electronics.

    David Nghiem04/02/2015 at 16:02 1 comment

      So now we get into the meat of the tech. The good stuff. The Biomedical Engineering coke. It's where the silicon meets the carbon road, where synthetic "life" meets organic "life."

      The blending of biology and physics was what got me into biomedical engineering in the first place. Meshing organic with inorganic has this perverse pull for me. Yes, I was the one who found the Borg queen in Star Trek Voyager, the Matrix human batteries, and anime cyborgs sexy as hell, especially with all the attachments put on em. Do I have a sick fetish? Maybe. Is it Visionary? Absolutely.


      I started down this path when I was 5 years old, and licked a nine volt battery. That buzz was what got me going. When I was ten, I dissected disposable cameras, and gave myself severe shocks from the flash capacitor as an experiment, and for fun. I also got hit by lightning when I was in college, but that's a story for another day. Since day one, I've had this strange predeliction for electricity and the body, and attaching hardware to my body, for good or bad, is very natural for me.

      Naturally I gravitated to muscles and electronics. So what better thing to work with than SEMG? Let's sing the Body Electric.

      And now for a lesson in Surface Electromyography, or SEMG for short.


      An SEMG signal is an electrical wave that cascades down your muscle. That wave is generated when something called a Motor Unit Action Potential, MUAP, which is a combination of muscle neurons (Motor Neuron) and muscle fibers, starts with a discharge of a set of neuron potentials.

      Those potentials are formed from the separation of sodium and potassium - which are positive ions - and chloride ions - which are negative ions - inside of the neural cell synapse, which is that long, tenuous line in the neural cell circuit. At the end point of the neural cell, where the neural electrical discharge ends, it releases neurotransmitters into the muscle cells, which in turn releases cascades of calcium ions, and that triggers the muscle fibers to contract. Now you know why salt, bananas, milk and leafy greens are important for your diet.

      That discharge wave cascades down your muscle, creating what's called a Motor Unit Action Potential Train, which is a long line of MUAP's discharging to the end of the muscle. That end, is where the muscle is attached to ligaments or tendons, which in turn are attached to skeletal bone. And that's why you need a ground near bone to complete the circuit.

      The full electrical discharge is both motor neural cells discharging, and muscle potentials discharging, ending with one giant, cascade of voltages coming out from your muscles. Which gets really messy, and complicated looking. Like this.


      What the electrode is measuring is the muscle discharge from the calcium ions. Lost somewhere in that signal are the motor neuron cells, but those aren't that important to look at for our purposes.

      To read electrical signals from muscles, we start with a differential amplifier, aka a diff amp. You need the diff amp because it subtracts the voltage values measured between the two electrodes.

      All the diff amp does is it measures a point in the wave, versus another point in the wave, while the ground provides a base reference. When it subtracts those values, you have a voltage value from the muscle, and that's the signal you're working with.

      Now, some SEMG circuits use a single electrode, and a ground. Others, like the one we're using, use the belly of the muscle, the ending of the muscle (right where it attaches to tendons), and the ground. You can also get crazier with triple, quad electrodes to get as much signal value as possible.

      This improves the resolution of the signal, because of the number of contact points on the skin. But it also gets a lot more uncomfortable. There's a lot of metal shafing on your skin all in a concentrated point.


      Good instrumentation diff amps meet these minimum parameters.

      1. Low internal noise (<0.5 mV)
      2. High input impedance (>100 MΩ)
      3. Flat bandwidth and sharp high...
    Read more »

  • The Wearable Synthetic Spine, and the School of Hardware Startup Hard Knocks - Lesson 1

    David Nghiem03/31/2015 at 01:06 0 comments

    Long before Marvel Comic's Iron Man movie series came out, and before Iron Man's technological concepts in the comic pages even got a veneer of plausibility, long before anime became mainstream, I watched a lot of Mecha Anime, from Robotech to Appleseed. I just enjoyed the art style and the stories. But the design concepts and ideas put forth by those "cartoons" were way, way ahead of their time. And one of the biggest influences in my work, is from Bubblegum Crisis.

    Bubblegum Crisis was a futuristic, bladerunneresque, cyberpunk series long before the concept of cyberpunk gained traction. That show gave me the concept of the human body sensor suit back in the 1980's. The series never defined what exactly went into the suit, but I took that science fiction anime visionary concept, and ran like a bat out of hell with it.

    Since I'm a visual person, I work a lot better with pictures. I'm also a sketch artist, so as usual, I went to my sketch book, coloring pencils and paints, and this is what I came up with.

    The Full Body Human Machine Interface


    This is my grand vision for this concept. It's a unified, integrated, wearable body sensor suite that's unintrusive, and you can use it for controlling robots, VR, etc. It should record and replicate digitally the entire body's motions, forces, and physical parameters.

    The Artificial Neural Network is what makes the suit "smart." The problem with technologies like SEMG, or IMU's, or accelerometers is that just by themselves, they're not going to give you an overall picture of what the body is doing when it's in movement or applying a force.

    Take SEMG for example. All SEMG does is measure the amount of innervation/contraction activity that your muscles are doing. Notice I didn't say movement. Ever done isometrics? Bruce Lee was a great proponent of isometrics.

    Isometrics is where you hold the limb or muscle in place, and contract the hell out of the muscle, without actually moving. Bruce Lee's one of the biggest role models of my life. If you ever read his biography, he's probably one of the first documented proponents of a high tech approach to combat conditioning.

    Anyway, you can fool an SEMG sensor into believing that you're contracting the muscle and interpret that as "movement." Hell, you can fool many sensors into believing that you're moving in certain ways. But once you've got a suite of sensors, with some learning ability embedded in them, you can get a far more accurate picture of what your body is doing.

    Incorporating an Artificial Neural Network, and an array of sensors as a suit from the get go with a robotic operating system is a bit much to bite in the beginning. So, I scaled it down to something that I figured "should" be much more manageable for the near term.

    The system as a whole is a networked, decentralized, sensory platform. It's a lot like your spinal neural system, which operates off of reflex. Everything you feel, physical perception, to limb and skeletal muscular movement, to reflex, even autonomous movement internally, emanates from your spinal cord.

    The end result of all this technobabble, the great vision, is to build a wearable, synthetic spinal neural network that senses your body's motion, physical condition, and muscles, and make that information useful for digital control of devices.

    Hardware Startup School of Hard Knocks - Lesson 1

    The hard part in all of this wasn't the technical part. The hard part, is finding the right people and the right advice.

    At the time, (2011) I should've gone with my very first instinct, which was to immediately start laying out the design, and manufacturing the pod for sale to interested people. I told my partner at the time that what I wanted to do was to make the pod as is, and start selling it at conventions, meetups, shoot, I'd sell it on the street from a White Van if I had to. - Side note, I was one of those saps who actually bought a set of speakers from two dudes in a White Van. Supposedly, it was one of those 90's/early 2000's...

    Read more »

  • Iterating the SEMG Sensor and Creating the Platform

    David Nghiem03/19/2015 at 21:14 0 comments

    So, I had my requirements in my head for this next version. It had to be:

    • Integrated into one unit
    • Be easier to use
    • Be wearable.
    • The current set of op-amps needed better impedance values, in particular the differential amplifier which connected to the electrodes. Which meant a whole new set of op-amps
    • Be easy to reprogram on the fly

    I came up with this.

    I also added a milspec shielded cable, since I noticed that the signal also got interference from, I'm not sure, static, EMF radiating from my body, whatever. The milspec cable had a nice shielding Faraday cage type around the wire strands, which I grounded.

    Next, it was time to test it.

    And you can see it in action here.

    You can see how much cleaner the response is, versus my quick and dirty prototype. Oh man, it was a revelation! A few other innovations I incorporated are the electrode placement methods on the sleeve. I used velcro on the backs of the electrodes, and there's velcro inside the sleeve. This let's me adjust the position of the electrode on the fly. Now obviously, I wouldn't wear the pod like that, that's just asking for it if you fall on your chest. Also, it was a massive improvement over the Advancer circuit, which used this tiny analog pot to change gain values, and that pot usually died after 4 uses. So I replaced it with a BIG POT. Oh man, talk about way better.

    Still, I ran into a bunch of problems with this one.

    • The electrode contacts were uncomfortable. I was still using copper plates hot glued to velcro straps
    • While this version was reprogrammable, and the chips were socketed so I could replace burnt chips, I had random shorts and connection issues because I was hand soldering wired jumper fashion to various pin outs. There was slag and left over solder EVERYWHERE. Talk about a headache debugging.
    • I needed more LED lights to indicate my level. The Atmel Digital PWM's wasn't enough. That meant I needed an LED driver.
    • The bigger pot was nice. But really inelegant. I wanted something I could digitally control.
    • I was still oversaturating the op-amps. I needed a lower gain.

    So, it was back to the drawing board with another design! But at the same time, it also meant I was getting close to a real product. And that meant generating a master plan...

  • Making it Wearable

    David Nghiem03/18/2015 at 23:55 0 comments

    So, now that the proof of concept worked, the next step was to make it wearable. After all, I wanted to run with this thing. So, I picked up some Adafruit Lilypads, (pre-flora)

    Adafruit Flora

    And a whole bunch of sewable electronics, like sewable LED's and thread

    Stainless Thin Conductive Thread

    Adafruit LED Sequins - Warm White - Pack of 5

    And routed the SEMG data through the Lilypad, like this.

    I also wasn't fond of the signal strength I was getting through the Advancer board, so I built my own electrode with a basic opamp amplifier configuration directly at the skin contact surface. Which you can see here.



    I then added the flora to my shirt, a bicycle jersey.

    And here's what it looks like assembled.

    And the whole thing.

    I stopped at doing both sides because I had only one functioning set of electrodes (I fried two sets, and exchanged some emails with Advancer regarding what I was doing.)



    And here's the first test of the idea.

    I used to be a kickboxing/martial arts instructor for a number of years, so yeah, Hell yeah, I'm going to do combat motions with this thing!

    And here's a test of the concept with some weights.

    I then took it out for a walk with my dogs. In my opinion, if the technology you're using can't be put through its paces doing all kinds of weird crap, it's no more useful than a delicate toy.

    I ran into a whole bunch of problems that I needed to work out though. For starters, I needed to integrate the unit into one small thing, as I wanted to get the SEMG signal from my other parts of my body as well. I also needed it to be smaller, and more flexible. My sweat also made the conductive thread wonky with the electrical signal, and overall, I wanted a better design. The Advancer Technologies circuit also oversaturated, and I had some issues with the circuitry itself. So, I threw out the entire design, and went back to the drawing board. I wanted to create a better circuit, a better electrode, a better way to change the gain, a better form factor, basically I wanted a much more useable wearable SEMG device.

  • In the Beginning...

    David Nghiem03/18/2015 at 21:18 0 comments

    The SEMG product concept started out in 2009 when I was running down a 3 mile route nearby my parent's home, and the road in particular is dark at night. There are few street lamps, and cars go down at a limit of 40mph, but let's be honest, most people don't give two $#!ts about speed limits. There's no sidewalk, and barely any shoulder. As I ran, I wondered if I could use the SEMG signal from my legs to control a light pattern to warn oncoming cars with a non patterned light show, like how some animals have vivid colors to ward off potential predators with a show of flair - that also meant they were poisonous.

    So, I went back to my ancient senior design thesis, which made use of SEMG signals to control robotics, and saw that the Arduino was coming along. And that's when it hit me. Combine the two. Here's the first quick and dirty prototype when I started testing the feasibility of the concept.

    I'm a really fast prototyper. I like quick and dirty proof of concepts just to see if an idea is feasible, so naturally I grabbed one of my arduinos, and searched around for cheap electrodes. Advancer Technologies, http://www.advancertechnologies.com/

    design came up, so scratch built one first, built a few using this Instructable, also from Advancer

    Instructables SEMG sensor

    , and after a few rounds with a klunky bread board, I then I bought some of their integrated circuit boards. I wanted to see if I could make a level meter of my muscles, using LED's. For that, here's the setup hooked up with some LED's.

    I then tested it out with some weights, to see how sensitive it was. So I curled a 25 pound weight to check it out.

    The idea proved sound. It was onto the next step, to make it wearable.

View all 9 project logs

  • 1
    Step 1

    1.) READ THE PROJECT LOGS!

  • 2
    Step 2

    2.) READ RULE 1!!

View all instructions

Enjoy this project?

Share

Discussions

Rodrigo Loza wrote 05/22/2016 at 21:07 point

Very nice and interesting. Actually, i made one of your devices a few months ago. I reduced the electronics to the cost of 3$. It is an incredible idea to try to control other things with your device. 

  Are you sure? yes | no

MECHANICUS wrote 03/19/2015 at 22:51 point

You are a god damn genius! No really great project, towards the end of this year we should definitely team up and make prosthesis for amputees, that is if you are down with it.  

  Are you sure? yes | no

David Nghiem wrote 03/20/2015 at 03:56 point

Oh, I am totally down with that. Sheeeeet, Hellz yeah. Besides, I need something better than nitinol for artificial muscles. Want to know what's cool about nitinol as artificial muscles? They can contract. Hard. Want to know what's not cool about nitinol as artificial muscles?

They start smokin when there's enough current going through em... Oh yeah, can you imagine a prosthetic powered by nitinol? Poor wearer could have a barbecue on his arm... You'd have to give em the instruction manual, and some BBQ sauce (maybe some Sriracha too) along with it...


So hell yeah, I'm interested in the stuff you're cranking.

  Are you sure? yes | no

MECHANICUS wrote 03/20/2015 at 07:10 point

Ooh that's so morbid... Lol I like it, but the wearer may not.  I am really glad to see you working on this, there are alternatives, but cost being a factor i think you will win the race to wearable muscle sensors for the masses.  I'll get to the point soon where I can put together a raptor hand and hopefully send it to you for the electronics hardware.  

Maybe we start another project for this silly ass prize, I will keep in touch over the next few months, what you are doing and have done excites the hell out of me.

  Are you sure? yes | no

David Nghiem wrote 03/20/2015 at 17:50 point

Actually, along the lines of what you're doing, I have an experimental setup in the garage for making those fishingline muscles. I wanted to try those out in conjunction with the SEMG to see if I can make an artifical controlled twitch muscle. I don't suppose you're producing and selling them right now? Or got any you can send over to play with? I also looked at soft robotics muscles as a possibility, but having grown up playing Battletech, and spending hours on their tech read outs, I'm much more predisposed to the fiber muscle concept.

  Are you sure? yes | no

MECHANICUS wrote 03/20/2015 at 19:38 point

Yes, this is pretty much your myomer muscle, be prepared to dump coolant!  I will think about selling them soon, I would like to be able to produce large quantities first as keeping this open makes it more likely to be taken over by competition.

I really can't believe Dallas nanotech released the info for those muscles. All they needed to do was develop them a little to have a useful actuator.  Better for us I guess.

Give it a few months and I will probably just send some to you for free, especially if you can provide information on SEMG and how you went about driving the nitinol wires.

I really would prefer working together though.  Especially if this prosthesis will be entered into the hackaday 2015 prize.  It would fairly give us both another chance to win.

  Are you sure? yes | no

David Nghiem wrote 03/20/2015 at 20:00 point

Hey man, I'm down with collaborating. Tell you what, give me an idea of what the spec out is for driving your muscles, and I'll go ahead and prototype something along those lines that I can control with the sensor that we can attach it to. And I'll send it to you to mess around with.


When I did it with nitinol, the problem was the nitinol had a threshold current, in other words, you were either on, or you were off, at least to get the force you wanted. So I controlled it with a relay. Course, at some point, the heat was so great through the wires that they started to cook and smoke. You know what's funny? I built that thing for astronauts to use. Can you imagine the person on a space station goin, "Holy $#!T! I'm SMOKIN! And not in a good way!"

So, yeah, I'm looking for a muscle I can control with digital steps, or shoot, analog steps.

I don't suppose you live anywhere in the USA near, say, the D.C. area? Cause face to face collaboration is way, WAY easier.

  Are you sure? yes | no

MECHANICUS wrote 03/23/2015 at 04:04 point

I am still tweaking CNT loading from .05% to 3% by weight and have no idea what will work better as far as driving it with current.   The trade off for higher resistance is a slower cooling rate, and cooling is obviously variable based upon filament diameter, and thermally conductive material loading.  

1.25 ohms resistance per inch for the 6-mil wire is standard for nitinol. Should I shoot for something in this area?

I guess what I am asking is that higher resistance will allow more efficient use of current correct?  

A muscle that can oscillate at around 10 hz would be phenomenal but it will have lower resistance.  I am looking at adding diamond dust to the filament which should allow for increased resistance and increased thermal conductivity. 

Sorry If I sound like an idiot, I study materials science and chemistry so my electrical knowledge has been entirely neglected.   It would be great to get your input on this as I can produce better muscles and through collaboration help us both out with a better actuator package.

  Are you sure? yes | no

David Nghiem wrote 03/28/2015 at 00:58 point

Here's what I think. Instead of using higher resistance, have you
done any tests using oscillating current in alternating fibers? When it
comes to our muscles, not every single fiber activates on innervation.
What's your experimental setup and control, and procedure? I'm thinking
along the lines if you can do some basic experiments with the fibers to
see how they act with oscillating current, around, say 1-30HZ, and then
create a setup where you have, for example, 2 fibers, 1 innervated, the
other not, both attached to the weight that your testing it on. I don't
know how much you know about muscles, but that was my bread an butter
back in the day with making artificial muscles, and we used the Hill
Muscle model, which had a compressive element, and a spring element.
What I would try to replicate is something along those lines, where one
fiber is active, that's your compressible, and the other is not, that's
your spring, and they work in tandem with each other. 
If you can
shoot me a mesg with your email, I can sketch up a drawing for you
regarding what I'm talking about. A picture is worth a thousand words...



Shoot, you know what? I'll just put that concept in one of the blog posts, about the artifiicial muscles I built.

  Are you sure? yes | no

David Nghiem wrote 03/31/2015 at 20:04 point

Hey Dude, (You're a dude, right?) 
Went through some of your
stuff. I was wondering, since at the moment you don't have a full
prototype, have you done any tests on the filament muscles by cycling
heat at frequency intervals? Reason I ask is it seems like so far, we
only have results to what happens when you apply heat at a slow cycle.
But nothing in the Hertz range on down. One idea I've toyed with is to
get heating element wire (like the stuff in toasters), and weaving that
into the fishing line to see what that does. Have you tried that or do
you know if anyone else has tried that? Cause once you can apply current
directly, then we can start applying my tech to it.

  Are you sure? yes | no

MECHANICUS wrote 03/31/2015 at 22:38 point

Sorry I had some problems with my breaker plate was letting air bubbles into my filament, Filament kept breaking.  I have been driving it with PWM DC current up to ten amps, so yah in a way it was a frequency.  So I had to order some tighter screen in-order to get solid filament.  I am still waiting on the 80 mesh screen might even have to go down to 50 mesh. 

The muscles do have a variable amount of pull based on temperature, I am still waiting on thermistors to measure more accurately.  Sorry I haven't got back to you yet it's just such an incredibly complicated endeavor with hundreds of variables.  

I will get some filament out to you as soon as I get a high life useful filament and you can experiment yourself with driving it with AC PWM.  

I also am working on passive cooling down a tube using air flow, I think it will work better than water, or heatsink cooling because the surface area is higher in a bundle of filament than will be on the outside of a heatsink.   

The wire does work but I want the filament to be self contained no addition of wire in the twist as it does not heat evenly.  Yah you get the effect of current traveling down the outside of filament I forget what that's called but its much more even than a wire wrapping around it.  

I have also been experimenting with a different wind with many very fine filaments but it was also breaking.  I don't know yet it will probably be another month before I get it nailed down.  I am charging forward

  Are you sure? yes | no

MECHANICUS wrote 03/31/2015 at 22:41 point

Also I can maybe send you some sketchup files on what I really want to put these into that I am also working on. PM sent for my email. and no I'm not a dude, I actually have worked on ranches as a hand;) But I am a male.

  Are you sure? yes | no

David Nghiem wrote 04/02/2015 at 05:18 point

I rode a bull (2 yr old) on a ranch in Brazil. Twice. And that's all I'll ever need to do... :D

  Are you sure? yes | no

suicidal.banana wrote 03/19/2015 at 16:53 point

Interesting stuff!

I was recently thinking about a set of gloves (that go up past the elbow, and maybe even to the shoulder) that would be used to give 'hand input' too VR, looks like you have everything needed already working? :P

If so, you should just jump the KickStarter bandwagon and make a VR controller ;)

  Are you sure? yes | no

David Nghiem wrote 03/19/2015 at 20:51 point

HAH. Kickstarter. The hipster crowdfunder... Well, as is, SEMG ain't a great way to get a control signal. Don't get me wrong, you'll get a SIGNAL, just not a great one to control stuff with. We're partnering it with some other sensors to make it more accurate in that regard.

Once it's partnered properly, I think it would be a lot better, and far more functional for VR. I grew up with the freaking Nintendo POWERGLOVE. Shoot, it's been what, over 20 years? I'm sure this would be far better than that this day and age for VR...


  Are you sure? yes | no

DainBramage wrote 03/15/2015 at 02:14 point

Fascinating video, David. Have you considered adding an audio output to the device? Still, watching the LED indicators is quite interesting. I suppose that I have more reason to be curious than most with this particular subject, but that doesn't take anything away from your accomplishments.  

  Are you sure? yes | no

David Nghiem wrote 03/16/2015 at 16:59 point

Hey DainBramage,

That's actually an interesting idea. I also play the fiddle, so my only thing, is well, will hurt to hear or would it be pleasant to listen to? I've never thought of trying that. It sounds like something I'd pump through a nintendo gameboy for chip tune effects.

  Are you sure? yes | no

DainBramage wrote 03/16/2015 at 17:46 point

That would be an interesting way of doing it! The ones at the doctor's office just play a click with each muscle impulse detected, so it sounds a bit like a radiation counter. It's not unpleasant, though not what I would consider to be musical. It is interesting, however. 

This leads me to another question, is your device sensitive enough to pick up individual muscle impulses? I know that sensitivity is an issue due to detecting through the skin, I'm just curious if it's possible to pick up the individual impulses like a needle type EMG can. I noticed a few quick pulses on the LED bar in your video. Do those represent individual pulses or many?

Sorry to keep pelting you with questions.

  Are you sure? yes | no

David Nghiem wrote 03/16/2015 at 19:22 point

Hmm. Well, the way your muscles work is you have to start with the most basic unit, and that's what's called the MUAP, or Motor Unit Action Potential. That's a group of muscles signaled by a set of neurons. So, if you mean impulse as in one of those, then you "might" get the impulse. What you see on the LED display is basically a cascading wave of energy released and running down the muscle. So, it's not an impulse per say, but more like watching a wave. Ever watch a wave roll down the coast before slamming into the beach? That's a lot like what watching an SEMG signal is like. I wouldn't be able to say that any one of those points is an impulse, but if we took out all the filters I have on my thing, and the half wave rectifier, than yeah, you can see the impulse. But the problem is just having that SEMG signal itself isn't all that useful for anything other than diagnostic purposes (like determining if your muscles are tired, degraded). Whereas the way I have it set up now, it's designed to use variable voltage to control stuff, kinda like when you roll a digital pot clockwise and counter clockwise. 

I can imagine that if I hooked up the LED driver instead to say, a music chip where each level of voltage goes with a piano key, it's like running your finger on the piano keyboard up and down. 

Course, that could be more pleasant than the "Holy crapcakes Batman, your muscles sound like nuclear waste!" sound that you get from the Doc's instruments.

This sounds interesting though. Gonna have to dig up some sound chips to stick on this sucka...


  Are you sure? yes | no

David Nghiem wrote 03/16/2015 at 19:34 point

Don't be sorry about the questions! Keep hitting me with em! You have no idea how long I've been navel gazing at this crap, that at some point, you gotta have fresh perspectives. 

Based on your suggestion, I just ordered a bunch of YM2149 chips to interface with it. Now i'm curious as to what this will turn into. Keep hammering me with questions man! Nothing sucks worse than being stuck inside an echo chamber/navel gazer's mirror.

  Are you sure? yes | no

DainBramage wrote 03/16/2015 at 19:44 point

Glad I could be helpful in some way. I had to Google the YM2149, looks like an impressive piece of silicon. I hope they didn't cost you too much. I am very interested to see the result of them being integrated into your project, especially since this is way above my skill level. 

I'll be certain to ask any more questions I come up with, but at the moment my mind is blank (which is its normal state, of course).

  Are you sure? yes | no

DainBramage wrote 03/13/2015 at 02:41 point

Awesome project!

I find myself wondering if this technology might have a use in helping people with muscle disorders. Any thoughts?

  Are you sure? yes | no

David Nghiem wrote 03/13/2015 at 02:53 point

Well, my Dad, who had hip replacement surgery, and was undergoing quite a lot of physical therapy would fall into that class. I did a few experiments with his leg and the sensors just to monitor the level of innervation. Unfortunately, SEMG has two massive technical issues. The first major issue is you're not going to get an overall picture of the muscle innervation. The sensor only picks up parts of the signal at the surface of the skin. To get a much higher fidelity signal, you need insertable needle sensors. I don't know a lot of people who'd be willing to have needles inserted into their muscles to pick up the signal. The other major technical issue with SEMG is noise that comes from the contact of the electrode to the skin, if it shifts, and the noise that appears when the muscles move and rub under the skin. So, you're not going to get a very good picture of the muscle disorder. That said, you will discern a noticeable difference in SEMG signals between a healthy muscle, and a muscle that's effected by a disorder. With some signal processing, you'd also see some frequency shifts between a muscle that's healthy, vs. a muscle that has the disorder. 
I see SEMG as just one sensor in what should be a broad suite of sensors, each one used to compensate for the deficiencies in each other. It's just I've spent so much of my time just on SEMG.



Not sure if I answered your question, but in a nutshell, it "might" help, but that depends on your application and what you're going for.

  Are you sure? yes | no

DainBramage wrote 03/13/2015 at 03:13 point

You've answered my question quite nicely, thank you!

I have had several EMG studies done in an attempt to narrow down the idiopathic myopathy I have been dealing with for the last few years, and possibly for many years before then.

You've also answered a question that I hadn't asked, which was about the difference in resolution between SEMG and conventional EMG. I think it would be extremely valuable to develop a system of pattern recognition to aid in diagnosis of muscular disorders, but I can imagine that there would be huge roadblocks in the way of creating such a system, not the least of which is getting the information needed to establish a database of patterns in the first place.

Truthfully, I'm surprised that it is possible to pick up the electrical signals from the muscles from the skin's surface at all. I think I may try some experiments in that direction, though it won't be nearly as sophisticated as what you are doing, if I do it at all.

Again, you have an awesome project and I wish you all the success in the world. And thank you also for taking the time to answer my question. :)

  Are you sure? yes | no

David Nghiem wrote 03/13/2015 at 20:47 point

Hmm, if you have the studies done before the myopathy got bad, you "might" have a control that you can compare it too. The problem with approaching this with SEMG is because everyone is different, you don't have a baseline SEMG signal of when you were "healthy", vs. now. In fact, for all you know, you've been living with this the whole time, so getting a healthy muscle SEMG signal is, um, a long shot. Myopathy, at least from what I read, means inflammation and a lot more creatine enzymes floating around. So, you'll be burning off a lot more energy, which would mean you'd have more noisy muscles. Maybe a good way to figure out your myopathy would be to have SEMG only as a supplement, but a kinetic motion analysis of the muscle system in question. You can see a lot more from gait and compensation when you're moving, as your muscles will be a lot more innervated than normal folks. At least, that's what I'm guessing based on what I've just read about your condition. 

This could be a fun project in that regard. I'd be down with making something that does that...

  Are you sure? yes | no

DainBramage wrote 03/13/2015 at 21:21 point

Inflammation is right. My CRP level (an
inflammation indicator) was 25 the last time it was checked, and was at
15 for at least 10 years before that. Normal is 1 or less, and between 2
and 3 usually means that an infection is present. At least that's the
way I understand it. I'm not a physician or even someone who's studied
medicine. I have tried to educate myself on the things I'm dealing with,
however, so much of the terminology is familiar to me.
As for my
gait, I walk with a cane, so it's certain to be abnormal. You can also
add peripheral neuropathy to the myopathy, which is believed to be one
of the verities of metabolic myopathy. In other words, the tips of my
nerves don't work and my skeletal muscles are starving. I have other
issues, but those are the two that affect my muscles the most.



You
are correct about not having a healthy baseline, but I think it would
be interesting to see what SEMG measurements would turn up in my case.
However, I think this will have to remain a theoretical idea.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates