This page describes the linear actuator that the MOST group made from 3-D printed parts. In particular, it explains how to use it as a syringe pump and a microscope stage.

Hardware

The length of the actuator is defined by two smooth rods, diameter 6 mm, and one threaded rod, M5, which is used as a lead screw. A carriage moves over those rods, with linear bearings (LM6UU) on the smooth rods and one or two trapped nut on the lead screw.

The idler end clamps on the smooth rods, and holds the lead screw with two 628ZZ bearings. The motor end also clamps on the smooth rods, and attaches a NEMA11 motor to the lead screw with a flexible coupling.

For the syringe pump, a printed clamping mechanism is used to clamp the syringe body to the idler end, and the piston to the carriage.

The motor is driven by a Pololu stepper motor driver, which is controlled by the GPIO pins of a Raspberry Pi.

Software

On the Raspberry Pi, a server is running which accepts connections from programs written in python. This client program can make remote procedure calls to control the actuator. This is the most low-level and most powerful method of controlling the actuator; it allows easy integration with other actuators and sensors, resulting in a fully automated measurement.

For manual control, there is a program named wsserver; it connects to the Raspberry Pi using its python interface, and hosts a web site to monitor and control the state of the actuator. The terminology it uses is set up for a syringe pump.

Web Interface

In the web interface, there are three lines: calibration, position, and speed, which are all set up the same way. First, they show the current value of the variable; position is red while it's moving. Then there's an input field to enter a new value. Pressing the Set button will send this value to the server; the current value (left of the input field) shows that the server has updated. Note that setting the position in this way does not move the actuator; it only shifts the server's scale, such that the current position is what it was requested to be.

The bottom line is used for moving the actuator. Putting a number in the field and clicking the Pull or Push button will make the motor move.

Calibration

  • The actuator driver has hard-coded values for the number of steps per revolution and the pitch of the lead screw. Dividing those gives the number of steps per mm; with 200 steps per revolution and .8 mm pitch, there's 250 steps per mm. For calibration, we want to compute the number of steps, so we set the ml/mm to this number. That way, instructing to move a number of ml will actually move that number of steps.
  • Move the motor so the syringe is pulled out to the end of the syringe's scale, then push it back to the last division. Get it as precise as possible, but don't pull; if you go over the division, pull back a mm and then push again until you hit it.
  • Set the position to 0.
  • Move the motor so the syringe is pushed in to the farthest division it can reach without hitting the idler end. Use only pushing to get there. If you've pushed too far, pull at least a mm too far back and push it again. If you've hit the idler end, restart by calibrating the zero position.
  • Read the position. Divide the actual distance in ml (start position minus end position) by this number; that is the number of ml per mm that you should use as calibration for this syringe type.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.