Hardware
The goal of our project, TERRA, is to automate and selectively dispense the output of a microfluidic device. In order to do so, we identified two main hardware components:
- a system to move the output from location to location
- a system to control when the output is dispensed
Designing the XY-Plane
In order for TERRA to select for specific locations to dispense fluids, we needed a method of either moving the output tube or the vessel, such as a 96-well plate. We ultimately decided to move the vessel, as that would minimize the length of and amount of dead volume in the output tube. Our team designed an active XY-plane, which would allow us to move the platform in the X- and Y-direction to target a specific location. This XY-plane needed to have the following functions and features: the ability for translational motion; a homing system; a control system; a manufacturing method; material; and motors. The following morphological chart illustrates our potential means of accomplishing each function or feature and the chosen options are written in green.Function/Feature | Means 1 | Means 2 | Means 3 | Means 4 |
---|---|---|---|---|
Translational Motion | Threaded rod | Timing belt and pulley system |
||
Homing | Manual, user-controlled homing | Optical sensors | Contact switches |
Ultrasonic sensors |
Control | Arduino |
Raspberry Pi | Arduino and Raspberry Pi | |
Manufacturing Method | Machining | 3D-printing |
||
Materials | HDPE | ABS |
||
Motors | Servos | Stepper |
Building the First Prototype
The first iteration of the XY-plane was composed of 3D printed parts and HDPE machined parts. We chose to do so in order to test the accessibility of each manufacturing method. All parts were modeled in Creo Parametric and STL files were generated for 3D-printing using a UPrint SE and ABS stock material. The machined parts were created from HDPE stock and milled using a manual NC mill. Since the first design was part of the prototyping stage, we had chosen to use open ended timing belts in order to have the freedom of adjusting the design of the XY-plane with the least amount of dimensional constraints. We realized, however, that the timing belts were difficult to maintain the correct amount of tension without a proper tensioner, which would not be possible to integrate to our system. Also, it would be difficult to standardize if the user were to cut their own timing belts according to how well they put together their XY-plane. When designing the XY-plane, we decided that we would like the default, starting position of the plate holder to be in the bottom right of the plane. During the first iteration, we brought the holder to position by traveling the span of the plane fully every time, which caused it to jam into the sides and also stall the motors. From there, we realized that we needed a method for the plane to communicate to the Arduinos in order to stop the motors when it has reached the correct position. Below are clips of a Creo assembly demonstrating how the XY-plane should be and the first physical iteration of the XY-plane.