top of page

Linear Stage with Open-Loop Control

In this assignment project, I made a linear drive system which consisted of an Arduino board, Arduino Shield board V3, a NEMA-17 Stepper Motor, a threaded rod, and a carriage with an integrated lead screw. With these parts, the goal of this project was to control the movement of the carriage by translating the rotary motion of the rod into the linear motion of the carriage. The speed and the rotation direction of the rod that is connected with the lead screw.

FullAssembly01.jpeg

Mechanical Construction of the Device

The basic operating principle of the motor and lead screw is a conversion by the stepper motor from a rotational movement that is provided by the threaded shaft which is connected to a lead screw that is integrated with the carriage. Since the shaft thread is connected with that of the lead screw, a linear motion is produced from the lead screw.

By combining the linear drive components with the Arduino kits, I was able to build a system that demonstrates a basic mechanism of a carriage that can be moved back and forth by rotating the threaded shaft. The speed and the accuracy of the motor can be controlled by the program created and executed from the Arduino board.  The full assembly of the device is shown in the picture above.

Key Materials: Stepper Motor & Lead Screw

The main components of a linear drive system consist of a stepper motor, a threaded rod, and a carriage with a lead screw. The rod becomes the driving mechanism that controls the movement of the carriage and its rotary motion is provided by the stepper motor.

Stepper Motor - Full Step vs Half Step

It turns out, the rotation smoothness of the motor can be adjusted. The smoother the rotation, the more accurate its angular displacement. One way to adjust this setup is by changing from full-stepping and half-stepping. Now, you might ask, what is the difference between two?

When the magnets on the shaft (labeled as N's and S's in the circle center) is rotated, it interacts with the coils that are connected to the Arduino board. the displacement of one pole of the shaft from one coil to another is defined as a step. In the full-stepping mode, the north pole on the right side of the shaft moves from Coil A to Coil B. As a result, Coil B becomes the south pole while coil A no longer has a partner to create an opposite polarity with. In full-stepping mode, the shaft needs to have 8 steps to reach one full revolution, with 45-degree displacement per step.

Diagr.JPG

Comparatively, the angular displacement for the half-stepping mode is much smaller than that for the full stepping mode. Looking back at the north pole on the right side of the shaft, instead of directly moving from coil A to coil B, the shaft actually stops in between these coils. As a consequence, both since coils A and B interact with the north pole of the shaft, both will change their polarities to south. By comparing the two tables below, since it takes 2 steps to reach from 0 to 45 degrees, the shaft will need twice the amount of steps to complete one revolution, which are 16 steps.

Electrical Diagram

The basic operating principle of the motor and lead screw is a conversion by the stepper motor from a rotational movement that is provided by the threaded shaft which is connected to a lead screw that is integrated with the carriage. Since the shaft thread is connected with that of the lead screw, a linear motion is produced from the lead screw.

By combining the linear drive components with the Arduino kits, I was able to build a system that demonstrates a basic mechanism of a carriage that can be moved back and forth by rotating the threaded shaft. The speed and the accuracy of the motor can be controlled by the program created and executed from the Arduino board. This process is called a homing sequence. 

Displacement vs. Time Graph

Another setup that can be made for the stepper motor is the speed. This can be done by changing the delay time for the duration in which the poles of the shaft interacts with those of the coils. Smaller delay time means that the poles on the shaft need to shift at a much faster rate. 

Test Procedures & Result

Now, with everything set up, it is time for the system to execute a homing sequence process. There is a specific task given in terms of how the carriage should move, which is listed below:

  1. The carriage will remain stationary until the button is pushed.

  2. The carriage will then move towards the same button at a highest speed to test the motor limit. 

  3. After the switch is pressed, the carriage will then retract 5 mm from the switch at approximately 50% of its previous speed.

  4. The carriage will move again toward the switch at low speed with half-stepping for accuracy. 

  5. The carriage will then move away from the switch at low speed with half-stepping.

  6. To finalize the homing process, the power to the motor is then shut off.

As the result, I was able to demonstrate the basic principle of homing sequence by showing the on the right. 

However, I was not able to the test procedure due to rigorous trials in which the Arduino board and the stepper motor got overheated eventually. Fortunately, I was able to demonstrate the durability of this linear drive system, where by it was able to hold more than a required load of 1 lb. Although the block pillows that hold the were slightly loose since there were no screws available to keep it intact with the linear rails, the printed frames provided a tight fit so that they were able to keep these pieces fixed with respect to the linear movement of the carriage. 

In the future, I hope to solve this issue to tackle the test procedure given. Please await further update.

bottom of page