My goal is to use a dozen or so stepper motors to move a kinetic sculpture from pro-programmed routines.
I'm not new to steppers or drives and have built several CNC machines over the past few years.
I'm looking for a suggestion on what Arduino to buy to get familiar with the basics, learn the programming language, and integrate with step/dir signals to stepper drives.
Any suggestions for a complete newbie to Arduino?
Thanks in advance everybody and looking forward to participating in the forums!
A Mega with RAMPS shield will give quick access to 6 steppers, but adding more steppers is really a matter of wiring. In theory a Mega could handle 30 steppers, but depending on processing requirements it might start to run out of steam.
At one time I designed some modular stepper "shields" which could drive many steppers mainly for 3D printers, but for most 3D printers they don't need that many steppers. Kinetic sculptures are perhaps a niche application which require lots of motors.
For practical purposes, if you have a lot of motors it is better to have multiple modules that each handle a few motors. Then the modules are connected in a comms network.
One good calculation would be to figure out how many steps per second your whole set of motors will require, and to size your uC based on that.
If you need to do 48 steppers at 100RPM and 1/32 microstepping, you would need to manage 512000 steps/sec, which won't fit into a Uno with AccelStepper.
I'm going to be a bit of a contrarian here and go in the opposite direction
Since wiring will likely be a serious consideration, and hardware is cheap, maybe it would be simpler to use a dozen separate stepper controllers.
An ESP8266 running AccelStepper library and a a basic stepper driver (e.g., TB6600) is all you need to control one motor and the communication/coordination between motors can then be wireless over Wi-Fi. This means that you now only need to supply power to each node.
Yes, motors and especially drives have gotten cheap. space is no problem as this is a large stationary sculpture with plenty of room for the smarts.
I've built over a dozen CNC machines of various types, Mill, Router, laser, etc so very familiar with the hardware and wiring.
Where I'm weak (nearly non-existent ) is how to get a program on a microcomputer and familiarize myself with writing code that is specific to the machine controller.
Usually, it's a matter of drawing a part in CAD, then generating G-code with a CAM program then loading to Mach 3 (machine control software) and running the file.
If this could all be done with G-code, then I'd suggest getting an arduino (just about any kind will do I think) and loading grbl onto it, then using a G-code editor to send commands, but the problem with this is how to coordinate 10 such drives. I assume they need to move in a coordinated fashion?
Yes. It has a very basic stepper driver (UNL2003) but you will be able to run motors with it. Just don't expect high performance (super smooth stepping at high speeds, etc.).
However, you can use it to learn how to control stepper motors, and if you decide that you can do what you need with g-code, it will also run grbl.
Yes, most definitely a coordinated movement. I could create a point cloud in CAD and generate G-code from that.
I want to be able to have all the motors running in unison so I can get wave-like motion effects.
The 28BYJ-48 is a good/cheap motor for starting kinetic sculptures, if you're happy with it's low speed (<12RPM). I posted code on this site to drive in theory about 150 of these at full speed with a single classic Nano (Uno R3) and a bunch of TPIC power shift registers (two motors per TPIC). Also on this site is a practical application with 48 of these motors. Use the search field on top of this page. Don't start this before you have gained some experience with Arduino and coding.
Leo..
I meant that I wondered if the steppers had to turn their shafts back and forth within 180° (100 steps), as on a wall installation pivoting panels, or maybe, looking at that link, joints on a figure through an arc. (360°=200 steps? or 360° geared to be 10000 steps? etc... )
I think the mathematics and synchronization for "wave like motion effects" could possibly be done with a FastLED animation, but with an extra routine after the FastLED.show() step. A routine something like a to-be-written "stepperShow()" could 1:1 translate the 24-bit/16 million color pixel color information from a coordinated leds[NUM_LEDS]; matrix into 0-255/0-65535/0-16777216 stepper positions, or into changes towards those positions.
Then I'd think the 10-axis coordinated movement would have to happen before it gets translated and distributed into the separate controllers' X-axis Gcode receivers.
Yes, the motion would be preplanned and sent out at an appropriate interval. Doing it over wi-fi should be more than fast enough to keep everyone synchronized (guessing here).
currently, the plan is to use geared steppers to run a series of small winches that will reel and unreel on command thus raising and lowering components of the mechanism.
AsI mentioned before I'm well versed on the mechanical side of things and have a shop full of CNC machines I've built over the years.
All of the code I've written in the past 30 years has been for a CNC machine controller (Mach3, 4 )
I'm assuming there is some program run on a PC to write a program and then upload to the Arduino?
A truck bearing a smile will be here with my Uno3 tomorrow. I'm bracing for the learning curve.