I'm designing a myoelectric control system to control a simple 2 DOF gripper. I've already made the myoelectric signal adquisition circuit and it works really well, with very little noise. I'm using Arduino to do the analog to digital conversion with a sampling frequency of 1KHz (using the MsTimer2 library). I perform a moving average of the myoelectric signal, to have an estimate of the amplitude. Then, when the amplitude exceeds a certain threshold, the servomotor moves to a predefined position.
The problem arises when the servomotor starts moving. As you can see in the attached images, when the servo is working, the EMG signal is riddled with noise. I've tried to solve this putting a 10uF capacitor between the power and GND pins of the servo, and a 100nF capacitor between the control and GND pins of the servo. But the noise is still there (in fact, the images are taken using the capacitors). I'm powering the Arduino, the EMG circuit and the servo with the USB cable. Maybe if I use a separate power source for the servo the noise problem can be solved?
What else can I do? I prefer to eliminate the noise via hardware, and not software, to keep the Arduino program as simple as possible. Also, I have a time constraint: all the signal processing has to be done in less than 1ms, as every 1 ms a new sample is taken (using the MsTimer2 interrupt).
Thank you in advance.
EMG signal without servo noise.
EMG signal with servo noise.
EMG signal with a lot of servo noise.