How to build a project that move lot of objects like this one http://www.youtube.com/watch?v=go2mZnRPqnQ ?

Note : This question was different at the begining, but it was confusing and Anindo Ghosh spent time on doing an off topic answer. I changed the question so it fit the answer. Yes it's not the meant it's mean to be but this way it became usefull knowledge base instead of being wasted.

  • \$\begingroup\$ How do you make the balls float is my question \$\endgroup\$
    – Andy aka
    Jul 19, 2013 at 10:28
  • 2
    \$\begingroup\$ @Andyaka Transparent monofiber fishing line from the ceiling. \$\endgroup\$ Jul 19, 2013 at 10:38
  • \$\begingroup\$ bokan, based on the changes you have made to the question, it seems you are actually attempting to build not what your original video links showed, but the art installation discussed in this question: Interactive Art with Wooden Mirrors - How are the pixels controlled?. That has already been answered, please see the answers there. \$\endgroup\$ Jul 19, 2013 at 11:37
  • \$\begingroup\$ I never meant I want to do exact same thing as shown in the video. I said "similar to" for me it means "inspired by". If you want to know, just ask. I'm working on an animated pinart screen using long stroke linear voice coil motors. So it can refresh at 20FPS (and I hope to achieve faster movements). \$\endgroup\$
    – bokan
    Jul 19, 2013 at 11:52
  • \$\begingroup\$ Please make at least an attempt at stating the problem in the text of your question, so that it does not entirely depend on an external website. \$\endgroup\$ Jul 20, 2013 at 3:34

1 Answer 1


This requirement can be well met using sail winch servo motors, controlled by SPI or I2C servo controllers, or better yet, radio controlled 4-channel or better servo controllers such as used for RC toys.


  • Sail winch servo motors are designed for one, or several turns, based on a servo control signal. They are specifically used for rolling and unrolling a string or cord, such as used in radio controlled model sailboats or even full scale real ones. PID coding is not required, that is taken care of within the servo's internal electronics - your code just specifies "go to 75% position" to get a certain turns of rotation.
    • For example, the HobbyKing SW4805-6PA supports 6 full turns of the winch wheel, in a tiny 45 gram device, for under $8.
  • A hobby servo control signal is a 3.3 to 5 Volt, varying pulse duration signal representing minimum to maximum positions with a (typically) 1.0 to 2.0 ms pulse every (typically) 20 milliseconds. This can be achieved through a 50 Hz PWM with duty cycle varying from 5% (minimum position) to 10% (maximum position). Technically, some sources insist that this signal should not be called PWM, but PDM (Pulse Duration Modulation), since the 50 Hz signal cycle can be varied a lot, often from 25 to 100 Hz, so long as the pulse duration remains between 1 and 2 ms each.
  • Inexpensive Servo drivers are available, supporting a number of servo control channels (i.e. motors) per unit, 4 or more being common. These interface with microcontrollers using SPI, I2C, or even interface with a PC using USB. This means the PDM servo signals are offloaded from your microcontroller, and generated internally by the multichannel controller.
    • For example, the Adafruit 16-Channel Servo Driver, at under $15 each, can be cascaded to control up to 992 servo motors using just 2 lines on the microcontroller.
      Servo driver
    • Alternatively, make such a servo controller yourself using a multichannel PWM driver IC such as PCA9685.


  • Obtain a bunch of sail winch servos. Fabricate or buy larger capstans (winch wheels) if the string movement range required is larger than offered by the default capstan in the maximum number of turns. Use transparent monofiber plastic fishing line to suspend the spheres from the capstans.
  • Obtain or build servo driver boards that support multiple channels each, and can be cascaded in series.
  • Control a group of servo drivers each with one set of GPIOs from the microcontroller. The servo controller takes care of generating servo PDM, so your code needs to only send change-of-position information when required
  • Power the servo motors in groups, using RC hobby UBECs, i.e. integrated switching regulators that can support huge currents for driving motors, available at very low prices due to economies of scale. The servo control lines themselves do not need much power, servo motor power lines are separate.


  • Cost: A servo motor is a real bargain compared to a conventional motor, the H-bridge / motor controller for each, the microcontrollers to run PID code (even if you run multiple PIDs per microcontroller), and the position feedback mechanism. The servo has all this built in.
  • Convenience: If the objective is to get the system operational, rather than to spend months or years perfecting PID algorithms, positional feedback mechanisms, motor control MOSFETs circuits, and associated circuitry, then a solution like this, using mass-market, easily available and reasonably priced devices, is the solution.
  • Ease of development: Individual blocks of the design can be built, tested and then set aside for final assembly. Everything does not need to be built at once.
  • Reliability: With a modular implementation such as described above, any failure to any element does not require a full shut-down and comprehensive diagnostics. The affected motor, servo driver, or microcontroller board can be replaced using pre-built parts, and the system re-started pretty quickly. Keeping spares is also not a big issue in this approach.
  • \$\begingroup\$ Thank you verymuch for the time spent on this answer. I didn't know multiturn servos and it is interesting. My system will not use servos like in the video shown because of their limited speed and amplitude. The question is how to do lot of PID with minimum hardware (lot of sensors and lot of outputs). \$\endgroup\$
    – bokan
    Jul 19, 2013 at 11:14
  • \$\begingroup\$ @bokan Then you might want to state that as a separate question, rather than editing the question to change its meaning and thus render existing answers irrelevant. Just a suggestion. Also, I'm not sure about limited speed and amplitude - many of those servos can do 6 turns in under 2 seconds. With a capstan circumference of 12 cm, that is close to a half meter per second, 72 cm total throw. Use a larger capstan, and you get several meters in a couple of seconds. \$\endgroup\$ Jul 19, 2013 at 11:26
  • 1
    \$\begingroup\$ My original question state that "Each "pixel" is a PID system with a desired value, a motor and a distance sensor." . My question is how to do this array, not how to move things. Sorry for the confusion. \$\endgroup\$
    – bokan
    Jul 19, 2013 at 11:47
  • \$\begingroup\$ For controlling lot of servos I recomend using serializable PWM generators as found in LED strips. TM1809 (9PWM) and WS2801 (3PWM). They connect in daisy chain on one SPI signal. TM1809 are fast enougth to control 1000 leds at 30fps (3000PWM). \$\endgroup\$
    – bokan
    Jul 19, 2013 at 15:30
  • 1
    \$\begingroup\$ @AnindoGhosh there's a job for you in politics somewhere ;) \$\endgroup\$
    – Andy aka
    Jul 19, 2013 at 16:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.