Let's Make Robots!

12 servos controller low cost

12 servos controller with Arduino

Building a robot with wheels or with legs needs a design completly different. One of the biggest difference is the type and number of motors. While for a robot with wheels usually 2 or 4 servos or gear motors are enough, when we speak about a robot with legs, the number of motors increases dramatically. It is not uncommon to see a hexapod robot with 18 servos. A quadrapod robot has usually 8 or 12 servos, depending on the number of joints. Luckily, compared to robot with wheels, usually are not required servomotors with continuous rotation or gearmotors. Standard servos (0-180 degrees) are enough. Servomotors are driven with PWM and Arduino 2009 or Arduino Uno have 6 PWM pin. And this is a problem. And if you want to use also other sensors using digital pins, the situation is not good, because the Arduino’s digital pins are only 14, and 2 of wich are used for the serial port communication (pin 0 and 1). It is possible to use the Arduino Mega, with 14 PWM pin, but it is very expensive (50 euros and more). Searching in internet, I found a low cost chip, using I2C protocol that can drive 12 servos. First good news, the I2C protocol uses only the analog pins 4 and 5. Second good news is that you can use up to 8 chip, so it is possible to drive up to 8x12=96 servos with only 2 analog pins, the 4 and 5. Third good news is that the chip costs about 4 euros and half. A price that can be accepted by every robot builder.

More information, pics, code example here: http://robottini.altervista.org/12-servos-controller-low-cost

Disclaimer: I'm not payed by www.hoobytronics.co.uk, I'm not an official tester, I'm not linked to www.hobbytronics.co.uk, I'm only a robot builder that shares his experience.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

As hobbytronic mention, they are simply selling you a microcontroller that is programmed to drive servos.

For the cost you would be better off buying an ATmega168 with the Arduino bootloader. It could also drive 12 servos using the servo library but it would also give you extra A/D inputs plus a second processor to share tasks with.

yes, but then I have to program the ATMEGA Arduino using a programmer or another arduino,this is ready to use and it works

You can buy an ATmega168 with the Arduino bootloader for far less than the chip you suggest. The Arduino servo library works. The code required to accept I2C commands and send the data to the servos is minimal at worst and is easily loaded into the ATmega168 by either inserting the chip into an Arduino board or using a breadboard.

In my experience LMR users, with a few exceptions, are not experienced robot builders. For this people a chip like Hobbytronics can be very useful. There are companies, like Dagu, that sell kit, complete kit to build a robot. Not only a chip, but a chassis, motors, software. They are aimed at novice users, just like the hobbytronics chip. If I see in ebay, the cheapest ATmega 168 with the Arduino bootloader costs 3,97 euros. The hobbytronics chip costs 4,54 euros. This is not a far less. In any case, I think you would do a great service to MLR users if you post a little tutorial to program an ATmega 168 to control 12 servos. I'm very interested.

OddBot is right. But the problem most beginner robot builders face is lack of coding skills. For them is easier to buy the thing that just works and use it. I think if one will take the time to write the code for a serial or I2C enabled Arduino chip that controlls servos by specifying servo number, position, and perhaps speed (similar with SSC-32 protocol?), people will use their Arduino (or any compatible board, like the Spider) as a servo controller. I have a I2C enabled Arduino (compatible) servo controller, but it does not use a Speed parameter, wich I find very useful.

you're right. the other problem is the time and priorities. I do not have much time to dedicate to robots building, so I focus on the things I enjoy doing, trying to buy the other things. For example, this chip.

Nice, but an arduino 2009 can control up to 12 servos, and a MEGA up to 48.


You don't need to use a PWM pin to control a servo, it's different.

true, using the PPM modulation, the servo library can control up to 12 servos. But the benefits that brings a solution of this type are still valid