I am currently working on a project that uses around 1000 servo motors. I am using raspberry Pi. I have found various modules that support upto 32 servos. But in that case i need so many modules which aren’t feasible. So can anyone suggest which solution would be more feasible for my problem… Thanks
Hey,
That is indeed a large amount of servomotors!
One of the main deciding factors on your solution is the following question: Do you need to be able to control each of those 1000 servomotors’ control signals or are some of them the same (such as having large groups all having the same position at the same time)?
Also, will those servo motors have any appreciable load? What is the expected continuous current draw per servomotor? If some of them are moving as a group, how large are those groups?
The more details you can provide, the easier it will be to help you out.
Good news is, this is most certainly doable, but it will require some thinking and design (and possibly custom electronics or lots of breadboarding/breakout boards).
Sincerely,
It’s the worst case scenario that all of the 1000 servos are used in project.but still it’s the case so I need any customized PWM controller IC or something like that.
Some of them will be controlled at a time usually. actually I am trying to make a shape display in a real time environment. Max current drawn by single servo is 1 Amp.
Ok, so here are some thoughts:
First, 1 A per servo is a LOT of current (considering you need to power 1000 of them). Are you sure your display will need that much torque/current per unit? If not, you may want to switch/design it so you can use smaller/less powerful servomotors.
Make sure you are not referring to the stall current, as this is not the running current for your application (you should never be at stall current for extended periods of time).
Second, considering power, you will most likely need to power them in groups, such as one power rail per 10-20 servomotors. The best may be to do it using battery packs for each group. If you use wall adapters for each group, be aware that you will most likely need more current than one typical residential AC circuit can provide (15 A max, > 12 A for up to an hour). Therefore you may need power-tool grade extension cords to connect to multiple breaker circuits.
Third, you need a way to send a control signal to each servomotor. This can be done with various chips, such as using a bunch of shift registers (ex: 74595), like the SSC-32U does (it uses 4 to create 32 channels from one single AVR ATmega328 and is able to control all of the channels with µs accuracy).
Fourth, of course, even with such shift registers, you will need to consider many other things, such as signal delay (may very well be non-negligible at 1000 servomotors) and how the updates will be done. You will most likely need to connect groups of shift registers to a microcontroller of some kind (ex: 64 servomotors to 1 microcontrollers, which would mean you would need 16 units to cover 100 servomotors). From there, you would need a way to communicate with each microcontroller, probably using a shared bus where you can selectively update servomotors as needed.
Fifth, you will need an interface and software to control all of this so that you can easily create the wanted displays/motions of the servomotors.
All in all, this is certainly not a trivial project, but certainly doable with some research and trying things out.
Sincerely,
P.-S.: You may also want to use smart servomotors, which already have serial communication involved. Of course, they are typically much more expensive and therefore might be a bit of an overkill.