Difference between revisions of "Team:Carnegie Mellon/Device"

 
(3 intermediate revisions by 2 users not shown)
Line 30: Line 30:
 
/* ----------------------------- jumbotron code ---------------------- */
 
/* ----------------------------- jumbotron code ---------------------- */
 
.jumbotron {
 
.jumbotron {
   background-image:url('http://www.isonicinc.com/beakers.jpg');
+
   background-image:url('https://static.igem.org/mediawiki/2015/d/d8/Wiki_device_banner.png');
 
   height: 600px;
 
   height: 600px;
 
   background-repeat: no-repeat;
 
   background-repeat: no-repeat;
Line 111: Line 111:
 
       <div class="container">
 
       <div class="container">
 
         <div class = "title">Device.</div>
 
         <div class = "title">Device.</div>
         <p>Do it yourself arduino-based optical devices.</p>
+
         <p>Do-it-yourself arduino-based optical devices.</p>
 
       </div>
 
       </div>
 
     </div>
 
     </div>
Line 200: Line 200:
 
<div class = "title">Code Files</div><br>
 
<div class = "title">Code Files</div><br>
 
   <div class = "description">
 
   <div class = "description">
We built user interfaces to allow users to interface with our device via USB, bluetooth, or wifi. Using open source python and Arduino libraries we were able to construct a device that reads data from a photodiode, converts the data into a meaningful way to assess effectiveness of a light source, and then wirelessly pushes the data to a server where it can be saved and viewed in the future. We also did some data processing and modification on the raw data from the device in order to make it more useful for the general user. Pictures of the user interface can be seen below:<br>
+
We built user interfaces to allow users to interface with our device via USB, bluetooth, or wifi. Using open source python and Arduino libraries we were able to construct a device that reads data from a photodiode, converts the data into a meaningful way to assess effectiveness of a light source, and then wirelessly pushes the data to a server where it can be saved and viewed in the future. We also did some data processing and modification on the raw data from the device in order to make it more useful for the general user. Pictures of the user interface can be seen below:<br><br>
   
+
  <center><image src="https://static.igem.org/mediawiki/2015/d/d6/UIarduinoHome.png" height="600" width="1000"></center><br><br>
<br>
+
<center><image src="https://static.igem.org/mediawiki/2015/6/65/UIArduinoSync.png" height="600" width="1000"></center><br><br>
As our device was constructed entirely with open source software, we wished to give back to the scientific and technical community. Thus we decided to put our hardware schematics and codebase online. This will enable any user or iGEM team to construct their own luminometer and use it in their experiments.
+
As our device was constructed entirely with open source software, we wished to give back to the scientific and technical community. Thus we decided to put our hardware schematics and codebase online. This will enable any user or iGEM team to construct their own luminometer and use it in their experiments. The code for luminometer can be download <a href="https://static.igem.org/mediawiki/2015/0/00/UserInterfaceOptical.zip">here</a>!
 
   </description>
 
   </description>
 
</div>
 
</div>

Latest revision as of 21:45, 20 November 2015

Device.

Do-it-yourself arduino-based optical devices.

Purpose

Our original goal was to be able to design a fluorimeter solely using the materials available in the Arduino Ultimate Starter Kit. This package came with an Arduino Uno along with several helpful components such as LEDs, buzzers, relays, and a Light Dependent Resistor (LDR). The LDR is a resistor that has resistance inversely proportional to light: it has tiny resistance (100s of ohms) when a lot of light strikes it and very large resistance (10,000s of ohms) when in complete darkness. It soon became apparent, however, that the LDR would not be sufficient for our purposes: the device was not sensitive in low light, the signal was small, and the response time was very slow. Here is a graph of one of our trials where we simply turned the lights off and slowly changed the screen brightness of a computer in the room:



As the graph shows, there was no discernible change between each level of brightness (just a general upward trend), there is an incredible amount of noise making a stable reading impossible, and the response time was in the order of tens of seconds. We decided to tackle these problems individually.
Improvements

First, we tried to smooth out the signal. For those who are not in the field of electrical engineering, this required the use of either an inductor or a capacitor. We decided use capacitors since they were more readily available. A capacitor is a device made up of two parallel metal plates that are not touching each other so that, when a voltage is applied to these plates, an electrical field is created in between them! This field stores energy proportional to its capacitance, so it will store energy when voltage is applied over it and it will give off a voltage when there is no voltage across it. To simplify this thought, a capacitor can almost be thought of as a really small rechargeable battery. Thus, when we place a capacitor in parallel with our LDR, if the signal is high it will store energy and if the signal is low it will raise give off energy! Assuming we are using only a small capacitor, this signal will look smoother with the possible trade off of a small time delay capacitor discharges.



And here we have a much smoother signal! However, the signal is still much too small and is very slow to respond. To tackle both of these problems together, we ordered some new parts: a simple photodiode ($2) and two operational amplifiers (op amps, also roughly $2).
New Circuit

Photodiodes are essentially small solar panels and op amps are a complex weave of transistors and capacitors that serve to amplify signals. This lead to the design of our complete circuit:

Two capacitors were used, one to smooth the signal and one to stabilize the voltage source (the Arduino). Our device measures voltage at the V nodes shown in the graph (also done by the Arduino) and the resistors connected to the negative pin of the op amp determine the amplificiation of the signal. The trade off between capacitors of different sizes is always a matter of speed versus smoothness. We tried three different capacitors and found the one that worked best to be the second:








Compare that with the original photodiode circuit unmodified here:



As you can see, things are much better now!
Results

Reattempting our original experiment, we closed the doors and turned off the lights to see how well our new circuit could detect us changing a laptop's backlit display from the six feet away facing away from the circuit:



And it worked! It can clearly be seen when the light changes and the response time is around two seconds per change. Our circuit was finally ready to test on cells! We further diminished noise by soldering our components to a PCB board (the shorter the wires, the less the noise), surrounding our circuit board with aluminum (known as a Faraday Cage, this technique prevents outside signals like radio waves from entering), and we added a Bluetooth chip to our circuit so that there was no light in the room at all. For this experiment, we used our Gaussia luciferase and tested it fully saturated to see if we could see anything at that dark. While the biologists added the Coelenterazine in the dark room, the engineers stood outside with laptops to see the results:



It was a success! The point of reaction can clearly be seen, the signal was smooth and fast, and the signal was big (meaning it should work on even diluted solutions). Our luminometer works. In fact this has some pretty big implications from an economical and scientific stadnpoint. For one we were able to detect levels of light activity commonly seen in reporter molecules used in wet lab environments for a device that cost around $100. Typical fluorescent plate readers can run up to $20,000 and are much bulkier than the device we built. This allows more people to participate in synthetic biology as it reduces some of the startup costs needed to perform wet lab work.

Of course, because things can always be improved, we have now been in the process of further amplifying the signal and diminishing noise. We have done this in several ways:
     *3D printed a casing for the reaction to take place to further diminish background light
     *Bought more enhanced, larger signal photodiodes (approximately $17)
     *Changed the resistors so that our op amp gain increased from 4 to 11.


Photodiode Characterization

Due to the fact that the output from a photodiode can only be read in terms of units of current (amperes) or units of voltage (volts), we needed to use a standardized device in order to characterize a few selected photodiodes, so that we could convert voltage readings to corresponding power readings, and those corresponding power readings to lumens.

The device we used to characterize the photodiodes was the Field Max II energy meter. The energy meter detects light and converts the detected light reading to wattage. We characterized three separate photodiodes: PDB-C139, APD15-8-150-TO5, and ASM71 PIN 5DP/SB. Using an iPhone we shinned different brightness levels of light on both the photodiode and the energy meter. Thus we could compare the output of the photodiode to the output of the energy meter for the same level of brightness. This allowed us to build a transfer function which mapped the readings from our arduino-based optical device to the Field Max II energy meter. The experimental data used to build the transfer functions are shown below:






Ultimately we chose to use the PDB-C139 photodiode due to its effectiveness and incredibly low cost (~$2). This enables us to detect light intensities as low as a couple hundred lumens and keep our device affordable.

Using Matlab’s built-in two term exponential fitting function for non-linear data, we were able to obtain the following fit and transfer function for the PDB-C139:

Transfer Function for PDB-C139 Photodiode


Code Files

We built user interfaces to allow users to interface with our device via USB, bluetooth, or wifi. Using open source python and Arduino libraries we were able to construct a device that reads data from a photodiode, converts the data into a meaningful way to assess effectiveness of a light source, and then wirelessly pushes the data to a server where it can be saved and viewed in the future. We also did some data processing and modification on the raw data from the device in order to make it more useful for the general user. Pictures of the user interface can be seen below:





As our device was constructed entirely with open source software, we wished to give back to the scientific and technical community. Thus we decided to put our hardware schematics and codebase online. This will enable any user or iGEM team to construct their own luminometer and use it in their experiments. The code for luminometer can be download here!
Future Directions

Future directions will also include extending our implementation to a fluorimeter. This simply requires printing a second half to the casing where we will attach an LED to excite the test tube specimens followed by a lens to only allow the wavelengths we want to measure to pass through.