I've been doing some playing with off-the-shelf radio control and servos with a view to doing something similar with arduino.
I've played with a couple of cheap RC systems. They both seem to manage to achieve rock-solid stability and consistency. If I don't touch the joystick then the servo remains in position without moving, when I move the joystick the servo moves steadily and consistently to it's new position and then stays there, when I move the joystick back the servo moves back.
I've done something very similar with arduino (mega's and mini-pros). I connect the joystick potentiometer to an analogue input pin, I read the analogue value and use that to set the servo position. It works pretty well but to be honest it's just not as good as the RC version. I just can't manage to get the same level of stability of the servo. It will move in proportion to the joystick position, but it suffers from occasional 'twitching' and the twitches are worse during periods of transition (i.e. when I change the joystick position).
When I first encountered this problem I thought it was probably due to differences in the quality of the joystick and the servo. However I've recently tried stripping the joystick and servo from the RC unit and using these on my arduino version but the results are the same - so it can't be these components!
I've done some testing and it's apparent that the arduino itself can accurately and consistently position the servo exactly where it's told to, the problem seems to be with the way the I'm processing the joystick values. Basically I setup the joystick pot. as a 'voltage divider' circuit, I read the values into an array, average them all and use this to set the joystick position. The attached image shows how I've connected the pot..... Don't get me wrong, what I've done actually works pretty well. But what I want to know is what is a cheap chinese RC clone doing that gives such rock-solid positioning consistency using exactly the same cheap components I'm using?
My guess is that the chinese RC version must be doing some digital signal processing to smooth out the values it's getting from the joystick, any suggestions as to what I can do to replicate this?