Low-Cost Orbital Shaker With Variable Shaking Frequency and Diameter

by BrownUniversityENGN in Workshop > Science

2425 Views, 14 Favorites, 0 Comments

Low-Cost Orbital Shaker With Variable Shaking Frequency and Diameter

title.png

An orbital shaker is a type of shaker that generates a horizontal circular motion at different angular speeds. It is widely used for various biological and chemical applications, primarily in medicine to study microbe cultures; however, the cost and entry barrier remain high. We built a low-cost orbital shaker that has the ability to operate at various shaking frequencies and shaking diameters. It is designed to hold a standard 96 well plate, beakers, or other small labware. This system can be applied to many research lab applications, and its ease of use and relatively low-budget compared to manufactured systems makes it accessible to many.

This design was adapted from the project at https://www.thingiverse.com/thing:2983846

Supplies

Bill of materials attached


Tools

● Computer capable of running Arduino

● Arduino Software

● Phillips Head Screwdrivers

● Pliers

● Soldering Equipment

● Multimeter

● 3D printer (Original Prusa i3 MK3S+ recommended)

● Super Glue

Parts

fig2.png
fig1.png

Acquire all necessary components. Do this by purchasing the needed parts from Bill of Materials and downloading and printing all necessary 3D Printed parts. 

To print parts 1-13, PLA filament is suggested, although any similar filament should work as a substitute. Layer heights should range anywhere from 0.10mm to 0.20mm and infill can be anywhere between 7% and 15%.

Soldering

fig3+4.png

While this design primarily uses solderless connections in the circuitry, there are two components that need to be soldered: the wires from the stepper motor and the wires connected to the rocker switch. Both must be soldered to solderless jumper wires. Use wire strippers, a soldering iron, heat shrink tubing, and solder to attach the wires after coiling the copper wires together. Figure 3 and Figure 4 show what each of these look like. Note that in the package of switches [14] are wires that clamp onto the switch prongs but at their other end terminate in loose copper strands.

Motor Driver Setup

fig5.png

First make sure to stick the included heatsink for the A4988 on the driver. Follow this link to learn more about setting VREF In short, look for the resistor values - the most common one is R100, meaning it’s 0.1 Ohms. In this case, VREF = 0.81*I. When building our system, we chose to keep our VREF around 0.7 V, as seen in Figure 5. 

Securing Hardware Components Into the Base

fig7+8.png
fig6.png

1. Snap Breadboard [22] and DC Power Jack [21] into their designated places.

2. Place Arduino [19] into the base and use 3 4-40 x 3/4” Phillips Head Screws, and if necessary, #4 hex nuts (on the underside of the base) to secure it in place.

3. Place the Stepper Motor [13] inside the cubicle. Note that the wires should not be blocked by the walls and come out from the open side (to the left in Figure 6).

4. Place the LCD Screen [17] - inside the rectangular hole on the front side of the base. Put 4 4-40 x 1/2” Phillips Head Screws with 4 4-40 hex nuts.

5. Put the potentiometer [20] inside the little hole that is exposed through the circular hole made for the knob.

6. Place the knob [2] in front of the potentiometer [20] by putting the potentiometer inside the circular hole on the back side of the knob [2]. Keep the front face of the base and the front face of the knob parallel. 

Wiring

fig10.png
fig9.png

Using the circuit diagram in Figure 9 along with the solderless wires [18], make all connections to mimic this circuit. To minimize errors, color coordinate the power lines thoroughly. The red wires represent the positive terminal from the 12V DC power source and the black wires, its ground; similarly, the orange wires stand for 5V DC power source provided by the Arduino UNO board [19] and the brown wires, its ground. Note that the 4 wires of the stepper motor [13] must be connected to the correct pins in the A4988 motor driver board [15]. Refer to the data sheet provided by the manufacturer as well as the tutorial guides (1) (2) for more in-depth information.

Assembling the Lid and the Platform and Understanding How to Change the Shaking Radius

fig12+13.png
fig11.png

1. First, mimic the setup with the arms [4] atop the lid [3] in Figure 1. Do this by inserting 4 8-32 hex nuts in each of the bearing arms [4] the slots along the top and 2 bearings into the bearing slots of the lid. Similarly, insert 4 8-32 hex nuts into the motor arm [5]. Fully insert the bearing arms [4] into the bearings [27]. Also insert 4 8-32 hex nuts into the four corners of the lid [3].

2. Place the lid [3] onto the base [1]. Make sure that the motor is exposed from the top through a hole on the lid. Stick the 4 8-32 x 2 1/2” Phillips Head Screws into 4 corners on the bottom of the base and screw them all the way up through the hex nuts on the lid.

3. Super glue a 8-32 hex nut into the hex nut slot of the motor arm [5], allowing time to dry before moving on.

4. Slot the motor arm [5] onto the shaft of the Stepper Motor [13] and use a single 8-32 x 1/4” Phillips Head Screw to tighten the arm around the shaft. (NOTE: feel free to modify the design of the CAD model for this part as we noticed it does not work as expected)

5. Slot three bearings into the bearing holes of the triangle support [6]. Additionally slot the bearing inserts [7] into the bearings, securing it in place by slotting in a 8-32 x 3/4” Phillips Head Screw through each insert and securing the bottom tight with a 8-32 Hex Nut. Use a screwdriver and pliers to ensure that this is tight. Additionally stick 3 8-32 Hex Nuts into the slots atop the triangle support piece [6].

6. Choose the shaking diameter that is appropriate for your application. Refer to the placements in Figure 12 to understand which slots will lead to which diameters. Place the triangle support [6] on the bearing and motor arms and screw them using a screwdriver, such that it will look like Figure 13, but for the diameter of your choice. 

The Platform

fig14.png

1. Attach the platform [8] and the platform fence [9] by screwing in 8-32 x 3/4” Phillips Head Screw upside down with the hex nuts.

2. Place an object of your choice on the platform. To ensure the object does not fall off the platform once the orbital shaker starts shaking, place the primary sample holders [10] through the top gap of the platform fences [9] and secure them with the end pieces [11] on both sides of the primary sample using a screwdriver.

3. Place the secondary sample holders [12] through the gaps inside the primary sample holders [10]. These pieces do not contribute much to the clamping of the object but are, regardless, good additions to the primary sample holders [10]. 

Software

1. Download Arduino software and the code (OrbitalShaker_ArduinoCode.ino).

2. Make sure that all the relevant libraries are downloaded, which are: Wire.h, LiquidCrystal_I2C.h, and AccelStepper.h.

a. Refer to the AccelStepper library for more reference.

3. Upload the code onto the Arduino UNO R3 [19] using the USB A/B cable [26].

Note that this code allows for user input of the variables “upper” and “lower”. If you decide to modify the system by adding a more capable power supply or optimize the code to work well at low RPM values without excessive vibration, feel free to alter these parameters of the set upper and lower RPM of the system. 

User Manual

fig15.png

1. Complete all of the steps mentioned in the Assembly. Make sure all the parts are attached to each other firmly. Refer to the pictures below for reference.

2. Connect the 9V power supply [24] with the inline power switch [23] and plug it into the power jack on Arduino. Plug the 12V power supply [25] into the DC power jack [21].

3. Turn on the switch for the Arduino and the motor, whose switch is exposed on the opposite side of the Arduino board.

4. Pay attention to the LCD monitor on the front side of the base. After a few seconds, the range for the motor speed will be introduced. Following a few more seconds, you will be given a 10 second window to turn the knob. The rotation of the knob will translate to a change in input RPM, which will be reflected instantaneously on the LCD monitor.

5. After the 10 second window, the motor will start accelerating and rotate continuously at the established speed.

6. To reset the system, restart the Arduino board by turning the switch off and on. Steps 1~5 will be repeated again. 

NOTE: Whenever you are not actively running the orbital shaker, turn OFF the switch for the motor driver power supply (“I” is on and “O” is off). Since the voltage of the provided power supply is half the voltage rating of the motor, we do not imagine that the motor will be damaged in any way, but turning off the motor switch when not actively running the motor would be a good practice.