Microstepping - Smooth & Accurate
JBWolf
Posts: 405
Hello,
I am interested in making a small linear actuator and would like to control the motor with the propeller.
I already have lead screws and anti-backlash ballnuts.
I have bi-polar and uni-polar stepper motors that I have used the propeller to control with a ULN2803... but the ULN only allows for full/half/quarter step resolution of the motor which is still too much for my needs.
I would like to find a good, smooth micro-step driver I can run off the prop. I need as many steps as I can get for very small movements.
The stepper motors I use do not take more than 2A max... Though I typically find 1A provides enough torque.
Can someone recommend a driver suitable for my needs?
I would prefer to keep cost low, <$30 per driver.
Also... after this project is done, I would like to learn more about using serv/brushed motors and be able to do the same thing... smooth and accurate control for positioning.
Maybe someone can recommend a driver for this as well?
Thanks!
Jason
PS - I was hoping to order by late tonight or tomorrow morning to possibly receive the drivers by Wednesday.
I am interested in making a small linear actuator and would like to control the motor with the propeller.
I already have lead screws and anti-backlash ballnuts.
I have bi-polar and uni-polar stepper motors that I have used the propeller to control with a ULN2803... but the ULN only allows for full/half/quarter step resolution of the motor which is still too much for my needs.
I would like to find a good, smooth micro-step driver I can run off the prop. I need as many steps as I can get for very small movements.
The stepper motors I use do not take more than 2A max... Though I typically find 1A provides enough torque.
Can someone recommend a driver suitable for my needs?
I would prefer to keep cost low, <$30 per driver.
Also... after this project is done, I would like to learn more about using serv/brushed motors and be able to do the same thing... smooth and accurate control for positioning.
Maybe someone can recommend a driver for this as well?
Thanks!
Jason
PS - I was hoping to order by late tonight or tomorrow morning to possibly receive the drivers by Wednesday.
Comments
The absolute easiest way IMO is to use the L6470 with 128-microstep resolution. It's a small TSSOP pack with built-in drivers to handle 3A RMS/channel and you only need an SPI interface, in fact I borrow the SCL & SDA from the I2C bus pins and so I just need 2 others. There's a few threads about this chip and here's one you can look at.
and another
micro-step is also motor dependent, so you cannot keep adding precision.
I recall high end systems which supplied motor+EPROM sets, which calibrated the motor non-linearities.
Another approach is to make your own, using a DAC and a fast comparator, with hysteresis. (MCP6561/2/4 ?)
The DAC sets the current reference and the comparator drives a power mosfet, that switches the motor (R+L) about that current level. The L + hyst sets the switching frequency.
MCP6561/2/4 have fixed Hyst, but you can externally add more.
This allows you to shape the pole DACS, if you need to for a particular motor's poles.
http://www.pololu.com/catalog/product/1182
Yes, microstepping gives a somewhat more resolution (if you have good torque overhead), but primarily reduces
vibration and resonance (very necessary with real loads). You accuracy is mainly limited by how off-centre the
motor bearings are w.r.t. the teeth on the rotor, the precision of the teeth themselves, and any backlash in the system.
Motor rotation angle is also not linear w.r.t. phase of the quadrature current phase feeding the windings, so even with
massive spare torque you won't get the accuracy you imagine!
I reckon something like 1/16th stepping will get to the limit of repeatable accuracy of your motor, then further subdivision
yields only reduced vibration and noise (and some more resulution).
For some applications repeatability is not so crucial as smooth motion, and finer steps does help with that.
But I never could see how the the stepper controller could do such small steps when the motor was designed for full steps and really only intended for full steps. Coils vary a bit, magnets also vary. It is easy to understand half-steps, quarter-steps, and a bit further. But this seemed way too ambitious.
I mentioned that I suspected that micro-stepping had become a fad that had gone too far. I have noticed that newer stepper motor devices have rolled back to 1/32nd or so.
Still, reduced vibration and reduced noise are good things and needed in some situations.
I think you can buy motors designed for Micro-stepping, so their magnetic hand-over is designed to be better (but, of course, you pay for that )
I think the transfer is still monotonic, just not always highly linear (steps can vary in size).
These days, an encoder may be the best way to 'reality check' things, if precision matters.
I guess I really do not need accuracy beyond 1/32... my motors have 400 steps/rev... so that would give 12,800 positions per rev correct?
I forget what my ballscrew TPI is, but I believe it is around 1 just from looking at it.. I'll have to look up the specs later, but I did get a heavy TPI as I wanted accuracy more than speed.
Assuming exactly 1 TPI, this would give a resolution of .000078125" per step correct?
That is right where I would like to be, a ten thousandths resolution is more than good enough for my needs
Just my two cents ...
now as you said that.
One of my proposal to Chip was made timers to be possible give 3-phase (120') control on DAC's.
That was for that possibility's You describe - and some more ones -- But that ones I will not talk on.
Are there drivers that exist and are available with that kind of capability?
Also, Can I get positional accuracy with a brushed motor / servo motor without using feedback?
Ideally I would love to use one of the big 2-wire DC motors I have, they are quite strong and I imagine their motion would be much smoother than with a stepper.
Is there a driver available so I could use this as an alternative?
Something to run this?
In a word, no, you need the feedback for positional accuracy. A servo motor is pretty much a brushed motor with the position sensor built in.
Take a look at these.
http://www.piclist.com/techref/io/stepper/linistep/index.htm
These are linear amp type drivers and as a result generate a bit of heat. A substantial heat sink is necessary. 3 driver kits for $90. Take the time to study all the details about them. Performance vs price for the intended use at 2-3 amps is hard to beat. They were designed by wizard Roman Black.
http://www.romanblack.com/lini.htm
Rick