Let's Make Robots!

HD servo shield for the Spider controller


Vendor's Description: 


The Heavy Duty servo sheild for the Spider controller allows larger servos to be connected directly to the battery or an external power source. A small prototype area is provided for adding additional circuitry such as an amplifier for analog signals.

A heavy duty screw terminal allows better access to the 5V output of the 3A switch mode power supply. The PCB is smaller than the Spider so that it does not block access to the Spiders pins and reset button. This allows a mixture of low power and high power servos to be run from the Spider controller.

Comment viewing options

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

I get the impression that there's some competition to see who can control the most servos with a single micro-controller..  If you boil down all the efforts to create robots, we're, in some small way, trying to duplicate a human, or other animal.  If you look the anatomy of a human, you'll find that the brain does not control every muscle individually, and you'll find that the brain is not a single computer, but many sub-processors well-coordinated together.  You'll also find that groups of muscles are controlled for learned/practiced actions (eating, talking, walking, etc..)  If we were to take a page from this model, we would subdivide the servos into groups controlled by a sub-microprocessor.  Put a Arduino/PIC/whatever in each leg to manage the muscles, another to handle the senses.  Two in each arm (muscles/senses), another pair to handle the torso, another pair in the pelvis to coordinate the hips and legs together, and another pair to handle the face.  There would be another micro-controller acting as a "master" controller, coordinating everything together.  Using this model will allow for reflex arcs, and free up the "master" controller to concentrate on complex behaviors.  The Arduino Mega has 3 (or is it 4) serial buses (pair of Tx & Rx).  The "master" controller would need more serial buses, and few I/O pins, or analog pins.  Is there anyone willing/able to make a variation of Arduino that has more serial buses?  8? 16?

Long time ago I was building Lego robots. I was using a programming language called Not Quite C. That allowed me to have up to 10 tasks (functions) that run in parallel. After I started using microcontrollers, I was puzzled by the fact that it is very hard to do what I was doing with Legos. Then I thought instead of making parallel tasks, make parallel microcontrollers. Use a serial bus that allows multiple microcontrollers to communicate (I2C, 1Wire, CAN, etc). That's what I've done with my MiniEric robot. I used 4 Arduinos linked with I2C, each with a different purpose. So yes, it works. I think that for most robots we've seen on LMR one microcontroller is enough. People rarely build something more complicated, that takes a long time to do, many re-do, redesign, etc. I would like to see a robot like you describe, but I think it will be costly to build it too modularized. One micro for every 2 servos is too detailed. Hard to have a few modules move the servos in unison as sometimes is needed. So I suggest use a micro per limb and connect the necessary feedback servos directly to that micro. Program it to do reflex moves by itself. The brain microcontroller can always command the servos or inquire the sensors when needed. But the hardest part is to design the communication protocol (I mean the commands, arguments, etc., not the hardware layer that will be used, for example, I2C).

I was not attempting any competition.

The ATmega1280 and 2560 have a lot of timers and a lot of I/O pins. The Arduino servo library does a wonderful job of using these. I simply made a a controller and Sheild to take advantage of this great library.

My boss asked why would anyone want to drive 48 servos. I told him most people would not. The servo socket on each pin can also be used to supply power to sensors and other circuitry in the robot. It is simply a versatile design.

As to your idea about a CPU for every 2 servos. Yes that sort of thing is possible. Many servos these days actually use a small processor rather than the old analog circuit because it is more versatile. When you combine this with an RS485 protocol you end up with servos that are also processors and a simple wiring system. That's how the Dynamixel servos work.

If you look at the human leg, the hip rotates forward and backward, and pronates, and supinates, and laterally extends and medially retracts.  That's 2 directions, and a rotation, so I'm counting that as 3 servos.  The knee extends and retracts only, so 1 servo.  The ankle extends/retracts, lateral/medial, and some limited rotation, again 3 servos.  The foot basically moves at the ball of the foot with the great toe as flex/extends, and the remaining toes doing the same, so 2 more servos.  In all I'm counting about about 9 servos to operate 1 leg.  Yes, I realize that this much more complicated than a typical robot.  Even the mighty chop-stick-bot (forgotten actual name, sorry) uses around 20 servos (including two eye-stalks, very, very cool!).  If we figured that each leg used 9 servos, that the back is static, and the arms use the same number (though hands are much more complicated), we're at 36 servos.  I doubt a single micro-controller could coordinate walking with that many in action at the same time, and coordinating with all sensors to maintain balance, etc..  However, if the "master" controller were to direct the left leg to 'life and take a normal step' and the right leg to 'push forward with normal stride' then allow each leg sub-controller to coordinate their own efforts, and allow the corresponding sensor-controllers report to the "master" what's actually happening...  This de-centeralization would allow a much higher level of control, more range of motion, with fewer wires running everywhere (assuming TTL communication).

This would call for something like an Arduino FIO but with 2 serial buses, and an Arduio MEGA with something like 8, or 12 buses.  If we were to attempt to do all the communication over a single bus we'd clog it with so much traffic, there would be no communication at all (switches vs hubs in Ethernet protocols).

I still LOVE this shield.  It proves that the "limits" aren't. 

Is there a way to expand the number of serial ports that a micro-controller has?

P.S. - The sub-microprocessors would need 2 serial buses, one to communicate with the "master" and a second to coordinate it's information with it's pair (servo vs. sensor pairs).

Nice shield! It is missing one thing: a MOSFET to switch On the servo power by the microcontroller AFTER sending servo pulses, so the servos do not twitch at power on. Without that, we still need 2 power switches...

This sheild was designed before I thought of that.

Even then I have found the FET is not really necessary if your battery and power cables are suitable. For those who want a FET to switch the power it can be added to to the prototype area. Version 2 will include a FET.