I am using a computer with Processing software to send the Arduino (over USB Serial connection) data to set some servos’ angles. Now all that works perfectly fine, but there is a lot of shaking. I use the mouse movement to control how much each servo is rotated. Theoretically it’s supposed to be as smooth as the mouse on the screen is, but in reality there are some jiters. Anyway to reduce this jitter?
Share
Many reasons for this.
Not the least, if not the first, is insufficient power. In this case, servos often growl and oscillate before settling in required position. If your servos are already driving a mechanism, you also might want to make sure if they provide sufficient torque.
Another factor – your input speed may exceed the servo’s maximum rotation speed, look at the specs and calculate if that’s the case.
Yet another – serial connection is not that fast, and slightest timing deviations might cause uneven motion. You may want to augment your Arduino firmware with code that records servo command timing and coordinates, and then plot the chart based on collected data – you will see very clearly whether this is the case.
One possible way out of this may be implementing Arduino timer interrupt based servo handler and just give it the desired end angle and arrival time and let it figure it out – this will take the serial timing out of the picture.
And, last of all, your servos may not be of top notch quality – if there’s excessive internal friction, they won’t move smoothly no matter how smooth the input is.