Author Topic: Capacitve EMG for Prosthetic Hand  (Read 6980 times)

0 Members and 1 Guest are viewing this topic.

Offline waymond91Topic starter

  • Regular Contributor
  • *
  • Posts: 93
  • Country: us
Capacitve EMG for Prosthetic Hand
« on: January 07, 2016, 02:01:08 am »
Hey All!
This is my first time on the forum but I have been watching the blog for a couple years now, so bear with me.

I am studying mechatronic engineering and have started branching out more  into the electrical world, mostly thanks to cheap microcontrollers. For my senior project at university, we are building a prosthetic hand for a boy who has had all of his fingers amputated. He was in a house fire when he was 3 years old, and suffered extreme burning. For his privacy I don't want to reveal his name, or post too many pictures etc. I have, however attached pictures of both of his hands.

Left Hand:

Right Hand:


Anyway, we thought the best way to go about controlling finger position would be to use an EMG on the muscles of his forearm to measure how much energy a specific finger was using to either flex or extend. Seeing as how I have more digital experience than analog, my goal was basically to build an amplifier that was just clean enough to get the signal through to an ADC so I could just program from there. I have never really used instrumentation amplifiers before (or much of op-amps for that matter) so I was very pleased when we actually got some EMG signals onto the oscilloscope. :)

We used a microchip MCP6N11-100 for the In-Amp. I have attached the design concept for the original amplifier schematic, as well as the results of testing the EMG on myself (titled "Original Amp" and "Self Test" respectively). I was actually able to clean up the signal a lot more after this capture by adding an active-first order high pass filter.

Original Amp:

Self Test:


Well, that was all well in good. But I did some reading and it turns out the extensive nerve damage can significantly INCREASE the strength of an EMG signal. However, I also read that scar-tissue and skin grafts (which he has in excess) can change the impedance of the skin. So needless to say when it actually came time to meet him and test it out, I really did not know what to expect in terms of an input signal.

Regardless, my design worked horribly. I suspect that scar-tissue and skin-grafts have effectively attenuated significantly. In order to get any response whatsoever, I had to remove the DC blocking filter to in-amp. Furthermore, increasing the gain did not help that much since the in-amp was easily saturated by noise (the in-amp operates between 0-5V with a DC offset at 2.5v. So with a minimum gain of 100, 2.5mV of noise renders the circuit completely useless).  |O

To make things more complicated, he is really not accustomed to USING his finger muscles since he has essentially gone his whole life without using them in a traditional manner. So when I tell him to flex his left ring finger, it doesn't really mean much to him. We were able to work through it eventually by applying some pressure on the area of the palm that corresponded with the "correct" finger.  I have attached some of our results in the files "Left Hand Electrodes" and "First Test".

Hand:

Test:


So, in an effort to better filter out the noise, I started reading up on higher order sallen-key filter configurations. My idea was to put an active, adjustable bandpass filter (between about 10 and 100 Hz) with a 60 Hz notch filter in between every electrode and its corresponding in-amp. Does this seem like sound reasoning?

So, specifically, I am currently working on an electrode pre-amp that comes before the in-amp. Any guidance would be much appreciated.
The goal with next round of design is to build an amplifier circuit that successfully find amplitude and frequency range for each movement (flexion and extension of each finger).
To me this means:
1) The pre-amp should have adjustable attenuation (because nerve damage can INCREASE the emg signal) between about 10% and unity.
2) The pre-amp should have an adjustable bandwidth (between about 1 & 20 Hz on the highpass, and about 45 and 150 on the lowpass).
3) The notch filter should have adjustable center (it seems mains power center frequency changes depending location?)

I have started building the circuit in spice, and have included a picture of the schematic and bode plot ("Sallen-Key Pre-Amp" and "sallen-key pre-amp bode").

Schematic:

Bode:


So I have the following questions:
1) Does  a filter BEFORE the in-amp seem like the right way to go?
1) How do I implement an effective notch filter embedded within the bandpass filter?
3) How do I make adjustable bandwidth and attenuation on the pre-amp? Any suggested reading?
4) How far do you think I need to attenuate the signals outside the the frequencies of interest?
5) What do you guys think of the design overall? Are there any glaring issues I have overlooked?

Ultimately, I would like to change this direct contact design into a non-contact one. So instead of an electrode essential glued to his arm, I would like the bottom copper-layer of a PCB to sit touching/very close to his forearm. The silkscreen could act as a dielectric in the capacitive bond. I have seen this done in some papers on IEEE for EKGs.
I liked this idea because it completely isolates him from the circuit, makes the electrodes re-usable, and allows us to embed the electrodes into the frame of the prosthetic so he can put it on by himself.

I have tons of questions about this stuff, so any help is greatly encouraged and appreciated!!!
« Last Edit: January 07, 2016, 02:20:01 am by waymond91 »
 

Offline waymond91Topic starter

  • Regular Contributor
  • *
  • Posts: 93
  • Country: us
Re: Capacitve EMG for Prosthetic Hand
« Reply #1 on: January 08, 2016, 07:43:28 pm »
Sorry to bump this, but this project is near and dear to me so I just thought I'd update.
It turns out that people rarely use op-amps before the in-amp in EMG applications.
I think what I need to do is choose an in-amp with a lower minimum gain (MCP6N11-100 -> MCP6N11-001).
This should keep the in-amp from saturating too early, and then I can filter and amplify as needed after that stage.

Here is my latest spice simulation with an adjustable 60 Hz notch filter. Still working on how to adjust attenuation/gain on the bandpass filter stage.

Here is the schematic:

Here is the bode plot:
 

Offline Kalvin

  • Super Contributor
  • ***
  • Posts: 2145
  • Country: fi
  • Embedded SW/HW.
Re: Capacitve EMG for Prosthetic Hand
« Reply #2 on: January 08, 2016, 08:48:15 pm »
I would consider using a 24-bit ADC, either differential or single-ended which ever is most suitable, and use a suitable small DSP for filtering and signal processing. There are some multichannel 24-bit ADCs which has simultaneous sampling capability, if needed.
« Last Edit: January 08, 2016, 08:50:30 pm by Kalvin »
 

Offline waymond91Topic starter

  • Regular Contributor
  • *
  • Posts: 93
  • Country: us
Re: Capacitve EMG for Prosthetic Hand
« Reply #3 on: January 08, 2016, 11:53:37 pm »
Thanks for the response!
I have never used a DSP before. I have, however, done "real time" FFT and such using python/matlab connected to an arduino or arm board.
Just looking up the difference between a DSP and MCUs, it seems like we'll likely want to have a DSP separate from the MCU handling any digital filtering and or FFTs.
How hard is it to integrate a DSP into a PCB design? I assume they just need a separate oscillator crystal, proper power, and bus communication with the MCU?

Also, looking at the phase diagram of the filter I attached in the previous post:
How important is the phase shift at these slower frequencies?
It seems like for frequencies just below 10hz the data is likely 50ms late (since its 180 degrees late).
Likewise, on the other side of 10hz the data is likely to 50ms EARLY.

If were aiming to update the finger positions at minimum rate of 10 hz, how much does this interfere with our computation? Is this something I need to be worried about?
 

Offline daveatol

  • Regular Contributor
  • *
  • Posts: 136
  • Country: au
Re: Capacitve EMG for Prosthetic Hand
« Reply #4 on: January 09, 2016, 04:26:07 am »
Hi. From the images, it looks like the kid still has his wrist. There are some very simple designs that can be 3D printed for such cases. The movement of the wrist is used to pull 'tendons' in the prosthetic, which in turn actuate the fingers. The design doesn't require any batteries as it uses the strength of muscles in the forearm, and is extremely cheap. The prosthesis is also kid-friendly, as you'll see from the different colour schemes and super-hero styles.

See http://www.robohand.net/ and http://enablingthefuture.org/tag/3d-printed-fingers/
 

Offline waymond91Topic starter

  • Regular Contributor
  • *
  • Posts: 93
  • Country: us
Re: Capacitve EMG for Prosthetic Hand
« Reply #5 on: January 09, 2016, 08:10:52 am »
Daveatol:
I have never seen that Enabling The Future site before. This looks great! There was a previous project that aimed to build a hand very similar to the ones here for his right hand, since he still does have lots of energy in that wrist. This was done by one of my group members for his machine design class, and its the project that got us all engaged with it. Sorry for the low quality picture, but this is the best one I have of the previous project:

I'll definitely sign up with forum there. I'll need a couple nights to read through some of the content there :)

evb149:
Wow! We could definitely use a little help. We are all on Winter break so a lot of the work has slowed down for the next couple of weeks, but I am pushing to test the EMG again within the next two weeks. So any feedback and design tweaks we can make right now saves us LOTS of time later.
More of you post went over my head then I had hoped...

I will certainly read through that paper; I would basically have no chance of pulling this project off if it wasn't for my schools access to the IEEE database :P

What I am currently doing in terms of testing and data collection:
I have a rigol DS1054Z that I have hooked up to my computer via ethernet cable. There is a python library that lets me capture all of the data currently captured on the screen. I was pulling this into a seperate CSV and using that data to produce an FFT graph using numpy and matplotlib (I am learning to use matlab and octave a little more, but python does SO much). That all seems to be working well enough; I realize that a wireless solution may have less interference, but this hand is supposed to be used in classrooms etc where there is plenty of 60hz noise.

I have had some experience with the STM discovery boards (they gotta be selling those things at a loss for what they can do). We were actually planning to  use an STM32F303 for the MCU on this project - we weren't planning on doing true FFT on each emg channel,  rather simply rectifying the signal digitally and then integrating to find the energy expended. However if a DSP or beefier ARM chip would allow this, I think it definitely makes it a more useful piece of hardware.

As for gyroscopes and accelerometers, we were considering using an IMU to do an automatic slip-arrest kind of deal (so we would not have to consciously make finger corrections all the time) but I think this only works if we are refreshing the finger position at relatively fast frequency. Regardless, I'll take a closer look once the EMG is working :)

Where I have the least experience with regards to your post is:
1) Actually estimating processing power/speed required to perform the signal processing we want to. I guess in order to do this we would need to firm up some of our control algorithm. We wrote a design report for class; if you like I can send it to you.

2) For analog processing, what I have posted here is really the extent of what I understand. I am aware that there is an exchange between digital/analog filtering. To me, I was thinking that buying a half-decent ADC and MCU could definitely save a lot of time/money. Seeing as how this is a one-off, we are not really concerned about shaving cents off the design (I guess this shows the extent of my understanding of point d). That being said, our budget is way too small IMO. In terms of power, I suspect that our motors will consume the most, and that analog filtering saves processing time...? In terms of FIR filtering, I literally have never been exposed to it before. It wasn't until I first read the term "FIR" that I started worrying about the phase diagram from my bode plot. I will have to do some more reading.

I don't see much of a difference between a) and b) from your post. Simply because our testing process will primarily consist of hooking it up and seeing if its too noisy. I expect that our bandwidth is small enough and frequency is low enough to exclude most radio transmissions, and I did just add a 60 Hz filter for power noise. I am, however, curious to see what happens when we introduce our dc motors into the equation.

In terms of c): sampling rate and bandwidth, I was really just hoping that some basic understanding of Nyquist would carry me through here...

Unfortunately, everyone in my group is studying mechantronics, except one mechanical. So I am what passes for an EE around here  O0

Thank you so much for your help. I am specing out a lot of the components the next couple days, and if you have time I'd love to send the design your way!
 

Offline sarepairman2

  • Frequent Contributor
  • **
  • Posts: 480
  • Country: 00
Re: Capacitve EMG for Prosthetic Hand
« Reply #6 on: January 10, 2016, 05:42:25 am »
there are ADC's that have a hardware DSP built in (SAR type usually). It might be worth looking at because I can see DSP shutting down a project because of its complexity.

I think I would look at analog devices for this project (high end).

Also look at active filter building blocks if you want an analog approach (linear makes these). You can get very high order filters this way only using a few parts (i am talking like 8th order stable)

A big trap for young players is trying to make discrete analog filters of a high order. Alot of topologies will require retarded tolerances (for instance <4 order sallen key will require stupid accurate and stable resistors), and other topologies (say general impedance converter based) will require alot of op-amps.

http://www.linear.com/parametric/filter_building_blocks

Another option for this, if you decide to use op-amp (discrete filter) but want a small form factor, you can use a SOC (system on chip) which is basically a MCU with some op-amps inside of it.

Have you looked at lock in amplifiers? (is it possible to maybe for YOU to send a signal that interacts with nerve impulses in a detectable way?, I kind of imagine this as the impedance of a nerve pathway changing when you try to do something.)

You can either try to passively detect the bodies activity (what you are doing now) or possibly detect it echo style with a ping signal. This would allow you to have ridiculous sensitivity if you used a lock in amplifier. What I am saying is like, ok, imagine you have a sine wave going through your body that you can measure, now you can see the sine wave getting attenuated when you clench your fist (because the impedance of your nerves changes). It might be easier to detect then the electrical impulse if you categorize  the different responses from different body movements.

I don't know much about how the body works but I wish you luck as amputation is some scary ass shit. If you get it to work don't be greedy with this project.

As for analog vs digital, I think THEORETICALLY digital is better so long you have an anti aliasing filter, but in the real world I am not so sure. Slapping together a high Q filter out of analog building blocks might be easier then trying to work out a bunch of advanced math with DSP, especially if it proves your project works. I think if you get the proof of concept working you can easily get investors and hire a DSP professional.

But you also need to consider, if you can do it analog it will probobly consume less power (which would be important if its something that you need to wear). Well built analog filters made with low queisent current parts will probobly beat the shit out of a FPGA in terms of power consumption. I would hate to have my robolegs run out of juice like a counterfeit I-phone lol. And I think it might be more reliable, because a op-amp or such has much less transistors then a FPGA, it is a older technology. And you can't have a programming error or something cause a loss of functionality with a analog system. Also the parts won't be BGA like a FPGA would be, making it easier to work on, repair, probobly more reliable.

Also, if this is something that you wear then lower power consumption = more user comfort. No one likes having a hot laptop on their lap.

And its just cooler to use analog  O0

I would use a active filter IC, get it to work, prove its worth your time, then mess around optimizing it.

in general, even in the work place, its better to get a working project so you have something done rather then trying to design the most chic system possible from the beginning. Your bosses/professors will be happy that you made something functional. I think any one would be fucking blown away by some kind of robot fingers you made, and defiantly give you more time to optimize the project (hell i can see you getting your own team, i would authorize it if you showed me a robot finger you can connect to a stump that works, even if its connected to something the size of a washing machine)
« Last Edit: January 10, 2016, 06:08:18 am by sarepairman2 »
 

Offline Kalvin

  • Super Contributor
  • ***
  • Posts: 2145
  • Country: fi
  • Embedded SW/HW.
Re: Capacitve EMG for Prosthetic Hand
« Reply #7 on: January 10, 2016, 01:49:16 pm »
If you decide to take the DSP-route, the first thing you want is to get some real sensor data to your PC for further analysis. That said, you may want to first find a suitable 24-bit ADC that is easy to work with. If you need to sample multiple signals simultaneously, you may want to select an ADC with simultaneous sampling capability. Typically the 24-bit ADCs have 50Hz/60Hz supply rejection built in, just make sure that the device you select has this feature.

Let's assume that you select the LTC2440, one channel 24-bit ADC with maximum of 3.5kHz sampling rate, in order to get started. (You may also take a look at other 24-bit ADC from Texas Instruments, Maxim and Analog Devices.) You need to study what kind of signal conditioning is needed in order to be able to interface the sensor to the ADC. The anti-aliasing filter can be very simple, even a RC-filter may be sufficient enough.

Then you need to build a simple circuit that contains the circuitry for the sensor signal conditioning, the ADC and power supply. Don't try to build this on a solderless breadboard because the chances are that you will not be happy with the results as you cannot control the ground plane well enough and you will get lots of unwanted noise littering your actual signal.

After that you want to get the samples out from the ADC. Luckily there are already Arduino code available around the net which can be used to read the samples from the LTC2440 into Arduino. The concept should be easy enough to be adapted to another microcontroller if needed.

When you have the samples, you can stream the data into the PC for further analysis. You can use the UART for that. Set the baud rate to 115200, and you can stream approximately 10 kilobytes/second. As each 24-bit sample requires three bytes and you may want to send the data using hexadecimal format with a linefeed, your data rate will be 10 kilobytes / (3*2+1) ie. 1.4 ksamples/second which is quite plenty for one sensor channel. I would guess that you need to sample around 300Hz, so the 1.4 ksamples/s transfer capacity is sufficient.

At this point you have a hexadecimal coded stream of samples stored into a file in PC. Next thing is to convert this packed hexadecimal data into an integer or floating point format which can be then fed into Octave script or Python program. The Octave (a free Matlab alternative) is very handy for interactive signal analysis and filter design. Python has scilab module available, which is very handy for digital signal processing, too.

Basically at this point you should have capability to take a look at the collected data, plot the samples onto screen for visualization,  and start developing filtering and analysis algorithms for proper neural signal activity detection.

After you have been playing with the PC and you basically have a good understanding what you need to implement, you may want to then consider implementing the algorithms in an embedded processor for the portable solution.

You may also want to consider patient safety, so you need to build galvanic isolation for the sensor amplifiers and the ADC in order to isolate the patient from the PC or other equipment. This will reduce noise, too. Luckily there are many ADCs which uses an SPI interface, which allows a simple yet effective way to implement galvanic isolation using optoisolators. There are also small and inexpensive, galvanically isolated dc/dc-converters which provide galvanic isolation for the power supply.

If you consider DSP too overwhelming at this point, just consider recruiting one additional member into your team with digital signal processing experience the help you get started.

You have an excellent project, good luck!
« Last Edit: January 10, 2016, 02:05:37 pm by Kalvin »
 

Offline sarepairman2

  • Frequent Contributor
  • **
  • Posts: 480
  • Country: 00
Re: Capacitve EMG for Prosthetic Hand
« Reply #8 on: January 10, 2016, 06:45:01 pm »
I am amused by your user name. Perhaps you start weyland yutani. We can finally get some good back story to the Alien series.
 

Offline waymond91Topic starter

  • Regular Contributor
  • *
  • Posts: 93
  • Country: us
Re: Capacitve EMG for Prosthetic Hand
« Reply #9 on: January 11, 2016, 03:11:51 am »
sarepairman2,
Your post was HUGELY encouraging. For the first stage of this project, I ended up ordering Op-Amps for the Sallen-Key configuration. I did look at the Linear building blocks you posted, but as far as I can tell, the minimum center frequency for those building blocks was in the 1kHz range. Unfortunately, I need to target the 10-100 Hz range.

As far as resistor tolerances, I ended up doing 1% for everything. I used two 2nd order sallen key high passes in a row to make a 4th order filter. Do you think the tolerance will be a problem? Its not like I'm doing a bunch of common mode filtering. I am getting the parts either on Tuesday or Wednesday and will start building all day that day. So I will be sure to post as I start making mistakes :P.

We are trying to get funded IF we can get things working the way properly at a responsible price. This is a big step, because I have never done anything like this before. Although, I suspect getting more amputees and funding together is another forum  post entirely I am sure. Although I always welcome sound advice.

It hadn't occured to me at all do active sensing, I will definitely test this on myself once I get back to my little "lab" on Tuesday, but for the moment I am not really comfortable doing that on other people. Once we have some of the PCBs we need to start capacitive sensing it definitely seems worth a shot. I'll have to read into it; As far as I can tell nothing like it has been done before (at least not on the IEEE database).

This project has been taking up large parts of my time, and I may have lost some perspective. So it is awesome getting a response like this.

Kalvin,
For the moment, I implementing a purely analog solution. As I mentioned before, I will be collecting with my oscilloscope and capturing the waveforms via python. I will actually be testing this setup with the young man on Friday. I was really just hoping to see distinctive amplitude spikes on the oscilloscope screen itself. Although now that you have me thinking about it some more, maybe I should be writing some python scripts to add an extra layer of filtering. I'll have to take a look at what scilab has to offer. I'll be sure to post my plans and setup going into this thing before Friday to give myself one more chance to get feedback.

If you are interested, or anybody else for that matter, I'll happily send data to anyone who is interested. I'd post it, but I need to discuss it with my team first. Although I don't see anything wrong with sharing.

 

Offline sarepairman2

  • Frequent Contributor
  • **
  • Posts: 480
  • Country: 00
Re: Capacitve EMG for Prosthetic Hand
« Reply #10 on: January 11, 2016, 05:09:51 am »
there are low pass filters good for DC (zero offset even).

You need to look more carefully, ltc1062

studying the active filters that maxim integrated, linear tech, analog devices, etc makes will all be alot easier then trying to determine the stability of high order filters. Avoiding big foil capacitors is nice too.

http://www.linear.com/parametric/Lowpass_Filters

Of course these building blocks have their nuances too (higher noise, some are switched capacitor, etc), but they are a good starting point.

the only way to know if your filter will be stable is to do monte carlo analysis (i.e. keep plugging in random values within 1% for all components, run 1000 iterations, see if it crashes).

I never built anything higher then a second order sallen key (i personally like general impedance converter topology, it is op-amp heavy (2 op amps per order) but it is very stable, basically simulating a inductor using opamp/capacitor).  You might be able to get away with 4th order sallen key, but i would definitely try this on a bread board first.

I used a expensive filter program to do my op-amp based discrete filter simulation work. I don't have the patience to make a PhD in op-amps (there are enough different filter topologies to make your head spin, all with different pros and cons) . I spent some time studying them but it really seems to be a field in itself. 

I never even bothered trying to approach it from a mathematical prospective. If you are keen on circuit analysis you might be able to determine which components effect the stability the most, but ehhhhhh I am not even gonna touch that, it seems like a job way better suited for monte carlo analysis. I use the program nuhertz but it is NOT CHEAP.

Try the LTC1062 it will probobly be much easier and cheaper.  Or LTC1064.

 Keep in mind filters like to do things to phase as well. I tried to simulate a 6th order (i think) sallen key filter and that shit was giving me "unstable" when I was trying to simulate a 20 degree C range (assuming like 10ppm /degree C drift with 0.1% resistors).

*read the data sheets for the filter building blocks. Some are not advertised as low pass but they can be used in a low pass configuration.

http://www.ti.com/product/UAF42


I am very interested in these types of analog filters myself. If you are making a prototype you might just wanna put a whole bunch of different filters on a PCB, test them, then choose the best/working one to interface with your circuit. Design it so that you can put a zero ohm jumper or solder bridge or wire or something to connect the right one. This will save you a lot of time at the expense of a few dollars in parts.

Then narrow it down on the next run to the filter that works. Trying to determine all this information theoretically will probobly make your head spin. I never bothered, for me its just fun to experimentally test stuff anyway rather then getting stressed out behind a computer screen not knowing which variables to worry about. Once you hone in then do some critical thinking and math. Especially if your not electrical heavy . Plus it sounds like you are doing some heavy R&D right out of Deus Ex and System Shock lol

« Last Edit: January 11, 2016, 05:37:33 am by sarepairman2 »
 

Offline waymond91Topic starter

  • Regular Contributor
  • *
  • Posts: 93
  • Country: us
Re: Capacitve EMG for Prosthetic Hand
« Reply #11 on: January 16, 2016, 09:12:59 pm »
Ok guys, great news!
Yesterday my friend and I went to visit the young man and to start gathering some very cursory data. We started the session by testing his bicep, just to prove that our circuit was in working order, but most importantly so he could know what the scope looked like when he was successfully triggering the emg.
Then we discussed at some length how his particular amputations were performed, how the topology of what remains of his palm would correspond with which knuckle for which finger. Once we started pinning that down we moved on to practicing flexing and extending those individual knuckles. We also examined his forearm and explained what parts of the forearm we expected to see under tension. Flexing these muscles was a lot of work for him (seeing as how he NEVER uses them), but he actually got the hang of it very quickly! For that matter he learned a lot of the methods of sampling and instrumentation; he very quickly got his head around the frequency domain when I started pulling FFTs onto my screen. I actually couldn't bring up a single graph without getting a million questions. It was very refreshing   ^-^

So we didn't have as much time as we hoped. But what we ended up testing his bicep and ring finger while he was flexing and while at rest. In these two states we sampled at different frequencies so that we could get different nyquist frequencies (the target windows being 500 Hz, 1khz and 10khz - unfortunately we did not get past 1khz for the ring finger. Although at these higher frequencies we don't expect to see EMG signals. But it would be good to get a better view of the whole spectrum of noise we were picking up).

I've attached our data for now, but when I have a little more time I'll put together some nicer graphs, and take a crack at constructing some filters via Octave. This is when I'll need that help guys!

Sarepairman2:
I will be sure to take a closer look those linear components. I don't know what a monte carlo analysis is just yet, but I will learn!

As for system shock and deus ex, I've been too busy playing Dark Souls to get on those. But now it seems like I can add another game to the list!

evb14,
We definitely still have lots of testing to perform. But we are working on drafting up a testing procedure. I am hoping that the data we get here will be enough to start constructing a testing rig with more channels.
I would love to get this data published! Or at the least just make the data useful and accessible for anyone else who is working on something similar for a loved one. Our group is starting to talk about getting funded, which seems to demand some protection of IP. But at this point I think its all about getting tools and know-how required for this kind of work to those who need it.

I will post the data we have got here for now, although I imagine eventually we will start doing messages.

Thank you guys so much for the support! I will post some more results and design work shortly! I want to go through your posts and respond in greater detail, but today I have to drive a few hours and move my whole base of operations. I expect by next weekend I will have the chance to take another crack at it.

Best regards!


 
 

Offline cdev

  • Super Contributor
  • ***
  • !
  • Posts: 7350
  • Country: 00
Re: Capacitve EMG for Prosthetic Hand
« Reply #12 on: January 16, 2016, 11:38:09 pm »
Thank you for posting this. This is really interesting.
"What the large print giveth, the small print taketh away."
 

Online Buriedcode

  • Super Contributor
  • ***
  • Posts: 1685
  • Country: gb
Re: Capacitve EMG for Prosthetic Hand
« Reply #13 on: January 17, 2016, 05:20:23 pm »
Ok, whilst I am not well versed in human-machine direct interfaces, or prosthetics I thought I would chime in with a few links.

It does seem like you're designing an EMG system from scratch, when there are in fact some IC already created for that purpose.. ADS1299 for example.
I believe the 'OpenBCI' project uses this for a multichannel EEG: http://www.openbci.com/

Its expensive for the kit, but you seem to be fine with electronics, so you could knock up a custom dev board with a micro of your choice.

Even sparkfun have a small module: https://www.sparkfun.com/products/13027

Once again, you can of course just use the schematic for idea's, and reverse engineer/customize for your purposes.

One more thing (as I'm just throwing out links and ideas).  If your goal is to sense movement of muscles in the arms used for fingers, then one way to cope with electrical noise is to use another sensing method in parallel.  Perhaps small microphones attached to the forearm could 'hear' the muscles move.  As it'll deal with audio, whilst obviously not a nice 'clean' sound, it'll be much easier to visualize on an FFT as you can just use software designed for general audio!  I vaguely remember reading about this technique in a science magazine but I have no idea how viable it was.

Apologies for just coming in with slightly off topic stuff

BC

 

Offline fcb

  • Super Contributor
  • ***
  • Posts: 2130
  • Country: gb
  • Test instrument designer/G1YWC
    • Electron Plus
Re: Capacitve EMG for Prosthetic Hand
« Reply #14 on: January 17, 2016, 05:50:39 pm »
In my experience doing the 50/60Hz notch filtering in analog is complex - much better to do it in software unless your front-end is being pinned by the mains pick-up.
https://electron.plus Power Analysers, VI Signature Testers, Voltage References, Picoammeters, Curve Tracers.
 

Offline sarepairman2

  • Frequent Contributor
  • **
  • Posts: 480
  • Country: 00
Re: Capacitve EMG for Prosthetic Hand
« Reply #15 on: January 25, 2016, 03:33:51 am »
there are app notes for low frequency notch "bottomless pit" filters found in those app notes for some of those linear parts.

monte carlo analysis is when you put like basically random values into a circuit and graph it, so you can see what happens if you get a random component selection.

are you working with JT on this project?
 

Offline waymond91Topic starter

  • Regular Contributor
  • *
  • Posts: 93
  • Country: us
Re: Capacitve EMG for Prosthetic Hand
« Reply #16 on: January 26, 2016, 03:20:12 am »
Hey all!
For the time being it seems like we are able to get away with minimal filtering with this project.
It seems that just the CMRR on the MCP6N11 seems to be able to handle most of the noise problems we encounter.
Using just that and active high-pass filter I am able to catch the relevant data into 100khz ADC just fine (I had some MCP3201's lying around, and I have 5 of those hooked up and sampling them with an Arduino Leonardo).
The primary problem I am having at the moment is eliminating DC offset at the front end of the electrodes. However, so far it seems like simply by placing a 100k+ ohm resistor between the two electrode terminals seems to handle that problem for the time being.
If I try to put ANY capacitors at the input of these electrodes the signal is completely eliminated. I suspect that this is because the skin really can't source any current, although I am open to any explanation that isn't based entirely on superstition :P

As for capacitive electrodes, it seems that the patients skin is too uneven to get the distance tolerance that is required. All of the literature I have read suggests that you need at leas 100pF of capacitive bonding between the plate and the skin. Assuming that the skin is parallel plate capacitor (a dubious assumption) that means that I need to keep the distance between the skin and copper close to 0.1mm. This is doable using just the silk screen on a PCB, but I do not think his skin is elastic and flat enough to get this gap.

I had found one article that proposed a way to make it work with a relatively small bonding capacitance (1-50 pF) but I haven't had time to really understand it yet :P

In the meantime I was looking at other reusable electrodes (I.E. cloth) but I have to get a demo together for my instructors and sponsors.
 

Offline waymond91Topic starter

  • Regular Contributor
  • *
  • Posts: 93
  • Country: us
Re: Capacitve EMG for Prosthetic Hand
« Reply #17 on: January 26, 2016, 07:37:30 pm »
Turns out that smaller input high-pass on the electrode inputs did the trick.
« Last Edit: January 26, 2016, 08:23:03 pm by waymond91 »
 

Offline ANTALIFE

  • Frequent Contributor
  • **
  • Posts: 514
  • Country: au
  • ( ͡° ͜ʖ ͡°)
    • Muh Blog
Re: Capacitve EMG for Prosthetic Hand
« Reply #18 on: June 22, 2016, 01:04:24 pm »
How goes the project?


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf