This is a project by Derek Molly whereby he arranged a setup to drive a stepper motor using embedded Linux on his BeagleBone board. It is usually applied in robotic type applications or for 3D printing. Apart from these, he also made use of an easy driver which is an open source stepper motor driver that can keep the BeagleBone safe particularly in cases where high voltages and currents are applied.
Before moving on to the procedure, it’s important to get a little idea about a stepper motor and how is it different from a DC motor. The former contains various coils that are energized in sequence to rotate the motor one step at a time. Unlike DC motors, these are generally operated in open loop and hence don’t require a feedback loop to determine the position.
In this project, Derek arranges the hardware part along with the circuit configuration. Then he wrote the C++ class to allow the easy driver board within embedded Linux. At the final step, he implemented and tested the code and the stepper motor would rotate as per the code.
The stepper motor used in here is a low cost bi-polar unit that is worth 12 Euros and carries a torque of 0.23 Nm. Further, the easy driver board also costs the same amount and makes use of A3976. It’s a flexible board that can drive 4, 6 or 8-wire motors.
To start with, Derek placed a 5mm mounting hub on the stepper motor and fixed it. Then he connected the end of its wires to a male header which was further wired to a breadboard. He also connected the BeagleBone to the board with a supply of 12V power in the required manner. He prepared the code which can be downloaded from Githhub.
After running the code, the motor heated up and started rotating. Derek fixed the things in such a way that first it moved forward in clockwise direction for full step reversed in half step, again forward in quarter step and then finally reverse in one-eight step. While implementing this, he also changed the speed halfway through the movement from 60rpm to 120rpm. Apart from this, he also put a delay of 10 seconds such that the motor would sleep for that duration. While the motor went idle, the shaft could be moved as no torque was being applied at that moment. And then when it was awake, the shaft couldn’t be rotated any more.
Here is the video uploaded by Derek where he has explained all the details of his project right from the significance of the stepper motors to the circuit as well as coding.