Creating The BMW Sculpture

Robin2, This is a charity project and I can handle the cost with the donors.
Donating joy to special need kids has no price limit.

I started this thread asking help controlling 30 stepper motors but I was told ( ? ) It can't be done.
That's why I asked about DC motors.

I remain confident in this forum to help me realize this project.

ba47:
Robin2, This is a charity project and I can handle the cost with the donors.
Donating joy to special need kids has no price limit.

I guess I'm an old curmudgeon but I would prefer my charity money to be spent on things that actually help the people it is being collected for.

Nobody said you can't control 30 stepper motors - just that it is not a trivial project.

...R

It can definitely be done - but not with a single processor, it's just too much work. You're going to need a multiple processor setup. Likewise if you're going to use DC motors.

An ATtiny running at 8 MHz should have no problem running two 28BYJ-48s through a TPIC6B595 shift register, while listening to I2C commands. Possibly even four steppers, but that could be pushing it.

There is a problem with speed of moment and visual perception.
At some point the number of motors on one micro will become choppy.

Solution is to use multiple micros.

The speed of the movement for a stepper would naturally incorporate a ramp up to speed and a ramp down to stop.

if you have a network of micros and one master, it could tell board #7 to go to 34918... a number of steps over the floor.
and then tell #8 to go to.... each board would recive the command, ramp to speed, move to the location and ramp down to stop at that point.

The master could send each board a series of points so that there is always apparent motion.

Faster boards, the ESP8266, the ESP32, the MapleMini, the Teensy, might make the movement smoother with more motor per board.

The beauty of the one board for X motors is that it becomes modular so the overall size of the project becomes less of a concern.

I watched the one ball, far left,
it drops fast, some times, rises very slow some times...

There is a point where the 'sculpture' is formed and they all stop.
I did not see if that is say, 10 ball movements, stop... so the array of points would be 10 (or 20?)

Speed is part of the movement. so a second array of speed would be needed.

It would seem that one could program in some number of movements, with speed, to a board that controlled 2, 3 or 4 motor
then send a 'start' to the whole lot.

Robin2:
I guess I'm an old curmudgeon but I would prefer my charity money to be spent on things that actually help the people it is being collected for.

Nobody said you can't control 30 stepper motors - just that it is not a trivial project.

...R

I guess you misunderstood me. My friends and I are all volunteers helping this institute. Funds for this project and the ones we have completed come from our own pockets.

I found this post where someone is trying to do the same thing.

https://forum.arduino.cc/index.php?topic=345920.0

Good discussion but it seems there was no final solution.

ba47:
I found this post where someone is trying to do the same thing.

I don't see any reason to change from the suggestions I made back then.

If there was no ultimate solution it was because the OP was not prepared to put the work in. Learning how to do something this complicated will take time. These steps are my suggested approach

  • Get a Mega and the necessary hardware and program it to control 3 stepper motors with all the actions that you want. That may also mean programming it so it can receive commands for what to do next AND the creation of the system to send those commands. (Note that the Mega may seem overkill for this, but it has good communication facilities)
  • When that is working get a nano (smaller and cheaper version of an Uno) and program it to operate another 3 motors based on data that is passed to it from the Mega.
  • When all that is working you will have a good idea of the complexity of the project and, with the nano, you should have a basis for extending it to more motors by getting extra nanos.

...R

I think it would be very interesting to have a challenge to blink an LED.
could you blink an LED in some manner, software and hardware, using an Arduino.
winner is who would come up with a unique way that no one else did, one submission only.
prize, 1 MILLION ohm resistor.....

so it is with this project, lots of ways, each has some compromise.

one UNO, with lots of shift registers will be slow.

if you have 4 pulse generators. each at a different speed
outputs go to a digital switch 4 in 1 out
output of the switch to a stepper driver.
the 4 inputs of the switch are controlled by the Arduino with a simple off/on signal.
direction is set by the arduino through a shift register.

I think at some point, the extra bits don't save time or money and it would be easier to use a board with a ton of outputs.

speed and fluidity of the final device comes into play at some point. if choppy is OK, of if you want flawless movement.

I am going to go with Robin2 on this. time and effort is needed on your part to figure out what is acceptable.

I've got 7 of the small steppers working nicely on a '1284P so far.
Going to move them over to a '2560 today and expand the code to simulate 17 running, see if the same smoothness can be kept.
youtube.com/watch?v=5-9pqTQP_SQ

(forum might add extra characters to the start and end of that)

I found an old thread in this forum, but looks like no one ever got it done :

https://forum.arduino.cc/index.php?topic=94065.0

I've thought about ways to to do it but don't have enough experience, so I need your guidance.
I'd be happy to even discuss an eventual "pay for the job".

Solutions I've considered:

  1. 48 cheap stepper motors with 3D printed pulleys, fishing lines and small spheres.
    Problem: How do I control 48 steppers, not enough pins. Use multiple Mega's as master and slave ?

  2. Small Dc motors. Make all motors go to the top, hit an end stop switch (wired in series), then
    create the patterns using millies in the software. This way I think I won't have to deal with positions.
    Problem: How do I control 48 DC motors ? What exactly do I need ? How to control
    speed and direction ?

  3. Use 48 Continuous rotation servos (costly). Can I use PCA9685 with continuous rotation servos ?
    Speed and direction control ?

  4. Modify cheap 180° servos, daisy chain 3 PCA9685 ? Speed and direction control ?

Please bear with me if I sound naif and let me thank you in advance for your help.

IMHO you need stepper motors in order to get the positioning precision for a system like that - nearly in the right place would not be good enough.

I suspect the hardware is by far the simplest part of the project - even if it costs money.

...R

Robin,
How do I control 50+ steppers ? Can you explain pls ?

ba47:
How do I control 50+ steppers ? Can you explain pls ?

With several Arduinos ?

The details depend on the stepper motor drivers that you propose to use.

...R

Shift registers are another possibility.

I'd be happy to even discuss an eventual "pay for the job".

How much are you willing to spend?

Think hundreds of hours in design, construction and programming. Plus 48x(hardware cost per unit).

one of the members Crossroads

I believe has moved down this line. created a board with a micro that would drive multiple steppers.

think of the project as say, one Arduino Micro, one board with 3 drivers. controls 3 steppers.
that Micro has a set program, or lots of set programs.

the master tells each micro to run program " ? "
your sculpture might have 100 sets of these micros.
so the master can send all the data out to the micros and then at the appropriate time....
'START'
Then the joyous dance of motors, wires and balls begins.

Steppers would be able to work, as would a DC motor with encoder.
the program becomes simple when you only have one micro controlling a few balls.
hundreds or thousands of micros becomes really hard to program on the fly

Choreography is a separate art in itself.
just getting 300 motors to move to a spot so the final form is reached would be amazing rewarding after the hours of programming.
The dance to get to that is something else.

It looks like the matrix is 22 x 17 = 374 total motors.

jremington:

I'd be happy to even discuss an eventual "pay for the job".

How much are you willing to spend?

Think hundreds of hours in design, construction and programming. Plus 48x(hardware cost per unit).

if BMW commissioned that sculpture, then we know at least one company was able to support the Arts.
I see this as two concurrent trades
hardware for the motors, pulleys, frame, etc
software and electronics.
If I were asked to make such a thing, I would reach out to the one that has already done it.
or, from the multiple videos, has already done more than a few.
You bring up a point, unstated. That a person well versed in software would have to send a lot of time to make something like this.

ba47:
kinetic sclpture thread

Recreating the BMW Kinetic Sculpture? - Motors, Mechanics, Power and CNC - Arduino Forum
,,,,,,,,, eventual "pay for the job".

  1. Use 48 Continuous rotation servos (costly).

everything is relative.
costly is an understatement if you think some servos are costly.
on that thread you listed kinetic sculpture thread

Crossroads posted a possible motor and wire design. The large final wheel would have an encoder so that wheel would be the accurate device to measure the motion.

The work Crossroads did, I believe was posted under a stepper clock video some time ago.

a bit or reasoning :
a servo has an on-board control system with encoder for feedback and position logic control to move to the point that is sent from the Arduino.

my thought is that a motor, encoder or stepper, etc, and an Arduino can do the same thing, but in discrete parts.

whereas the 300+ servos require constant signals to move in unison, a pre-programmed ballet with final resting point can be programmed into a module. ( or modules)

The question is re-programming later on.

also, everything between the start and the final point of the shape of the car, is the choreography.
you can 'dance' the balls for some time, then go to that final point with a command or timing.
the wave could be one program and the final point a second. the final point is only coordinates so really is not that difficult. the speeds and such for the dance before getting to those final points is where the art comes in.

ba47:
I'd be happy to even discuss an eventual "pay for the job".

I missed that bit.

I reckon it would cost several £000 to commission a replica of that - and i would probably be cheapest to get the guys who built the BMW system to build you a copy. They already have all the software.

...R

Thank you all for joining and chipping in.

First let me repeat that I was talking about a much smaller version of the BMW sculpture, i.e. 48 motors.

  • dave-in-nj, time ago I exchanged emails with Crossroads about this project, but we got nowhere.

  • wildbill, could you please explain more on how to use shift registers ?

  • Robin, I was thinking of using 28BYJ-48 steppers and master-slaving several Arduinos.

"... how much am I willing to spend ? " I bet the BMW sculpture and the one in Changi airport :

https://www.youtube.com/watch?v=NXuQnDeIyY8

cost millions. I was thinking of a small DIY project and will pay dues for help.