How to move 18 Servos siumltaneously

Hi I am in need of some advice before I do any purchase of the required parts to do construct my device. I need to connect 18 servo motors to my arduino board and I do not have a good idea how I should go about doing it.

Since I'm moving 18 servos at the same time, I assume the power required would be pretty immense.

Wall power Adapter connected to >> Arduino UNO connected to >> Servo controller connecter to 18 x Servo motors

Problems encountered:

  1. Is this the right setup I should have?
  2. What kind of wall power adapter should I be looking at? (like power and current etc)
  3. How do I control individual servos using the Servo controller and how should I connect a servo controller to the Arduino board
  4. Would servo controller like this be effective in doing what I need to do? http://www.pololu.com/catalog/product/1356

Thanks for any advice

  1. Is this the right setup I should have?

No. That servo controller has a USB interface. You should get an Arduino Mega 2560 which can handle all your servos easily.

  1. What kind of wall power adapter should I be looking at? (like power and current etc)

Servos seem to like a voltage around 6V. I've heard you should allow 1A per servo so you should have a separate 6V 18A+ power supply for your servos. A 9V 1A supply would be good for your Arduino Mega.

  1. How do I control individual servos using the Servo controller and how should I connect a servo controller to the Arduino board

You don't need a servo controller. Just use the Servo library: Servo - Arduino Reference

  1. Would servo controller like this be effective in doing what I need to do? http://www.pololu.com/catalog/product/1356

No because it uses a USB input and the Arduino can control servos by itself without a "controller".

Am I right to assume that with the use of the Arduino Mega, I will be able to individually control the speed of each of these 18 servo motors? I was under the impression that they can only be done through the use of the PWM PINS. (Arduino Mega has 14 PWM pins)

You don't generally control the speed of a hobby servo. You control the position. If you want speed control you vary the position over time.

Although the servo uses pulse width for the position setting it's not the same Pulse Width Modulation used for motor speed control. The PWM (analogWrite) outputs use the timer Output Compare Registers to generate the PWM signals. That's why there are a limited number of them (2 or 3 per timer). The Servo library could use hardware and Output Compare Registers to generate the pulses for the servos but it uses software instead. This allows it to run 12 servos per timer (48, I think, on the Mega).

  1. Would servo controller like this be effective in doing what I need to do? http://www.pololu.com/catalog/product/1356

No because it uses a USB input and the Arduino can control servos by itself without a "controller".

Per the above page the pololu servo controller is controllable using a TTL serial connection (below). If the servos need speed control and such, a standalone servo controller is cost effective and can save a lot of programming work. An SSC-32 servo controller might be another cost effective controller for many servos.

•Three control methods: USB, TTL (5V) serial, and internal scripting.

@zoomcat

Yes I have notice there's a price difference between a Arduino mega board and a standalone servo controller. Am I right to say that the Pololu Servo controller do not need to be connected to any other external devices for it to function? Just having a power source of approximately 18A+ would suffice? In addition, is the servo controlled through the arduino software as well? Sorry lots of noob-ish question as I do not deal with servos and servo control all that much...

If you wanted to keep costs down, you could use an Arduino UNO and do it this way -

Introducing the concept with 10 Servos, 2 pins

Same approach expanded to 20 Servos on 4 pins

There is a library in the links that does the work for you of managing the servos for you, it loosely based on the standard servo library outlined here -

The disadvantage of this approach ? you have to do your own soldering.

Duane B

If you are considering using the pololu servo controller, you need to study the below and other info on the pololu site to ensure you understand how it operates and the control commands. I'm more familiar with the ssc-32 servo controller and it uses simple ascii characters for the various control commands. The ssc-32 (~$40) has been used for a long time for controlling 18 servo hexapods and such. The standalone controllers simplify controlling the speed and timed movement of the individual servos if required.

http://www.lynxmotion.com/p-395-ssc-32-servo-controller.aspx

And considering the amount of power needed, what kind of power adapter would you recommend? I have been googling for suitable power adapter but there doesnt seem one spec at 18A or higher

lonestarz:
And considering the amount of power needed, what kind of power adapter would you recommend? I have been googling for suitable power adapter but there doesnt seem one spec at 18A or higher

How much power are your servos going to use? If you need 18a then you may have to use a couple UBECs connected to something like a large 12v battery, which is in turn being kept charged via a charger.

I'm probably using a continuous servo motor of this scale,

http://www.robotshop.com/ca/9g-continuous-rotation-micro-servo.html

there isn't an indication on how much power it is gonna use but I've read through most places and they recommend having 1A per servo to power it up sufficiently.

Besides I'm probably planning on powering it using a wall power socket instead of an independent battery pack as I presume it would draw so much power so much so that depletion of the battery pack would be way too fast

The 9 gram micro servos don't require as much power as the larger standard size servos. You might save some $$ by modifying regular 9g servos for continous rotation, depending on what your actual application requires. One probably should buy one servo and do some testing with it before buying a large number of them.

Is there anyway to go about knowing how much current I would actually need for 18 of them?

lonestarz:
Is there anyway to go about knowing how much current I would actually need for 18 of them?

Buy one and test it, measuring the current, under the conditions under which it will be used. Then multiply that value by 18.