I really like the stepper drives from UIrobot, see http://en.uirobot.com/robot-product.html They are nice tiny, you can mount it direct to the stepper, heatsink is included and you do not need a special box for the motor dirver.
I have contacted the support of UIrobot and they mentioned to use model UIM24002, UIM24004 or UIM24008 for an Arduino project. Unfortunatelly I coudn't found any circuits or example code for the UIrobot driver. So I hope I can use the standard stepper library and code, see: Stepper - Arduino Reference and http://arduino.cc/en/Tutorial/MotorKnob or do I have to use a complete other approach?
You have -- beside power -- only this wiring inputs:
DIR Direction input
STEP Stepping pulse input
EN Enable the controller
Is there any exampe code and circuit for Arduino and UIrobot driver?
I really love the form factor of this dirver, really unique and a nice "one thing" with no extra enclosure. Would be great if you have some best practice examples how to handle it with an Arduino.
The standard stepper library controls the motor coils directly. You will need to use something like the AccelStepper library configured for step and direction control.
It looks like a nice driver. If you get it, report back to us how well it works. I notice they also have "intelligent" drivers that accept serial commands which could make your arduino code even simpler.
The from UIrobot support recommended models UIM2400x are Parallel Port Drives. Why do you think serial communication makes it even more easy? I know the concept parallel vs. serial from PCs only. So please be patient with my gap in knowledge!
Well, the parallel drives take step and direction signals which means you have to write the code that generates those signals. For most real-world applications you have to take care of ramping the acceleration, homing, etc. It can get complex quickly.
The serial drive takes commands telling the motor what speed, direction and position to move.
It also allows for setting various motor parameters such as microstepping modes, current limits, etc.
In addition the driver sends back information about the status of the motor and external sensors such as limit switches.
What you choose should depend on the needs of your specific application.
I have played a little with this setup. First, stepper driver recieves a signal wich is on one line (STEP - bright blue), and it has to be 1,0,1,0,1,0... it is convenionate for use with arduino, where that kind of signal is easily created. When i tested the motors i used a simple timed loop where digital output changed from 0 to 1, 0, 1, 0, 1... this digital output was directly lined at the bright blue port on the driver. At 1/16 microstepping i had to create for 1 rev. per sec., 3200 signals per sec. For more complex moves, as S curved accelerations, equasions must be made.
I have been also playing a little with LabView, where S curved accel. could be made very easily with SoftMotion, simply simulationg an Axis and extract the information of encoder and acceleration and bind it to Tone generation toolkit for arduino.
Currently i am working on creating a XYZ coordinated space, where a manipulator would move with these motors.