Servos Running simultaneously?

Hello everyone,
I am working on a robotics project which involves approximately 20 servos and I need to move at least 4 of them simultaneously. Is it possible to move more than 2 servos at a time, while giving the control signals from arduino?? If we are required to provide two opposite control signals to the opposite sided servos(those on the left and right sides of the robot) SIMULTANEOUSLY, how can it be accomplished??

Please tell if there is any way to do so.
Thanks.

Use the SSC-32 servo controller; the motion is not “exactly” at the same time but very close (within milliseconds):
lynxmotion.com/p-395-ssc-32- … oller.aspx
It will look like all four servos are moving simultaneously.
Alternatively, simply connect all four servos to the same signal line - that ensures they all move at the same time.

Thanks, we actually want to move 2 servos clockwise and 2 anti-clockwise simultaneously… How can we do so??
Definitely we can’t use the same signal line for that or can we invert the signal for 2 servos??

We can likely special order the following product:
futaba-rc.com/accessories/futm4150.html
This means you can use the same signal to operate two motors in one direction, and two motors in the opposite direction.
Contact us via the Support Center for a quote (provide your complete tel #, name and address) and specify:
RB-Fut-00 FUTM4150

Actually we have already got our project stuff, we are using ARDUINO Mega 2560. Could u please suggest something that would solve our problem with Arduino??

Use the built-in servo library. There will be a very small delay, but it will look like they are moving simultaneously.

Have you tried using the servo library?

First issue is how are you going to connect up your servos? The Arduino Mega does not have 3 pin servo connectors nor does it have a power buss to power the servos. You can potentially remove the signal wire from the servos and plug those into the IO pins of the Arduino (as well as a ground wire) and then connect the power and ground up to some form of power buss.

I did this by building my own servo shield for the Arduino Mega shield, which I have talked about on a few different threads including: (viewtopic.php?f=26&t=8021). Again this works with the Servo library.

Or if you are wanting is for multiple servos to move at the same time, like we do for the legs of a hexapod or like an arm, I wrote my own extended version of the Servo library I called servoEx. I believe there is a copy of this up on my Github account under the Arduino_Phoenix_parts project…

There is also at least one other servo shield that I know of (renbotics.com/servoshield2.php) that can control 16 servos.

Good Luck
Kurt

You should be able to just mirror the servo commands something like below:

if servo1 = 60, then servo2 = (180-servo1) = 120, when using deg positions.

with us commands in the band of 500us to 2500us, the total control span is 2000us. subtract 500 from 2500, leaving the actual 2000us control band to work with. Subtract 500us from servo1 command, then subtract that result from 2000us, then add 500us back to that result for servo2 command.

if servo1 = 800us, then (800-500us) = 300us, (2000us - 300us) = 1700us, (1700us +500us) = 2200us

if servo1 = 2300us, then (2300us-500us) = 1800us, (2000us-1800us)=200us, (200us+500us)= 700us

That’s quite helpful I guess!!
We will try to solve our problem by the mirroring technique.
Thanks a lot for the help…

Yep - There is code in some of our robots where we need to mirror the values generated for some legs as the servos are in the opposite orientation from the servos on the other side.

The simplest way is if the pulse width is in the variable PW, then the mirrored pulse width is simply: 3000 - pw

Kurt