Controlling a 100 servos grid of linear actuators

Hi everybody,
my name is Antonio, I'm an engineer looking for a "Arduino way" to manage double curved surfaces.
I've a problem similar to that reported by Sisir97 even if I'm on a very initial stage of design smiley
I've a grid of Linear Actuator (for the moment I don’t know exactly the number, i.e. 10x10=100 LAs).
In the following sketch you can see the grid and one LA.

The movement in z (vertical) direction of each LA is controlled by one servo motors connected to Arduino.
Ideally the workflow is: parametric z-values in rhino + grasshopper and then firefly for the mechanical part.
My starting data are the z values i.e.: the LA called 2-4 (row 2 – column 4) is 25cm.
So I’ve 100 z-values, 100 LAs , 100 servos…. And just ONE Arduino !
(More realistically, for economical reason, the final number will be reduced to less components)

Is it possible to manage a similar situation with Arduino ?
Thank you in advance for your suggestions !
Feel free to ask for more details

Antonio

Each servo will require its own signal constantly so something like a chain of TLC5940 could generate those signals, easy enough to drive from one arduino, just like dimming 100 LEDs.

Thanks Mike,
could you please recommend me some tutorial or guide lines ?
It the LAs were just 10 do you think there will be a easier solution ?

Anton

A TLC5940 sells for about $5. It is a SPI based device so it only requires 4 or 5 lines to interface to the arduino and like Mike said you can add more chips in the daisy chain configuration . The library for that chip is on the forum and each chip has 16 outputs . The command allow sequential or simultaneous operation and if you are driving servos as opposed to leds, the current draw would not be that great. If the purpose of the LA grid is to lift something slowly while keeping it level then you need the simultaneous mode.
Here's a tutorial :

Here's the library:
http://playground.arduino.cc/Learning/TLC5940#.Uz_4tPldWa8

raschemmel:
A TLC5940 sells for about $5. It is a SPI based device so it only requires 4 or 5 lines to interface to the arduino and like Mike said you can add more chips in the daisy chain configuration . The library for that chip is on the forum and each chip has 16 outputs . The command allow sequential or simultaneous operation and if you are driving servos as opposed to leds, the current draw would not be that great. If the purpose of the LA grid is to lift something slowly while keeping it level then you need the simultaneous mode.
Here's a tutorial :
http://tronixstuff.com/2013/10/21/tutorial-arduino-tlc5940-led-driver-ic/
Here's the library:
Arduino Playground - HomePage

Thank you very much raschemmel ! Very useful !
The purpose of each LA in the grid is to reach (slowly) a specific level and then halt.
There will be 100 (or less) different but contemporary values of z-coordinate level sent by Arduino to the LAs
The purpose of LAs in the grid is to lift a neoprene membrane.

I will study the TLC5940 way :astonished:

You lost me here:

rhino + grasshopper and then firefly

? (no clue what that means)

The purpose of LAs in the grid is to lift a neoprene membrane.

You need to figure out how you are going to map the TLC5940 outputs (0 to 15) .
For example, for simplicity, if you use 10 chips and only use 10 outputs (0 to 9) , then it makes it simpler because you can have each chip control one row.

You haven't posted any data or datasheets or electrical specifications for the servos yet . Shouldn't you be giving us that info so we can tell you how to handle the load ?

It would be a lot simpler if you could drive your linear actuators with stepping motors rather than servos because you just give them step commands and then forget them. The servo needs a constant pulse signal to keep it in one place.

Just as a reality check, the typical affordable linear actuator sells for ~$100, so 100 would be a ~$10k investment. How big/heavy is your neoprene membrane? You mention servos, which might be more economical approach.

raschemmel:
You lost me here:

rhino + grasshopper and then firefly

? (no clue what that means

Grasshopper is amazing. It is like a visual scripting language for graphics. It is used for 'parametric modeling' mainly, but also is being used for really neat robotics/AI type stuff. Gotta check it out.

Money is a quite big problem :astonished:,
linear actuator are too expensive for my project, I talk about them just to give an idea of what I need, but I'm looking for some DIY scheme to build my own linear actuators.
Maybe a cheaper solution is to buy 100 stepper motor , as suggested by Grumpy_Mike

and connect them to vertical supports, as showed in the following sketch.

For the moment the membrane is 100cm x 100cm (the effective number of motors will be 11 (per side) x 11 (per side) =121, considering a vertical support every 10cm per side).

So using 11 TLC5940 (one for each row) I can easily :cold_sweat: manage the z-coordinates by a proper rotation of the stepper motors. every TLC5940 use 11 outputs (0 to 10).

Servo city has mechanical parts that might be of interest for your project. I suggest you focus on developing one actuator first, then on the other parts of the project. Have you just put spacers under your membrane at various heights to see if the membrane shapes as you think it would?

zoomkat:
Servo city has mechanical parts that might be of interest for your project. I suggest you focus on developing one actuator first, then on the other parts of the project. Have you just put spacers under your membrane at various heights to see if the membrane shapes as you think it would?

https://www.servocity.com/

Thank you zoomkat !
The connection between membrane and actuators is a very complex problem...

With that many actuators there isn't a cheap solution!

However if speed of update isn't an issue one way to reduce costs is reduce each
actuactor to the bare minimum hardware - a leadscrew.

Then have a robot move about and turn each one in turn to adjust the matrix
node-by-node. An X-Y positioning system is just two more actuators...

Of course its a lot more design work but you reduce 100 actuators to 100
bare leadscrews plus 3 actuators (X, Y and the motor that turns the leadscrews).

What range of movement and accuracy are desired?

So using 11 TLC5940 (one for each row) I can easily smiley-roll-sweat manage the z-coordinates by a proper rotation of the stepper motors. every TLC5490 use 11 outputs (0 to 10).

If you use stepping motors then you do not need the TLC5940s, you just need a enable line on each motor driver, or some other digital way of controlling the drivers.
The TLC5490 are needed for servos because a servo needs a constant duty cycle controlled square wave.

Any solution times by 100 is going to be expensive. That's why you don't see many of these sort of things about.

Hi everybody,
I don't have enough time to study the procedure... :roll_eyes:
I was wondering if someone could help me. The "membrane project" has a sponsor, so I could pay for this.
Let me know if someone is interested !

Anton