http://2014.igem.org/wiki/index.php?title=Special:Contributions/Ansgar&feed=atom&limit=50&target=Ansgar&year=&month=2014.igem.org - User contributions [en]2024-03-28T19:37:56ZFrom 2014.igem.orgMediaWiki 1.16.5http://2014.igem.org/Team:Aachen/Notebook/Software/MeasurartyTeam:Aachen/Notebook/Software/Measurarty2014-10-18T00:41:13Z<p>Ansgar: /* Source Code */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
<html><br />
<link rel="stylesheet" href="https://2014.igem.org/Team:Aachen/Scripts/highlight.pack.default.css?action=raw&ctype=text/css"><br />
<script src="https://2014.igem.org/Team:Aachen/Scripts/highlight.pack.js?action=raw&ctype=text/javascript"></script><br />
<script>hljs.initHighlightingOnLoad();</script><br />
</html><br />
<br />
= ''Measurarty'' =<br />
<br />
''Measurarty'' is the evil player in the game of ''Cellock Holmes'' and ''WatsOn''.<br />
''Measurarty'' is the pathogen detection logic behind our project.<br />
Using our ''Measurarty'' algorithm, we want to automatically detect pathogens from the chip photos delivered by WatsOn, without human interaction.<br />
Besides reducing the risk of human errors, this makes our device usable by almost everyone.<br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#intro" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Intro</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/1b/Aachen_Measurarty_Intro_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#SRM" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">SRM!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/2d/Aachen_Puzzels_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#segment" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Segment!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/e1/Aachen_SEgment_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#classification" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Classify!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/f/f9/Aachen_Classify_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#measurartyachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Measurarty_Intro_button.png|right|150px]]<br />
<br />
== ''Measurarty'' - An Introduction ==<br />
<span class="anchor" id="intro"></span><br />
<br />
Our [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware device control software] is able to take images of incubated chips inside WatsOn. Yet, that does not bring the user closer to the answer of the question:<br />
<br />
<center>'''What's on the chip?'''</center><br />
<br />
In fact, answering this question seems trivial for a human: Just check whether a colony grown has grown on the chip and you're done. This task is even easier with our chip system, because these show fluorescence wherever a pathogen has been detected.<br />
<br />
But is this an easy task for a computer? Actually not. The task of automatic detection is tried by several disciplines in computer science, from pattern recognition over machine learning to by medical imaging chairs.<br />
<br />
Here, we would like to present a pipeline for this task that makes use of '''easy segmentation and classification algorithms'''.<br />
First, ''Measurarty'' segments the target image using '''Statistical Region Merging (SRM)''' in order to find regions of similar properties. After this step, we can segment the picture using '''histogram thresholding''' in [http://en.wikipedia.org/wiki/HSL_and_HSV HSV color space] to find candidate regions for pathogens.<br />
Finally, a classification algorithm can detect the pathogen on our chips.<br />
<br />
To demonstrate the algorithm, the following sample image will be discussed.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_test.jpg|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Puzzels_button.png|right|150px]]<br />
<br />
== Statistical Region Merging (SRM) ==<br />
<span class="anchor" id="SRM"></span><br />
<br />
Before briefly introducing Statistical Region Merging (SRM), we would like to explain why we need this step, and why this algorithm is an ideal choice.<br />
<br />
Compared to other clustering algorithms, SRM is quite leight weight, yet delivers ''deterministic'' results and is not dependent on a certain seed (like ''k''-means, for example).<br />
<br />
On the other hand, it can create as many refinements as one wants and is thus flexible enough for the our purposes. Finally there's already been knowledge about this algorithm in the group.<br />
<br />
Statistical Region Merging (SRM) (Nook and Nielson, 2004) is a clustering technique also used directly for image segmentation.<br />
A region $R$ is a set of pixels and the cardinality $\lvert R \rvert$ determines how many pixels are in one region.<br />
Starting with a sorted set of connected regions (w. r. t. some distance function $f$), two regions $R$ and $R'$ are merged if the qualification criteria $\vert \overline{R'}-\overline{R} \vert \leq \sqrt{b^2(R)+b^2(R')}$ with $b(R) = g \cdot \sqrt{\frac{\ln \frac{\mathcal{R}_{\lvert R \rvert}}{\delta}}{2Q\lvert R \rvert}}$ is fulfilled.<br />
Therefore, $\mathcal{R}_{\lvert R \rvert}$ is the set of regions with $\lvert R \rvert$ pixels.<br />
Typically $Q$ is chosen as $Q \in \lbrack 256, 1\rbrack$ and $\delta = \frac{1}{\lvert I \rvert^2}$.<br />
<br />
The $Q$ parameter mainly influences the merging process. For an example, see the figure ''SRM Regions'' below. The lower the chosen value for $Q$, more coarse the regions become. Using a union-find structure, the segmentation does not need to be recalculated for each $Q$ level. For the step from $q$ to $\frac{q}{2}$, just the qualification criteria needs to be applied to the regions from the $q$ result. A MATLAB implementation is also available (Boltz, 2009).<br />
<br />
{{Team:Aachen/FigureDual|Aachen_srm_regions_3.PNG|Aachen_srm_regions_2.PNG|title1=SRM regions in random colors|title2=SRM regions (average color)|subtitle1=Different regions from an SRM run starting at $Q=256$ (top left) and going to $Q=1$ (bottom right). Each region is assigned a random color.|subtitle2=Different regions from an SRM run starting at $Q=256$ (top left) and going to $Q=1$ (bottom right). Each region is assigned the average color of that region.|width=425px}} <br />
<br />
=== SRM Clustering ===<br />
<br />
In our project, we used Statistical Region Merging for clustering. In contrast to other algorithms, such as ''k-means'', this approach is highly deterministic.<br />
For our purposes we only have one SRM run for $Q=256$.<br />
<br />
In MATLAB, we use the previously mentioned code from MATLAB Fileexchange (Boltz, 2009).<br />
For our Qt-based GUI we implemented the SRM method ourselves.<br />
<br />
The SRM clustering reduces the amount of different colors in the image and hence eases the recognition of parts belonging together.<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
Qlevel = 256;<br />
[maps,images]=singlesrm(double(image),Qlevel);<br />
</code></pre><br />
</div><br />
</html><br />
<br />
Finally, if applied to our test-image, regions are created and homogenoues regions form:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_srmed.png|title=regions created with SRM clustering|width=700px}}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_SEgment_button.png|right|150px]]<br />
<br />
== Segmentation ==<br />
<span class="anchor" id="segment"></span><br />
<br />
In the segmentation stage all background regions are removed. This task is quite crucial. If one removes too few, the final stage of finding pathogens might get irritated.<br />
On the other hand, if one removes too many regions, positive hits might get removed early before detection. This surely must be avoided.<br />
<br />
We opted for a simple thresholding step because it showed that while being easy, it is an effective weapon against the uniform background. In fact, the good image quality we wanted to reach with our device allows now less sophisticated methods.<br />
Also the less computational intensive the steps are, the better they might even run directly on the Raspberry Pi in our device!<br />
<br />
The HSV thresholding is performed on each component seperately. For more information on the HSV color space we refer to [http://en.wikipedia.org/wiki/HSL_and_HSV Wikipedia]. The first component is the hue which we select to be inbetween $0.462$ and $0.520$ to select any blue-greenish color. We will not see bright green due to the filter selection in our device.<br />
The saturation value must be high, between $0.99$ and $1.0$.<br />
Moreover, the value component of the HSV image has to lie between $0.25$ and $0.32$, which assumes a relatively dark color.<br />
<br />
Indeed, these values are not problem specific, but specific for each setup and therefore have to be determined empirically.<br />
<br />
The remainder of this stage creates a mask of pixels that fulfill the conditions.<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
% Auto-generated by colorThresholder app on 15-Oct-2014<br />
%-------------------------------------------------------<br />
function [maskedRGBImage] = createMask(srmimg)<br />
RGB = srmimg;<br />
<br />
% Convert RGB image to chosen color space<br />
I = rgb2hsv(RGB);<br />
<br />
% Define thresholds for channel 1 based on histogram settings<br />
channel1Min = 0.462;<br />
channel1Max = 0.520;<br />
<br />
% Define thresholds for channel 2 based on histogram settings<br />
channel2Min = 0.99;<br />
channel2Max = 1.000;<br />
<br />
% Define thresholds for channel 3 based on histogram settings<br />
channel3Min = 0.25;<br />
channel3Max = 0.32;<br />
<br />
% Create mask based on chosen histogram thresholds<br />
BW = (I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...<br />
(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...<br />
(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);<br />
<br />
% Initialize output masked image based on input image.<br />
maskedRGBImage = RGB;<br />
<br />
% Set background pixels where BW is false to zero.<br />
maskedRGBImage(repmat(~BW,[1 1 3])) = 0;<br />
<br />
end<br />
</code></pre><br />
</div><br />
</html><br />
<br />
If you apply this HSV masking code to the SRMed test image, the following is created:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_masked.png|title=masked image|width=700px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Classify_button.png|right|150px]]<br />
<br />
== Classification ==<br />
<span class="anchor" id="classification"></span><br />
<br />
=== Smoothness Index ===<br />
<br />
For position prediction in virtual environments, jitter or noise in the output signal is not wanted though often present.<br />
Since discovering smooth areas is a similar problem to jitter detection, a simple method for determining jitter can be used to measure non-jitter, smoothness (Joppich, Rausch and Kuhlen, 2013).<br />
It is assumed that jitter-free areas of a position signal do not differ in velocity.<br />
<br />
Smooth areas do not differ in intensity, and therefore only low changes in velocity (intensity change) can be recorded.<br />
For the reduction of noise, this operation is performed on the smoothed input image.<br />
Then the smoothness $s$ of a pixel $p$ in its k-neighbourhood $\mathcal{N}_k$ can be determined as:<br />
\begin{equation}<br />
s(p) = \sum\limits_{p' \in \mathcal{N}_k} \nabla(p') / \arg\max\limits_{p} s(p)<br />
\end{equation}<br />
<br />
Using thresholding, $TS_l \leq s(p) \leq TS_u \wedge TI_l \leq I \leq TI_u$, different areas, such as background or pathogen, can be selected.<br />
<br />
For the empirical choice of thresholds, it can be argued that these are tailored to the specific case.<br />
While this surely is true to a certain extent, the here presented method has been successfully tested on images from a completely different domain, and no changes to the thresholds have been made to make it work.<br />
A proper theoretical evaluation is emphasized, however, is probably not the aim of the iGEM competition.<br />
<br />
Finally, selecting for the red region, this delivers the location of possible pathogens.<br />
Since the size of the agar chips is variable but fixed a quantitative analysis can be performed by counting pixels for instance.<br />
<br />
=== Empirical Evaluation ===<br />
<br />
Using our MATLAB code we found the lower threshold for the smoothness index to be $TS_l = 0.85$ and the upper threshold $TS_u = \infty$.<br />
Similarly, for $TI_l = 235$ and $TI_u = \infty$.<br />
<br />
Using these settings, we can find a response already in images taken after 42&nbsp;minutes.<br />
<br />
Ideally, one would rate the quality of the image segmentation using some ground truth, such as manual delineations. This still has to be done for our method.<br />
However, from visual observations, our method is showing promising results.<br />
<br />
* image of smoothness index<br />
<br />
=== Automatic Classification ===<br />
<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
function [mask, seg] = automaticseeds(im)<br />
<br />
imc = im;<br />
<br />
%% to grayscale and filtering<br />
Z = double(rgb2gray(im));<br />
Z = 255 * Z / max(max(Z));<br />
<br />
filtertype = 'disk';<br />
Z = filter2(fspecial(filtertype), Z);<br />
Z = filter2(fspecial(filtertype), filter2(fspecial(filtertype), Z));<br />
Z = 255 * Z / max(max(Z)); <br />
<br />
%% calculating similarity score/smoothness index<br />
k=4;<br />
sSI = similarity(Z,k);<br />
sSI = sSI / max(max(sSI)); <br />
<br />
%% classify<br />
pathogene = ((sSI > 0.85) == 1) & ((Z > 235) == 1); <br />
<br />
mask = ones( size(imc) );<br />
seg = zeros( size(imc) );<br />
<br />
<br />
%% output<br />
for i=1:size(im,1)<br />
for j=1:size(im,2)<br />
<br />
if (pathogene(i,j) == 1)<br />
seg(i,j,1:3) = [255 0 0];<br />
mask(i, j, 1:3) = [0 0 0];<br />
end<br />
end<br />
end<br />
end<br />
</code></pre><br />
</div><br />
</html><br />
<br />
This code actually creates two intermediate images from which the similarity index is calculated.<br />
First the smoothed (disk-filter) input image is created and stored:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_smoothed.png|title=smoothed image|width=700px}}<br />
<br />
Only white regions are candidate regions.<br />
After smoothing, the similarity index is calculated. As expected, edges are detected and limit the area from which the target region can be selected.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_smiliarity.png|title=detected edges|width=700px}}<br />
<br />
Finally the selected pathogen region is selected by the black area in the following picture:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_mask.png|title=selected region|width=700px}}<br />
<br />
Combined with the input image, the final segmentation is received:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_final.png|title=final analyzed image|width=700px}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Achievements ==<br />
<span class="anchor" id="measurartyachievements"></span><br />
<br />
''Measurarty'' is the image analysis logic behind our project.<br />
It is comprised of simple constructs put together into a pipeline, that is clearly laid out, easily maintainable and - if needed - easily adaptable.<br />
For example, changing from green to red fluorescence, only means to change the ''createMask'' function to select another target area.<br />
<br />
Overall the results look convincing. We have not yet performed a comparison to a manual delineation, however, by eye the results look promising and have a low error.<br />
<br />
Talking about computational complexity, the MATLAB code of course performs better than our own C++ implementation, which must be regarded as a proof-of-principle.<br />
<br />
Space-wise, the code depends heavily on the image size $O( x \cdot y)$ (width $x$, height $y$, which also limits the number of edges in SRM between regions, as each pixel is one region to start with. However, it cannot take less memory, as the image is stored in an uncompressed format.<br />
<br />
On the computational side, the thresholding, image conversion and gradient steps are linear in the number of pixels, and are thus in $O(x \cdot y)$.<br />
Unfortunately, the summation of the gradient for the smoothness index adds a heavy factor to it (k-neighbourhood for smoothness index).<br />
Due to the merging step in our C++-SRM algorithm implementation, our code has to do $O(x^2 \cdot y^2)$ comparisons, which then finally results in a runtime complexity of $O( x^2 \cdot y^2)$.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_sizes.png|title=Pixel count of the detected pathogenic region versus time after induction.|width=700px}}<br />
<br />
From the above figure it can also be seen that the detected amount of pathogenic-area correlates with time after induction.<br />
The lag-phase can be explained first by the lag-phase of the cells, which first need to generate a response to the pathogen, and on the other hand, by too low fluorescence which is not detectable.<br />
The pixel count also meets the expectation when looking at the sample files by eye.<br />
<br />
<center><br />
<div class="figure" style="float:{{{align|center}}}; margin: 0px 10px 10px 0px; border:{{{border|0px solid #aaa}}};width:{{{width|960px}}};padding:10px 10px 0px 0px;"><br />
{|<br />
|<html> <img src="https://static.igem.org/mediawiki/2014/f/fc/Aachen_Measurarty_combined_slow.gif" width="960px"></html><br />
|-<br />
|'''{{{title|Detecting ''P. aeroginosa'' with K131026}}}'''<br />{{{subtitle|The left half shows the original images from the device and the right half shows the same pictures with the detected pathogenic region analyzed by ''Measurarty''.}}}<br />
|}<br />
</div><br />
</center><br />
<br />
It can be concluded that the ''Measurarty'' pipeline defines a robustly working chip-analysis algorithm which can detect pathogens from images supplied by ''WatsOn''.<br />
Therefore, this algorithm closes the gap between our biology, detection hardware and the user who wants easy-to-interpret results.<br />
<br />
For future prospects, it would be interesting to do a proper performance analysis on our code, to find hotspots and optimize the code. Many ''for''-loops leave plenty of room for vectorization and loop-unrolling. Parallelization, specifically with respect to embedded hardware such as the Raspberry Pi or Odroid U3, is limited to the extend that the overhead created would probably eliminate the improvements.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Source Code ==<br />
<span class="anchor" id="source"></span><br />
<br />
''Measuarty'' is the image analysis logic behind our project. It has been prototyped and developed in [http://www.mathworks.de/academia/student-competitions/igem/ MATLAB], and only later been ported into our ''WatsOn'' GUI.<br />
<br />
We are happy to provide you with a zip-ped download of our MATLAB code here, as well as on the iGEM software repository on [https://github.com/orgs/igemsoftware/teams/aachen2014 github].<br />
<br />
* MATLAB code<br />
* link [https://github.com/orgs/igemsoftware/teams/aachen2014 github]<br />
<br />
For the C++ conversion please see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware our ''WatsOn'' Software] section.<br />
<br />
=== Using the MATLAB Code ===<br />
<br />
In general, please follow the included ''README.MD'' file. Our package comes with a set of test files from one of our experiments.<br />
After installing the Statistical Region Merging code (see readme), you can simply run ''igem_srm_demo.m''. Select your current folder, and MATLAB will automatically segment and classify the included jpg-images.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
<span class="anchor" id="measurartyrefs"></span><br />
<br />
* Boltz, S. (2009, October 20). Image segmentation using statistical region merging - File Exchange - MATLAB Central. Image segmentation using statistical region merging. Retrieved December 12, 2013, from http://www.mathworks.com/matlabcentral/fileexchange/25619-image-segmentation-using-statistical-region-merging<br />
<br />
* Joppich, M., Rausch, D., & Kuhlen, T. (2013). Adaptive human motion prediction using multiple model approaches.. Virtuelle und erweiterte Realität (p. 169–180). 10. Workshop der GI-Fachgruppe VR/AR: Shaker.<br />
<br />
* Nock, R., & Nielsen, F. (2004). Statistical region merging. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26(11), 1452-1458.<br />
<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Software/MeasurartyTeam:Aachen/Notebook/Software/Measurarty2014-10-18T00:38:55Z<p>Ansgar: /* Automatic Classification */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
<html><br />
<link rel="stylesheet" href="https://2014.igem.org/Team:Aachen/Scripts/highlight.pack.default.css?action=raw&ctype=text/css"><br />
<script src="https://2014.igem.org/Team:Aachen/Scripts/highlight.pack.js?action=raw&ctype=text/javascript"></script><br />
<script>hljs.initHighlightingOnLoad();</script><br />
</html><br />
<br />
= ''Measurarty'' =<br />
<br />
''Measurarty'' is the evil player in the game of ''Cellock Holmes'' and ''WatsOn''.<br />
''Measurarty'' is the pathogen detection logic behind our project.<br />
Using our ''Measurarty'' algorithm, we want to automatically detect pathogens from the chip photos delivered by WatsOn, without human interaction.<br />
Besides reducing the risk of human errors, this makes our device usable by almost everyone.<br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#intro" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Intro</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/1b/Aachen_Measurarty_Intro_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#SRM" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">SRM!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/2d/Aachen_Puzzels_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#segment" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Segment!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/e1/Aachen_SEgment_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#classification" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Classify!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/f/f9/Aachen_Classify_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#measurartyachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Measurarty_Intro_button.png|right|150px]]<br />
<br />
== ''Measurarty'' - An Introduction ==<br />
<span class="anchor" id="intro"></span><br />
<br />
Our [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware device control software] is able to take images of incubated chips inside WatsOn. Yet, that does not bring the user closer to the answer of the question:<br />
<br />
<center>'''What's on the chip?'''</center><br />
<br />
In fact, answering this question seems trivial for a human: Just check whether a colony grown has grown on the chip and you're done. This task is even easier with our chip system, because these show fluorescence wherever a pathogen has been detected.<br />
<br />
But is this an easy task for a computer? Actually not. The task of automatic detection is tried by several disciplines in computer science, from pattern recognition over machine learning to by medical imaging chairs.<br />
<br />
Here, we would like to present a pipeline for this task that makes use of '''easy segmentation and classification algorithms'''.<br />
First, ''Measurarty'' segments the target image using '''Statistical Region Merging (SRM)''' in order to find regions of similar properties. After this step, we can segment the picture using '''histogram thresholding''' in [http://en.wikipedia.org/wiki/HSL_and_HSV HSV color space] to find candidate regions for pathogens.<br />
Finally, a classification algorithm can detect the pathogen on our chips.<br />
<br />
To demonstrate the algorithm, the following sample image will be discussed.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_test.jpg|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Puzzels_button.png|right|150px]]<br />
<br />
== Statistical Region Merging (SRM) ==<br />
<span class="anchor" id="SRM"></span><br />
<br />
Before briefly introducing Statistical Region Merging (SRM), we would like to explain why we need this step, and why this algorithm is an ideal choice.<br />
<br />
Compared to other clustering algorithms, SRM is quite leight weight, yet delivers ''deterministic'' results and is not dependent on a certain seed (like ''k''-means, for example).<br />
<br />
On the other hand, it can create as many refinements as one wants and is thus flexible enough for the our purposes. Finally there's already been knowledge about this algorithm in the group.<br />
<br />
Statistical Region Merging (SRM) (Nook and Nielson, 2004) is a clustering technique also used directly for image segmentation.<br />
A region $R$ is a set of pixels and the cardinality $\lvert R \rvert$ determines how many pixels are in one region.<br />
Starting with a sorted set of connected regions (w. r. t. some distance function $f$), two regions $R$ and $R'$ are merged if the qualification criteria $\vert \overline{R'}-\overline{R} \vert \leq \sqrt{b^2(R)+b^2(R')}$ with $b(R) = g \cdot \sqrt{\frac{\ln \frac{\mathcal{R}_{\lvert R \rvert}}{\delta}}{2Q\lvert R \rvert}}$ is fulfilled.<br />
Therefore, $\mathcal{R}_{\lvert R \rvert}$ is the set of regions with $\lvert R \rvert$ pixels.<br />
Typically $Q$ is chosen as $Q \in \lbrack 256, 1\rbrack$ and $\delta = \frac{1}{\lvert I \rvert^2}$.<br />
<br />
The $Q$ parameter mainly influences the merging process. For an example, see the figure ''SRM Regions'' below. The lower the chosen value for $Q$, more coarse the regions become. Using a union-find structure, the segmentation does not need to be recalculated for each $Q$ level. For the step from $q$ to $\frac{q}{2}$, just the qualification criteria needs to be applied to the regions from the $q$ result. A MATLAB implementation is also available (Boltz, 2009).<br />
<br />
{{Team:Aachen/FigureDual|Aachen_srm_regions_3.PNG|Aachen_srm_regions_2.PNG|title1=SRM regions in random colors|title2=SRM regions (average color)|subtitle1=Different regions from an SRM run starting at $Q=256$ (top left) and going to $Q=1$ (bottom right). Each region is assigned a random color.|subtitle2=Different regions from an SRM run starting at $Q=256$ (top left) and going to $Q=1$ (bottom right). Each region is assigned the average color of that region.|width=425px}} <br />
<br />
=== SRM Clustering ===<br />
<br />
In our project, we used Statistical Region Merging for clustering. In contrast to other algorithms, such as ''k-means'', this approach is highly deterministic.<br />
For our purposes we only have one SRM run for $Q=256$.<br />
<br />
In MATLAB, we use the previously mentioned code from MATLAB Fileexchange (Boltz, 2009).<br />
For our Qt-based GUI we implemented the SRM method ourselves.<br />
<br />
The SRM clustering reduces the amount of different colors in the image and hence eases the recognition of parts belonging together.<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
Qlevel = 256;<br />
[maps,images]=singlesrm(double(image),Qlevel);<br />
</code></pre><br />
</div><br />
</html><br />
<br />
Finally, if applied to our test-image, regions are created and homogenoues regions form:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_srmed.png|title=regions created with SRM clustering|width=700px}}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_SEgment_button.png|right|150px]]<br />
<br />
== Segmentation ==<br />
<span class="anchor" id="segment"></span><br />
<br />
In the segmentation stage all background regions are removed. This task is quite crucial. If one removes too few, the final stage of finding pathogens might get irritated.<br />
On the other hand, if one removes too many regions, positive hits might get removed early before detection. This surely must be avoided.<br />
<br />
We opted for a simple thresholding step because it showed that while being easy, it is an effective weapon against the uniform background. In fact, the good image quality we wanted to reach with our device allows now less sophisticated methods.<br />
Also the less computational intensive the steps are, the better they might even run directly on the Raspberry Pi in our device!<br />
<br />
The HSV thresholding is performed on each component seperately. For more information on the HSV color space we refer to [http://en.wikipedia.org/wiki/HSL_and_HSV Wikipedia]. The first component is the hue which we select to be inbetween $0.462$ and $0.520$ to select any blue-greenish color. We will not see bright green due to the filter selection in our device.<br />
The saturation value must be high, between $0.99$ and $1.0$.<br />
Moreover, the value component of the HSV image has to lie between $0.25$ and $0.32$, which assumes a relatively dark color.<br />
<br />
Indeed, these values are not problem specific, but specific for each setup and therefore have to be determined empirically.<br />
<br />
The remainder of this stage creates a mask of pixels that fulfill the conditions.<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
% Auto-generated by colorThresholder app on 15-Oct-2014<br />
%-------------------------------------------------------<br />
function [maskedRGBImage] = createMask(srmimg)<br />
RGB = srmimg;<br />
<br />
% Convert RGB image to chosen color space<br />
I = rgb2hsv(RGB);<br />
<br />
% Define thresholds for channel 1 based on histogram settings<br />
channel1Min = 0.462;<br />
channel1Max = 0.520;<br />
<br />
% Define thresholds for channel 2 based on histogram settings<br />
channel2Min = 0.99;<br />
channel2Max = 1.000;<br />
<br />
% Define thresholds for channel 3 based on histogram settings<br />
channel3Min = 0.25;<br />
channel3Max = 0.32;<br />
<br />
% Create mask based on chosen histogram thresholds<br />
BW = (I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...<br />
(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...<br />
(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);<br />
<br />
% Initialize output masked image based on input image.<br />
maskedRGBImage = RGB;<br />
<br />
% Set background pixels where BW is false to zero.<br />
maskedRGBImage(repmat(~BW,[1 1 3])) = 0;<br />
<br />
end<br />
</code></pre><br />
</div><br />
</html><br />
<br />
If you apply this HSV masking code to the SRMed test image, the following is created:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_masked.png|title=masked image|width=700px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Classify_button.png|right|150px]]<br />
<br />
== Classification ==<br />
<span class="anchor" id="classification"></span><br />
<br />
=== Smoothness Index ===<br />
<br />
For position prediction in virtual environments, jitter or noise in the output signal is not wanted though often present.<br />
Since discovering smooth areas is a similar problem to jitter detection, a simple method for determining jitter can be used to measure non-jitter, smoothness (Joppich, Rausch and Kuhlen, 2013).<br />
It is assumed that jitter-free areas of a position signal do not differ in velocity.<br />
<br />
Smooth areas do not differ in intensity, and therefore only low changes in velocity (intensity change) can be recorded.<br />
For the reduction of noise, this operation is performed on the smoothed input image.<br />
Then the smoothness $s$ of a pixel $p$ in its k-neighbourhood $\mathcal{N}_k$ can be determined as:<br />
\begin{equation}<br />
s(p) = \sum\limits_{p' \in \mathcal{N}_k} \nabla(p') / \arg\max\limits_{p} s(p)<br />
\end{equation}<br />
<br />
Using thresholding, $TS_l \leq s(p) \leq TS_u \wedge TI_l \leq I \leq TI_u$, different areas, such as background or pathogen, can be selected.<br />
<br />
For the empirical choice of thresholds, it can be argued that these are tailored to the specific case.<br />
While this surely is true to a certain extent, the here presented method has been successfully tested on images from a completely different domain, and no changes to the thresholds have been made to make it work.<br />
A proper theoretical evaluation is emphasized, however, is probably not the aim of the iGEM competition.<br />
<br />
Finally, selecting for the red region, this delivers the location of possible pathogens.<br />
Since the size of the agar chips is variable but fixed a quantitative analysis can be performed by counting pixels for instance.<br />
<br />
=== Empirical Evaluation ===<br />
<br />
Using our MATLAB code we found the lower threshold for the smoothness index to be $TS_l = 0.85$ and the upper threshold $TS_u = \infty$.<br />
Similarly, for $TI_l = 235$ and $TI_u = \infty$.<br />
<br />
Using these settings, we can find a response already in images taken after 42&nbsp;minutes.<br />
<br />
Ideally, one would rate the quality of the image segmentation using some ground truth, such as manual delineations. This still has to be done for our method.<br />
However, from visual observations, our method is showing promising results.<br />
<br />
* image of smoothness index<br />
<br />
=== Automatic Classification ===<br />
<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
function [mask, seg] = automaticseeds(im)<br />
<br />
imc = im;<br />
<br />
%% to grayscale and filtering<br />
Z = double(rgb2gray(im));<br />
Z = 255 * Z / max(max(Z));<br />
<br />
filtertype = 'disk';<br />
Z = filter2(fspecial(filtertype), Z);<br />
Z = filter2(fspecial(filtertype), filter2(fspecial(filtertype), Z));<br />
Z = 255 * Z / max(max(Z)); <br />
<br />
%% calculating similarity score/smoothness index<br />
k=4;<br />
sSI = similarity(Z,k);<br />
sSI = sSI / max(max(sSI)); <br />
<br />
%% classify<br />
pathogene = ((sSI > 0.85) == 1) & ((Z > 235) == 1); <br />
<br />
mask = ones( size(imc) );<br />
seg = zeros( size(imc) );<br />
<br />
<br />
%% output<br />
for i=1:size(im,1)<br />
for j=1:size(im,2)<br />
<br />
if (pathogene(i,j) == 1)<br />
seg(i,j,1:3) = [255 0 0];<br />
mask(i, j, 1:3) = [0 0 0];<br />
end<br />
end<br />
end<br />
end<br />
</code></pre><br />
</div><br />
</html><br />
<br />
This code actually creates two intermediate images from which the similarity index is calculated.<br />
First the smoothed (disk-filter) input image is created and stored:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_smoothed.png|title=smoothed image|width=700px}}<br />
<br />
Only white regions are candidate regions.<br />
After smoothing, the similarity index is calculated. As expected, edges are detected and limit the area from which the target region can be selected.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_smiliarity.png|title=detected edges|width=700px}}<br />
<br />
Finally the selected pathogen region is selected by the black area in the following picture:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_mask.png|title=selected region|width=700px}}<br />
<br />
Combined with the input image, the final segmentation is received:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_final.png|title=final analyzed image|width=700px}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Achievements ==<br />
<span class="anchor" id="measurartyachievements"></span><br />
<br />
''Measurarty'' is the image analysis logic behind our project.<br />
It is comprised of simple constructs put together into a pipeline, that is clearly laid out, easily maintainable and - if needed - easily adaptable.<br />
For example, changing from green to red fluorescence, only means to change the ''createMask'' function to select another target area.<br />
<br />
Overall the results look convincing. We have not yet performed a comparison to a manual delineation, however, by eye the results look promising and have a low error.<br />
<br />
Talking about computational complexity, the MATLAB code of course performs better than our own C++ implementation, which must be regarded as a proof-of-principle.<br />
<br />
Space-wise, the code depends heavily on the image size $O( x \cdot y)$ (width $x$, height $y$, which also limits the number of edges in SRM between regions, as each pixel is one region to start with. However, it cannot take less memory, as the image is stored in an uncompressed format.<br />
<br />
On the computational side, the thresholding, image conversion and gradient steps are linear in the number of pixels, and are thus in $O(x \cdot y)$.<br />
Unfortunately, the summation of the gradient for the smoothness index adds a heavy factor to it (k-neighbourhood for smoothness index).<br />
Due to the merging step in our C++-SRM algorithm implementation, our code has to do $O(x^2 \cdot y^2)$ comparisons, which then finally results in a runtime complexity of $O( x^2 \cdot y^2)$.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_sizes.png|title=Pixel count of the detected pathogenic region versus time after induction.|width=700px}}<br />
<br />
From the above figure it can also be seen that the detected amount of pathogenic-area correlates with time after induction.<br />
The lag-phase can be explained first by the lag-phase of the cells, which first need to generate a response to the pathogen, and on the other hand, by too low fluorescence which is not detectable.<br />
The pixel count also meets the expectation when looking at the sample files by eye.<br />
<br />
<center><br />
<div class="figure" style="float:{{{align|center}}}; margin: 0px 10px 10px 0px; border:{{{border|0px solid #aaa}}};width:{{{width|960px}}};padding:10px 10px 0px 0px;"><br />
{|<br />
|<html> <img src="https://static.igem.org/mediawiki/2014/f/fc/Aachen_Measurarty_combined_slow.gif" width="960px"></html><br />
|-<br />
|'''{{{title|Detecting ''P. aeroginosa'' with K131026}}}'''<br />{{{subtitle|The left half shows the original images from the device and the right half shows the same pictures with the detected pathogenic region analyzed by ''Measurarty''.}}}<br />
|}<br />
</div><br />
</center><br />
<br />
It can be concluded that the ''Measurarty'' pipeline defines a robustly working chip-analysis algorithm which can detect pathogens from images supplied by ''WatsOn''.<br />
Therefore, this algorithm closes the gap between our biology, detection hardware and the user who wants easy-to-interpret results.<br />
<br />
For future prospects, it would be interesting to do a proper performance analysis on our code, to find hotspots and optimize the code. Many ''for''-loops leave plenty of room for vectorization and loop-unrolling. Parallelization, specifically with respect to embedded hardware such as the Raspberry Pi or Odroid U3, is limited to the extend that the overhead created would probably eliminate the improvements.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Source Code ==<br />
<span class="anchor" id="source"></span><br />
<br />
''Measuarty'' is the image analysis logic behind our project. It has been prototyped and developed in [http://www.mathworks.de/academia/student-competitions/igem/ MATLAB], and only later been ported into our ''WatsOn'' GUI.<br />
<br />
We are happy to provide you with a zip-ped download of our MATLAB code here, as well as on the iGEM softwarerepository on [https://github.com/orgs/igemsoftware/teams/aachen2014 github].<br />
<br />
* MATLAB code<br />
* link [https://github.com/orgs/igemsoftware/teams/aachen2014 github]<br />
<br />
For the C++ conversion please see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware our ''WatsOn'' Software] section.<br />
<br />
=== Using the MATLAB Code ===<br />
<br />
In general, please follow the included ''README.MD'' file. Our package comes with a set of test files from one of our experiments.<br />
After installing the Statistical Region Merging code (see readme), you can simply run ''igem_srm_demo.m''. Select your current folder, and MATLAB will automatically segment and classify the included jpg-images.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
<span class="anchor" id="measurartyrefs"></span><br />
<br />
* Boltz, S. (2009, October 20). Image segmentation using statistical region merging - File Exchange - MATLAB Central. Image segmentation using statistical region merging. Retrieved December 12, 2013, from http://www.mathworks.com/matlabcentral/fileexchange/25619-image-segmentation-using-statistical-region-merging<br />
<br />
* Joppich, M., Rausch, D., & Kuhlen, T. (2013). Adaptive human motion prediction using multiple model approaches.. Virtuelle und erweiterte Realität (p. 169–180). 10. Workshop der GI-Fachgruppe VR/AR: Shaker.<br />
<br />
* Nock, R., & Nielsen, F. (2004). Statistical region merging. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26(11), 1452-1458.<br />
<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Software/MeasurartyTeam:Aachen/Notebook/Software/Measurarty2014-10-18T00:25:32Z<p>Ansgar: /* Segmentation */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
<html><br />
<link rel="stylesheet" href="https://2014.igem.org/Team:Aachen/Scripts/highlight.pack.default.css?action=raw&ctype=text/css"><br />
<script src="https://2014.igem.org/Team:Aachen/Scripts/highlight.pack.js?action=raw&ctype=text/javascript"></script><br />
<script>hljs.initHighlightingOnLoad();</script><br />
</html><br />
<br />
= ''Measurarty'' =<br />
<br />
''Measurarty'' is the evil player in the game of ''Cellock Holmes'' and ''WatsOn''.<br />
''Measurarty'' is the pathogen detection logic behind our project.<br />
Using our ''Measurarty'' algorithm, we want to automatically detect pathogens from the chip photos delivered by WatsOn, without human interaction.<br />
Besides reducing the risk of human errors, this makes our device usable by almost everyone.<br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#intro" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Intro</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/1b/Aachen_Measurarty_Intro_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#SRM" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">SRM!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/2d/Aachen_Puzzels_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#segment" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Segment!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/e1/Aachen_SEgment_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#classification" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Classify!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/f/f9/Aachen_Classify_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#measurartyachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Measurarty_Intro_button.png|right|150px]]<br />
<br />
== ''Measurarty'' - An Introduction ==<br />
<span class="anchor" id="intro"></span><br />
<br />
Our [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware device control software] is able to take images of incubated chips inside WatsOn. Yet, that does not bring the user closer to the answer of the question:<br />
<br />
<center>'''What's on the chip?'''</center><br />
<br />
In fact, answering this question seems trivial for a human: Just check whether a colony grown has grown on the chip and you're done. This task is even easier with our chip system, because these show fluorescence wherever a pathogen has been detected.<br />
<br />
But is this an easy task for a computer? Actually not. The task of automatic detection is tried by several disciplines in computer science, from pattern recognition over machine learning to by medical imaging chairs.<br />
<br />
Here, we would like to present a pipeline for this task that makes use of '''easy segmentation and classification algorithms'''.<br />
First, ''Measurarty'' segments the target image using '''Statistical Region Merging (SRM)''' in order to find regions of similar properties. After this step, we can segment the picture using '''histogram thresholding''' in [http://en.wikipedia.org/wiki/HSL_and_HSV HSV color space] to find candidate regions for pathogens.<br />
Finally, a classification algorithm can detect the pathogen on our chips.<br />
<br />
To demonstrate the algorithm, the following sample image will be discussed.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_test.jpg|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Puzzels_button.png|right|150px]]<br />
<br />
== Statistical Region Merging (SRM) ==<br />
<span class="anchor" id="SRM"></span><br />
<br />
Before briefly introducing Statistical Region Merging (SRM), we would like to explain why we need this step, and why this algorithm is an ideal choice.<br />
<br />
Compared to other clustering algorithms, SRM is quite leight weight, yet delivers ''deterministic'' results and is not dependent on a certain seed (like ''k''-means, for example).<br />
<br />
On the other hand, it can create as many refinements as one wants and is thus flexible enough for the our purposes. Finally there's already been knowledge about this algorithm in the group.<br />
<br />
Statistical Region Merging (SRM) (Nook and Nielson, 2004) is a clustering technique also used directly for image segmentation.<br />
A region $R$ is a set of pixels and the cardinality $\lvert R \rvert$ determines how many pixels are in one region.<br />
Starting with a sorted set of connected regions (w. r. t. some distance function $f$), two regions $R$ and $R'$ are merged if the qualification criteria $\vert \overline{R'}-\overline{R} \vert \leq \sqrt{b^2(R)+b^2(R')}$ with $b(R) = g \cdot \sqrt{\frac{\ln \frac{\mathcal{R}_{\lvert R \rvert}}{\delta}}{2Q\lvert R \rvert}}$ is fulfilled.<br />
Therefore, $\mathcal{R}_{\lvert R \rvert}$ is the set of regions with $\lvert R \rvert$ pixels.<br />
Typically $Q$ is chosen as $Q \in \lbrack 256, 1\rbrack$ and $\delta = \frac{1}{\lvert I \rvert^2}$.<br />
<br />
The $Q$ parameter mainly influences the merging process. For an example, see the figure ''SRM Regions'' below. The lower the chosen value for $Q$, more coarse the regions become. Using a union-find structure, the segmentation does not need to be recalculated for each $Q$ level. For the step from $q$ to $\frac{q}{2}$, just the qualification criteria needs to be applied to the regions from the $q$ result. A MATLAB implementation is also available (Boltz, 2009).<br />
<br />
{{Team:Aachen/FigureDual|Aachen_srm_regions_3.PNG|Aachen_srm_regions_2.PNG|title1=SRM regions in random colors|title2=SRM regions (average color)|subtitle1=Different regions from an SRM run starting at $Q=256$ (top left) and going to $Q=1$ (bottom right). Each region is assigned a random color.|subtitle2=Different regions from an SRM run starting at $Q=256$ (top left) and going to $Q=1$ (bottom right). Each region is assigned the average color of that region.|width=425px}} <br />
<br />
=== SRM Clustering ===<br />
<br />
In our project, we used Statistical Region Merging for clustering. In contrast to other algorithms, such as ''k-means'', this approach is highly deterministic.<br />
For our purposes we only have one SRM run for $Q=256$.<br />
<br />
In MATLAB, we use the previously mentioned code from MATLAB Fileexchange (Boltz, 2009).<br />
For our Qt-based GUI we implemented the SRM method ourselves.<br />
<br />
The SRM clustering reduces the amount of different colors in the image and hence eases the recognition of parts belonging together.<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
Qlevel = 256;<br />
[maps,images]=singlesrm(double(image),Qlevel);<br />
</code></pre><br />
</div><br />
</html><br />
<br />
Finally, if applied to our test-image, regions are created and homogenoues regions form:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_srmed.png|title=regions created with SRM clustering|width=700px}}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_SEgment_button.png|right|150px]]<br />
<br />
== Segmentation ==<br />
<span class="anchor" id="segment"></span><br />
<br />
In the segmentation stage all background regions are removed. This task is quite crucial. If one removes too few, the final stage of finding pathogens might get irritated.<br />
On the other hand, if one removes too many regions, positive hits might get removed early before detection. This surely must be avoided.<br />
<br />
We opted for a simple thresholding step because it showed that while being easy, it is an effective weapon against the uniform background. In fact, the good image quality we wanted to reach with our device allows now less sophisticated methods.<br />
Also the less computational intensive the steps are, the better they might even run directly on the Raspberry Pi in our device!<br />
<br />
The HSV thresholding is performed on each component seperately. For more information on the HSV color space we refer to [http://en.wikipedia.org/wiki/HSL_and_HSV Wikipedia]. The first component is the hue which we select to be inbetween $0.462$ and $0.520$ to select any blue-greenish color. We will not see bright green due to the filter selection in our device.<br />
The saturation value must be high, between $0.99$ and $1.0$.<br />
Moreover, the value component of the HSV image has to lie between $0.25$ and $0.32$, which assumes a relatively dark color.<br />
<br />
Indeed, these values are not problem specific, but specific for each setup and therefore have to be determined empirically.<br />
<br />
The remainder of this stage creates a mask of pixels that fulfill the conditions.<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
% Auto-generated by colorThresholder app on 15-Oct-2014<br />
%-------------------------------------------------------<br />
function [maskedRGBImage] = createMask(srmimg)<br />
RGB = srmimg;<br />
<br />
% Convert RGB image to chosen color space<br />
I = rgb2hsv(RGB);<br />
<br />
% Define thresholds for channel 1 based on histogram settings<br />
channel1Min = 0.462;<br />
channel1Max = 0.520;<br />
<br />
% Define thresholds for channel 2 based on histogram settings<br />
channel2Min = 0.99;<br />
channel2Max = 1.000;<br />
<br />
% Define thresholds for channel 3 based on histogram settings<br />
channel3Min = 0.25;<br />
channel3Max = 0.32;<br />
<br />
% Create mask based on chosen histogram thresholds<br />
BW = (I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...<br />
(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...<br />
(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);<br />
<br />
% Initialize output masked image based on input image.<br />
maskedRGBImage = RGB;<br />
<br />
% Set background pixels where BW is false to zero.<br />
maskedRGBImage(repmat(~BW,[1 1 3])) = 0;<br />
<br />
end<br />
</code></pre><br />
</div><br />
</html><br />
<br />
If you apply this HSV masking code to the SRMed test image, the following is created:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_masked.png|title=masked image|width=700px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Classify_button.png|right|150px]]<br />
<br />
== Classification ==<br />
<span class="anchor" id="classification"></span><br />
<br />
=== Smoothness Index ===<br />
<br />
For position prediction in virtual environments, jitter or noise in the output signal is not wanted though often present.<br />
Since discovering smooth areas is a similar problem to jitter detection, a simple method for determining jitter can be used to measure non-jitter, smoothness (Joppich, Rausch and Kuhlen, 2013).<br />
It is assumed that jitter-free areas of a position signal do not differ in velocity.<br />
<br />
Smooth areas do not differ in intensity, and therefore only low changes in velocity (intensity change) can be recorded.<br />
For the reduction of noise, this operation is performed on the smoothed input image.<br />
Then the smoothness $s$ of a pixel $p$ in its k-neighbourhood $\mathcal{N}_k$ can be determined as:<br />
\begin{equation}<br />
s(p) = \sum\limits_{p' \in \mathcal{N}_k} \nabla(p') / \arg\max\limits_{p} s(p)<br />
\end{equation}<br />
<br />
Using thresholding, $TS_l \leq s(p) \leq TS_u \wedge TI_l \leq I \leq TI_u$, different areas, such as background or pathogen, can be selected.<br />
<br />
For the empirical choice of thresholds, it can be argued that these are tailored to the specific case.<br />
While this surely is true to a certain extent, the here presented method has been successfully tested on images from a completely different domain, and no changes to the thresholds have been made to make it work.<br />
A proper theoretical evaluation is emphasized, however, is probably not the aim of the iGEM competition.<br />
<br />
Finally, selecting for the red region, this delivers the location of possible pathogens.<br />
Since the size of the agar chips is variable but fixed a quantitative analysis can be performed by counting pixels for instance.<br />
<br />
=== Empirical Evaluation ===<br />
<br />
Using our MATLAB code we found the lower threshold for the smoothness index to be $TS_l = 0.85$ and the upper threshold $TS_u = \infty$.<br />
Similarly, for $TI_l = 235$ and $TI_u = \infty$.<br />
<br />
Using these settings, we can find a response already in images taken after 42&nbsp;minutes.<br />
<br />
Ideally, one would rate the quality of the image segmentation using some ground truth, such as manual delineations. This still has to be done for our method.<br />
However, from visual observations, our method is showing promising results.<br />
<br />
* image of smoothness index<br />
<br />
=== Automatic Classification ===<br />
<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
function [mask, seg] = automaticseeds(im)<br />
<br />
imc = im;<br />
<br />
%% to grayscale and filtering<br />
Z = double(rgb2gray(im));<br />
Z = 255 * Z / max(max(Z));<br />
<br />
filtertype = 'disk';<br />
Z = filter2(fspecial(filtertype), Z);<br />
Z = filter2(fspecial(filtertype), filter2(fspecial(filtertype), Z));<br />
Z = 255 * Z / max(max(Z)); <br />
<br />
%% calculating similarity score/smoothness index<br />
k=4;<br />
sSI = similarity(Z,k);<br />
sSI = sSI / max(max(sSI)); <br />
<br />
%% classify<br />
pathogene = ((sSI > 0.85) == 1) & ((Z > 235) == 1); <br />
<br />
mask = ones( size(imc) );<br />
seg = zeros( size(imc) );<br />
<br />
<br />
%% output<br />
for i=1:size(im,1)<br />
for j=1:size(im,2)<br />
<br />
if (pathogene(i,j) == 1)<br />
seg(i,j,1:3) = [255 0 0];<br />
mask(i, j, 1:3) = [0 0 0];<br />
end<br />
end<br />
end<br />
end<br />
</code></pre><br />
</div><br />
</html><br />
<br />
This code actually creates two intermediate images from which the similarity index is calculated.<br />
First the smoothed (disk-filter) input image is created and stored:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_smoothed.png|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
Only white regions are candidate regions.<br />
After smoothing, the similarity index is calculated. As expected, edges are detected and limit the area from which the target region can be selected.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_smiliarity.png|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
Finally the selected pathogen region is selected by the white area in the following picture:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_mask.png|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
Combined with the input image, the final segmentation is received:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_final.png|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Achievements ==<br />
<span class="anchor" id="measurartyachievements"></span><br />
<br />
''Measurarty'' is the image analysis logic behind our project.<br />
It is comprised of simple constructs put together into a pipeline, that is clearly laid out, easily maintainable and - if needed - easily adaptable.<br />
For example, changing from green to red fluorescence, only means to change the ''createMask'' function to select another target area.<br />
<br />
Overall the results look convincing. We have not yet performed a comparison to a manual delineation, however, by eye the results look promising and have a low error.<br />
<br />
Talking about computational complexity, the MATLAB code of course performs better than our own C++ implementation, which must be regarded as a proof-of-principle.<br />
<br />
Space-wise, the code depends heavily on the image size $O( x \cdot y)$ (width $x$, height $y$, which also limits the number of edges in SRM between regions, as each pixel is one region to start with. However, it cannot take less memory, as the image is stored in an uncompressed format.<br />
<br />
On the computational side, the thresholding, image conversion and gradient steps are linear in the number of pixels, and are thus in $O(x \cdot y)$.<br />
Unfortunately, the summation of the gradient for the smoothness index adds a heavy factor to it (k-neighbourhood for smoothness index).<br />
Due to the merging step in our C++-SRM algorithm implementation, our code has to do $O(x^2 \cdot y^2)$ comparisons, which then finally results in a runtime complexity of $O( x^2 \cdot y^2)$.<br />
<br />
*include image here<br />
<br />
From the above figure it can also be seen that the detected amount of pathogenic-area correlates with time after induction.<br />
The lag-phase can be explained first by the lag-phase of the cells, which first need to generate a response to the pathogen, and on the other hand, by too low fluorescence which is not detectable.<br />
The pixel count also meets the expectation when looking at the sample files by eye.<br />
<br />
It can be concluded that the ''Measurarty'' pipeline defines a robustly working chip-analysis algorithm which can detect pathogens from images supplied by ''WatsOn''.<br />
Therefore, this algorithm closes the gap between our biology, detection hardware and the user who wants easy-to-interpret results.<br />
<br />
For future prospects, it would be interesting to do a proper performance analysis on our code, to find hotspots and optimize the code. Many ''for''-loops leave plenty of room for vectorization and loop-unrolling. Parallelization, specifically with respect to embedded hardware such as the Raspberry Pi or Odroid U3, is limited to the extend that the overhead created would probably eliminate the improvements.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Source Code ==<br />
<span class="anchor" id="source"></span><br />
<br />
''Measuarty'' is the image analysis logic behind our project. It has been prototyped and developed in [http://www.mathworks.de/academia/student-competitions/igem/ MATLAB], and only later been ported into our ''WatsOn'' GUI.<br />
<br />
We are happy to provide you with a zip-ped download of our MATLAB code here, as well as on the iGEM softwarerepository on [https://github.com/orgs/igemsoftware/teams/aachen2014 github].<br />
<br />
* MATLAB code<br />
* link [https://github.com/orgs/igemsoftware/teams/aachen2014 github]<br />
<br />
For the C++ conversion please see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware our ''WatsOn'' Software] section.<br />
<br />
=== Using the MATLAB Code ===<br />
<br />
In general, please follow the included ''README.MD'' file. Our package comes with a set of test files from one of our experiments.<br />
After installing the Statistical Region Merging code (see readme), you can simply run ''igem_srm_demo.m''. Select your current folder, and MATLAB will automatically segment and classify the included jpg-images.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
<span class="anchor" id="measurartyrefs"></span><br />
<br />
* Boltz, S. (2009, October 20). Image segmentation using statistical region merging - File Exchange - MATLAB Central. Image segmentation using statistical region merging. Retrieved December 12, 2013, from http://www.mathworks.com/matlabcentral/fileexchange/25619-image-segmentation-using-statistical-region-merging<br />
<br />
* Joppich, M., Rausch, D., & Kuhlen, T. (2013). Adaptive human motion prediction using multiple model approaches.. Virtuelle und erweiterte Realität (p. 169–180). 10. Workshop der GI-Fachgruppe VR/AR: Shaker.<br />
<br />
* Nock, R., & Nielsen, F. (2004). Statistical region merging. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26(11), 1452-1458.<br />
<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Software/MeasurartyTeam:Aachen/Notebook/Software/Measurarty2014-10-18T00:12:00Z<p>Ansgar: /* Statistical Region Merging (SRM) */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
<html><br />
<link rel="stylesheet" href="https://2014.igem.org/Team:Aachen/Scripts/highlight.pack.default.css?action=raw&ctype=text/css"><br />
<script src="https://2014.igem.org/Team:Aachen/Scripts/highlight.pack.js?action=raw&ctype=text/javascript"></script><br />
<script>hljs.initHighlightingOnLoad();</script><br />
</html><br />
<br />
= ''Measurarty'' =<br />
<br />
''Measurarty'' is the evil player in the game of ''Cellock Holmes'' and ''WatsOn''.<br />
''Measurarty'' is the pathogen detection logic behind our project.<br />
Using our ''Measurarty'' algorithm, we want to automatically detect pathogens from the chip photos delivered by WatsOn, without human interaction.<br />
Besides reducing the risk of human errors, this makes our device usable by almost everyone.<br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#intro" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Intro</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/1b/Aachen_Measurarty_Intro_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#SRM" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">SRM!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/2d/Aachen_Puzzels_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#segment" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Segment!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/e1/Aachen_SEgment_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#classification" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Classify!</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/f/f9/Aachen_Classify_button.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="width: 156px;margin-left: 8px;margin-right: 8px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty#measurartyachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Measurarty_Intro_button.png|right|150px]]<br />
<br />
== ''Measurarty'' - An Introduction ==<br />
<span class="anchor" id="intro"></span><br />
<br />
Our [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware device control software] is able to take images of incubated chips inside WatsOn. Yet, that does not bring the user closer to the answer of the question:<br />
<br />
<center>'''What's on the chip?'''</center><br />
<br />
In fact, answering this question seems trivial for a human: Just check whether a colony grown has grown on the chip and you're done. This task is even easier with our chip system, because these show fluorescence wherever a pathogen has been detected.<br />
<br />
But is this an easy task for a computer? Actually not. The task of automatic detection is tried by several disciplines in computer science, from pattern recognition over machine learning to by medical imaging chairs.<br />
<br />
Here, we would like to present a pipeline for this task that makes use of '''easy segmentation and classification algorithms'''.<br />
First, ''Measurarty'' segments the target image using '''Statistical Region Merging (SRM)''' in order to find regions of similar properties. After this step, we can segment the picture using '''histogram thresholding''' in [http://en.wikipedia.org/wiki/HSL_and_HSV HSV color space] to find candidate regions for pathogens.<br />
Finally, a classification algorithm can detect the pathogen on our chips.<br />
<br />
To demonstrate the algorithm, the following sample image will be discussed.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_test.jpg|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Puzzels_button.png|right|150px]]<br />
<br />
== Statistical Region Merging (SRM) ==<br />
<span class="anchor" id="SRM"></span><br />
<br />
Before briefly introducing Statistical Region Merging (SRM), we would like to explain why we need this step, and why this algorithm is an ideal choice.<br />
<br />
Compared to other clustering algorithms, SRM is quite leight weight, yet delivers ''deterministic'' results and is not dependent on a certain seed (like ''k''-means, for example).<br />
<br />
On the other hand, it can create as many refinements as one wants and is thus flexible enough for the our purposes. Finally there's already been knowledge about this algorithm in the group.<br />
<br />
Statistical Region Merging (SRM) (Nook and Nielson, 2004) is a clustering technique also used directly for image segmentation.<br />
A region $R$ is a set of pixels and the cardinality $\lvert R \rvert$ determines how many pixels are in one region.<br />
Starting with a sorted set of connected regions (w. r. t. some distance function $f$), two regions $R$ and $R'$ are merged if the qualification criteria $\vert \overline{R'}-\overline{R} \vert \leq \sqrt{b^2(R)+b^2(R')}$ with $b(R) = g \cdot \sqrt{\frac{\ln \frac{\mathcal{R}_{\lvert R \rvert}}{\delta}}{2Q\lvert R \rvert}}$ is fulfilled.<br />
Therefore, $\mathcal{R}_{\lvert R \rvert}$ is the set of regions with $\lvert R \rvert$ pixels.<br />
Typically $Q$ is chosen as $Q \in \lbrack 256, 1\rbrack$ and $\delta = \frac{1}{\lvert I \rvert^2}$.<br />
<br />
The $Q$ parameter mainly influences the merging process. For an example, see the figure ''SRM Regions'' below. The lower the chosen value for $Q$, more coarse the regions become. Using a union-find structure, the segmentation does not need to be recalculated for each $Q$ level. For the step from $q$ to $\frac{q}{2}$, just the qualification criteria needs to be applied to the regions from the $q$ result. A MATLAB implementation is also available (Boltz, 2009).<br />
<br />
{{Team:Aachen/FigureDual|Aachen_srm_regions_3.PNG|Aachen_srm_regions_2.PNG|title1=SRM regions in random colors|title2=SRM regions (average color)|subtitle1=Different regions from an SRM run starting at $Q=256$ (top left) and going to $Q=1$ (bottom right). Each region is assigned a random color.|subtitle2=Different regions from an SRM run starting at $Q=256$ (top left) and going to $Q=1$ (bottom right). Each region is assigned the average color of that region.|width=425px}} <br />
<br />
=== SRM Clustering ===<br />
<br />
In our project, we used Statistical Region Merging for clustering. In contrast to other algorithms, such as ''k-means'', this approach is highly deterministic.<br />
For our purposes we only have one SRM run for $Q=256$.<br />
<br />
In MATLAB, we use the previously mentioned code from MATLAB Fileexchange (Boltz, 2009).<br />
For our Qt-based GUI we implemented the SRM method ourselves.<br />
<br />
The SRM clustering reduces the amount of different colors in the image and hence eases the recognition of parts belonging together.<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
Qlevel = 256;<br />
[maps,images]=singlesrm(double(image),Qlevel);<br />
</code></pre><br />
</div><br />
</html><br />
<br />
Finally, if applied to our test-image, regions are created and homogenoues regions form:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_srmed.png|title=regions created with SRM clustering|width=700px}}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_SEgment_button.png|right|150px]]<br />
<br />
== Segmentation ==<br />
<span class="anchor" id="segment"></span><br />
<br />
In the segmentation stage all background regions are removed. This task is quite crucial. If one removes too few, the final stage of finding pathogens might get irritated.<br />
On the other hand, if one removes too many regions, positive hits might get removed early before detection. This surely must be avoided.<br />
<br />
We opted for a simple thresholding step because it showed that while being easy, it is an effective weapon against the uniform background. In fact, the good image quality we wanted to reach with our device allows now less sophisticated methods.<br />
Also the less computational intensive the steps are, the better they might even run directly on the Raspberry Pi in our device!<br />
<br />
The HSV thresholding is performed on each component seperately. For more information on the HSV color space we refer to [http://en.wikipedia.org/wiki/HSL_and_HSV Wikipedia]. The first component is the hue which we select to be inbetween $0.462$ and $0.520$ to select any blue-greenish color. We will not see bright green due to the filter selection in our device.<br />
The saturation value must be high, between $0.99$ and $1.0$.<br />
Moreover, the value component of the HSV image has to lie between $0.25$ and $0.32$, which assumes a relatively dark color.<br />
<br />
Indeed, these values are not problem specific, but specific for each setup and therefore have to be determined empirically.<br />
<br />
The remainder of this stage creates a mask of pixels that fulfill the conditions.<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
% Auto-generated by colorThresholder app on 15-Oct-2014<br />
%-------------------------------------------------------<br />
function [maskedRGBImage] = createMask(srmimg)<br />
RGB = srmimg;<br />
<br />
% Convert RGB image to chosen color space<br />
I = rgb2hsv(RGB);<br />
<br />
% Define thresholds for channel 1 based on histogram settings<br />
channel1Min = 0.462;<br />
channel1Max = 0.520;<br />
<br />
% Define thresholds for channel 2 based on histogram settings<br />
channel2Min = 0.99;<br />
channel2Max = 1.000;<br />
<br />
% Define thresholds for channel 3 based on histogram settings<br />
channel3Min = 0.25;<br />
channel3Max = 0.32;<br />
<br />
% Create mask based on chosen histogram thresholds<br />
BW = (I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...<br />
(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...<br />
(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);<br />
<br />
% Initialize output masked image based on input image.<br />
maskedRGBImage = RGB;<br />
<br />
% Set background pixels where BW is false to zero.<br />
maskedRGBImage(repmat(~BW,[1 1 3])) = 0;<br />
<br />
end<br />
</code></pre><br />
</div><br />
</html><br />
<br />
If you apply this HSV masking code to the SRMed test image, the following is created:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_masked.png|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_Classify_button.png|right|150px]]<br />
<br />
== Classification ==<br />
<span class="anchor" id="classification"></span><br />
<br />
=== Smoothness Index ===<br />
<br />
For position prediction in virtual environments, jitter or noise in the output signal is not wanted though often present.<br />
Since discovering smooth areas is a similar problem to jitter detection, a simple method for determining jitter can be used to measure non-jitter, smoothness (Joppich, Rausch and Kuhlen, 2013).<br />
It is assumed that jitter-free areas of a position signal do not differ in velocity.<br />
<br />
Smooth areas do not differ in intensity, and therefore only low changes in velocity (intensity change) can be recorded.<br />
For the reduction of noise, this operation is performed on the smoothed input image.<br />
Then the smoothness $s$ of a pixel $p$ in its k-neighbourhood $\mathcal{N}_k$ can be determined as:<br />
\begin{equation}<br />
s(p) = \sum\limits_{p' \in \mathcal{N}_k} \nabla(p') / \arg\max\limits_{p} s(p)<br />
\end{equation}<br />
<br />
Using thresholding, $TS_l \leq s(p) \leq TS_u \wedge TI_l \leq I \leq TI_u$, different areas, such as background or pathogen, can be selected.<br />
<br />
For the empirical choice of thresholds, it can be argued that these are tailored to the specific case.<br />
While this surely is true to a certain extent, the here presented method has been successfully tested on images from a completely different domain, and no changes to the thresholds have been made to make it work.<br />
A proper theoretical evaluation is emphasized, however, is probably not the aim of the iGEM competition.<br />
<br />
Finally, selecting for the red region, this delivers the location of possible pathogens.<br />
Since the size of the agar chips is variable but fixed a quantitative analysis can be performed by counting pixels for instance.<br />
<br />
=== Empirical Evaluation ===<br />
<br />
Using our MATLAB code we found the lower threshold for the smoothness index to be $TS_l = 0.85$ and the upper threshold $TS_u = \infty$.<br />
Similarly, for $TI_l = 235$ and $TI_u = \infty$.<br />
<br />
Using these settings, we can find a response already in images taken after 42&nbsp;minutes.<br />
<br />
Ideally, one would rate the quality of the image segmentation using some ground truth, such as manual delineations. This still has to be done for our method.<br />
However, from visual observations, our method is showing promising results.<br />
<br />
* image of smoothness index<br />
<br />
=== Automatic Classification ===<br />
<br />
<br />
<html><br />
<div class="codediv"><br />
<pre><code class="matlab"><br />
function [mask, seg] = automaticseeds(im)<br />
<br />
imc = im;<br />
<br />
%% to grayscale and filtering<br />
Z = double(rgb2gray(im));<br />
Z = 255 * Z / max(max(Z));<br />
<br />
filtertype = 'disk';<br />
Z = filter2(fspecial(filtertype), Z);<br />
Z = filter2(fspecial(filtertype), filter2(fspecial(filtertype), Z));<br />
Z = 255 * Z / max(max(Z)); <br />
<br />
%% calculating similarity score/smoothness index<br />
k=4;<br />
sSI = similarity(Z,k);<br />
sSI = sSI / max(max(sSI)); <br />
<br />
%% classify<br />
pathogene = ((sSI > 0.85) == 1) & ((Z > 235) == 1); <br />
<br />
mask = ones( size(imc) );<br />
seg = zeros( size(imc) );<br />
<br />
<br />
%% output<br />
for i=1:size(im,1)<br />
for j=1:size(im,2)<br />
<br />
if (pathogene(i,j) == 1)<br />
seg(i,j,1:3) = [255 0 0];<br />
mask(i, j, 1:3) = [0 0 0];<br />
end<br />
end<br />
end<br />
end<br />
</code></pre><br />
</div><br />
</html><br />
<br />
This code actually creates two intermediate images from which the similarity index is calculated.<br />
First the smoothed (disk-filter) input image is created and stored:<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_smoothed.png|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
<br />
Only white regions are candidate regions.<br />
After smoothing, the similarity index is calculated. As expected, edges are detected and limit the area from which the target region can be selected.<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen_meas_smiliarity.png|title=Image taken from WatsOn to be analyzed by Measurarty algorithm|width=700px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="measurartyachievements"></span><br />
<br />
''Measurarty'' is the image analysis logic behind our project.<br />
It is comprised of simple constructs put together into a pipeline, that is clearly laid out, easily maintainable and - if needed - easily adaptable.<br />
For example, changing from green to red fluorescence, only means to change the ''createMask'' function to select another target area.<br />
<br />
Overall the results look convincing. We have not yet performed a comparison to a manual delineation, however, by eye the results look promising and have a low error.<br />
<br />
Talking about computational complexity, the MATLAB code of course performs better than our own C++ implementation, which must be regarded as a proof-of-principle.<br />
<br />
Space-wise, the code depends heavily on the image size $O( x \cdot y)$ (width $x$, height $y$, which also limits the number of edges in SRM between regions, as each pixel is one region to start with. However, it cannot take less memory, as the image is stored in an uncompressed format.<br />
<br />
On the computational side, the thresholding, image conversion and gradient steps are linear in the number of pixels, and are thus in $O(x \cdot y)$.<br />
Unfortunately, the summation of the gradient for the smoothness index adds a heavy factor to it (k-neighbourhood for smoothness index).<br />
Due to the merging step in our C++-SRM algorithm implementation, our code has to do $O(x^2 \cdot y^2)$ comparisons, which then finally results in a runtime complexity of $O( x^2 \cdot y^2)$.<br />
<br />
*include image here<br />
<br />
From the above figure it can also be seen that the detected amount of pathogenic-area correlates with time after induction.<br />
The lag-phase can be explained first by the lag-phase of the cells, which first need to generate a response to the pathogen, and on the other hand, by too low fluorescence which is not detectable.<br />
The pixel count also meets the expectation when looking at the sample files by eye.<br />
<br />
It can be concluded that the ''Measurarty'' pipeline defines a robustly working chip-analysis algorithm which can detect pathogens from images supplied by ''WatsOn''.<br />
Therefore, this algorithm closes the gap between our biology, detection hardware and the user who wants easy-to-interpret results.<br />
<br />
For future prospects, it would be interesting to do a proper performance analysis on our code, to find hotspots and optimize the code. Many ''for''-loops leave plenty of room for vectorization and loop-unrolling. Parallelization, specifically with respect to embedded hardware such as the Raspberry Pi or Odroid U3, is limited to the extend that the overhead created would probably eliminate the improvements.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Source Code ==<br />
<span class="anchor" id="source"></span><br />
<br />
''Measuarty'' is the image analysis logic behind our project. It has been prototyped and developed in [http://www.mathworks.de/academia/student-competitions/igem/ MATLAB], and only later been ported into our ''WatsOn'' GUI.<br />
<br />
We are happy to provide you with a zip-ped download of our MATLAB code here, as well as on the iGEM softwarerepository on [https://github.com/orgs/igemsoftware/teams/aachen2014 github].<br />
<br />
* MATLAB code<br />
* link [https://github.com/orgs/igemsoftware/teams/aachen2014 github]<br />
<br />
For the C++ conversion please see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware our ''WatsOn'' Software] section.<br />
<br />
=== Using the MATLAB Code ===<br />
<br />
In general, please follow the included ''README.MD'' file. Our package comes with a set of test files from one of our experiments.<br />
After installing the Statistical Region Merging code (see readme), you can simply run ''igem_srm_demo.m''. Select your current folder, and MATLAB will automatically segment and classify the included jpg-images.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
<span class="anchor" id="measurartyrefs"></span><br />
<br />
* Boltz, S. (2009, October 20). Image segmentation using statistical region merging - File Exchange - MATLAB Central. Image segmentation using statistical region merging. Retrieved December 12, 2013, from http://www.mathworks.com/matlabcentral/fileexchange/25619-image-segmentation-using-statistical-region-merging<br />
<br />
* Joppich, M., Rausch, D., & Kuhlen, T. (2013). Adaptive human motion prediction using multiple model approaches.. Virtuelle und erweiterte Realität (p. 169–180). 10. Workshop der GI-Fachgruppe VR/AR: Shaker.<br />
<br />
* Nock, R., & Nielsen, F. (2004). Statistical region merging. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26(11), 1452-1458.<br />
<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/File:Aachen_WatsOn_GUI.zipFile:Aachen WatsOn GUI.zip2014-10-17T23:43:08Z<p>Ansgar: uploaded a new version of &quot;File:Aachen WatsOn GUI.zip&quot;</p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T23:41:54Z<p>Ansgar: /* GUI (Graphical User Interface) */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of electronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://static.igem.org/mediawiki/2014/9/90/Aachen_WatsOn_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://static.igem.org/mediawiki/2014/7/77/Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://static.igem.org/mediawiki/2014/f/fd/Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1|| black spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/File:Aachen_WatsOn_GUI.zipFile:Aachen WatsOn GUI.zip2014-10-17T23:41:14Z<p>Ansgar: </p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/File:Aachen_WatsOn_Igem_GUI.zipFile:Aachen WatsOn Igem GUI.zip2014-10-17T23:40:06Z<p>Ansgar: uploaded a new version of &quot;File:Aachen WatsOn Igem GUI.zip&quot;</p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/File:Aachen_WatsOn_Igem_GUI.zipFile:Aachen WatsOn Igem GUI.zip2014-10-17T23:37:31Z<p>Ansgar: uploaded a new version of &quot;File:Aachen WatsOn Igem GUI.zip&quot;</p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T23:02:31Z<p>Ansgar: /* Hardware */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of electronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://static.igem.org/mediawiki/2014/1/18/Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://static.igem.org/mediawiki/2014/7/77/Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://static.igem.org/mediawiki/2014/f/fd/Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1|| black spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T23:02:07Z<p>Ansgar: /* Hardware */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://static.igem.org/mediawiki/2014/1/18/Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://static.igem.org/mediawiki/2014/7/77/Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://static.igem.org/mediawiki/2014/f/fd/Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1|| black spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T23:01:44Z<p>Ansgar: /* Hardware */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://static.igem.org/mediawiki/2014/1/18/Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://static.igem.org/mediawiki/2014/7/77/Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://static.igem.org/mediawiki/2014/f/fd/Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1|| black spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T23:00:55Z<p>Ansgar: /* GUI (Graphical User Interface) */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://static.igem.org/mediawiki/2014/1/18/Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://static.igem.org/mediawiki/2014/7/77/Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://static.igem.org/mediawiki/2014/f/fd/Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1|| black spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T23:00:21Z<p>Ansgar: /* Backend */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://2014.igem.org/File:Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://static.igem.org/mediawiki/2014/7/77/Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://static.igem.org/mediawiki/2014/f/fd/Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1|| black spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:59:24Z<p>Ansgar: /* Technical Components */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://2014.igem.org/File:Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://static.igem.org/mediawiki/2014/f/fd/Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1|| black spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:58:10Z<p>Ansgar: /* Technical Components */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://2014.igem.org/File:Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1|| black spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:57:36Z<p>Ansgar: /* Technical Components */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://2014.igem.org/File:Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:54:53Z<p>Ansgar: /* GUI (Graphical User Interface) */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
''Download the GUI sourcecode:'' [https://2014.igem.org/File:Aachen_WatsOn_Igem_GUI.zip Download]<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/File:Aachen_WatsOn_Igem_GUI.zipFile:Aachen WatsOn Igem GUI.zip2014-10-17T22:52:56Z<p>Ansgar: </p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:40:16Z<p>Ansgar: /* Construction Manual */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. For security reasons it has been placed into an aluminium casing. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:23:15Z<p>Ansgar: /* Hardware */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The [http://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The [http://www.arduino.cc/ Arduino] board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. The placed it into a aluminium casing for security reasons. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:21:50Z<p>Ansgar: /* Hardware */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Interaction of eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The Raspberry Pi is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The Arduino board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. The placed it into a aluminium casing for security reasons. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:20:07Z<p>Ansgar: /* Troubleshooting & Useful Links */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The Raspberry Pi is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The Arduino board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. The placed it into a aluminium casing for security reasons. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
* General<br />
** [http://elinux.org/R-Pi_Troubleshooting Raspberry Pi Troubleshooting]<br />
** [http://raspberrywebserver.com/linux-basics/ Linux basics]<br />
** [http://www.raspberrypi.org/ Raspberry Pi Foundation]<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T22:08:07Z<p>Ansgar: /* Troubleshooting & Useful Links */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The Raspberry Pi is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The Arduino board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. The placed it into a aluminium casing for security reasons. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Raspberry Pi Camera Module<br />
** http://elinux.org/Rpi_Camera_Module<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T21:59:38Z<p>Ansgar: /* Raspberry Pi - Setup */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The Raspberry Pi is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The Arduino board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
The scheme below shows the different components of the software:<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
Features of the GUI include:<br />
* Change settings [1]:<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
* Take image/s [2]: <br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image [3]. Previous images can be selected with the arrow buttons.<br />
* Analyze image [4]:<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Subsequently, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. The placed it into a aluminium casing for security reasons. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<span class="anchor" id="fn1"></span><br />
<sup>1</sup>By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* To check if the camera works, enter "raspistill -t 5000 -o camera_test.jpg" in the terminal. An overlay shows a 5 second preview from the camera on the screen, then an image is taken and saved as "camera_test.jpg" in the current directory.<br />
* An issue concerning the Raspberry Pi camera is that it supports just a fixed-focus which is per default set to infinity. This can be solved by removing the glue dots fixing the lense und unscrewing it until the required distance is focused.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/ODFTeam:Aachen/Notebook/Engineering/ODF2014-10-17T21:21:00Z<p>Ansgar: /* Technical Components */</p>
<hr />
<div>__NOTOC__<br />
{{Team:Aachen/Header}}<br />
{{Team:Aachen/Stylesheet}}<br />
= OD/F Device =<br />
<br />
On this page we present the technical details of our OD/F device. You can skip to specific chapters by clicking on the panels below:<br />
<center><br />
<html><ul class="team-grid" style="width:1064px;"><br />
<!-- Overview --><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#dev" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br><br />
<b>General Considerations</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/0f/Aachen_14-10-10_ODF_Button_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#od" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>OD Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/04/Aachen_Cuvette_button_v1_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#f" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>F Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/55/Aachen_17-10-14_Glowing_cuvette-ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#diy" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-10_ODF_Button_ipo.png|right|150px]]<br />
<br />
= General Considerations =<br />
<span class="anchor" id="dev"></span><br />
<br />
Building the OD/F device has been an interesting task. While this device has been developed mainly by the IT division of our team, we got an immense support from the biologists suffering from color-blindness, yet eager to help selecting the best color filters for the LEDs.<br />
<br />
The measuring principle and guidelines for this project have already been presented in the [https://2014.igem.org/Team:Aachen/OD/F_device project] section.<br />
Here, details about selecting filters, code and a construction manual are presented.<br />
<br />
=== Cuvette Holder ===<br />
The essential part of this device is the '''cuvette holder'''. In short, we had to overcome a dilemma created by the need for an optimal height for the sensor:<br />
* A too low sensor position bears problems with sedimentation as well as light diffraction from the bottom of the cuvette.<br />
* The sensor has to be as close as possible to the bottom so that enough light shines through for the fluorescence measurement.<br />
<br />
As a compromise, we place the sensor at a height of 0.75&nbsp;cm. It is comparable to one of the standard heights (0.2&nbsp;cm, 0.8&nbsp;cm, 1.2&nbsp;cm) of OD meters. It is important to note that our device works with filling volumens of just 1&nbsp;mL, which in fact comes close to reality in the lab.<br />
<br />
The final cuvette holder design is rendered from a [https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=raw stl-file] shown below:<br />
<br />
<html><br />
<center> <br />
<iframe src="https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=render<br />
" width=500px height=500px frameBorder="0"></iframe><br />
<br/><br />
<b>Cuvette Holder devloped for our OD/F device.</b><br />
</center><br />
</html><br />
<br />
=== Light Filters ===<br />
'''Finding the right and optimal filters is a tough challenge'''.<br />
The main goal throughout our project has been to choose easily available parts which are also inexpensive. Thus choosing Schott glasses as filters could not be considered. Alternatively, filters used for illumination of theaters were found to be an ideal solution.<br />
<br />
We tested serveral filters and the optimal configuration of filters used is listed below.<br />
<br />
{| class="wikitable"<br />
! Mode<br />
! Fluorescence Protein<br />
! Filter Name<br />
! Filter<br />
! Peak Excitation<br />
! Peak Emission<br />
|-<br />
| Fluorescence<br />
| [http://parts.igem.org/Part:BBa_E0040 GFPmut3b]<br />
| [http://leefilters.com/lighting/colour-details.html#736 Twickenham Green]<br />
| [[File:Aachen_Filter_019.png|200px]]<br />
| 501nm<br />
| 511nm<br />
|-<br />
| Optical Density<br />
| --<br />
| [http://leefilters.com/lighting/colour-details.html#019 Fire]<br />
| [[File:Aachen_Filter_019.png|200px]]<br />
| 600nm<br />
| 600nm<br />
|}<br />
<br />
The fluorescence protein [http://parts.igem.org/Part:BBa_E0040 GFPmut3b] has a peak excitation at 501&nbsp;nm and a peak emission at 511&nbsp;nm - too close together for our low-cost filters to block the excitation light but transmit the emitted light. Thus, we chose to excite at around 485&nbsp;nm reduce false positive results below 500&nbsp;nm. However, no adequate filter for these settings could be found.<br />
Eventually, using the dark greenish [http://leefilters.com/lighting/colour-details.html#736 Twickenham Green] filter only little amounts of light shorter than 500&nbsp;nm gets through, reducing any bias from excitation illumination significantly. Unfortunately, the transmission rate of this filter is quite bad, 20% only, for the target emission wavelength of 511&nbsp;nm.<br />
<br />
== Linearity of the Hardware Light Sensor ==<br />
<span class="anchor" id="lin"></span><br />
It is crucial that the selected hardware is mapping reality into the digital world of our $\mu$-Controller.<br />
In order to sense reality our setup uses a light to frequency sensor, [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf TSL235R-LF].<br />
The light to frequency sensor resembles the most to a photo transistor and thus is less sensible to temperature than a light dependant resistor.<br />
Additionally counting a frequency using interrupts seems to be easier and more accurate than using the analog to digital converter.<br />
<br />
Using a dilution series of purified [https://2011.igem.org/Team:Glasgow/LOV2 iLOV] we could determine the characteristic curve for the light sensor. Finally we can conclude that the sensor is linear as expected and shown in the [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf datasheet].<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Linearity iFG.PNG|title=Linearity of TSL235R-LF sensor|subtitle=Dilution series of GFP expressing ''E. coli'' showing linearity between fluorescence count and dilution. The linearity of the chosen sensor can be determined.|width=700px}}<br />
<br />
We are measuring optical density using our in-house developed cuvette holder.<br />
Particularly for optical density measurement, the amount of light shining through the sample is crucial.<br />
If there is too few light, there will be not enough light registered at the sensor, and the resolution of the measurement shrinks. This should be prevented.<br />
The chosen light to frequency sensor is reported to be very sensitive on the amount of light shining on it.<br />
There are reports of the sensor breaking when put into [https://www.sparkfun.com/products/9768 sunlight on a nice day], and not being sensitive at both high light or low light [http://kesslerarduino.wordpress.com/author/kevinmkessler/page/2/ conditions].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
[[File:Aachen_Cuvette_button_v1_ipo.png|right|150px]]<br />
<br />
= Evaluation of the Optical Density Measurement =<br />
<span class="anchor" id="od"></span><br />
<br />
=== From Transmittance to True Optical Density ===<br />
At very low levels, uncorrected photometric determinations of cell densities show a decreasing proportionaility to actual cell density.<br />
<br />
This can also be observed using our device.<br />
<br />
In general, photometric determination of bacterial concentrations depends primarily on light scattering, rather than light absorption. Therefore, often not absorption is measured, but transmittance. For this, the relationship between optical density (OD) and transmitted light $\frac{I_0}{I}$ exists as:<br />
<br />
$$ OD = \frac{I_0}{I} = \kappa \cdot c$$<br />
<br />
where $I_0$ is the intensity of incoming light and $I$ the amount of the light passing through.<br />
<br />
However, this equation is linear only in a certain range.<br />
While one can tackle this non-linearity by using dilutions of the culture, correcting the error systematically is another way to overcome this limitation.<br />
<br />
For our OD device we needed to correlate the transmittance measured by our sensor to an optical density anyway.<br />
Our team members from the deterministic sciences emphasized on the correction method, which was conducted according to Lawrence and Maier (2006):<br />
<br />
* The relative density ($RD$) of each sample in a dilution series is calculated using $\frac{min(dilution)}{dilution}$.<br />
* The uncorrected optical density is derived from the transmission T [%]: $OD = 2 - \log T$<br />
* Finally, the unit optical density is calculated as $\frac{OD}{TD}$.<br />
* The average of the stable unit optical densities is used to calculate the true optical density $ OD_{unit} \cdot RD $.<br />
This way, the correlation between transmission and true optical density can be computed.<br />
The derived function allows the conversion from transmission to optical density on our device and therefore calibrates our device.<br />
<br />
<br />
In our experiments, we find in accordance to Lawrence and Maier that the correction majorly depends on the technical equipment used, especially the LED, sensor and cuvettes.<br />
While this at first sight looks disappointing, it is also expected:<br />
Transmittance is the fraction of light not absorbed by some medium relative to the cell-free and clear medium.<br />
However, the transmittance is not only dependent on the amount of cells in the way of the light's beam, but also how much light shines through the cuvette in which fashion, and in which fraction is received by the sensor in which angles.<br />
<br />
Using the above formula we performed this experiment for ''Pseudomonas putida'' and ''Saccharomyces cerevisiae'' and asked team [https://2014.igem.org/Team:Aachen/Collaborations/Freiburg Freiburg] to perform the same experiment using mamallian cells.<br />
<br />
=== Experiments ===<br />
<br />
We performed several experiments during the development of the device.<br />
Finally, we can relate the measured transmittance to the true Optical Density (true OD), and further, we can relate the true OD to the true OD of the photospectrometer in our lab.<br />
By doing so, we can calibrate our device to meaningful values.<br />
<br />
We have done this according to the previous section for ''Pseudomonas putida'' and ''Saccharomyces cerevisiae''.<br />
<br />
The final function for calculating the OD from the transmission calculated by our device can be calculated as<br />
<br />
$$ OD(T) = f(T) \circ g(device) $$<br />
<br />
where $f$ transforms transforms transmittance $T$ to true optical density for our device, and $g$ transforms true optical density of our device into the true optical density of the photospectrometer. This way our device is calibrated according to the photospectrometer.<br />
<br />
==== ''Pseudomonas putida'' ====<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida iFG.PNG|title=True Optical Density to Transmittance plot for ''P. putida''|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer for ''P. putida''|subtitle=|width=700px}}<br />
</center><br />
<br />
==== ''Saccharomyces cerevisiae'' ====<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer iFG.PNG|title=True Optical Density to Transmittance plot for ''S. cerivisiae''|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer for ''S. cerivisiae''|subtitle=|width=700px}}<br />
</center><br />
<br />
From these plots, it can be seen that our device delivers robust and reproducible results for both procaryotes and eucaryotes.<br />
Also the function from transmittance to true OD follows a clear pattern, making its calculation possible on a low-end device like a microcontroller.<br />
<br />
It is interesting to observer that function $g$, mapping the true OD of our device to the true OD of the photospectrometer, are close together for both ''P. putida'' and ''S. cerivisae'', as seen by the regression coefficient.<br />
In fact, 3.416 and 3.461 are such close together, that the minor deviation could be just measuring inaccuracy.<br />
Therefore, we fix the regression coefficient for converting true OD of our device to true OD of the photospectrometer to an average of 3.432 .<br />
<br />
Additionally the function $f$ for mapping transmittance to true OD for our device is similar for all cell types, as seen in the following figure. Therefore the exponential regression curve for all cell types specifies this function.<br />
<br />
<center><br />
{{Team:Aachen/Figure|Aachen_ODallstrains1.png|title=Transmission of different cell types at OD-values from 0.001-1|subtitle=The transmittance data of NIH&nbsp;3T3 cells (mouse fibroblasts) align with the transmittance of ''P.&nbsp;putida'' and ''S.&nbsp;cerevisiae'' strains, even though the measured optical densities are lower by 1-2 orders of magnitude.|width=800px}}<br />
</center><br />
Finally, we have empirically determined our $OD(T)$ function by finding $f$ and $g$, such that we can convert true OD to the optical density of the photospectrometer.<br />
<br />
By this evaluation, we have shown that our self-build OD/F device can compete with commercial systems.<br />
It is easy to calibrate by just calculating the true optical density.<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_17-10-14_Glowing_cuvette-ipo.png|right|150px]]<br />
<br />
= Evaluation of the Fluorescence Measurement =<br />
<span class="anchor" id="f"></span><br />
<br />
For the evaluation of the fluorescence measurement, we performed a dilution series of a constitutively GFPmut3b expressing ''E. coli''.<br />
<br />
The below figure shows the absolute measurements for both the platereader and our OD/F device. The abrupt jump at 50% concentration can be explained by a second dilution step and is prevalent in both devices.<br />
It can be seen that the platereader show a much higher difference between the GFP and non-GFP cell culture at a higher standard deviation.<br />
Another interesting metric is the difference between the GFP and non-GFP, which can be seen as the normalized fluorescence measure.<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachn 15-10-14 F platereader ODF iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader (absolute values)|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant linearity.|width=700px}}<br />
</center><br />
<br />
If one compares the results there, as in the below figure with normalized fluorescence values, interesting observations can be made.<br />
First, both platereader and OD/F device show very similar results.<br />
The regression curves differ only in a linear factor.<br />
Most interestingly the general fit of the OD/F device to a linear function seems to be better than the platereader.<br />
Overall the linearity which has been observed earlier (in testing the general setup) could be verified.<br />
Therefore our do-it-yourself OD/F device can be used to determine fluorescence.<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 F platereader ODF2 iFG.PNG|title=Fluorescence Measurement comparison OD/F device and platereader using normalized fluorescence values|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant. A non-GFP expressing ''E. coli'' dilution has been used to normalize the GFP dilution series. A linear correlation can be seen.|width=700px}}<br />
</center><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How to Build Your Own Device =<br />
<span class="anchor" id="diy"></span><br />
== Technical Components ==<br />
<br />
While the casing and the cuvette holder are custom made, most of the parts are pre-made and can be readily bought. The previous section lists all needed parts.<br />
To get all these parts for creating your own OD/F device is easy using the internet. Thus all '''potential customers have a market access''' to the used components. <br />
<br />
Please find our custom parts for download below. Despite being custom parts, these are quite inenxpensive - so feel free to give our OD/F device a test! For printing the 3D model of our cuvette holder and laser cutting our case, we want to express many thanks to [http://hci.rwth-aachen.de/fablab Fablab Aachen].<span class="anchor" id="ref2"></span><br />
<br />
* cuvette holder [https://2014.igem.org/Template:Team:Aachen/cuvette.stl?action=raw STL file]<br />
* casing single device [https://2014.igem.org/File:Aachen_ODF_device_casing.svg.zip SVG file]<br />
* lid combined device [https://2014.igem.org/File:Aachen_Odf_device_combined_lid.svg.zip SVG file]<br />
* Arduino Code for single device [https://2014.igem.org/Template:Team:Aachen/arduino_single.ino?action=raw Sketchbook (.ino)]<br />
* Arduino Code for combined device [https://2014.igem.org/Template:Team:Aachen/arduino_combined.ino?action=raw Sketchbook (.ino)]<br />
<br />
You will need a special [http://www.exp-tech.de/images/product_images/description%20images/YWRobot/1602/LiquidCrystal_I2C1602V2.rar library] for the display, which can not be uploaded for legal reasons.<br />
<br />
<br />
<center><br />
'''All needed components their quantities and prices for creating your own OD/F device'''<br />
{| class="wikitable"<br />
! align="center" |'''OD/F device'''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|-<br />
! Quantity!!Component!! Costs [€] !! Costs [$] !! Final [€] !! Final [$] <br />
|-<br />
| 1||[http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600#.VDzwV9ysWBp Arduino UNO R3]||9.17||11.65||9.17||11.65 <br />
|-<br />
| 1||[http://www.mouser.de/ProductDetail/ams/TSL235R-LF/?qs=14HO7rLZPQsjmBHaoYCzkA%3D%3D TSL 235R]||2.47||3.14||2.47||3.14 <br />
|-<br />
| 1||[http://www.dx.com/p/16-x-2-character-lcd-display-module-with-blue-backlight-121356 Display 16x2]||2.58||3.28||2.58||3.28 <br />
|-<br />
| 1||[http://www.dx.com/p/lcd1602-adapter-board-w-iic-i2c-interface-black-works-with-official-arduino-boards-216865#.VDzxHNysWBp LCD Display to I2C]||1.57||1.99||1.57||1.99 <br />
|-<br />
| 1||[http://www.newark.com/multicomp/mcpas6b1m1ce3/switch-pushbutton-spst-400ma-125v/dp/12P7696?ost=1638329 Pushbutton]||2.90||3.69||2.90||3.69 <br />
|-<br />
| 1||[http://shop.leefiltersusa.com/Swatch-Book-Designers-Edition-SWB.htm filter leaflet]||1.57||2.00||1.57||2.00 <br />
|-<br />
| 20||[http://www.dx.com/p/diy-male-to-female-dupont-breadboard-jumper-wires-black-multi-color-40-pcs-10cm-339078#.VDzxSdysWBp jumper wire cables]||0.09||0.11||1.80||2.28 <br />
|-<br />
| 1||[http://www.dx.com/p/syb-170-mini-breadboard-for-diy-project-red-140101#.VDzyudysWBo small breadboard]||1.98||2.51||1.98||2.51 <br />
|-<br />
| 1||[http://www.dx.com/p/universal-ac-charger-w-dual-usb-output-for-iphone-ipad-ipod-white-us-plug-244893 power supply]||2.20||2.80||2.20||2.80<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
| 1||3&nbsp;mm acrylic glas (black)||7.98||10.14||7.98||10.14<br />
|-<br />
| 1||[http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-golden-10-piece-pack-143913 Prototype Universal Printed Circuit Board]||2.27||2.88||2.27||2.88<br />
|-<br />
| 1||[http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191o Male Headers]||2.14||2.72||2.14||2.72<br />
|- style="border-top: 2px solid #808080;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600&nbsp;nm]||0.94||1.19||0.94||1.19<br />
|-<br />
! -!!Total OD!!-!!-!! 46.01 !! 58.45 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
! -!!Total F!!-!!-!! 46.06 !! 58.52 <br />
|- style="border-top: 2px solid #808080;;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600nm]||0.94||1.19||0.94||1.19 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
! -!!Total OD/F!!-!!-!! 53.44 !! 67.89 <br />
|-<br />
|}<br />
</center><br />
<br />
For more detailed economical information about the OD/F project visit our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
== Breadboards ==<br />
<br />
=== Optical Density ===<br />
<br />
{{Team:Aachen/Figure|Aachen ODdevice Steckplatine.png|align=center|title=Breadboard of our OD device|subtitle=To build your own OD device, connect the parts as shown in this diagram.|width=900px}}<br />
<br />
If you want to build our OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#019 Fire 019]<br />
* LED: [http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== 600 nm] Dialight 550-2505F<br />
<br />
=== Fluorescence ===<br />
<br />
{{Team:Aachen/Figure|Aachen_Fdevice_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
If you want to build the OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#736 Twickenham Green 736]<br />
* LED: [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html 480 nm] NSPBR70BSS LED<br />
<br />
=== Combined Device ===<br />
Even though evaluation of the measurements have been performed in two separate device, it is fairly well possible to put everything into one casing.<br />
All you need to do is choosing another lid, and connect a second light to frequency sensor to your Arduino.<br />
Right at the bottom we present you the differences in wiring things up.<br />
Building the combined device is straight forward and very similar to the single device. You will need a slightly larger connector, a different lid for your case, and some more cables. The corresponding fritzing-layout is presented below.<br />
<br />
{{Team:Aachen/Figure|Aachen_ODF_combined_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
<br />
== Construction Steps ==<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_ODF_9.JPG|300px]] || First we want to assemble the casing. Once you have all the cut parts, you can start to assemble them. For cutting, we really recommend using a laser cutter.<br />
|-<br />
| [[File:Aachen_ODF_8.JPG|300px]] || Attach the cuvette-holder holders such that the cuvette holder is placed directly under the opening hole.<br />
|-<br />
| [[File:Aachen_ODF_4.JPG|300px]] || Next build the lid of the device. At this stage you can already mount the button. We recommend to glue any parts.<br />
|-<br />
| [[File:Aachen_ODF_3.JPG|300px]] || Your lid finally should look like this.<br />
|-<br />
| [[File:Aachen_ODF_11.JPG|150px]][[File:Aachen_ODF_10.JPG|150px]] || Next we want to assemble the cuvette holders. On the side with the square hole attach the light-to-frequency sensor with glue. For the OD case place the orange LED opposite, or for fluorescence, the LED in the hole in the bottom. Make sure to close any remaining open hole! Please attach a piece of filter foil (approx. $7 \times 7 mm^2$) from the inside in front of the light to frequency converter. Forceps is highly recommended.<br />
|-<br />
| [[File:Aachen_ODF_12.JPG|300px]] || Your final assembly should then look like this. Now place the correct filter into the cuvette holder, directly in front of the sensor. Make sure that the filter does not degrade due to the glue!<br />
|-<br />
| [[File:Aachen_ODF_14.JPG|300px]] || As the case can be used for both, fluorescence and OD measurement, we use a combined plug. Just three header rows (7 pins, 9pins for combined) and connect them as we did.<br />
|-<br />
| [[File:Aachen_ODF_1.JPG|300px]] || Now we're doing the wiring. Connect the Arduino 5V and GND such that you have one 5V and one GND line on your breadboard.<br />
|-<br />
| [[File:Aachen_ODF_2.JPG|300px]] || Then connect the button to 5V on the one side, and to GND via a resistor on the other side. Connect this side also to port __ on your Arduino. This will sense the blank. Next connect the display to the Arduino and our connector. See the Fritzing diagram at the bottom for a detailed information.<br />
|-<br />
| [[File:Aachen_ODF_13.JPG|300px]] || Now put everything into the case and ...<br />
|-<br />
| [[File:Aachen_ODF_6.JPG|300px]] || ... also place the cuvette holder into the device. Attach the display to the device lid and close the casing.<br />
|-<br />
| [[File:Aachen_ODF_7.JPG|300px]] || Congratulations! You have finished constructing your own OD/F device!<br />
|-<br />
| [[File:Aachen_zwei_Kuevetten.jpg|300px]] || ... or even the combined device!<br />
|}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
Lawrence, J. V., & Maier, S. (1977). Correction for the inherent error in optical density readings. Applied and Environmental Microbiology, 33(2), 482–484. Available at: http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=170707&tool=pmcentrez&rendertype=abstract.<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/ODFTeam:Aachen/Notebook/Engineering/ODF2014-10-17T21:04:07Z<p>Ansgar: /* Technical Components */</p>
<hr />
<div>__NOTOC__<br />
{{Team:Aachen/Header}}<br />
{{Team:Aachen/Stylesheet}}<br />
= OD/F Device =<br />
<br />
On this page we present the technical details of our OD/F device. You can skip to specific chapters by clicking on the panels below:<br />
<center><br />
<html><ul class="team-grid" style="width:1064px;"><br />
<!-- Overview --><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#dev" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br><br />
<b>General Considerations</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/0f/Aachen_14-10-10_ODF_Button_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#od" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>OD Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/04/Aachen_Cuvette_button_v1_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#f" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>F Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/55/Aachen_17-10-14_Glowing_cuvette-ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#diy" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-10_ODF_Button_ipo.png|right|150px]]<br />
<br />
= General Considerations =<br />
<span class="anchor" id="dev"></span><br />
<br />
Building the OD/F device has been an interesting task. While this device has been developed mainly by the IT division of our team, we got an immense support from the biologists suffering from color-blindness, yet eager to help selecting the best color filters for the LEDs.<br />
<br />
The measuring principle and guidelines for this project have already been presented in the [https://2014.igem.org/Team:Aachen/OD/F_device project] section.<br />
Here, details about selecting filters, code and a construction manual are presented.<br />
<br />
=== Cuvette Holder ===<br />
The essential part of this device is the '''cuvette holder'''. In short, we had to overcome a dilemma created by the need for an optimal height for the sensor:<br />
* A too low sensor position bears problems with sedimentation as well as light diffraction from the bottom of the cuvette.<br />
* The sensor has to be as close as possible to the bottom so that enough light shines through for the fluorescence measurement.<br />
<br />
As a compromise, we place the sensor at a height of 0.75&nbsp;cm. It is comparable to one of the standard heights (0.2&nbsp;cm, 0.8&nbsp;cm, 1.2&nbsp;cm) of OD meters. It is important to note that our device works with filling volumens of just 1&nbsp;mL, which in fact comes close to reality in the lab.<br />
<br />
The final cuvette holder design is rendered from a [https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=raw stl-file] shown below:<br />
<br />
<html><br />
<center> <br />
<iframe src="https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=render<br />
" width=500px height=500px frameBorder="0"></iframe><br />
<br/><br />
<b>Cuvette Holder devloped for our OD/F device.</b><br />
</center><br />
</html><br />
<br />
=== Light Filters ===<br />
'''Finding the right and optimal filters is a tough challenge'''.<br />
The main goal throughout our project has been to choose easily available parts which are also inexpensive. Thus choosing Schott glasses as filters could not be considered. Alternatively, filters used for illumination of theaters were found to be an ideal solution.<br />
<br />
We tested serveral filters and the optimal configuration of filters used is listed below.<br />
<br />
{| class="wikitable"<br />
! Mode<br />
! Fluorescence Protein<br />
! Filter Name<br />
! Filter<br />
! Peak Excitation<br />
! Peak Emission<br />
|-<br />
| Fluorescence<br />
| [http://parts.igem.org/Part:BBa_E0040 GFPmut3b]<br />
| [http://leefilters.com/lighting/colour-details.html#736 Twickenham Green]<br />
| [[File:Aachen_Filter_019.png|200px]]<br />
| 501nm<br />
| 511nm<br />
|-<br />
| Optical Density<br />
| --<br />
| [http://leefilters.com/lighting/colour-details.html#019 Fire]<br />
| [[File:Aachen_Filter_019.png|200px]]<br />
| 600nm<br />
| 600nm<br />
|}<br />
<br />
The fluorescence protein [http://parts.igem.org/Part:BBa_E0040 GFPmut3b] has a peak excitation at 501&nbsp;nm and a peak emission at 511&nbsp;nm - too close together for our low-cost filters to block the excitation light but transmit the emitted light. Thus, we chose to excite at around 485&nbsp;nm reduce false positive results below 500&nbsp;nm. However, no adequate filter for these settings could be found.<br />
Eventually, using the dark greenish [http://leefilters.com/lighting/colour-details.html#736 Twickenham Green] filter only little amounts of light shorter than 500&nbsp;nm gets through, reducing any bias from excitation illumination significantly. Unfortunately, the transmission rate of this filter is quite bad, 20% only, for the target emission wavelength of 511&nbsp;nm.<br />
<br />
== Linearity of the Hardware Light Sensor ==<br />
<span class="anchor" id="lin"></span><br />
It is crucial that the selected hardware is mapping reality into the digital world of our $\mu$-Controller.<br />
In order to sense reality our setup uses a light to frequency sensor, [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf TSL235R-LF].<br />
The light to frequency sensor resembles the most to a photo transistor and thus is less sensible to temperature than a light dependant resistor.<br />
Additionally counting a frequency using interrupts seems to be easier and more accurate than using the analog to digital converter.<br />
<br />
Using a dilution series of purified [https://2011.igem.org/Team:Glasgow/LOV2 iLOV] we could determine the characteristic curve for the light sensor. Finally we can conclude that the sensor is linear as expected and shown in the [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf datasheet].<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Linearity iFG.PNG|title=Linearity of TSL235R-LF sensor|subtitle=Dilution series of GFP expressing ''E. coli'' showing linearity between fluorescence count and dilution. The linearity of the chosen sensor can be determined.|width=700px}}<br />
<br />
We are measuring optical density using our in-house developed cuvette holder.<br />
Particularly for optical density measurement, the amount of light shining through the sample is crucial.<br />
If there is too few light, there will be not enough light registered at the sensor, and the resolution of the measurement shrinks. This should be prevented.<br />
The chosen light to frequency sensor is reported to be very sensitive on the amount of light shining on it.<br />
There are reports of the sensor breaking when put into [https://www.sparkfun.com/products/9768 sunlight on a nice day], and not being sensitive at both high light or low light [http://kesslerarduino.wordpress.com/author/kevinmkessler/page/2/ conditions].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
[[File:Aachen_Cuvette_button_v1_ipo.png|right|150px]]<br />
<br />
= Evaluation of the Optical Density Measurement =<br />
<span class="anchor" id="od"></span><br />
<br />
=== From Transmittance to True Optical Density ===<br />
At very low levels, uncorrected photometric determinations of cell densities show a decreasing proportionaility to actual cell density.<br />
<br />
This can also be observed using our device.<br />
<br />
In general, photometric determination of bacterial concentrations depends primarily on light scattering, rather than light absorption. Therefore, often not absorption is measured, but transmittance. For this, the relationship between optical density (OD) and transmitted light $\frac{I_0}{I}$ exists as:<br />
<br />
$$ OD = \frac{I_0}{I} = \kappa \cdot c$$<br />
<br />
where $I_0$ is the intensity of incoming light and $I$ the amount of the light passing through.<br />
<br />
However, this equation is linear only in a certain range.<br />
While one can tackle this non-linearity by using dilutions of the culture, correcting the error systematically is another way to overcome this limitation.<br />
<br />
For our OD device we needed to correlate the transmittance measured by our sensor to an optical density anyway.<br />
Our team members from the deterministic sciences emphasized on the correction method, which was conducted according to Lawrence and Maier (2006):<br />
<br />
* The relative density ($RD$) of each sample in a dilution series is calculated using $\frac{min(dilution)}{dilution}$.<br />
* The uncorrected optical density is derived from the transmission T [%]: $OD = 2 - \log T$<br />
* Finally, the unit optical density is calculated as $\frac{OD}{TD}$.<br />
* The average of the stable unit optical densities is used to calculate the true optical density $ OD_{unit} \cdot RD $.<br />
This way, the correlation between transmission and true optical density can be computed.<br />
The derived function allows the conversion from transmission to optical density on our device and therefore calibrates our device.<br />
<br />
<br />
In our experiments, we find in accordance to Lawrence and Maier that the correction majorly depends on the technical equipment used, especially the LED, sensor and cuvettes.<br />
While this at first sight looks disappointing, it is also expected:<br />
Transmittance is the fraction of light not absorbed by some medium relative to the cell-free and clear medium.<br />
However, the transmittance is not only dependent on the amount of cells in the way of the light's beam, but also how much light shines through the cuvette in which fashion, and in which fraction is received by the sensor in which angles.<br />
<br />
Using the above formula we performed this experiment for ''Pseudomonas putida'' and ''Saccharomyces cerevisiae'' and asked team [https://2014.igem.org/Team:Aachen/Collaborations/Freiburg Freiburg] to perform the same experiment using mamallian cells.<br />
<br />
=== Experiments ===<br />
<br />
We performed several experiments during the development of the device.<br />
Finally, we can relate the measured transmittance to the true Optical Density (true OD), and further, we can relate the true OD to the true OD of the photospectrometer in our lab.<br />
By doing so, we can calibrate our device to meaningful values.<br />
<br />
We have done this according to the previous section for ''Pseudomonas putida'' and ''Saccharomyces cerevisiae''.<br />
<br />
The final function for calculating the OD from the transmission calculated by our device can be calculated as<br />
<br />
$$ OD(T) = f(T) \circ g(device) $$<br />
<br />
where $f$ transforms transforms transmittance $T$ to true optical density for our device, and $g$ transforms true optical density of our device into the true optical density of the photospectrometer. This way our device is calibrated according to the photospectrometer.<br />
<br />
==== ''Pseudomonas putida'' ====<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida iFG.PNG|title=True Optical Density to Transmittance plot for ''P. putida''|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer for ''P. putida''|subtitle=|width=700px}}<br />
</center><br />
<br />
==== ''Saccharomyces cerevisiae'' ====<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer iFG.PNG|title=True Optical Density to Transmittance plot for ''S. cerivisiae''|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer for ''S. cerivisiae''|subtitle=|width=700px}}<br />
</center><br />
<br />
From these plots, it can be seen that our device delivers robust and reproducible results for both procaryotes and eucaryotes.<br />
Also the function from transmittance to true OD follows a clear pattern, making its calculation possible on a low-end device like a microcontroller.<br />
<br />
It is interesting to observer that function $g$, mapping the true OD of our device to the true OD of the photospectrometer, are close together for both ''P. putida'' and ''S. cerivisae'', as seen by the regression coefficient.<br />
In fact, 3.416 and 3.461 are such close together, that the minor deviation could be just measuring inaccuracy.<br />
Therefore, we fix the regression coefficient for converting true OD of our device to true OD of the photospectrometer to an average of 3.432 .<br />
<br />
Additionally the function $f$ for mapping transmittance to true OD for our device is similar for all cell types, as seen in the following figure. Therefore the exponential regression curve for all cell types specifies this function.<br />
<br />
<center><br />
{{Team:Aachen/Figure|Aachen_ODallstrains1.png|title=Transmission of different cell types at OD-values from 0.001-1|subtitle=The transmittance data of NIH&nbsp;3T3 cells (mouse fibroblasts) align with the transmittance of ''P.&nbsp;putida'' and ''S.&nbsp;cerevisiae'' strains, even though the measured optical densities are lower by 1-2 orders of magnitude.|width=800px}}<br />
</center><br />
Finally, we have empirically determined our $OD(T)$ function by finding $f$ and $g$, such that we can convert true OD to the optical density of the photospectrometer.<br />
<br />
By this evaluation, we have shown that our self-build OD/F device can compete with commercial systems.<br />
It is easy to calibrate by just calculating the true optical density.<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_17-10-14_Glowing_cuvette-ipo.png|right|150px]]<br />
<br />
= Evaluation of the Fluorescence Measurement =<br />
<span class="anchor" id="f"></span><br />
<br />
For the evaluation of the fluorescence measurement we performed a dilution series of a constitutively GFPmut3b expressing ''E. coli''.<br />
<br />
The below figure shows the absolute measurements for both the platereader and our OD/F device. The abrupt jump at 50% concentration can be explained by a second dilution step and is prevalent in both devices.<br />
It can be seen that the platereader show a much higher difference between the GFP and non-GFP cell culture at a higher standard deviation.<br />
Another interesting metric is the difference between the GFP and non-GFP, which can be seen as the normalized fluorescence measure.<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachn 15-10-14 F platereader ODF iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant.|width=700px}}<br />
</center><br />
<br />
If one compares the results there, as in Figure 2, interesting observations can be made.<br />
First, both platereader and OD/F device show very similar results.<br />
The regression curves differ only in a linear factor.<br />
Most interestingly the general fit of the OD/F device to a linear function seems to be better than the platereader.<br />
Overall the linearity which has been observed earlier (in testing the general setup) could be verified.<br />
Therefore our do-it-yourself OD/F device can be used to determine fluorescence.<br />
At higher concentrations our OD/F device struggles regarding accuracy. However, this is also true for the platereader, but at a lower rate.<br />
<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 F platereader ODF2 iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant. A non-GFP expressing E. coli dilution has been used to normalize the GFP dilution series. A linear correlation can be seen.|width=700px}}<br />
</center><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How to Build Your Own Device =<br />
<span class="anchor" id="diy"></span><br />
== Technical Components ==<br />
<br />
While the casing and the cuvette holder are custom made, most of the parts are pre-made and only need to be bought. The previous section lists all needed parts. To get all these parts for creating your own OD/F device is easy by using the internet. A lot of companies all over the world are specialized in selling electronically equipment not only in the internet but also in local shops. However '''potential customers have a market access''' connected to the parts of building. <br />
<br />
Please find our custom parts for download below. Despite being custom parts, these are quite inenxpensive - so feel free to give our OD/F device a test :) ! <span class="anchor" id="ref2"></span><br />
<br />
* cuvette holder [https://2014.igem.org/Template:Team:Aachen/cuvette.stl?action=raw STL file]<br />
* casing single device [https://2014.igem.org/File:Aachen_ODF_device_casing.svg.zip SVG file]<br />
* lid combined device [https://2014.igem.org/File:Aachen_Odf_device_combined_lid.svg.zip SVG file]<br />
* Arduino Code for single device [https://2014.igem.org/Template:Team:Aachen/arduino_single.ino?action=raw Sketchbook (.ino)]<br />
* Arduino Code for combined device [https://2014.igem.org/Template:Team:Aachen/arduino_combined.ino?action=raw Sketchbook (.ino)]<br />
<br />
You will need a special [http://www.exp-tech.de/images/product_images/description%20images/YWRobot/1602/LiquidCrystal_I2C1602V2.rar library] for the display, which can not be uploaded for legal reasons.<br />
<br />
<br />
<center><br />
'''All needed components their quantities and prices for creating your own OD/F device'''<br />
{| class="wikitable"<br />
! align="center" |'''OD/F device'''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|-<br />
! Quantity!!Component!! Costs [€] !! Costs [$] !! Final [€] !! Final [$] <br />
|-<br />
| 1||[http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600#.VDzwV9ysWBp Arduino UNO R3]||9.17||11.65||9.17||11.65 <br />
|-<br />
| 1||[http://www.mouser.de/ProductDetail/ams/TSL235R-LF/?qs=14HO7rLZPQsjmBHaoYCzkA%3D%3D TSL 235R]||2.47||3.14||2.47||3.14 <br />
|-<br />
| 1||[http://www.dx.com/p/16-x-2-character-lcd-display-module-with-blue-backlight-121356 Display 16x2]||2.58||3.28||2.58||3.28 <br />
|-<br />
| 1||[http://www.dx.com/p/lcd1602-adapter-board-w-iic-i2c-interface-black-works-with-official-arduino-boards-216865#.VDzxHNysWBp LCD Display to I2C]||1.57||1.99||1.57||1.99 <br />
|-<br />
| 1||[http://www.newark.com/multicomp/mcpas6b1m1ce3/switch-pushbutton-spst-400ma-125v/dp/12P7696?ost=1638329 Pushbutton]||2.90||3.69||2.90||3.69 <br />
|-<br />
| 1||[http://shop.leefiltersusa.com/Swatch-Book-Designers-Edition-SWB.htm filter leaflet]||1.57||2.00||1.57||2.00 <br />
|-<br />
| 20||[http://www.dx.com/p/diy-male-to-female-dupont-breadboard-jumper-wires-black-multi-color-40-pcs-10cm-339078#.VDzxSdysWBp jumper wire cables]||0.09||0.11||1.80||2.28 <br />
|-<br />
| 1||[http://www.dx.com/p/syb-170-mini-breadboard-for-diy-project-red-140101#.VDzyudysWBo small breadboard]||1.98||2.51||1.98||2.51 <br />
|-<br />
| 1||[http://www.dx.com/p/universal-ac-charger-w-dual-usb-output-for-iphone-ipad-ipod-white-us-plug-244893 power supply]||2.20||2.80||2.20||2.80<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
| 1||3&nbsp;mm acrylic glas (black)||7.98||10.14||7.98||10.14<br />
|-<br />
| 1||[http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-golden-10-piece-pack-143913 Prototype Universal Printed Circuit Board]||2.27||2.88||2.27||2.88<br />
|-<br />
| 1||[http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191o Male Headers]||2.14||2.72||2.14||2.72<br />
|- style="border-top: 2px solid #808080;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600&nbsp;nm]||0.94||1.19||0.94||1.19<br />
|-<br />
! -!!Total OD!!-!!-!! 46.01 !! 58.45 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
! -!!Total F!!-!!-!! 46.06 !! 58.52 <br />
|- style="border-top: 2px solid #808080;;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600nm]||0.94||1.19||0.94||1.19 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
! -!!Total OD/F!!-!!-!! 53.44 !! 67.89 <br />
|-<br />
|}<br />
</center><br />
<br />
For more detailed economical information about the OD/F project visit our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
== Breadboards ==<br />
<br />
=== Optical Density ===<br />
<br />
{{Team:Aachen/Figure|Aachen ODdevice Steckplatine.png|align=center|title=Breadboard of our OD device|subtitle=To build your own OD device, connect the parts as shown in this diagram.|width=900px}}<br />
<br />
If you want to build our OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#019 Fire 019]<br />
* LED: [http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== 600 nm] Dialight 550-2505F<br />
<br />
=== Fluorescence ===<br />
<br />
{{Team:Aachen/Figure|Aachen_Fdevice_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
If you want to build the OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#736 Twickenham Green 736]<br />
* LED: [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html 480 nm] NSPBR70BSS LED<br />
<br />
=== Combined Device ===<br />
Even though evaluation of the measurements have been performed in two separate device, it is fairly well possible to put everything into one casing.<br />
All you need to do is choosing another lid, and connect a second light to frequency sensor to your Arduino.<br />
Right at the bottom we present you the differences in wiring things up.<br />
Building the combined device is straight forward and very similar to the single device. You will need a slightly larger connector, a different lid for your case, and some more cables. The corresponding fritzing-layout is presented below.<br />
<br />
{{Team:Aachen/Figure|Aachen_ODF_combined_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
<br />
== Construction Steps ==<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_ODF_9.JPG|300px]] || First we want to assemble the casing. Once you have all the cut parts, you can start to assemble them. For cutting, we really recommend using a laser cutter.<br />
|-<br />
| [[File:Aachen_ODF_8.JPG|300px]] || Attach the cuvette-holder holders such that the cuvette holder is placed directly under the opening hole.<br />
|-<br />
| [[File:Aachen_ODF_4.JPG|300px]] || Next build the lid of the device. At this stage you can already mount the button. We recommend to glue any parts.<br />
|-<br />
| [[File:Aachen_ODF_3.JPG|300px]] || Your lid finally should look like this.<br />
|-<br />
| [[File:Aachen_ODF_11.JPG|150px]][[File:Aachen_ODF_10.JPG|150px]] || Next we want to assemble the cuvette holders. On the side with the square hole attach the light-to-frequency sensor with glue. For the OD case place the orange LED opposite, or for fluorescence, the LED in the hole in the bottom. Make sure to close any remaining open hole! Please attach a piece of filter foil (approx. $7 \times 7 mm^2$) from the inside in front of the light to frequency converter. Forceps is highly recommended.<br />
|-<br />
| [[File:Aachen_ODF_12.JPG|300px]] || Your final assembly should then look like this. Now place the correct filter into the cuvette holder, directly in front of the sensor. Make sure that the filter does not degrade due to the glue!<br />
|-<br />
| [[File:Aachen_ODF_14.JPG|300px]] || As the case can be used for both, fluorescence and OD measurement, we use a combined plug. Just three header rows (7 pins, 9pins for combined) and connect them as we did.<br />
|-<br />
| [[File:Aachen_ODF_1.JPG|300px]] || Now we're doing the wiring. Connect the Arduino 5V and GND such that you have one 5V and one GND line on your breadboard.<br />
|-<br />
| [[File:Aachen_ODF_2.JPG|300px]] || Then connect the button to 5V on the one side, and to GND via a resistor on the other side. Connect this side also to port __ on your Arduino. This will sense the blank. Next connect the display to the Arduino and our connector. See the Fritzing diagram at the bottom for a detailed information.<br />
|-<br />
| [[File:Aachen_ODF_13.JPG|300px]] || Now put everything into the case and ...<br />
|-<br />
| [[File:Aachen_ODF_6.JPG|300px]] || ... also place the cuvette holder into the device. Attach the display to the device lid and close the casing.<br />
|-<br />
| [[File:Aachen_ODF_7.JPG|300px]] || Congratulations! You have finished constructing your own OD/F device!<br />
|-<br />
| [[File:Aachen_zwei_Kuevetten.jpg|300px]] || ... or even the combined device!<br />
|}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
Lawrence, J. V., & Maier, S. (1977). Correction for the inherent error in optical density readings. Applied and Environmental Microbiology, 33(2), 482–484. Available at: http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=170707&tool=pmcentrez&rendertype=abstract.<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/ODFTeam:Aachen/Notebook/Engineering/ODF2014-10-17T21:02:42Z<p>Ansgar: /* Technical Components */</p>
<hr />
<div>__NOTOC__<br />
{{Team:Aachen/Header}}<br />
{{Team:Aachen/Stylesheet}}<br />
= OD/F Device =<br />
<br />
On this page we present the technical details of our OD/F device. You can skip to specific chapters by clicking on the panels below:<br />
<center><br />
<html><ul class="team-grid" style="width:1064px;"><br />
<!-- Overview --><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#dev" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br><br />
<b>General Considerations</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/0f/Aachen_14-10-10_ODF_Button_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#od" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>OD Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/04/Aachen_Cuvette_button_v1_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#f" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>F Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/55/Aachen_17-10-14_Glowing_cuvette-ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#diy" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-10_ODF_Button_ipo.png|right|150px]]<br />
<br />
= General Considerations =<br />
<span class="anchor" id="dev"></span><br />
<br />
Building the OD/F device has been an interesting task. While this device has been developed mainly by the IT division of our team, we got an immense support from the biologists suffering from color-blindness, yet eager to help selecting the best color filters for the LEDs.<br />
<br />
The measuring principle and guidelines for this project have already been presented in the [https://2014.igem.org/Team:Aachen/OD/F_device project] section.<br />
Here, details about selecting filters, code and a construction manual are presented.<br />
<br />
=== Cuvette Holder ===<br />
The essential part of this device is the '''cuvette holder'''. In short, we had to overcome a dilemma created by the need for an optimal height for the sensor:<br />
* A too low sensor position bears problems with sedimentation as well as light diffraction from the bottom of the cuvette.<br />
* The sensor has to be as close as possible to the bottom so that enough light shines through for the fluorescence measurement.<br />
<br />
As a compromise, we place the sensor at a height of 0.75&nbsp;cm. It is comparable to one of the standard heights (0.2&nbsp;cm, 0.8&nbsp;cm, 1.2&nbsp;cm) of OD meters. It is important to note that our device works with filling volumens of just 1&nbsp;mL, which in fact comes close to reality in the lab.<br />
<br />
The final cuvette holder design is rendered from a [https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=raw stl-file] shown below:<br />
<br />
<html><br />
<center> <br />
<iframe src="https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=render<br />
" width=500px height=500px frameBorder="0"></iframe><br />
<br/><br />
<b>Cuvette Holder devloped for our OD/F device.</b><br />
</center><br />
</html><br />
<br />
=== Light Filters ===<br />
'''Finding the right and optimal filters is a tough challenge'''.<br />
The main goal throughout our project has been to choose easily available parts which are also inexpensive. Thus choosing Schott glasses as filters could not be considered. Alternatively, filters used for illumination of theaters were found to be an ideal solution.<br />
<br />
We tested serveral filters and the optimal configuration of filters used is listed below.<br />
<br />
{| class="wikitable"<br />
! Mode<br />
! Fluorescence Protein<br />
! Filter Name<br />
! Filter<br />
! Peak Excitation<br />
! Peak Emission<br />
|-<br />
| Fluorescence<br />
| [http://parts.igem.org/Part:BBa_E0040 GFPmut3b]<br />
| [http://leefilters.com/lighting/colour-details.html#736 Twickenham Green]<br />
| [[File:Aachen_Filter_019.png|200px]]<br />
| 501nm<br />
| 511nm<br />
|-<br />
| Optical Density<br />
| --<br />
| [http://leefilters.com/lighting/colour-details.html#019 Fire]<br />
| [[File:Aachen_Filter_019.png|200px]]<br />
| 600nm<br />
| 600nm<br />
|}<br />
<br />
The fluorescence protein [http://parts.igem.org/Part:BBa_E0040 GFPmut3b] has a peak excitation at 501&nbsp;nm and a peak emission at 511&nbsp;nm - too close together for our low-cost filters to block the excitation light but transmit the emitted light. Thus, we chose to excite at around 485&nbsp;nm reduce false positive results below 500&nbsp;nm. However, no adequate filter for these settings could be found.<br />
Eventually, using the dark greenish [http://leefilters.com/lighting/colour-details.html#736 Twickenham Green] filter only little amounts of light shorter than 500&nbsp;nm gets through, reducing any bias from excitation illumination significantly. Unfortunately, the transmission rate of this filter is quite bad, 20% only, for the target emission wavelength of 511&nbsp;nm.<br />
<br />
== Linearity of the Hardware Light Sensor ==<br />
<span class="anchor" id="lin"></span><br />
It is crucial that the selected hardware is mapping reality into the digital world of our $\mu$-Controller.<br />
In order to sense reality our setup uses a light to frequency sensor, [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf TSL235R-LF].<br />
The light to frequency sensor resembles the most to a photo transistor and thus is less sensible to temperature than a light dependant resistor.<br />
Additionally counting a frequency using interrupts seems to be easier and more accurate than using the analog to digital converter.<br />
<br />
Using a dilution series of purified [https://2011.igem.org/Team:Glasgow/LOV2 iLOV] we could determine the characteristic curve for the light sensor. Finally we can conclude that the sensor is linear as expected and shown in the [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf datasheet].<br />
<br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Linearity iFG.PNG|title=Linearity of TSL235R-LF sensor|subtitle=Dilution series of GFP expressing ''E. coli'' showing linearity between fluorescence count and dilution. The linearity of the chosen sensor can be determined.|width=700px}}<br />
<br />
We are measuring optical density using our in-house developed cuvette holder.<br />
Particularly for optical density measurement, the amount of light shining through the sample is crucial.<br />
If there is too few light, there will be not enough light registered at the sensor, and the resolution of the measurement shrinks. This should be prevented.<br />
The chosen light to frequency sensor is reported to be very sensitive on the amount of light shining on it.<br />
There are reports of the sensor breaking when put into [https://www.sparkfun.com/products/9768 sunlight on a nice day], and not being sensitive at both high light or low light [http://kesslerarduino.wordpress.com/author/kevinmkessler/page/2/ conditions].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
[[File:Aachen_Cuvette_button_v1_ipo.png|right|150px]]<br />
<br />
= Evaluation of the Optical Density Measurement =<br />
<span class="anchor" id="od"></span><br />
<br />
=== From Transmittance to True Optical Density ===<br />
At very low levels, uncorrected photometric determinations of cell densities show a decreasing proportionaility to actual cell density.<br />
<br />
This can also be observed using our device.<br />
<br />
In general, photometric determination of bacterial concentrations depends primarily on light scattering, rather than light absorption. Therefore, often not absorption is measured, but transmittance. For this, the relationship between optical density (OD) and transmitted light $\frac{I_0}{I}$ exists as:<br />
<br />
$$ OD = \frac{I_0}{I} = \kappa \cdot c$$<br />
<br />
where $I_0$ is the intensity of incoming light and $I$ the amount of the light passing through.<br />
<br />
However, this equation is linear only in a certain range.<br />
While one can tackle this non-linearity by using dilutions of the culture, correcting the error systematically is another way to overcome this limitation.<br />
<br />
For our OD device we needed to correlate the transmittance measured by our sensor to an optical density anyway.<br />
Our team members from the deterministic sciences emphasized on the correction method, which was conducted according to Lawrence and Maier (2006):<br />
<br />
* The relative density ($RD$) of each sample in a dilution series is calculated using $\frac{min(dilution)}{dilution}$.<br />
* The uncorrected optical density is derived from the transmission T [%]: $OD = 2 - \log T$<br />
* Finally, the unit optical density is calculated as $\frac{OD}{TD}$.<br />
* The average of the stable unit optical densities is used to calculate the true optical density $ OD_{unit} \cdot RD $.<br />
This way, the correlation between transmission and true optical density can be computed.<br />
The derived function allows the conversion from transmission to optical density on our device and therefore calibrates our device.<br />
<br />
<br />
In our experiments, we find in accordance to Lawrence and Maier that the correction majorly depends on the technical equipment used, especially the LED, sensor and cuvettes.<br />
While this at first sight looks disappointing, it is also expected:<br />
Transmittance is the fraction of light not absorbed by some medium relative to the cell-free and clear medium.<br />
However, the transmittance is not only dependent on the amount of cells in the way of the light's beam, but also how much light shines through the cuvette in which fashion, and in which fraction is received by the sensor in which angles.<br />
<br />
Using the above formula we performed this experiment for ''Pseudomonas putida'' and ''Saccharomyces cerevisiae'' and asked team [https://2014.igem.org/Team:Aachen/Collaborations/Freiburg Freiburg] to perform the same experiment using mamallian cells.<br />
<br />
=== Experiments ===<br />
<br />
We performed several experiments during the development of the device.<br />
Finally, we can relate the measured transmittance to the true Optical Density (true OD), and further, we can relate the true OD to the true OD of the photospectrometer in our lab.<br />
By doing so, we can calibrate our device to meaningful values.<br />
<br />
We have done this according to the previous section for ''Pseudomonas putida'' and ''Saccharomyces cerevisiae''.<br />
<br />
The final function for calculating the OD from the transmission calculated by our device can be calculated as<br />
<br />
$$ OD(T) = f(T) \circ g(device) $$<br />
<br />
where $f$ transforms transforms transmittance $T$ to true optical density for our device, and $g$ transforms true optical density of our device into the true optical density of the photospectrometer. This way our device is calibrated according to the photospectrometer.<br />
<br />
==== ''Pseudomonas putida'' ====<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida iFG.PNG|title=True Optical Density to Transmittance plot for ''P. putida''|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer for ''P. putida''|subtitle=|width=700px}}<br />
</center><br />
<br />
==== ''Saccharomyces cerevisiae'' ====<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer iFG.PNG|title=True Optical Density to Transmittance plot for ''S. cerivisiae''|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer for ''S. cerivisiae''|subtitle=|width=700px}}<br />
</center><br />
<br />
From these plots, it can be seen that our device delivers robust and reproducible results for both procaryotes and eucaryotes.<br />
Also the function from transmittance to true OD follows a clear pattern, making its calculation possible on a low-end device like a microcontroller.<br />
<br />
It is interesting to observer that function $g$, mapping the true OD of our device to the true OD of the photospectrometer, are close together for both ''P. putida'' and ''S. cerivisae'', as seen by the regression coefficient.<br />
In fact, 3.416 and 3.461 are such close together, that the minor deviation could be just measuring inaccuracy.<br />
Therefore, we fix the regression coefficient for converting true OD of our device to true OD of the photospectrometer to an average of 3.432 .<br />
<br />
Additionally the function $f$ for mapping transmittance to true OD for our device is similar for all cell types, as seen in the following figure. Therefore the exponential regression curve for all cell types specifies this function.<br />
<br />
<center><br />
{{Team:Aachen/Figure|Aachen_ODallstrains1.png|title=Transmission of different cell types at OD-values from 0.001-1|subtitle=The transmittance data of NIH&nbsp;3T3 cells (mouse fibroblasts) align with the transmittance of ''P.&nbsp;putida'' and ''S.&nbsp;cerevisiae'' strains, even though the measured optical densities are lower by 1-2 orders of magnitude.|width=800px}}<br />
</center><br />
Finally, we have empirically determined our $OD(T)$ function by finding $f$ and $g$, such that we can convert true OD to the optical density of the photospectrometer.<br />
<br />
By this evaluation, we have shown that our self-build OD/F device can compete with commercial systems.<br />
It is easy to calibrate by just calculating the true optical density.<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_17-10-14_Glowing_cuvette-ipo.png|right|150px]]<br />
<br />
= Evaluation of the Fluorescence Measurement =<br />
<span class="anchor" id="f"></span><br />
<br />
For the evaluation of the fluorescence measurement we performed a dilution series of a constitutively GFPmut3b expressing ''E. coli''.<br />
<br />
The below figure shows the absolute measurements for both the platereader and our OD/F device. The abrupt jump at 50% concentration can be explained by a second dilution step and is prevalent in both devices.<br />
It can be seen that the platereader show a much higher difference between the GFP and non-GFP cell culture at a higher standard deviation.<br />
Another interesting metric is the difference between the GFP and non-GFP, which can be seen as the normalized fluorescence measure.<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachn 15-10-14 F platereader ODF iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant.|width=700px}}<br />
</center><br />
<br />
If one compares the results there, as in Figure 2, interesting observations can be made.<br />
First, both platereader and OD/F device show very similar results.<br />
The regression curves differ only in a linear factor.<br />
Most interestingly the general fit of the OD/F device to a linear function seems to be better than the platereader.<br />
Overall the linearity which has been observed earlier (in testing the general setup) could be verified.<br />
Therefore our do-it-yourself OD/F device can be used to determine fluorescence.<br />
At higher concentrations our OD/F device struggles regarding accuracy. However, this is also true for the platereader, but at a lower rate.<br />
<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 F platereader ODF2 iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant. A non-GFP expressing E. coli dilution has been used to normalize the GFP dilution series. A linear correlation can be seen.|width=700px}}<br />
</center><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How to Build Your Own Device =<br />
<span class="anchor" id="diy"></span><br />
== Technical Components ==<br />
<br />
While the casing and the cuvette holder are custom made, most of the parts are pre-made and only need to be bought. The previous section lists all needed parts. To get all these parts for creating your own OD/F device is easy by using the internet. A lot of companies all over the world are specialized in selling electronically equipment not only in the internet but also in local shops. However '''potential customers have a market access''' connected to the parts of building. <br />
<br />
Please find our custom parts for download below. Despite being custom parts, these are quite inenxpensive - so feel free to give our OD/F device a test :) ! <span class="anchor" id="ref2"></span><br />
<br />
* cuvette holder [https://2014.igem.org/Template:Team:Aachen/cuvette.stl?action=raw STL file]<br />
* casing single device [https://2014.igem.org/File:Aachen_ODF_device_casing.svg.zip SVG file]<br />
* casing combined device [https://2014.igem.org/File:Aachen_Odf_device_combined_lid.svg.zip SVG file]<br />
* Arduino Code for single device [https://2014.igem.org/Template:Team:Aachen/arduino_single.ino?action=raw Sketchbook (.ino)]<br />
* Arduino Code for combined device [https://2014.igem.org/Template:Team:Aachen/arduino_combined.ino?action=raw Sketchbook (.ino)]<br />
<br />
You will need a special [http://www.exp-tech.de/images/product_images/description%20images/YWRobot/1602/LiquidCrystal_I2C1602V2.rar library] for the display, which can not be uploaded for legal reasons.<br />
<br />
<br />
<center><br />
'''All needed components their quantities and prices for creating your own OD/F device'''<br />
{| class="wikitable"<br />
! align="center" |'''OD/F device'''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|-<br />
! Quantity!!Component!! Costs [€] !! Costs [$] !! Final [€] !! Final [$] <br />
|-<br />
| 1||[http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600#.VDzwV9ysWBp Arduino UNO R3]||9.17||11.65||9.17||11.65 <br />
|-<br />
| 1||[http://www.mouser.de/ProductDetail/ams/TSL235R-LF/?qs=14HO7rLZPQsjmBHaoYCzkA%3D%3D TSL 235R]||2.47||3.14||2.47||3.14 <br />
|-<br />
| 1||[http://www.dx.com/p/16-x-2-character-lcd-display-module-with-blue-backlight-121356 Display 16x2]||2.58||3.28||2.58||3.28 <br />
|-<br />
| 1||[http://www.dx.com/p/lcd1602-adapter-board-w-iic-i2c-interface-black-works-with-official-arduino-boards-216865#.VDzxHNysWBp LCD Display to I2C]||1.57||1.99||1.57||1.99 <br />
|-<br />
| 1||[http://www.newark.com/multicomp/mcpas6b1m1ce3/switch-pushbutton-spst-400ma-125v/dp/12P7696?ost=1638329 Pushbutton]||2.90||3.69||2.90||3.69 <br />
|-<br />
| 1||[http://shop.leefiltersusa.com/Swatch-Book-Designers-Edition-SWB.htm filter leaflet]||1.57||2.00||1.57||2.00 <br />
|-<br />
| 20||[http://www.dx.com/p/diy-male-to-female-dupont-breadboard-jumper-wires-black-multi-color-40-pcs-10cm-339078#.VDzxSdysWBp jumper wire cables]||0.09||0.11||1.80||2.28 <br />
|-<br />
| 1||[http://www.dx.com/p/syb-170-mini-breadboard-for-diy-project-red-140101#.VDzyudysWBo small breadboard]||1.98||2.51||1.98||2.51 <br />
|-<br />
| 1||[http://www.dx.com/p/universal-ac-charger-w-dual-usb-output-for-iphone-ipad-ipod-white-us-plug-244893 power supply]||2.20||2.80||2.20||2.80<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
| 1||3&nbsp;mm acrylic glas (black)||7.98||10.14||7.98||10.14<br />
|-<br />
| 1||[http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-golden-10-piece-pack-143913 Prototype Universal Printed Circuit Board]||2.27||2.88||2.27||2.88<br />
|-<br />
| 1||[http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191o Male Headers]||2.14||2.72||2.14||2.72<br />
|- style="border-top: 2px solid #808080;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600&nbsp;nm]||0.94||1.19||0.94||1.19<br />
|-<br />
! -!!Total OD!!-!!-!! 46.01 !! 58.45 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
! -!!Total F!!-!!-!! 46.06 !! 58.52 <br />
|- style="border-top: 2px solid #808080;;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600nm]||0.94||1.19||0.94||1.19 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
! -!!Total OD/F!!-!!-!! 53.44 !! 67.89 <br />
|-<br />
|}<br />
</center><br />
<br />
For more detailed economical information about the OD/F project visit our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
== Breadboards ==<br />
<br />
=== Optical Density ===<br />
<br />
{{Team:Aachen/Figure|Aachen ODdevice Steckplatine.png|align=center|title=Breadboard of our OD device|subtitle=To build your own OD device, connect the parts as shown in this diagram.|width=900px}}<br />
<br />
If you want to build our OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#019 Fire 019]<br />
* LED: [http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== 600 nm] Dialight 550-2505F<br />
<br />
=== Fluorescence ===<br />
<br />
{{Team:Aachen/Figure|Aachen_Fdevice_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
If you want to build the OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#736 Twickenham Green 736]<br />
* LED: [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html 480 nm] NSPBR70BSS LED<br />
<br />
=== Combined Device ===<br />
Even though evaluation of the measurements have been performed in two separate device, it is fairly well possible to put everything into one casing.<br />
All you need to do is choosing another lid, and connect a second light to frequency sensor to your Arduino.<br />
Right at the bottom we present you the differences in wiring things up.<br />
Building the combined device is straight forward and very similar to the single device. You will need a slightly larger connector, a different lid for your case, and some more cables. The corresponding fritzing-layout is presented below.<br />
<br />
{{Team:Aachen/Figure|Aachen_ODF_combined_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
<br />
== Construction Steps ==<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_ODF_9.JPG|300px]] || First we want to assemble the casing. Once you have all the cut parts, you can start to assemble them. For cutting, we really recommend using a laser cutter.<br />
|-<br />
| [[File:Aachen_ODF_8.JPG|300px]] || Attach the cuvette-holder holders such that the cuvette holder is placed directly under the opening hole.<br />
|-<br />
| [[File:Aachen_ODF_4.JPG|300px]] || Next build the lid of the device. At this stage you can already mount the button. We recommend to glue any parts.<br />
|-<br />
| [[File:Aachen_ODF_3.JPG|300px]] || Your lid finally should look like this.<br />
|-<br />
| [[File:Aachen_ODF_11.JPG|150px]][[File:Aachen_ODF_10.JPG|150px]] || Next we want to assemble the cuvette holders. On the side with the square hole attach the light-to-frequency sensor with glue. For the OD case place the orange LED opposite, or for fluorescence, the LED in the hole in the bottom. Make sure to close any remaining open hole! Please attach a piece of filter foil (approx. $7 \times 7 mm^2$) from the inside in front of the light to frequency converter. Forceps is highly recommended.<br />
|-<br />
| [[File:Aachen_ODF_12.JPG|300px]] || Your final assembly should then look like this. Now place the correct filter into the cuvette holder, directly in front of the sensor. Make sure that the filter does not degrade due to the glue!<br />
|-<br />
| [[File:Aachen_ODF_14.JPG|300px]] || As the case can be used for both, fluorescence and OD measurement, we use a combined plug. Just three header rows (7 pins, 9pins for combined) and connect them as we did.<br />
|-<br />
| [[File:Aachen_ODF_1.JPG|300px]] || Now we're doing the wiring. Connect the Arduino 5V and GND such that you have one 5V and one GND line on your breadboard.<br />
|-<br />
| [[File:Aachen_ODF_2.JPG|300px]] || Then connect the button to 5V on the one side, and to GND via a resistor on the other side. Connect this side also to port __ on your Arduino. This will sense the blank. Next connect the display to the Arduino and our connector. See the Fritzing diagram at the bottom for a detailed information.<br />
|-<br />
| [[File:Aachen_ODF_13.JPG|300px]] || Now put everything into the case and ...<br />
|-<br />
| [[File:Aachen_ODF_6.JPG|300px]] || ... also place the cuvette holder into the device. Attach the display to the device lid and close the casing.<br />
|-<br />
| [[File:Aachen_ODF_7.JPG|300px]] || Congratulations! You have finished constructing your own OD/F device!<br />
|-<br />
| [[File:Aachen_zwei_Kuevetten.jpg|300px]] || ... or even the combined device!<br />
|}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
Lawrence, J. V., & Maier, S. (1977). Correction for the inherent error in optical density readings. Applied and Environmental Microbiology, 33(2), 482–484. Available at: http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=170707&tool=pmcentrez&rendertype=abstract.<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/File:Aachen_Odf_device_combined_lid.svg.zipFile:Aachen Odf device combined lid.svg.zip2014-10-17T21:00:03Z<p>Ansgar: </p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/File:Aachen_ODF_device_casing.svg.zipFile:Aachen ODF device casing.svg.zip2014-10-17T20:59:10Z<p>Ansgar: </p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T19:57:13Z<p>Ansgar: /* WatsOn */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
<html><br></html><br />
The ''WatsOn'' device aims to answer the central question "What's on the chip?". The device is designed to incubate the sensing cells and capture images. <html><br></html>The interactive ''WatsOn'' software enables the end user not only to take images and time lapse shootings, but also analyzes the images and visualizes the presence/absence of a pathogen.<br />
<br />
The construction manual and the technical details are published in our [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy wiki].<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=270px}}<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Modus Operandi</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/21/Aachen_14-10-16_Measurarty_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Modus Operandi ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use ''WatsOn''|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor chip for a fluorescent signal.|width=1000px}}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Hardware_button_iNB.png|right|150px]]<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components|subtitle=From top left to bottom right: Arduino, Peltier element, Raspberry Pi, relay, cables, MOSFET, temperature display, camera, LEDs and resistors.|width=520px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass.<br />
<br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the Open Source concept. Therefore a detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
<!-- [[File:Aachen_14-10-16_Software_button_iNB.png|right|150px]] --><br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
{{Team:Aachen/FigureDual|Aachen_WatsOn_igem_GUI_originalImage.png|Aachen_WatsOn_igem_GUI_analyzedImage.png|title1=image taken with the camera |title2=analyzed image |subtitle1= |subtitle2= |width=500px}}<br />
<br />
The ''WatsOn'' software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore, it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI (left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore, the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Measurarty_button_iNB.png|right|150px]]<br />
<br />
== ''Measurarty'' ==<br />
<span class="anchor" id="watsonmeasurarty"></span><br />
<center><br />
{{Team:Aachen/Figure|Aachen_srm_regions_3.PNG|title=SRM component of our image analysis component ''Measurarty''|subtitle=SRM is one of the core components of our image analysis approach. This image shows the different regions created.|width=500px}}<br />
</center><br />
<br />
''Measurarty'' is the '''image analysis software''' of our device and is designed to allow an automatic segmentation and classification of our '''agar chip pictures'''.<br />
Therefore, it accepts an image from ''WatsOn'' as an input and produces an output image with pathogenic regions marked in red.<br />
<br />
This component mainly focuses on recognizing pathogens early, such that pure thresholding is not necessary.<br />
We therefore designed a pipeline and established a smoothness index to make statements about the pathogenity of a chip as early as possible, but also with as much certainty as possible.<br />
<br />
A sample output of the segmentation is presented below, showing that the pipeline works as intended.<br />
<br />
<center><br />
<div class="figure" style="float:{{{align|center}}}; margin: 0px 10px 10px 0px; border:{{{border|0px solid #aaa}}};width:{{{width|960px}}};padding:10px 10px 0px 0px;"><br />
{|<br />
|<html> <img src="https://static.igem.org/mediawiki/2014/f/fc/Aachen_Measurarty_combined_slow.gif" width="960px"></html><br />
|-<br />
|'''{{{title|Detecting ''P. aeroginosa'' with K131026}}}'''<br />{{{subtitle|Measurarty identifies the fluorescence signal given by K131026 in response to ''P. aeruginosa''.}}}<br />
|}<br />
</div><br />
</center><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
We developed ''WatsOn'' to meet the following requirements: i.e. the device<br />
*incubates the sensing cells and the sampling chip <br />
*illuminates the chip with the right excitation wavelength for our fluorescence proteins<br />
*takes pictures and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of P. aeruginosa through a GUI (graphical user interface)<br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*is portable and fast in analyzing the images<br />
<br />
With our final device we achieved all of the above mentioned goal. ''WatsOn'' is housed in a closed casing and is able to take images and time lapse shooting using LEDs with required wavelengths, analyze the image and visualize the result.<br />
<br />
All technical details including laser cutting plans, the list of needed components, source codes for the different software and a building instruction are open-source and available on our wiki[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn].<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/ProjectTeam:Aachen/Project2014-10-17T19:53:35Z<p>Ansgar: /* The OD/F Device - A Project Spin-Off */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
= ''Cellock Holmes'' - A Case of Identity =<br />
<br />
<html><ul class="menuright-grid" style="width:215px;margin-left:20px;"><br />
<br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/2D_Biosensor" style="color:black"><br />
<div class="menuright-item menuright-info" ><div class="menukachel">2D Biosensor</div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/5/5a/Aachen_14-10-14_cellock_liegend_panel_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/FRET_Reporter" style="color:black"><br />
<div class="menuright-item menuright-info" ><div class="menukachel">REACh Construct</div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/b/ba/Aachen_14-10-13_REACh_construct_tile_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Gal3" style="color:black"><br />
<div class="menuright-item menuright-info" ><br />
<div class="menukachel">Galectin-3</div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/7/74/Aachen_14-10-13_Galectin-3-YFP_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device" style="color:black"><br />
<div class="menuright-item menuright-info" > <div class="menukachel"><i>WatsOn</i></div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/c/c7/Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
</ul></html><br />
<br />
<br />
'''"What's living on the table in front of you?"''' seems to be an easy question to answer: microoganisms. <br />
<br />
However, '''"''Which'' microorganisms are there?"''' is not such a trivial question anymore, especially in environments where you only want to have a non-pathogenic microflora or no microorganisms at all, such as lab spaces or health care institutions. <br />
<br />
'''Our project ''Cellock Holmes'' solves this case of identy.'''<br />
<br />
''Cellock Holmes'' encompasses our '''[https://2014.igem.org/Team:Aachen/Project/2D_Biosensor 2D biosensing technology]''' with which can detect bacteria on solid surfaces. ''Cellock Holmes'' is mainly devised to overcome the drawbacks of existing techniques and aims for a faster, inexpensive, open source, mobile and an easy to handle detection method.<br />
<br />
We demonstrate the '''proof-of-concept''' for ''Cellock Holmes'' by detecting an opportunistic pathogen ''Pseudomonas&nbsp;aeruginosa''. This gram-negative prokaryote infects patients with open wounds and burns as well as immunodeficient people. ''P.&nbsp;aeruginosa'' cells use quorum sensing to communicate with each other by secreting autoinducers into their environment. Using a Synthetic Biology (SynBio) approach, our team engineered sensor cells, so-called ''Cellocks'', that are able to detect the native autoinducer of ''P.&nbsp;aeruginosa'' and elicit a distinct fluorescence signal. Further, the response time of our sensor cells has been highly enhanced by the use of our special [https://2014.igem.org/Team:Aachen/Project/FRET_Reporter '''REACh construct'''].<br />
<br />
While ''Cellocks'' are specifically designed to detect ''P.&nbsp;aeruginosa'', with a modular composition of our genetic device, it is possible to easily engineer ''Cellocks'' to detect autoinducers of other bacteria. Even more flexibility is introduced when using our [https://2014.igem.org/Team:Aachen/Project/Gal3 '''alternative molecular approach using Galectin-3'''].<br />
<br />
Hand in hand with the biological side of our project, our IT crew built the [https://2014.igem.org/Team:Aachen/Project/Measurement_Device '''''WatsOn'''''] , our measurement device. ''WatsOn'' is able to read and analyze the fluorescent signal emitted by the 2D biosensor. For an Open access, we publish DIY construction manual and technical details of our devices.<br />
<br />
To learn more about the different parts of our 2D biosensor, click on the respective panels on the right.<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= The OD/F Device - A Project Spin-Off =<br />
<html><ul class="menuright-grid" style="width:215px;margin-left:20px;"><br />
<!-- Overview --><br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/OD/F_device" style="color:black"><br />
<div class="menuright-item menuright-info" > <div class="menukachel"><i>OD/F Device</i></div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/0/0f/Aachen_14-10-10_ODF_Button_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
</ul></html><br />
<br />
<br />
Last but not the least, we present our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device]. This device is designed to '''measure optical density and fluorescence''' of a liquid sample in cuvettes. The measurement values are subsequently displayed to the user.<br />
<br />
The OD/F Device is as well designed in accordance with the '''Open Source''' principle and all [https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF technical details] as well as [https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#diy construction manuals] are published on our wiki. We demonstrate immediate application of the OD/F Device '''in schools, community labs and in the bio-hacker scene'''.<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/ProjectTeam:Aachen/Project2014-10-17T19:50:25Z<p>Ansgar: /* The OD/F Device - A Project Spin-Off */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
= ''Cellock Holmes'' - A Case of Identity =<br />
<br />
<html><ul class="menuright-grid" style="width:215px;margin-left:20px;"><br />
<br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/2D_Biosensor" style="color:black"><br />
<div class="menuright-item menuright-info" ><div class="menukachel">2D Biosensor</div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/5/5a/Aachen_14-10-14_cellock_liegend_panel_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/FRET_Reporter" style="color:black"><br />
<div class="menuright-item menuright-info" ><div class="menukachel">REACh Construct</div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/b/ba/Aachen_14-10-13_REACh_construct_tile_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Gal3" style="color:black"><br />
<div class="menuright-item menuright-info" ><br />
<div class="menukachel">Galectin-3</div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/7/74/Aachen_14-10-13_Galectin-3-YFP_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device" style="color:black"><br />
<div class="menuright-item menuright-info" > <div class="menukachel"><i>WatsOn</i></div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/c/c7/Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
</ul></html><br />
<br />
<br />
'''"What's living on the table in front of you?"''' seems to be an easy question to answer: microoganisms. <br />
<br />
However, '''"''Which'' microorganisms are there?"''' is not such a trivial question anymore, especially in environments where you only want to have a non-pathogenic microflora or no microorganisms at all, such as lab spaces or health care institutions. <br />
<br />
'''Our project ''Cellock Holmes'' solves this case of identy.'''<br />
<br />
''Cellock Holmes'' encompasses our '''[https://2014.igem.org/Team:Aachen/Project/2D_Biosensor 2D biosensing technology]''' with which can detect bacteria on solid surfaces. ''Cellock Holmes'' is mainly devised to overcome the drawbacks of existing techniques and aims for a faster, inexpensive, open source, mobile and an easy to handle detection method.<br />
<br />
We demonstrate the '''proof-of-concept''' for ''Cellock Holmes'' by detecting an opportunistic pathogen ''Pseudomonas&nbsp;aeruginosa''. This gram-negative prokaryote infects patients with open wounds and burns as well as immunodeficient people. ''P.&nbsp;aeruginosa'' cells use quorum sensing to communicate with each other by secreting autoinducers into their environment. Using a Synthetic Biology (SynBio) approach, our team engineered sensor cells, so-called ''Cellocks'', that are able to detect the native autoinducer of ''P.&nbsp;aeruginosa'' and elicit a distinct fluorescence signal. Further, the response time of our sensor cells has been highly enhanced by the use of our special [https://2014.igem.org/Team:Aachen/Project/FRET_Reporter '''REACh construct'''].<br />
<br />
While ''Cellocks'' are specifically designed to detect ''P.&nbsp;aeruginosa'', with a modular composition of our genetic device, it is possible to easily engineer ''Cellocks'' to detect autoinducers of other bacteria. Even more flexibility is introduced when using our [https://2014.igem.org/Team:Aachen/Project/Gal3 '''alternative molecular approach using Galectin-3'''].<br />
<br />
Hand in hand with the biological side of our project, our IT crew built the [https://2014.igem.org/Team:Aachen/Project/Measurement_Device '''''WatsOn'''''] , our measurement device. ''WatsOn'' is able to read and analyze the fluorescent signal emitted by the 2D biosensor. For an Open access, we publish DIY construction manual and technical details of our devices.<br />
<br />
To learn more about the different parts of our 2D biosensor, click on the respective panels on the right.<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= The OD/F Device - A Project Spin-Off =<br />
<html><ul class="menuright-grid" style="width:215px;margin-left:20px;"><br />
<!-- Overview --><br />
<li style="margin-top:6px; margin-bottom:4px;margin-right:10px;"><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/OD/F_device" style="color:black"><br />
<div class="menuright-item menuright-info" > <div class="menukachel"><i>OD/F Device</i></div></div><br />
<div class="menuright-item menuright-img" style="background: url(https://static.igem.org/mediawiki/2014/0/0f/Aachen_14-10-10_ODF_Button_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
</ul></html><br />
<br />
<br />
Last but not the least, we provide the [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device]. This device is designed to '''measure optical density and fluorescence''' of a liquid sample in cuvettes. The measurement values are subsequently displayed to the user.<br />
<br />
The OD/F Device is as well designed in accordance with the '''Open Source''' principle and all [https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF technical details] as well as [https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#diy construction manuals] are published on our wiki. We demonstrate immediate application of the OD/F Device '''in schools, community labs and in the bio-hacker scene'''.<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/User:AnsgarUser:Ansgar2014-10-17T19:47:15Z<p>Ansgar: /* */</p>
<hr />
<div>__NOTOC__<br />
{{Team:Aachen/Header}}<br />
<center><br />
{{Team:Aachen/TeamMembersBanner}}<br />
</center><br />
== ==<br />
<br />
<html><img class="imgshadow" style="float: left;" src="https://static.igem.org/mediawiki/2014/4/4e/Aachen_team_member_Ansgar_01.jpg" width="200px" /></html><br />
<br />
'''Ansgar Niemöller - Computational Division'''<br />
<br />
''Computational Engineering Science (B.Sc. student)''<br />
<br />
I'm currently working as a student research assistant in the field of computational fluid dynamics at the Institute of Aerodynamics. Before, I worked as a tutor for the subject "Introduction to Programming".<br />
<br />
Regarding the iGEM competition, I'm excited about developing something new from scratch to the final product in collaboration with a dedicated team of interdisciplinary students. In my spare time I like to play the violin/piano/guitar and read thrillers, fantasy and science fiction book, as well as everything else that promises an interesting story.<br />
<br />
'''Mainly involved in...'''<br />
* WatsOn (hardware, casing design, GUI, software & setup)<br />
* OD/F Device<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/ODFTeam:Aachen/Notebook/Engineering/ODF2014-10-17T19:39:51Z<p>Ansgar: /* Combined Device */</p>
<hr />
<div>__NOTOC__<br />
{{Team:Aachen/Header}}<br />
{{Team:Aachen/Stylesheet}}<br />
= OD/F Device =<br />
<br />
On this page we present the technical details of our OD/F device. You can skip to specific chapters by clicking on the panels below:<br />
<center><br />
<html><ul class="team-grid" style="width:1064px;"><br />
<!-- Overview --><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#dev" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br><br />
<b>General Considerations</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/0f/Aachen_14-10-10_ODF_Button_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#od" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>OD Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/04/Aachen_Cuvette_button_v1_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#f" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>F Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/55/Aachen_17-10-14_Glowing_cuvette-ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#diy" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
Building the OD/F device has been an interesting task. On the one hand, this device has been developed mainly by the IT division of our team. On the other hand, we got assistance from biologists suffering from color-blindness, yet eager to help selecting the best color filters for the LEDs.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-10_ODF_Button_ipo.png|right|150px]]<br />
<br />
= General Considerations =<br />
<span class="anchor" id="dev"></span><br />
<br />
=== Measuring Principle ===<br />
<br />
The measuring principle for both optical density (OD) and fluorescence measurement is depicted below.<br />
For OD measurement we shine through the sample with an LED and a fixed width. A filter blocks any other light but 600&nbsp;nm. This way, the sensor mainly senses the 600&nbsp;nm light which is needed for OD600 measurement.<br />
<br />
For fluorescence measurement a similar approach is chosen. The filter again is used to block the exciting light from being sensed. That way only the emitted light from the fluorescence protein is measured.<br />
<br />
<center><br />
{{Team:Aachen/Figure|Aachen_odf_schemes.png|title=Measuring principle for OD/F device|subtitle=The left image shows the measurement approach for the optical density. The light shines through the sample with a fixed width. The right image shows the fluorescence measurement approach, exciting the fluorescence proteins from below and measuring from the side.|width=500px}}<br />
</center><br />
<br />
The details about selecting filters, code and a construction manual follows.<br />
<br />
=== Cuvette Holder ===<br />
The essential part of this device is the '''cuvette holder which has also been the most tricky thing to design'''. In short, we had to overcome a dilemma created by the need for an optimal height for the sensor:<br />
* A too low sensor position bears problems with sedimentation as well as light diffraction from the bottom of the cuvette.<br />
* The sensor has to be as close as possible to the bottom so that enough light shines through for the fluorescence measurement.<br />
<br />
As a compromise, we place the sensor at a height of 0.75&nbsp;cm, which, as it turned out later, is very close to one of the standard heights (0.2&nbsp;cm, 0.8&nbsp;cm, 1.2&nbsp;cm) of OD meters. It is important to note that despite the official minimal fill height of 1.2&nbsp;mL of the 1.5&nbsp;mL cuvettes we used, our device also works with filling volumens of just 1&nbsp;mL which in fact comes closer to reality in the lab.<br />
<br />
The final cuvette holder design is rendered from a [https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=raw stl-file] shown below:<br />
<br />
<html><br />
<center> <br />
<iframe src="https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=render<br />
" width=500px height=500px frameBorder="0"></iframe><br />
</center><br />
</html><br />
<br />
=== Light Filters ===<br />
Once the cuvette holder was finished, '''finding good filters was a tough challenge'''. A main goal throughout our project has been to choose easily available parts which are also inexpensive. Thus choosing Schott glasses as filters unfortunately could not be considered. Instead, filters used for illumination of theaters seemed to be an ideal solution.<br />
<br />
Especially for the fluorescence measurements of GFP finding the right filter has been a big problem. [http://parts.igem.org/Part:BBa_E0040 GFPmut3b] has a peak excitation at 501&nbsp;nm and a peak emission at 511&nbsp;nm - too close together for our low-cost filters to block the excitation light but transmit the emitted light. Thus, we chose to excite at around 485&nbsp;nm reduce false positive results below 500&nbsp;nm. However, no adequate filter for these settings could be found.<br />
Eventually, using the dark greenish [http://leefilters.com/lighting/colour-details.html#736 Twickenham Green] filter only little amounts of light shorter than 500&nbsp;nm gets through, reducing any bias from excitation illumination significantly. Unfortunately, the transmission rate of this filter is quite bad, 20% only, for the target emission wavelength of 511&nbsp;nm.<br />
<br />
For the OD measurement, too, we had similar problems. Indeed, due to our goal of inexpensive parts, we only filter light below 600&nbsp;nm. Further filters would lower the base transmittance and result in a loss of resolution which is not tolerable.<br />
Finally the red filter [http://leefilters.com/lighting/colour-details.html#019 Fire] permits over 70&nbspr; of the light to the sensor and is thus suited for our purposes.<br />
<br />
The following LED and filter combination has been chosen by us:<br />
<br />
{| class="wikitable"<br />
! Mode<br />
! Fluorescence Protein<br />
! Filter<br />
! Peak Excitation<br />
! Peak Emission<br />
|-<br />
| Fluorescence<br />
| GFPmut3b<br />
| Twickenham Green<br />
| 501nm<br />
| 511nm<br />
|-<br />
| Optical Density<br />
| --<br />
| Fire<br />
| 600nm<br />
| 600nm<br />
|}<br />
<br />
<html><br />
<sup><span class="anchor" id="fn1"></span>1. Quite a good random number generator from a computer-scientific perspective!<a href="#ref1" title="">↩</a></sup><br />
</html><br />
<br />
== Linearity ==<br />
<span class="anchor" id="lin"></span><br />
As for any scientifc device it is crucial to question the results one gets from the device. To ensure that our device actually works, we performed a set of measurements which are presented below.<br />
<br />
It is crucial that the selected hardware is mapping reality into the digital world of our $\mu$-Controller.<br />
In order to sense reality our setup uses a light to frequency sensor, [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf TSL235R-LF].<br />
The light to frequency sensor resembles the most to a photo transistor and thus is less sensible to temperature than a light dependant resistor.<br />
Additionally counting a frequency using interrupts seems to be easier and more accurate than using the analog to digital converter.<br />
<br />
Using a dilution series of purified [https://2011.igem.org/Team:Glasgow/LOV2 iLOV] we could determine the characteristic curve for the light sensor. Finally we can conclude that the sensor is linear as expected and shown in the [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf datasheet].<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Linearity iFG.PNG|title=Linearity of TSL235R-LF sensor|subtitle=Dilution series of GFP expressing E. coli showing linearity between fluorescence count and dilution.|width=700px}}<br />
</center><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
[[File:Aachen_Cuvette_button_v1_ipo.png|right|150px]]<br />
<br />
= OD Device =<br />
<span class="anchor" id="od"></span><br />
<br />
We are measuring optical density using the presented cuvette holder.<br />
Particularly for optical density measurement the amount of light shining through the sample is crucial.<br />
If there is too few light, there will be not enough light registered at the sensor, and the resolution of the measurement shrinks. This should be prevented.<br />
The chosen light to frequency sensor is reported to be very sensitive on the amount of light shining on it.<br />
There are reports of the sensor breaking when put into [https://www.sparkfun.com/products/9768 sunlight on a nice day], and not being sensitive at both high light or low light [http://kesslerarduino.wordpress.com/author/kevinmkessler/page/2/ conditions].<br />
<br />
Commercial systems usually use a laser beam to shine through the sample. For reasons of available components, we omitted this in our plans. Finding a suitable orange laser is not easy.<br />
Instead we chose an LED, which unfortunately scatters light, both in the spectrum as well as in all directions.<br />
Using a filter we reduce the effect of scattering.<br />
Finally the [http://leefilters.com/lighting/colour-details.html#019 Fire 019] filters solves our problems, but is far away from ideal.<br />
<br />
== Evaluation ==<br />
=== From Transmittance to True Optical Density ===<br />
At very low levels, uncorrected photometric determinations of cell densities show a decreasing proportionaility to actual cell density.<br />
<br />
This can also be observed using our OD measurement device.<br />
<br />
In general, photometric determination of bacterial concentrations depends primarily on light scattering, rather than light absorption. Therefore. often not absorption is measured, but transmittance. For this, the relationship between optical density (OD) and transmitted light $\frac{I_0}{I}$ exists as:<br />
<br />
$$ OD = \frac{I_0}{I} = \kappa \cdot c$$<br />
<br />
However, this equation is linear only in a certain range.<br />
While one can tackle this non-linearity by using dilutions of the culture, correcting the error systematically is another way to overcome this limitation.<br />
<br />
For our OD device we needed to correlate the transmittance measured by our sensor to an optical density anyway.<br />
Our team members from the deterministic sciences emphasized on the correction method, which was conducted according to Lawrence and Maier [1]:<br />
<br />
* The relative density ($RD$) of each sample in a dilution series is calculated using $\frac{min(dilution)}{dilution}$.<br />
* The uncorrected optical density is derived from the transmission T [%]: $OD = 2 - \log T$<br />
* Finally, the unit optical density is calculated as $\frac{OD}{TD}$.<br />
* The average of the stable unit optical densities is used to calculate the true optical density $ OD_{unit} \cdot RD $.<br />
This way, the correlation between transmission and true optical density can be computed.<br />
The derived function allows the conversion from transmission to optical density on our device and therefore calibrates our device.<br />
<br />
Lawrence and Maier could show that correcting transmittance this way, the corrected optical density shows a linear relationship between true optical density and dry weight in cell suspensions.<br />
<br />
In our experiments, we find in accordance to [1] that the correction majorly depends on the technical equipment used, especially the LED, sensor and cuvettes.<br />
While this at first sight looks disappointing, it is also expected:<br />
Transmittance is the fraction of light not absorbed by some medium relative to the cell-free and clear medium.<br />
However, the transmittance is not only dependent on the amount of cells in the way of the light's beam, but also how much light shines through the cuvette in which fashion, and in which fraction is received by the sensor in which angles.<br />
<br />
Using the above formula we performed this experiment for Pseudomonas putida and Saccharomyces cerevisiae.<br />
<br />
=== Experiments ===<br />
<br />
We performed several experiments during the development of the OD/F device.<br />
Finally we can relate the measured transmittance to the true Optical Density, and further, we can relate that true OD to the one of the photospectrometer in our lab.<br />
By doing to we can calibrate our device to meaningful values.<br />
<br />
We have done this according to the previous section for Pseudomonas putida and Saccharomyces cerevisiae.<br />
<br />
The final function for calculating the OD from the transmission calculated by our device can be calculated as<br />
<br />
$$ OD = f(T) \circ g(device) $$<br />
<br />
where $f$ transforms transforms transmittance to true optical density for our device, and $g$ transforms true optical density of our device into the true optical density of the photospectrometer. This way our device is calibrated according to the photospectrometer.<br />
<br />
==== ''Pseudomonas putida'' ====<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida iFG.PNG|title=True Optical Density to Transmittance plot for P. putida|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer|subtitle=|width=700px}}<br />
</center><br />
<br />
==== ''Saccharomyces cerevisiae'' ====<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer iFG.PNG|title=True Optical Density to Transmittance plot for S. cerivisiae|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer|subtitle=|width=700px}}<br />
</center><br />
<br />
From these plots it can first be seen that our device delivers robust and reproducible results for both procaryotes and eucaryotes.<br />
Also the function from transmittance to true od can be expressed as a lower polynomial function, making its calculation easily possible on a low-end device like a microcontroller.<br />
<br />
Most encouraging is that the function for relating the true OD of our device to the photospectrometer is, as seen by the regression coefficient, close together for both ''P. putida'' and ''S. cerivisae''. In fact, 3.416 and 3.461 are such close together, that the minor deviation could be just measuring inaccuracy.<br />
Therefore we fix the regression coefficient for converting true OD of our device to true OD of the photospectrometer to 3.432 .<br />
<br />
It is interesting to note, that also the function $f$ for the conversion of transmittance to true optical density fit nicely together, as can be seen in the following figure.<br />
<br />
<center><br />
{{Team:Aachen/Figure|Aachen_ODallstrains1.png|title=Transmission of different cell types at OD-values from 0.001-1|subtitle=The transmittance data of NIH&nbsp;3T3 cells align with the transmittance of ''P.&nbsp;putida'' and ''S.&nbsp;cerevisiae'' strains, even though the measured optical densities are lower by 1-2 orders of magnitude.|width=800px}}<br />
</center><br />
<br />
By this evaluation we have shown that our self-build optical density measurement device can compete with commercial systems, and moreover, is easy to calibrate by just calculating the true optical density.<br />
Therefore we present a device which measures accurately and is made of easily available parts at a low cost.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_17-10-14_Glowing_cuvette-ipo.png|right|150px]]<br />
<br />
= F device =<br />
<span class="anchor" id="f"></span><br />
<br />
Similarly to the OD measurement, the fluorescence is measured using the same cuvette holder. In fact, if one does not build a combined device, the only thing one is supposed to change is the cuvette holder. <br />
However, as for optical density measurement, a filter needs to be placed between led, sample and the light sensor.<br />
Selecting the filter has been troublesome.<br />
Either the tried filters had a good transmittance but did not screen for the correct wavelength, or they screened for the correct wavelength but showed bad transmittance.<br />
Finally we chose the [ Twickenham green] filter with bad transmittance, and raised the sampling interval from 1&nbsp;s to 4&nbsp;s to allow a distinct signal.<br />
This is by far not optimal, but delivers stable and reliable results.<br />
<br />
For fluorescence measurement we luckily are not that much relying on the optical density of the cell culture to measure (if the sample contains cells at all).<br />
We compared the values of our device against the [https://2014.igem.org/Team:Aachen/Notebook/LabEquipment platereader].<br />
<br />
== Evaluation ==<br />
Figure 1 shows the absolute measurements for both the platereader and our OD/F device. The abrupt jump at 50% concentration can be explained by a second dilution step and is prevalent in both devices.<br />
It can be seen that the platereader show a much higher difference between the GFP and non-GFP cell culture at a higher standard deviation.<br />
Another interesting metric is the difference between the GFP and non-GFP, which can be seen as the normalized fluorescence measure.<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachn 15-10-14 F platereader ODF iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant.|width=700px}}<br />
</center><br />
<br />
If one compares the results there, as in Figure 2, interesting observations can be made.<br />
First, both platereader and OD/F device show very similar results.<br />
The regression curves differ only in a linear factor.<br />
Most interestingly the general fit of the OD/F device to a linear function seems to be better than the platereader.<br />
Overall the linearity which has been observed earlier (in testing the general setup) could be verified.<br />
Therefore our do-it-yourself OD/F device can be used to determine fluorescence.<br />
At higher concentrations our OD/F device struggles regarding accuracy. However, this is also true for the platereader, but at a lower rate.<br />
<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 F platereader ODF2 iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant. A non-GFP expressing E. coli dilution has been used to normalize the GFP dilution series. A linear correlation can be seen.|width=700px}}<br />
</center><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How to Build Your Own Device =<br />
<span class="anchor" id="diy"></span><br />
== Technical Components ==<br />
<br />
While the casing and the cuvette holder are custom made, most of the parts are pre-made and only need to be bought. The previous section lists all needed parts. To get all these parts for creating your own OD/F device is easy by using the internet. A lot of companies all over the world are specialized in selling electronically equipment not only in the internet but also in local shops. However '''potential customers have a market access''' connected to the parts of building. <br />
<br />
Please find our custom parts for download below. Despite being custom parts, these are quite inenxpensive - so feel free to give our OD/F device a test :) ! <span class="anchor" id="ref2"></span><br />
<br />
* cuvette holder [https://2014.igem.org/Template:Team:Aachen/cuvette.stl?action=raw STL file]<br />
* casing single device [ SVG file]<br />
* casing combined device [ SVG file]<br />
* Arduino Code for single device [https://2014.igem.org/Template:Team:Aachen/arduino_single.ino?action=raw Sketchbook (.ino)]<br />
* Arduino Code for combined device [https://2014.igem.org/Template:Team:Aachen/arduino_combined.ino?action=raw Sketchbook (.ino)]<br />
<br />
You will need a special [http://www.exp-tech.de/images/product_images/description%20images/YWRobot/1602/LiquidCrystal_I2C1602V2.rar library] for the display, which can not be uploaded for legal reasons.<br />
<br />
<br />
<center><br />
'''All needed components their quantities and prices for creating your own OD/F device'''<br />
{| class="wikitable"<br />
! align="center" |'''OD/F device'''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|-<br />
! Quantity!!Component!! Costs [€] !! Costs [$] !! Final [€] !! Final [$] <br />
|-<br />
| 1||[http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600#.VDzwV9ysWBp Arduino UNO R3]||9.17||11.65||9.17||11.65 <br />
|-<br />
| 1||[http://www.mouser.de/ProductDetail/ams/TSL235R-LF/?qs=14HO7rLZPQsjmBHaoYCzkA%3D%3D TSL 235R]||2.47||3.14||2.47||3.14 <br />
|-<br />
| 1||[http://www.dx.com/p/16-x-2-character-lcd-display-module-with-blue-backlight-121356 Display 16x2]||2.58||3.28||2.58||3.28 <br />
|-<br />
| 1||[http://www.dx.com/p/lcd1602-adapter-board-w-iic-i2c-interface-black-works-with-official-arduino-boards-216865#.VDzxHNysWBp LCD Display to I2C]||1.57||1.99||1.57||1.99 <br />
|-<br />
| 1||[http://www.newark.com/multicomp/mcpas6b1m1ce3/switch-pushbutton-spst-400ma-125v/dp/12P7696?ost=1638329 Pushbutton]||2.90||3.69||2.90||3.69 <br />
|-<br />
| 1||[http://shop.leefiltersusa.com/Swatch-Book-Designers-Edition-SWB.htm filter leaflet]||1.57||2.00||1.57||2.00 <br />
|-<br />
| 20||[http://www.dx.com/p/diy-male-to-female-dupont-breadboard-jumper-wires-black-multi-color-40-pcs-10cm-339078#.VDzxSdysWBp jumper wire cables]||0.09||0.11||1.80||2.28 <br />
|-<br />
| 1||[http://www.dx.com/p/syb-170-mini-breadboard-for-diy-project-red-140101#.VDzyudysWBo small breadboard]||1.98||2.51||1.98||2.51 <br />
|-<br />
| 1||[http://www.dx.com/p/universal-ac-charger-w-dual-usb-output-for-iphone-ipad-ipod-white-us-plug-244893 power supply]||2.20||2.80||2.20||2.80<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
| 1||3&nbsp;mm acrylic glas (black)||7.98||10.14||7.98||10.14<br />
|-<br />
| 1||[http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-golden-10-piece-pack-143913 Prototype Universal Printed Circuit Board]||2.27||2.88||2.27||2.88<br />
|-<br />
| 1||[http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191o Male Headers]||2.14||2.72||2.14||2.72<br />
|- style="border-top: 2px solid #808080;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600&nbsp;nm]||0.94||1.19||0.94||1.19<br />
|-<br />
! -!!Total OD!!-!!-!! 46.01 !! 58.45 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
! -!!Total F!!-!!-!! 46.06 !! 58.52 <br />
|- style="border-top: 2px solid #808080;;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600nm]||0.94||1.19||0.94||1.19 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
! -!!Total OD/F!!-!!-!! 53.44 !! 67.89 <br />
|-<br />
|}<br />
</center><br />
<br />
For more detailed economical information about the OD/F project visit our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
== Breadboards ==<br />
<br />
=== Optical Density ===<br />
<br />
{{Team:Aachen/Figure|Aachen ODdevice Steckplatine.png|align=center|title=Breadboard of our OD device|subtitle=To build your own OD device, connect the parts as shown in this diagram.|width=900px}}<br />
<br />
If you want to build our OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#019 Fire 019]<br />
* LED: [http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== 600 nm] Dialight 550-2505F<br />
<br />
=== Fluorescence ===<br />
<br />
{{Team:Aachen/Figure|Aachen_Fdevice_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
If you want to build the OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#736 Twickenham Green 736]<br />
* LED: [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html 480 nm] NSPBR70BSS LED<br />
<br />
=== Combined Device ===<br />
Even though evaluation of the measurements have been performed in two separate device, it is fairly well possible to put everything into one casing.<br />
All you need to do is choosing another lid, and connect a second light to frequency sensor to your Arduino.<br />
Right at the bottom we present you the differences in wiring things up.<br />
Building the combined device is straight forward and very similar to the single device. You will need a slightly larger connector, a different lid for your case, and some more cables. The corresponding fritzing-layout is presented below.<br />
<br />
{{Team:Aachen/Figure|Aachen_ODF_combined_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
<br />
== Construction Steps ==<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_ODF_9.JPG|300px]] || First we want to assemble the casing. Once you have all the cut parts, you can start to assemble them. For cutting, we really recommend using a laser cutter.<br />
|-<br />
| [[File:Aachen_ODF_8.JPG|300px]] || Attach the cuvette-holder holders such that the cuvette holder is placed directly under the opening hole.<br />
|-<br />
| [[File:Aachen_ODF_4.JPG|300px]] || Next build the lid of the device. At this stage you can already mount the button. We recommend to glue any parts.<br />
|-<br />
| [[File:Aachen_ODF_3.JPG|300px]] || Your lid finally should look like this.<br />
|-<br />
| [[File:Aachen_ODF_11.JPG|150px]][[File:Aachen_ODF_10.JPG|150px]] || Next we want to assemble the cuvette holders. On the side with the square hole attach the light-to-frequency sensor with glue. For the OD case place the orange LED opposite, or for fluorescence, the LED in the hole in the bottom. Make sure to close any remaining open hole! Please attach a piece of filter foil (approx. $7 \times 7 mm^2$) from the inside in front of the light to frequency converter. Forceps is highly recommended.<br />
|-<br />
| [[File:Aachen_ODF_12.JPG|300px]] || Your final assembly should then look like this. Now place the correct filter into the cuvette holder, directly in front of the sensor. Make sure that the filter does not degrade due to the glue!<br />
|-<br />
| [[File:Aachen_ODF_14.JPG|300px]] || As the case can be used for both, fluorescence and OD measurement, we use a combined plug. Just three header rows (7 pins, 9pins for combined) and connect them as we did.<br />
|-<br />
| [[File:Aachen_ODF_1.JPG|300px]] || Now we're doing the wiring. Connect the Arduino 5V and GND such that you have one 5V and one GND line on your breadboard.<br />
|-<br />
| [[File:Aachen_ODF_2.JPG|300px]] || Then connect the button to 5V on the one side, and to GND via a resistor on the other side. Connect this side also to port __ on your Arduino. This will sense the blank. Next connect the display to the Arduino and our connector. See the Fritzing diagram at the bottom for a detailed information.<br />
|-<br />
| [[File:Aachen_ODF_13.JPG|300px]] || Now put everything into the case and ...<br />
|-<br />
| [[File:Aachen_ODF_6.JPG|300px]] || ... also place the cuvette holder into the device. Attach the display to the device lid and close the casing.<br />
|-<br />
| [[File:Aachen_ODF_7.JPG|300px]] || Congratulations! You have finished constructing your own OD/F device!<br />
|-<br />
| [[File:Aachen_zwei_Kuevetten.jpg|300px]] || ... or even the combined device!<br />
|}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
Lawrence, J. V., & Maier, S. (1977). Correction for the inherent error in optical density readings. Applied and Environmental Microbiology, 33(2), 482–484. Available at: http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=170707&tool=pmcentrez&rendertype=abstract.<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/ODFTeam:Aachen/Notebook/Engineering/ODF2014-10-17T19:39:20Z<p>Ansgar: /* Combined Device */</p>
<hr />
<div>__NOTOC__<br />
{{Team:Aachen/Header}}<br />
{{Team:Aachen/Stylesheet}}<br />
= OD/F Device =<br />
<br />
On this page we present the technical details of our OD/F device. You can skip to specific chapters by clicking on the panels below:<br />
<center><br />
<html><ul class="team-grid" style="width:1064px;"><br />
<!-- Overview --><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#dev" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br><br />
<b>General Considerations</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/0f/Aachen_14-10-10_ODF_Button_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#od" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>OD Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/0/04/Aachen_Cuvette_button_v1_ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#f" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>F Device</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/55/Aachen_17-10-14_Glowing_cuvette-ipo.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
<li style="width:220px;margin-left: 23px;margin-right: 23px;margin-bottom: 23px;margin-top: 23px;"><br />
<a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/ODF#diy" style="color:black"><br />
<div class="team-item team-info" style="width:214px;height:214px;" ><br />
<br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
<!-- click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%;width:214px;height:214px;"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
Building the OD/F device has been an interesting task. On the one hand, this device has been developed mainly by the IT division of our team. On the other hand, we got assistance from biologists suffering from color-blindness, yet eager to help selecting the best color filters for the LEDs.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-10_ODF_Button_ipo.png|right|150px]]<br />
<br />
= General Considerations =<br />
<span class="anchor" id="dev"></span><br />
<br />
=== Measuring Principle ===<br />
<br />
The measuring principle for both optical density (OD) and fluorescence measurement is depicted below.<br />
For OD measurement we shine through the sample with an LED and a fixed width. A filter blocks any other light but 600&nbsp;nm. This way, the sensor mainly senses the 600&nbsp;nm light which is needed for OD600 measurement.<br />
<br />
For fluorescence measurement a similar approach is chosen. The filter again is used to block the exciting light from being sensed. That way only the emitted light from the fluorescence protein is measured.<br />
<br />
<center><br />
{{Team:Aachen/Figure|Aachen_odf_schemes.png|title=Measuring principle for OD/F device|subtitle=The left image shows the measurement approach for the optical density. The light shines through the sample with a fixed width. The right image shows the fluorescence measurement approach, exciting the fluorescence proteins from below and measuring from the side.|width=500px}}<br />
</center><br />
<br />
The details about selecting filters, code and a construction manual follows.<br />
<br />
=== Cuvette Holder ===<br />
The essential part of this device is the '''cuvette holder which has also been the most tricky thing to design'''. In short, we had to overcome a dilemma created by the need for an optimal height for the sensor:<br />
* A too low sensor position bears problems with sedimentation as well as light diffraction from the bottom of the cuvette.<br />
* The sensor has to be as close as possible to the bottom so that enough light shines through for the fluorescence measurement.<br />
<br />
As a compromise, we place the sensor at a height of 0.75&nbsp;cm, which, as it turned out later, is very close to one of the standard heights (0.2&nbsp;cm, 0.8&nbsp;cm, 1.2&nbsp;cm) of OD meters. It is important to note that despite the official minimal fill height of 1.2&nbsp;mL of the 1.5&nbsp;mL cuvettes we used, our device also works with filling volumens of just 1&nbsp;mL which in fact comes closer to reality in the lab.<br />
<br />
The final cuvette holder design is rendered from a [https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=raw stl-file] shown below:<br />
<br />
<html><br />
<center> <br />
<iframe src="https://2014.igem.org/Team:Aachen/Notebook/Engineering/Cuvette3D?action=render<br />
" width=500px height=500px frameBorder="0"></iframe><br />
</center><br />
</html><br />
<br />
=== Light Filters ===<br />
Once the cuvette holder was finished, '''finding good filters was a tough challenge'''. A main goal throughout our project has been to choose easily available parts which are also inexpensive. Thus choosing Schott glasses as filters unfortunately could not be considered. Instead, filters used for illumination of theaters seemed to be an ideal solution.<br />
<br />
Especially for the fluorescence measurements of GFP finding the right filter has been a big problem. [http://parts.igem.org/Part:BBa_E0040 GFPmut3b] has a peak excitation at 501&nbsp;nm and a peak emission at 511&nbsp;nm - too close together for our low-cost filters to block the excitation light but transmit the emitted light. Thus, we chose to excite at around 485&nbsp;nm reduce false positive results below 500&nbsp;nm. However, no adequate filter for these settings could be found.<br />
Eventually, using the dark greenish [http://leefilters.com/lighting/colour-details.html#736 Twickenham Green] filter only little amounts of light shorter than 500&nbsp;nm gets through, reducing any bias from excitation illumination significantly. Unfortunately, the transmission rate of this filter is quite bad, 20% only, for the target emission wavelength of 511&nbsp;nm.<br />
<br />
For the OD measurement, too, we had similar problems. Indeed, due to our goal of inexpensive parts, we only filter light below 600&nbsp;nm. Further filters would lower the base transmittance and result in a loss of resolution which is not tolerable.<br />
Finally the red filter [http://leefilters.com/lighting/colour-details.html#019 Fire] permits over 70&nbspr; of the light to the sensor and is thus suited for our purposes.<br />
<br />
The following LED and filter combination has been chosen by us:<br />
<br />
{| class="wikitable"<br />
! Mode<br />
! Fluorescence Protein<br />
! Filter<br />
! Peak Excitation<br />
! Peak Emission<br />
|-<br />
| Fluorescence<br />
| GFPmut3b<br />
| Twickenham Green<br />
| 501nm<br />
| 511nm<br />
|-<br />
| Optical Density<br />
| --<br />
| Fire<br />
| 600nm<br />
| 600nm<br />
|}<br />
<br />
<html><br />
<sup><span class="anchor" id="fn1"></span>1. Quite a good random number generator from a computer-scientific perspective!<a href="#ref1" title="">↩</a></sup><br />
</html><br />
<br />
== Linearity ==<br />
<span class="anchor" id="lin"></span><br />
As for any scientifc device it is crucial to question the results one gets from the device. To ensure that our device actually works, we performed a set of measurements which are presented below.<br />
<br />
It is crucial that the selected hardware is mapping reality into the digital world of our $\mu$-Controller.<br />
In order to sense reality our setup uses a light to frequency sensor, [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf TSL235R-LF].<br />
The light to frequency sensor resembles the most to a photo transistor and thus is less sensible to temperature than a light dependant resistor.<br />
Additionally counting a frequency using interrupts seems to be easier and more accurate than using the analog to digital converter.<br />
<br />
Using a dilution series of purified [https://2011.igem.org/Team:Glasgow/LOV2 iLOV] we could determine the characteristic curve for the light sensor. Finally we can conclude that the sensor is linear as expected and shown in the [https://www.sparkfun.com/datasheets/Sensors/Imaging/TSL235R-LF.pdf datasheet].<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Linearity iFG.PNG|title=Linearity of TSL235R-LF sensor|subtitle=Dilution series of GFP expressing E. coli showing linearity between fluorescence count and dilution.|width=700px}}<br />
</center><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
[[File:Aachen_Cuvette_button_v1_ipo.png|right|150px]]<br />
<br />
= OD Device =<br />
<span class="anchor" id="od"></span><br />
<br />
We are measuring optical density using the presented cuvette holder.<br />
Particularly for optical density measurement the amount of light shining through the sample is crucial.<br />
If there is too few light, there will be not enough light registered at the sensor, and the resolution of the measurement shrinks. This should be prevented.<br />
The chosen light to frequency sensor is reported to be very sensitive on the amount of light shining on it.<br />
There are reports of the sensor breaking when put into [https://www.sparkfun.com/products/9768 sunlight on a nice day], and not being sensitive at both high light or low light [http://kesslerarduino.wordpress.com/author/kevinmkessler/page/2/ conditions].<br />
<br />
Commercial systems usually use a laser beam to shine through the sample. For reasons of available components, we omitted this in our plans. Finding a suitable orange laser is not easy.<br />
Instead we chose an LED, which unfortunately scatters light, both in the spectrum as well as in all directions.<br />
Using a filter we reduce the effect of scattering.<br />
Finally the [http://leefilters.com/lighting/colour-details.html#019 Fire 019] filters solves our problems, but is far away from ideal.<br />
<br />
== Evaluation ==<br />
=== From Transmittance to True Optical Density ===<br />
At very low levels, uncorrected photometric determinations of cell densities show a decreasing proportionaility to actual cell density.<br />
<br />
This can also be observed using our OD measurement device.<br />
<br />
In general, photometric determination of bacterial concentrations depends primarily on light scattering, rather than light absorption. Therefore. often not absorption is measured, but transmittance. For this, the relationship between optical density (OD) and transmitted light $\frac{I_0}{I}$ exists as:<br />
<br />
$$ OD = \frac{I_0}{I} = \kappa \cdot c$$<br />
<br />
However, this equation is linear only in a certain range.<br />
While one can tackle this non-linearity by using dilutions of the culture, correcting the error systematically is another way to overcome this limitation.<br />
<br />
For our OD device we needed to correlate the transmittance measured by our sensor to an optical density anyway.<br />
Our team members from the deterministic sciences emphasized on the correction method, which was conducted according to Lawrence and Maier [1]:<br />
<br />
* The relative density ($RD$) of each sample in a dilution series is calculated using $\frac{min(dilution)}{dilution}$.<br />
* The uncorrected optical density is derived from the transmission T [%]: $OD = 2 - \log T$<br />
* Finally, the unit optical density is calculated as $\frac{OD}{TD}$.<br />
* The average of the stable unit optical densities is used to calculate the true optical density $ OD_{unit} \cdot RD $.<br />
This way, the correlation between transmission and true optical density can be computed.<br />
The derived function allows the conversion from transmission to optical density on our device and therefore calibrates our device.<br />
<br />
Lawrence and Maier could show that correcting transmittance this way, the corrected optical density shows a linear relationship between true optical density and dry weight in cell suspensions.<br />
<br />
In our experiments, we find in accordance to [1] that the correction majorly depends on the technical equipment used, especially the LED, sensor and cuvettes.<br />
While this at first sight looks disappointing, it is also expected:<br />
Transmittance is the fraction of light not absorbed by some medium relative to the cell-free and clear medium.<br />
However, the transmittance is not only dependent on the amount of cells in the way of the light's beam, but also how much light shines through the cuvette in which fashion, and in which fraction is received by the sensor in which angles.<br />
<br />
Using the above formula we performed this experiment for Pseudomonas putida and Saccharomyces cerevisiae.<br />
<br />
=== Experiments ===<br />
<br />
We performed several experiments during the development of the OD/F device.<br />
Finally we can relate the measured transmittance to the true Optical Density, and further, we can relate that true OD to the one of the photospectrometer in our lab.<br />
By doing to we can calibrate our device to meaningful values.<br />
<br />
We have done this according to the previous section for Pseudomonas putida and Saccharomyces cerevisiae.<br />
<br />
The final function for calculating the OD from the transmission calculated by our device can be calculated as<br />
<br />
$$ OD = f(T) \circ g(device) $$<br />
<br />
where $f$ transforms transforms transmittance to true optical density for our device, and $g$ transforms true optical density of our device into the true optical density of the photospectrometer. This way our device is calibrated according to the photospectrometer.<br />
<br />
==== ''Pseudomonas putida'' ====<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida iFG.PNG|title=True Optical Density to Transmittance plot for P. putida|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Pputida OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer|subtitle=|width=700px}}<br />
</center><br />
<br />
==== ''Saccharomyces cerevisiae'' ====<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer iFG.PNG|title=True Optical Density to Transmittance plot for S. cerivisiae|subtitle=|width=700px}}<br />
</center><br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 Scer OD iFG.PNG|title=Corrolating the true optical density of the OD/F device to true optical density of the photospectrometer|subtitle=|width=700px}}<br />
</center><br />
<br />
From these plots it can first be seen that our device delivers robust and reproducible results for both procaryotes and eucaryotes.<br />
Also the function from transmittance to true od can be expressed as a lower polynomial function, making its calculation easily possible on a low-end device like a microcontroller.<br />
<br />
Most encouraging is that the function for relating the true OD of our device to the photospectrometer is, as seen by the regression coefficient, close together for both ''P. putida'' and ''S. cerivisae''. In fact, 3.416 and 3.461 are such close together, that the minor deviation could be just measuring inaccuracy.<br />
Therefore we fix the regression coefficient for converting true OD of our device to true OD of the photospectrometer to 3.432 .<br />
<br />
It is interesting to note, that also the function $f$ for the conversion of transmittance to true optical density fit nicely together, as can be seen in the following figure.<br />
<br />
<center><br />
{{Team:Aachen/Figure|Aachen_ODallstrains1.png|title=Transmission of different cell types at OD-values from 0.001-1|subtitle=The transmittance data of NIH&nbsp;3T3 cells align with the transmittance of ''P.&nbsp;putida'' and ''S.&nbsp;cerevisiae'' strains, even though the measured optical densities are lower by 1-2 orders of magnitude.|width=800px}}<br />
</center><br />
<br />
By this evaluation we have shown that our self-build optical density measurement device can compete with commercial systems, and moreover, is easy to calibrate by just calculating the true optical density.<br />
Therefore we present a device which measures accurately and is made of easily available parts at a low cost.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_17-10-14_Glowing_cuvette-ipo.png|right|150px]]<br />
<br />
= F device =<br />
<span class="anchor" id="f"></span><br />
<br />
Similarly to the OD measurement, the fluorescence is measured using the same cuvette holder. In fact, if one does not build a combined device, the only thing one is supposed to change is the cuvette holder. <br />
However, as for optical density measurement, a filter needs to be placed between led, sample and the light sensor.<br />
Selecting the filter has been troublesome.<br />
Either the tried filters had a good transmittance but did not screen for the correct wavelength, or they screened for the correct wavelength but showed bad transmittance.<br />
Finally we chose the [ Twickenham green] filter with bad transmittance, and raised the sampling interval from 1&nbsp;s to 4&nbsp;s to allow a distinct signal.<br />
This is by far not optimal, but delivers stable and reliable results.<br />
<br />
For fluorescence measurement we luckily are not that much relying on the optical density of the cell culture to measure (if the sample contains cells at all).<br />
We compared the values of our device against the [https://2014.igem.org/Team:Aachen/Notebook/LabEquipment platereader].<br />
<br />
== Evaluation ==<br />
Figure 1 shows the absolute measurements for both the platereader and our OD/F device. The abrupt jump at 50% concentration can be explained by a second dilution step and is prevalent in both devices.<br />
It can be seen that the platereader show a much higher difference between the GFP and non-GFP cell culture at a higher standard deviation.<br />
Another interesting metric is the difference between the GFP and non-GFP, which can be seen as the normalized fluorescence measure.<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachn 15-10-14 F platereader ODF iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant.|width=700px}}<br />
</center><br />
<br />
If one compares the results there, as in Figure 2, interesting observations can be made.<br />
First, both platereader and OD/F device show very similar results.<br />
The regression curves differ only in a linear factor.<br />
Most interestingly the general fit of the OD/F device to a linear function seems to be better than the platereader.<br />
Overall the linearity which has been observed earlier (in testing the general setup) could be verified.<br />
Therefore our do-it-yourself OD/F device can be used to determine fluorescence.<br />
At higher concentrations our OD/F device struggles regarding accuracy. However, this is also true for the platereader, but at a lower rate.<br />
<br />
<br />
<center><br />
{{Team:Aachen/Figure|align=center|Aachen 15-10-14 F platereader ODF2 iFG.PNG|title=Fluorescence Measurement comparison OD/F device and Platereader|subtitle=Comparison of a fluorescence measurement of our device and the platereader. Our OD/F device shows no significant. A non-GFP expressing E. coli dilution has been used to normalize the GFP dilution series. A linear correlation can be seen.|width=700px}}<br />
</center><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How to Build Your Own Device =<br />
<span class="anchor" id="diy"></span><br />
== Technical Components ==<br />
<br />
While the casing and the cuvette holder are custom made, most of the parts are pre-made and only need to be bought. The previous section lists all needed parts. To get all these parts for creating your own OD/F device is easy by using the internet. A lot of companies all over the world are specialized in selling electronically equipment not only in the internet but also in local shops. However '''potential customers have a market access''' connected to the parts of building. <br />
<br />
Please find our custom parts for download below. Despite being custom parts, these are quite inenxpensive - so feel free to give our OD/F device a test :) ! <span class="anchor" id="ref2"></span><br />
<br />
* cuvette holder [https://2014.igem.org/Template:Team:Aachen/cuvette.stl?action=raw STL file]<br />
* casing single device [ SVG file]<br />
* casing combined device [ SVG file]<br />
* Arduino Code for single device [https://2014.igem.org/Template:Team:Aachen/arduino_single.ino?action=raw Sketchbook (.ino)]<br />
* Arduino Code for combined device [https://2014.igem.org/Template:Team:Aachen/arduino_combined.ino?action=raw Sketchbook (.ino)]<br />
<br />
You will need a special [http://www.exp-tech.de/images/product_images/description%20images/YWRobot/1602/LiquidCrystal_I2C1602V2.rar library] for the display, which can not be uploaded for legal reasons.<br />
<br />
<br />
<center><br />
'''All needed components their quantities and prices for creating your own OD/F device'''<br />
{| class="wikitable"<br />
! align="center" |'''OD/F device'''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|-<br />
! Quantity!!Component!! Costs [€] !! Costs [$] !! Final [€] !! Final [$] <br />
|-<br />
| 1||[http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600#.VDzwV9ysWBp Arduino UNO R3]||9.17||11.65||9.17||11.65 <br />
|-<br />
| 1||[http://www.mouser.de/ProductDetail/ams/TSL235R-LF/?qs=14HO7rLZPQsjmBHaoYCzkA%3D%3D TSL 235R]||2.47||3.14||2.47||3.14 <br />
|-<br />
| 1||[http://www.dx.com/p/16-x-2-character-lcd-display-module-with-blue-backlight-121356 Display 16x2]||2.58||3.28||2.58||3.28 <br />
|-<br />
| 1||[http://www.dx.com/p/lcd1602-adapter-board-w-iic-i2c-interface-black-works-with-official-arduino-boards-216865#.VDzxHNysWBp LCD Display to I2C]||1.57||1.99||1.57||1.99 <br />
|-<br />
| 1||[http://www.newark.com/multicomp/mcpas6b1m1ce3/switch-pushbutton-spst-400ma-125v/dp/12P7696?ost=1638329 Pushbutton]||2.90||3.69||2.90||3.69 <br />
|-<br />
| 1||[http://shop.leefiltersusa.com/Swatch-Book-Designers-Edition-SWB.htm filter leaflet]||1.57||2.00||1.57||2.00 <br />
|-<br />
| 20||[http://www.dx.com/p/diy-male-to-female-dupont-breadboard-jumper-wires-black-multi-color-40-pcs-10cm-339078#.VDzxSdysWBp jumper wire cables]||0.09||0.11||1.80||2.28 <br />
|-<br />
| 1||[http://www.dx.com/p/syb-170-mini-breadboard-for-diy-project-red-140101#.VDzyudysWBo small breadboard]||1.98||2.51||1.98||2.51 <br />
|-<br />
| 1||[http://www.dx.com/p/universal-ac-charger-w-dual-usb-output-for-iphone-ipad-ipod-white-us-plug-244893 power supply]||2.20||2.80||2.20||2.80<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
| 1||3&nbsp;mm acrylic glas (black)||7.98||10.14||7.98||10.14<br />
|-<br />
| 1||[http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-golden-10-piece-pack-143913 Prototype Universal Printed Circuit Board]||2.27||2.88||2.27||2.88<br />
|-<br />
| 1||[http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191o Male Headers]||2.14||2.72||2.14||2.72<br />
|- style="border-top: 2px solid #808080;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600&nbsp;nm]||0.94||1.19||0.94||1.19<br />
|-<br />
! -!!Total OD!!-!!-!! 46.01 !! 58.45 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
! -!!Total F!!-!!-!! 46.06 !! 58.52 <br />
|- style="border-top: 2px solid #808080;;"<br />
| 1||[http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== LED 600nm]||0.94||1.19||0.94||1.19 <br />
|-<br />
| 1||[http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html LED 480&nbsp;nm]||0.99||1.26||0.99||1.26<br />
|-<br />
| 1||cuvette holder (3D print service of your choice)||6.44||8.18||6.44||8.18<br />
|-<br />
! -!!Total OD/F!!-!!-!! 53.44 !! 67.89 <br />
|-<br />
|}<br />
</center><br />
<br />
For more detailed economical information about the OD/F project visit our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
== Breadboards ==<br />
<br />
=== Optical Density ===<br />
<br />
{{Team:Aachen/Figure|Aachen ODdevice Steckplatine.png|align=center|title=Breadboard of our OD device|subtitle=To build your own OD device, connect the parts as shown in this diagram.|width=900px}}<br />
<br />
If you want to build our OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#019 Fire 019]<br />
* LED: [http://www.mouser.de/ProductDetail/Dialight/550-2505F/?qs=0KZIkTEbAAvqMAW7suDOXg== 600 nm] Dialight 550-2505F<br />
<br />
=== Fluorescence ===<br />
<br />
{{Team:Aachen/Figure|Aachen_Fdevice_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
If you want to build the OD device, make sure to use the following secret ingredients:<br />
* Filter: [http://www.leefilters.com/lighting/colour-details.html#736 Twickenham Green 736]<br />
* LED: [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html 480 nm] NSPBR70BSS LED<br />
<br />
=== Combined Device ===<br />
Even though evaluation of the measurements have been performed in two separate device, it is fairly well possible to put everything into one casing.<br />
All you need to do is choosing another lid, and connect a second light to frequency sensor to your Arduino.<br />
Right at the bottom we present you the differences in wiring things up.<br />
Building the combined device is straight forward and very similar to the single device. You will need a slightly larger connector, a different lid for your case, and some more cables. The changed fritzing-layout is presented below.<br />
<br />
{{Team:Aachen/Figure|Aachen_ODF_combined_Steckplatine.png|align=center|title=Our novel biosensor approach|subtitle=Expression of the TEV protease is induced by HSL. The protease cleaves the GFP-REACh fusion protein to elecit a fluorescence response.|width=900px}}<br />
<br />
== Construction Steps ==<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_ODF_9.JPG|300px]] || First we want to assemble the casing. Once you have all the cut parts, you can start to assemble them. For cutting, we really recommend using a laser cutter.<br />
|-<br />
| [[File:Aachen_ODF_8.JPG|300px]] || Attach the cuvette-holder holders such that the cuvette holder is placed directly under the opening hole.<br />
|-<br />
| [[File:Aachen_ODF_4.JPG|300px]] || Next build the lid of the device. At this stage you can already mount the button. We recommend to glue any parts.<br />
|-<br />
| [[File:Aachen_ODF_3.JPG|300px]] || Your lid finally should look like this.<br />
|-<br />
| [[File:Aachen_ODF_11.JPG|150px]][[File:Aachen_ODF_10.JPG|150px]] || Next we want to assemble the cuvette holders. On the side with the square hole attach the light-to-frequency sensor with glue. For the OD case place the orange LED opposite, or for fluorescence, the LED in the hole in the bottom. Make sure to close any remaining open hole! Please attach a piece of filter foil (approx. $7 \times 7 mm^2$) from the inside in front of the light to frequency converter. Forceps is highly recommended.<br />
|-<br />
| [[File:Aachen_ODF_12.JPG|300px]] || Your final assembly should then look like this. Now place the correct filter into the cuvette holder, directly in front of the sensor. Make sure that the filter does not degrade due to the glue!<br />
|-<br />
| [[File:Aachen_ODF_14.JPG|300px]] || As the case can be used for both, fluorescence and OD measurement, we use a combined plug. Just three header rows (7 pins, 9pins for combined) and connect them as we did.<br />
|-<br />
| [[File:Aachen_ODF_1.JPG|300px]] || Now we're doing the wiring. Connect the Arduino 5V and GND such that you have one 5V and one GND line on your breadboard.<br />
|-<br />
| [[File:Aachen_ODF_2.JPG|300px]] || Then connect the button to 5V on the one side, and to GND via a resistor on the other side. Connect this side also to port __ on your Arduino. This will sense the blank. Next connect the display to the Arduino and our connector. See the Fritzing diagram at the bottom for a detailed information.<br />
|-<br />
| [[File:Aachen_ODF_13.JPG|300px]] || Now put everything into the case and ...<br />
|-<br />
| [[File:Aachen_ODF_6.JPG|300px]] || ... also place the cuvette holder into the device. Attach the display to the device lid and close the casing.<br />
|-<br />
| [[File:Aachen_ODF_7.JPG|300px]] || Congratulations! You have finished constructing your own OD/F device!<br />
|-<br />
| [[File:Aachen_zwei_Kuevetten.jpg|300px]] || ... or even the combined device!<br />
|}<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== References ==<br />
Lawrence, J. V., & Maier, S. (1977). Correction for the inherent error in optical density readings. Applied and Environmental Microbiology, 33(2), 482–484. Available at: http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=170707&tool=pmcentrez&rendertype=abstract.<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOnTeam:Aachen/Notebook/Engineering/WatsOn2014-10-17T19:33:54Z<p>Ansgar: /* Construction Manual */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
<br />
This page contains technical details and construction manuals for our measurement device ''WatsOn'' as well as information on the software controlling the hardware. For more details, please click on the respective tile. For the image analysis software, please visit our [https://2014.igem.org/Team:Aachen/Notebook/Software/Measurarty ''Measurarty''] page.<br />
<br />
<html><br />
<center><br />
<ul class="team-grid" style="width:inherit;"><br />
<!-- Overview --><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Hardware</div><br />
<!-- <br />
<br/><br/><br />
<b>Hardware</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">Software</div><br />
<!-- <br/><br><br />
<b>Software</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
<li><a href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy" style="color:black"><br />
<div class="team-item team-info" ><br />
<div class="menukachel">DIY</div><br />
<!-- <br/><br/><br />
<b>DIY</b><br />
<br/><br/><br />
click for more information --><br />
</div><br />
<div class="team-item team-img" style="background: url(https://static.igem.org/mediawiki/2014/9/9e/Aachen_14-10-15_DIY_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"> </div></a><br />
</li><br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Hardware =<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/FigureFloat|Aachen_Device_11.jpg|title=''WatsOn''|subtitle= |width=200px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen on the left was built from laser cut acrylic glass. A detailed description of the assembly is described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy Build your own ''WatsOn].<br />
<br />
''Download the laser cutting plan here: [https://2014.igem.org/File:Aachen_WatsOn_laser_cut.svg.zip Download] (for acrylic glass with a height of 6&nbsp;mm)<br />
<br />
<br />
The connection between the different electronical elements is visualized below.<br />
<br />
<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Hardware_Graphics.png|title=Eletronical components||width=750px}}<br />
<br />
* '''Raspberry Pi''' : The Raspberry Pi is a small single-board computer which runs a Linux operating system from an inserted SD card. The steps which are required to set up a fully working system are described in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup DIY section] of this page. The main purpose of the Raspberry Pi is to run the software described above, to control the attached camera and to show the GUI on the display. The big advantage of this board is that it is very powerful, cheap and therefore perfectly fit for our needs.<br />
<br />
* '''Raspberry Pi camera''': The camera is directly connected to the Raspberry Pi board and takes the images of the chips.<br />
<br />
* '''Arduino''': The Arduino board is also a single-board computer with less computing power than the Raspberry Pi but with a greater focus on controlling electronical components. Therefore, it is used to control the LEDs and the Peltier heater.<br />
<br />
* '''Relay''': The 2-channel relay works like two light switches which are either turned on or off. They control the 450&nbsp;nm and 480&nbsp;nm LEDs. The channels are connected and turned on and off by the Arduino board.<br />
<br />
* '''Peltier element''': A Peltier component transforms an applied power into a temperature gradient which leads to a hot surface on one side of the element and a cooler one on the other side. The Peltier element connected to the aluminum block heats up the interior of the device to incubate the sensing cells at 37°C.<br />
<br />
* '''USB WiFi stick''': The USB WiFi stick connects the Raspberry Pi to a local network.<br />
<br />
* '''Display''': An 8-digit display is connected to the Arduino board and shows the current interior temperature<br />
<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_010.png|title=010|subtitle=|width=70px}}<br />
{{Team:Aachen/FigureFloatRight|Aachen_Filter_505.png|title=505|subtitle=|width=70px}}<br />
<br />
* '''Filter slides''': To block the undesired wavelenghts emitted from the LEDs a filter slide is placed in front of the camera. This step is taken to get a clear fluorescence signal from the chips. The characteristic of the filter slide is selected depending on the frequency of the LEDs which are either 450&nbsp;nm or 480&nbsp;nm ones. We used '505 Sally Green' for the 450&nbsp;nm and '010 Medium Yellow' for the 480&nbsp;nm LEDs. The filters are shown on the right.<br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
= Software =<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
The software consists of several parts which provide a user interface and manage the connection to the hardware.<br />
The scheme below shows the different components of the software:<br />
<br />
<br />
[[File:Aachen_Device_GUI.png|center|800px]]<br />
<br />
===GUI (Graphical User Interface)===<br />
On the graphical interface, the user can take images and time lapses of the chips inside the device. The software is written in C++. It makes use of the [http://qt-project.org/ Qt-Library] to provide a clear interface and a comfortable way to manage various software aspects such as handling images and establishing network connections. An advantage resulting from the utilization of Qt-Library is the multi-platform support for Windows, MacOS and Linux. Additionally, Qt is available with an Open Source license which can be used for free. The software can be used locally on the Raspberry Pi or remotely from a device in the same network.<br />
<br />
Features of the GUI include:<br />
* Change settings (1):<br />
** The user can specify the iso-value and the shutter speed of the camera.<br />
** Custom settings can be labeled and saved for future reference.<br />
** Existing settings can be updated or deleted unless they are default configurations.<br />
** The excitation wavelength of GFP (480&nbsp;nm) and iLOV (450&nbsp;nm) can be selected.<br />
* Take image/s (2): <br />
** The GUI offers two possibilities to take images:<br />
*** Take a single image with the active camera settings.<br />
*** Take time lapse shootings with the active camera settings and the specified interval. When activated, the images are saved automatically to a user defined directory with ascending filenames.<br />
** The last image which was taken by the camera is shown in the GUI, information containing the time stamp and used camera settings are displayed next to the image (3). Previous images can be selected with the arrow buttons.<br />
* Analyze image (4):<br />
** The image is analyzed by an image segmentation algorithm and shows whether the pathogen ''Pseudomonas&nbsp;aeruginosa'' is present on the chip or not<br />
<br />
===Backend===<br />
The backend is a software that runs on the Raspberry Pi and is responsible for the connection between the GUI and the hardware. If the user interface is executed on another device, e.g. a notebook, it has to be in the same network as the Raspberry Pi. The backend works like a web server that receives commands and acts according to the submitted parameters. It can take images and returns them to the GUI.<br />
<br />
Before an image is taken, the backend turns on the specified LEDs by sending a command to the connected Arduino board. Afterwards, the LEDs are turned off using the same mechanism. These steps are repeated in the given interval for a time lapse shooting.<br />
<br />
''Download the backend sourcecode:'' [https://2014.igem.org/File:Aachen_Device_Backend.zip Download]<br />
<html><br></html><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_SoftwareBackend.png|title=Sample connection between GUI and backend for taking an image|subtitle= |width=900px}}<br />
<br />
===Arduino===<br />
The software on the Arduino board sets the power and thus controls the temperature of the Peltier heater. The power is set by evaluating the received values from the temperature sensors for the interior of the device and the aluminum block. Additionally, the Arduino receives commands from the Raspberry Pi to turn the LEDs on and off.<br />
<br />
''Download the Arduino sourcecode:'' [https://static.igem.org/mediawiki/2014/1/1e/Aachen_WatsOn_arduino.ino.zip Download] <br />
<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_DIY_Cellocks_iNB.png|right|150px]]<br />
<br />
= DIY: How To Build Your Own ''WatsOn'' =<br />
<span class="anchor" id="watsondiy"></span><br />
<br />
==Technical Components==<br />
If you want to create your own ''WatsOn'' first take a look at the following list of necessary components. All parts except the laser cut acrylic glass can be readily purchased and do not require further adjustments.<br />
<br />
'''All needed components, their quantities and prices for creating your own ''WatsOn'''''<br />
{| class="wikitable sortable"<br />
! align="center" |'''''WatsOn'''''<br />
!! align="center" | <br />
!! align="center" |''' 1€='''<br />
!! align="center" |''' $1.27'''<br />
!! align="center" |''' on 14/10/2014'''<br />
!! align="center" | <br />
|- class="unsortable"<br />
!Quantity !! Component !! Costs [€]!! Costs [$]!! Final [€]!! Final [$]<br />
|-<br />
| 1|| [http://www.prolighting.de/Zubehoer/Farbfilter/Lee-Filter_HT/Lee-Filters_Musterheft_Designer_Edition_i174_3965_0.htm filter slides] (medium yellow 010, sally green 505)||1.57||2.00||1.57||2.00<br />
|-<br />
| 1|| [http://www.dx.com/p/uno-r3-development-board-microcontroller-mega328p-atmega16u2-compat-for-arduino-blue-black-215600 Arduino UNO R3]||9.17||11.65||9.17||11.65<br />
|-<br />
| 1|| [http://www.dx.com/p/arduino-2-channel-relay-shield-module-red-144140 2-channel relay shield]||2.72||3.46||2.72||3.46<br />
|-<br />
| 40||jumper-wire cable||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.dx.com/p/2-54mm-1x40-pin-breakaway-straight-male-header-10-piece-pack-144191 40er male header (10-Piece Pack)]||2.14||2.72||2.14||2.72<br />
|-<br />
| 1|| [http://www.dx.com/p/jtron-2-54mm-40-pin-single-row-seat-single-row-female-header-black-10-pcs-278953 40er female header (10-Piece Pack)]||2.05||2.60||2.05||2.60<br />
|-<br />
| 1|| [http://www.dx.com/p/prototype-universal-printed-circuit-board-breadboard-brown-5-piece-pack-130926 circuit board]||2.35||2.99||2.35||2.99<br />
|-<br />
| 1|| [http://www.newark.com/pro-signal/rp006/audio-video-cable-hdmi-1m-black/dp/96T7446 HDMI cable]||1.47||1.87||1.47||1.87<br />
|-<br />
| 1|| [http://www.dx.com/p/hd-053-high-speed-usb-2-0-7-port-hub-black-174817 7 port USB hub]||5.28||6.71||5.28||6.71<br />
|-<br />
| 1||[http://www.dx.com/p/dx-original-ultra-mini-usb-2-0-802-11n-b-g-150mbps-wi-fi-wlan-wireless-network-adapter-black-252716 USB WiFi stick]||4.21||5.35||4.21||5.35<br />
|-<br />
| 1||USB mouse and keyboard||9.84||12.50||9.84||12.50<br />
|-<br />
| 1|| [http://corporate.evonik.com/en/products/pages/default.aspx case acrylic glass XT 6mm~0.5<sup>2</sup>]||39.88||50.65||39.88||50.65<br />
|-<br />
| 1||spray paint for acrylic glass||5.15||6.54||5.15||6.54<br />
|-<br />
| 1|| [http://www.newark.com/raspberry-pi/raspberry-modb-512m/raspberry-pi-model-b-board/dp/68X0155 Raspberry Pi model B board]||27.56||35.00||27.56||35.00<br />
|-<br />
| 1||[http://www.newark.com/raspberry-pi/rpi-camera-board/add-on-brd-camera-module-raspberry/dp/69W0689 Raspberry Pi camera module]||19.69||25.00||19.69||25.00<br />
|-<br />
| 1||[http://www.pollin.de/shop/dt/NzUwOTc4OTk-/ 7” display]||39.35||49.97||39.35||49.97<br />
|-<br />
| 1||[http://www.dx.com/p/diy8-x-seven-segment-displays-module-for-arduino-595-driver-250813 8-segment display]||3.04||3.86||3.04||3.86<br />
|-11.81<br />
| 2|| [http://www.dx.com/p/arduino-dht11-digital-temperature-humidity-sensor-138531 digital temperature sensor DHT-22]||5.91||7.50||11.82||15.00<br />
|-<br />
| 1 ||aluminum block 100x100x15 mm||11.20||14.23||11.20||14.23<br />
|-<br />
| 1|| [http://www.dx.com/p/tec1-12706-semiconductor-thermoelectric-cooler-peltier-white-157283 Peltier heater 12V 60W]||3.54||4.49||3.54||4.49<br />
|-<br />
| 1||power supply||25.90||32.89||25.90||32.89<br />
|-<br />
| 6|| [http://www.leds.de/Low-Mid-Power-LEDs/SuperFlux-LEDs/Nichia-Superflux-LED-blau-3lm-100-NSPBR70BSS.html superflux LED 480nm]||0.99||1.26||5.94||7.54<br />
|-<br />
| 16||LED 450nm||0.37||0.47||5.94||7.54<br />
|-<br />
| 2|| Resistor 40 Ohm||0.12||0.15||0.24||0.30<br />
|-<br />
| 4|| Resistor 100 Ohm||0.12||0.15||0.48||0.60<br />
|-<br />
| 1||cupboard button||0.98||1.24||0.98||1.24<br />
|- class="sortbottom" style="background:#cfe2f4; border-top:2px #808080 solid; font-weight:bold"<br />
| -||Total||-||-||243.88||309.70<br />
|}<br />
<br />
You can find more economical information about ''WatsOn'' and the project on our [https://2014.igem.org/Team:Aachen/PolicyPractices/Economics Economical View] page.<br />
<br />
<br />
For building our '''''WatsOn''''' we used some tools that are not included in the list of necessary components because we assume that they are already available. We used a soldering iron to solder the resistors to the LEDs and fix the headers on the mount of the LEDs. For building electrical circuits our multimeter was very helpful. Furthermore, we applied special glue for plastic to hold the acrylic glass in place. All other components were fixed with tape or hot glue which is versatile and can be removed quickly during alignment of components.<br />
<br />
==Breadboard==<br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Fritzing.png|align=center|title=Wiring of our device||width=900px}}<br />
<br />
==Construction Manual==<br />
<br />
{| class="wikitable centered"<br />
|-<br />
| [[File:Aachen_Device_1.jpg|300px]] || Start building your own ''WatsOn'' by assembling the base plate, the sides and the interior wall.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_2_3.jpg|350px] [File:Aachen_Device_.3jpg|300px]] || Fix the Peltier heater on the back of the aluminum block and place it in the hole of the interior wall.<html><br/></html>Arrange the 4x4 450&nbsp;nm LEDs and the 2x3 480&nbsp;nm LEDs<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_7.jpg|350px]] || Assemble the camera holder with the camera and the corresponding filter slide on the lower part. Above the camera, you can place the temperature sensor for measuring the indoor temperature. Finally, put the fan on the back of the camera holder. <br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_8.jpg|350px]] || Connect the electronic components on the outside and the inside according to the wiring diagramm.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_4.jpg|350px]] || Put together the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_9.jpg|350px]] || Position the front panel and insert the drawer.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_10.jpg|350px]] || Place the temperature sensor measuring the aluminum block temperature directly on the block and put the back panel in front of it.<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_6.jpg|350px]] || Setup the power supply<sup>[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#fn1 1]</sup> and connect all devices to either 5&nbsp;V or 12&nbsp;V. The placed it into a aluminium casing for security reasons. Plug the USB hub connector into the Raspberry. If you use the GUI locally on the device a mouse and a keyboard need to be attached to the USB hub to navigate on the user interface. Follow the steps described in the section [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pisetup Raspberry Pi - Setup].<br />
|-style="border-top: 2px #808080 solid;"<br />
| [[File:Aachen_Device_11.jpg|350px]] || Mount the device on top of the power supply casing. Add the display and apply some stickers to enjoy your custom-made ''WatsOn''.<br />
|}<br />
<br />
<br />
By German law only certified electricians may work on 230&nbsp;V electronics. Therefore, the electrical workshop at our institute created the power supply specifically for our design.<br />
<br />
== Raspberry Pi - Setup ==<br />
<span class="anchor" id="pisetup"></span><br />
<br />
In order to get a running linux system on the Raspberry Pi which includes all required components and configurations the following steps have to be considered:<br />
<br />
* The Raspberry Pi needs an SD card on which the operating system will be installed. Go to the [http://www.raspberrypi.org/downloads/ download page of the Raspberry Pi Foundation] and select an operating system of your choice - we used Raspbian - or just download the NOOBS package which offers all different operating systems during setup. <br />
* Follow the specific image installation guidelines to install the downloaded system onto your SD card.<br />
* Once finished, insert the SD card in the slot on the Raspberry Pi board, connect a monitor over HDMI, plug in a USB mouse and keyboard and start the Raspberry Pi by connecting it to the micro USB power supply. Follow the installation instructions; these should be straightforward. After the installation you will be shown the desktop of your new system.<br />
* To be able to use the Raspberry Pi camera you need activate it over a terminal. Search for a desktop icon labeled "LxTerminal", double click it and a terminal will appear where you can enter commands which will be executed after you press Return. Enter "raspi-config", press Return and activate the camera with the displayed corresponding option.<br />
* Download the source files for the backend server and the graphical user interface (GUI). To be able to compile the GUI, you need to install the Qt5-libraries. Follow [http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi this guide] on how to get the Qt source code, compile it and setup your environment correctly. Make sure that your Raspberry Pi is constantly running, since this process takes some time and must not be interrupted.<br />
* With the Qt-libraries installed, open a terminal and change to the directory where you put the source for the GUI (command "cd [path to source]"). Call "qmake" followed by "make" and you will start compilation of the program. When finished, you can launch the GUI with the command "./igem_GUI".<br />
* The backend - that will establish the connection between hardware and the user interface - requires you to install additional packages for Python which is a high-level general-purpose programming language and an interpreter that will ship with your system. Open the README in the "Backend" directory and follow the instructions.<br />
* You now should be able to launch the backend by calling "python takeimageserver.py &" from the terminal.<br />
* Now start the GUI. An input dialog will show up asking you to provide the IP address of the backend server or the Raspberry Pi, respectively. Since you are running the GUI and the backend on the same device, just press Enter to select the default entry which is the IP of the local host. After a few seconds, when the connection to the backend server has been established, the user interface gets enabled and you can start to take images and time lapse shootings. If the image is not focused you need to adjust the lense in front of the camera by rotating it. For the full list of features refer to the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware Software section] of this page.<br />
<br />
In case you want to run the GUI on a remote machine, e.g. your notebook, follow these additional steps:<br />
<br />
* Install the [http://qt-project.org/ Qt-libraries and QtCreator] on your system. This is just an installation - you do not have to compile it. Get the source code for the GUI and open the ".pro" file with QtCreator. After importing the project and selecting a built directory, click the green arrow on the left side. Compilation is started and as soon as it is finished the GUI will start. <br />
* In order to be able to connect to the Raspberry Pi you need to be connected to the same network. Therefore, make sure the Raspberry Pi USB wifi stick is working properly (see [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#pitrouble Troubleshooting & Useful Links]), and that you reside in the same network. Start the backend server on the Raspberry Pi. It will print the IP address on start up which you must enter in the GUI on your device running the GUI. Now you should be able to use all the features as if running the GUI on the Raspberry Pi.<br />
<br />
=== Troubleshooting & Useful Links ===<br />
<span class="anchor" id="pitrouble"></span><br />
<br />
* Display resolution: If your connected display is not working properly you may refer to<br />
** http://elinux.org/RPiconfig#Video<br />
** http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679<br />
<br />
* Network configuration:<br />
** http://www.raspberrypi.org/documentation/configuration/wireless/README.md<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/User:AnsgarUser:Ansgar2014-10-17T19:22:28Z<p>Ansgar: /* */</p>
<hr />
<div>__NOTOC__<br />
{{Team:Aachen/Header}}<br />
<center><br />
{{Team:Aachen/TeamMembersBanner}}<br />
</center><br />
== ==<br />
<br />
<html><img class="imgshadow" style="float: left;" src="https://static.igem.org/mediawiki/2014/4/4e/Aachen_team_member_Ansgar_01.jpg" width="200px" /></html><br />
<br />
'''Ansgar Niemöller - Computational Division'''<br />
<br />
''Computational Engineering Science (B.Sc. student)''<br />
<br />
I'm currently working as a student research assistant in the field of computational fluid dynamics at the Institute of Aerodynamics. Before, I worked as a tutor for the subject "Introduction to Programming".<br />
<br />
Regarding the iGEM competition, I'm excited about developing something new from scratch to the final product in collaboration with a dedicated team of interdisciplinary students. In my spare time I like to play the violin/piano/guitar and read thrillers, fantasy and science fiction book, as well as everything else that promises an interesting story.<br />
<br />
'''Mainly involved in...'''<br />
* WatsOn (hardware, casing design, GUI, software)<br />
* OD/F Device<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/User:AnsgarUser:Ansgar2014-10-17T19:15:39Z<p>Ansgar: </p>
<hr />
<div>__NOTOC__<br />
{{Team:Aachen/Header}}<br />
<center><br />
{{Team:Aachen/TeamMembersBanner}}<br />
</center><br />
== ==<br />
<br />
<html><img class="imgshadow" style="float: left;" src="https://static.igem.org/mediawiki/2014/4/4e/Aachen_team_member_Ansgar_01.jpg" width="200px" /></html><br />
<br />
'''Ansgar Niemöller - Computational Division'''<br />
<br />
''Computational Engineering Science (B.Sc. student)''<br />
<br />
I'm currently working as a student research assistant in the field of computational fluid dynamics at the Institute of Aerodynamics. Before, I worked as a tutor for the subject "Introduction to Programming".<br />
<br />
Regarding the iGEM competition, I'm excited about developing something new from scratch to the final product in collaboration with a dedicated team of interdisciplinary students. In my spare time I like to play the violin/piano/guitar and read thrillers, fantasy and science fiction book, as well as everything else that promises an interesting story.<br />
<br />
'''Mainly involved in...'''<br />
* WatsOn (hardware, GUI, software)<br />
* OD/F Device<br />
* <br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T17:54:16Z<p>Ansgar: /* Software */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
The device can incubate the sensing cells, take images and analyze them.<br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/21/Aachen_14-10-16_Measurarty_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use ''WatsOn''|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor chip for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Hardware_button_iNB.png|right|150px]]<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components|subtitle=From top left to bottom right: Arduino, Peltier element, Raspberry Pi, relay, cables, MOSFET, temperature display, camera, LEDs and resistors.|width=520px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass.<br />
<br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<br />
<br />
A detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
<!-- [[File:Aachen_14-10-16_Software_button_iNB.png|right|150px]] --><br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
{{Team:Aachen/FigureDual|Aachen_WatsOn_igem_GUI_originalImage.png|Aachen_WatsOn_igem_GUI_analyzedImage.png|title1=image taken with the camera |title2=analyzed image |subtitle1= |subtitle2= |width=500px}}<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Measurarty_button_iNB.png|right|150px]]<br />
<br />
== Measurarty ==<br />
<span class="anchor" id="watsonmeasurarty"></span><br />
<center><br />
{{Team:Aachen/Figure|Aachen_srm_regions_3.PNG|title=SRM component of our image analysis component ''Measurarty''|subtitle=SRM is one of the core components of our image analysis approach. This image shows the different regions created.|width=500px}}<br />
</center><br />
<br />
Measurarty is the '''image analysis software''' of our device and is designed to allow an automatic segmentation and classification of our '''agar chip pictures'''.<br />
Therefore, it expects as input an image from WatsOn, and produces an output image with pathogenic regions marked in red.<br />
<br />
This component mainly focuses on recognizing pathogens early, such that pure thresholding is not necessary.<br />
We therefore designed a pipeline and established a smoothness index to make statements about the pathogenity of a chip as early as possible, but also with as much certainty as possible.<br />
<br />
A sample output of the segmentation is presented below, showing that the pipeline works as intended.<br />
<br />
{{Team:Aachen/FigureDual|Aachen_K131026_Pseudomonas_aeruginosa_detection.gif|Aachen_Pseudomonas_aeruginosa_Measurarty_slower.gif|title1=Detection of ''Pseudomonas aeruginosa'' with K131026|title2=Optimized detection of ''Pseudomonas aeruginosa"" using Measurarty|subtitle1=Direct detection of ''Pseudomonas aeruginosa'' on sensor chips. Sensor cells used were K131026.|subtitle2=Measurarty is able to reliably identify the fluorescence response of the sensor cells which is produced in a response to ''Pseudomonas aeruginosa''.|width=480px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing ''WatsOn'' our goal was to build a system that<br />
*incubates the sensing cells and the sampling chip <br />
*illuminates the chip with the right excitation wavelength for our fluorescence proteins<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*is portable and fast in analyzing the images<br />
<br />
With our final device we achieved all goals we set in the beginning. WatsOn is housed in a closed casing and is able to take images and time lapse shooting using LEDs with required wavelengths, analyze the image and visualize the result.<br />
<br />
All technical details including laser cutting plans, the list of needed components, sourcecodes for the different software and a building instruction are open-source and available on our wiki[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn].<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T17:53:45Z<p>Ansgar: /* Hardware */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
The device can incubate the sensing cells, take images and analyze them.<br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/21/Aachen_14-10-16_Measurarty_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use ''WatsOn''|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor chip for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Hardware_button_iNB.png|right|150px]]<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components|subtitle=From top left to bottom right: Arduino, Peltier element, Raspberry Pi, relay, cables, MOSFET, temperature display, camera, LEDs and resistors.|width=520px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass.<br />
<br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<br />
<br />
A detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
<!-- [[File:Aachen_14-10-16_Software_button_iNB.png|right|150px]] --><br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
{{Team:Aachen/FigureDual|Aachen_WatsOn_igem_GUI_originalImage.png|Aachen_WatsOn_igem_GUI_analyzedImage.png|title1=image taken with the camera |title2=analyzed image |subtitle1= |subtitle2= |width=450px}}<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Measurarty_button_iNB.png|right|150px]]<br />
<br />
== Measurarty ==<br />
<span class="anchor" id="watsonmeasurarty"></span><br />
<center><br />
{{Team:Aachen/Figure|Aachen_srm_regions_3.PNG|title=SRM component of our image analysis component ''Measurarty''|subtitle=SRM is one of the core components of our image analysis approach. This image shows the different regions created.|width=500px}}<br />
</center><br />
<br />
Measurarty is the '''image analysis software''' of our device and is designed to allow an automatic segmentation and classification of our '''agar chip pictures'''.<br />
Therefore, it expects as input an image from WatsOn, and produces an output image with pathogenic regions marked in red.<br />
<br />
This component mainly focuses on recognizing pathogens early, such that pure thresholding is not necessary.<br />
We therefore designed a pipeline and established a smoothness index to make statements about the pathogenity of a chip as early as possible, but also with as much certainty as possible.<br />
<br />
A sample output of the segmentation is presented below, showing that the pipeline works as intended.<br />
<br />
{{Team:Aachen/FigureDual|Aachen_K131026_Pseudomonas_aeruginosa_detection.gif|Aachen_Pseudomonas_aeruginosa_Measurarty_slower.gif|title1=Detection of ''Pseudomonas aeruginosa'' with K131026|title2=Optimized detection of ''Pseudomonas aeruginosa"" using Measurarty|subtitle1=Direct detection of ''Pseudomonas aeruginosa'' on sensor chips. Sensor cells used were K131026.|subtitle2=Measurarty is able to reliably identify the fluorescence response of the sensor cells which is produced in a response to ''Pseudomonas aeruginosa''.|width=480px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing ''WatsOn'' our goal was to build a system that<br />
*incubates the sensing cells and the sampling chip <br />
*illuminates the chip with the right excitation wavelength for our fluorescence proteins<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*is portable and fast in analyzing the images<br />
<br />
With our final device we achieved all goals we set in the beginning. WatsOn is housed in a closed casing and is able to take images and time lapse shooting using LEDs with required wavelengths, analyze the image and visualize the result.<br />
<br />
All technical details including laser cutting plans, the list of needed components, sourcecodes for the different software and a building instruction are open-source and available on our wiki[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn].<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T17:52:49Z<p>Ansgar: /* Software */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
The device can incubate the sensing cells, take images and analyze them.<br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/21/Aachen_14-10-16_Measurarty_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use ''WatsOn''|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor chip for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Hardware_button_iNB.png|right|150px]]<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components|subtitle=From top left to bottom right: Arduino, Peltier element, Raspberry Pi, relay, cables, MOSFET, temperature display, camera, LEDs and resistors.|width=520px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass.<br />
<br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<br />
<br />
A detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Software_button_iNB.png|right|150px]]<br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
{{Team:Aachen/FigureDual|Aachen_WatsOn_igem_GUI_originalImage.png|Aachen_WatsOn_igem_GUI_analyzedImage.png|title1=image taken with the camera |title2=analyzed image |subtitle1= |subtitle2= |width=450px}}<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Measurarty_button_iNB.png|right|150px]]<br />
<br />
== Measurarty ==<br />
<span class="anchor" id="watsonmeasurarty"></span><br />
<center><br />
{{Team:Aachen/Figure|Aachen_srm_regions_3.PNG|title=SRM component of our image analysis component ''Measurarty''|subtitle=SRM is one of the core components of our image analysis approach. This image shows the different regions created.|width=500px}}<br />
</center><br />
<br />
Measurarty is the '''image analysis software''' of our device and is designed to allow an automatic segmentation and classification of our '''agar chip pictures'''.<br />
Therefore, it expects as input an image from WatsOn, and produces an output image with pathogenic regions marked in red.<br />
<br />
This component mainly focuses on recognizing pathogens early, such that pure thresholding is not necessary.<br />
We therefore designed a pipeline and established a smoothness index to make statements about the pathogenity of a chip as early as possible, but also with as much certainty as possible.<br />
<br />
A sample output of the segmentation is presented below, showing that the pipeline works as intended.<br />
<br />
{{Team:Aachen/FigureDual|Aachen_K131026_Pseudomonas_aeruginosa_detection.gif|Aachen_Pseudomonas_aeruginosa_Measurarty_slower.gif|title1=Detection of ''Pseudomonas aeruginosa'' with K131026|title2=Optimized detection of ''Pseudomonas aeruginosa"" using Measurarty|subtitle1=Direct detection of ''Pseudomonas aeruginosa'' on sensor chips. Sensor cells used were K131026.|subtitle2=Measurarty is able to reliably identify the fluorescence response of the sensor cells which is produced in a response to ''Pseudomonas aeruginosa''.|width=480px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing ''WatsOn'' our goal was to build a system that<br />
*incubates the sensing cells and the sampling chip <br />
*illuminates the chip with the right excitation wavelength for our fluorescence proteins<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*is portable and fast in analyzing the images<br />
<br />
With our final device we achieved all goals we set in the beginning. WatsOn is housed in a closed casing and is able to take images and time lapse shooting using LEDs with required wavelengths, analyze the image and visualize the result.<br />
<br />
All technical details including laser cutting plans, the list of needed components, sourcecodes for the different software and a building instruction are open-source and available on our wiki[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn].<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T17:51:32Z<p>Ansgar: /* Software */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
The device can incubate the sensing cells, take images and analyze them.<br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/21/Aachen_14-10-16_Measurarty_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use ''WatsOn''|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor chip for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Hardware_button_iNB.png|right|150px]]<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components|subtitle=From top left to bottom right: Arduino, Peltier element, Raspberry Pi, relay, cables, MOSFET, temperature display, camera, LEDs and resistors.|width=520px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass.<br />
<br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<br />
<br />
A detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Software_button_iNB.png|right|150px]]<br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
<!-- [[File:Aachen_WatsOn_igem_GUI_originalImage.png||400px]] [[File:Aachen_WatsOn_igem_GUI_analyzedImage.png||400px]] --><br />
<br />
{{Team:Aachen/FigureDual|Aachen_WatsOn_igem_GUI_originalImage.png|Aachen_WatsOn_igem_GUI_analyzedImage.png|title1= |title2= |subtitle1= |subtitle2= |width=400px}}<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Measurarty_button_iNB.png|right|150px]]<br />
<br />
== Measurarty ==<br />
<span class="anchor" id="watsonmeasurarty"></span><br />
<center><br />
{{Team:Aachen/Figure|Aachen_srm_regions_3.PNG|title=SRM component of our image analysis component ''Measurarty''|subtitle=SRM is one of the core components of our image analysis approach. This image shows the different regions created.|width=500px}}<br />
</center><br />
<br />
Measurarty is the '''image analysis software''' of our device and is designed to allow an automatic segmentation and classification of our '''agar chip pictures'''.<br />
Therefore, it expects as input an image from WatsOn, and produces an output image with pathogenic regions marked in red.<br />
<br />
This component mainly focuses on recognizing pathogens early, such that pure thresholding is not necessary.<br />
We therefore designed a pipeline and established a smoothness index to make statements about the pathogenity of a chip as early as possible, but also with as much certainty as possible.<br />
<br />
A sample output of the segmentation is presented below, showing that the pipeline works as intended.<br />
<br />
{{Team:Aachen/FigureDual|Aachen_K131026_Pseudomonas_aeruginosa_detection.gif|Aachen_Pseudomonas_aeruginosa_Measurarty_slower.gif|title1=Detection of ''Pseudomonas aeruginosa'' with K131026|title2=Optimized detection of ''Pseudomonas aeruginosa"" using Measurarty|subtitle1=Direct detection of ''Pseudomonas aeruginosa'' on sensor chips. Sensor cells used were K131026.|subtitle2=Measurarty is able to reliably identify the fluorescence response of the sensor cells which is produced in a response to ''Pseudomonas aeruginosa''.|width=480px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing ''WatsOn'' our goal was to build a system that<br />
*incubates the sensing cells and the sampling chip <br />
*illuminates the chip with the right excitation wavelength for our fluorescence proteins<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*is portable and fast in analyzing the images<br />
<br />
With our final device we achieved all goals we set in the beginning. WatsOn is housed in a closed casing and is able to take images and time lapse shooting using LEDs with required wavelengths, analyze the image and visualize the result.<br />
<br />
All technical details including laser cutting plans, the list of needed components, sourcecodes for the different software and a building instruction are open-source and available on our wiki[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn].<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T17:48:34Z<p>Ansgar: /* Software */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
The device can incubate the sensing cells, take images and analyze them.<br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/21/Aachen_14-10-16_Measurarty_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use ''WatsOn''|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor chip for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Hardware_button_iNB.png|right|150px]]<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components|subtitle=From top left to bottom right: Arduino, Peltier element, Raspberry Pi, relay, cables, MOSFET, temperature display, camera, LEDs and resistors.|width=520px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass.<br />
<br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<br />
<br />
A detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Software_button_iNB.png|right|150px]]<br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
[[File:Aachen_WatsOn_igem_GUI_originalImage.png||400px]] [[File:Aachen_WatsOn_igem_GUI_analyzedImage.png||400px]]<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Measurarty_button_iNB.png|right|150px]]<br />
<br />
== Measurarty ==<br />
<span class="anchor" id="watsonmeasurarty"></span><br />
<center><br />
{{Team:Aachen/Figure|Aachen_srm_regions_3.PNG|title=SRM component of our image analysis component ''Measurarty''|subtitle=SRM is one of the core components of our image analysis approach. This image shows the different regions created.|width=500px}}<br />
</center><br />
<br />
Measurarty is the '''image analysis software''' of our device and is designed to allow an automatic segmentation and classification of our '''agar chip pictures'''.<br />
Therefore, it expects as input an image from WatsOn, and produces an output image with pathogenic regions marked in red.<br />
<br />
This component mainly focuses on recognizing pathogens early, such that pure thresholding is not necessary.<br />
We therefore designed a pipeline and established a smoothness index to make statements about the pathogenity of a chip as early as possible, but also with as much certainty as possible.<br />
<br />
A sample output of the segmentation is presented below, showing that the pipeline works as intended.<br />
<br />
{{Team:Aachen/FigureDual|Aachen_K131026_Pseudomonas_aeruginosa_detection.gif|Aachen_Pseudomonas_aeruginosa_Measurarty_slower.gif|title1=Detection of ''Pseudomonas aeruginosa'' with K131026|title2=Optimized detection of ''Pseudomonas aeruginosa"" using Measurarty|subtitle1=Direct detection of ''Pseudomonas aeruginosa'' on sensor chips. Sensor cells used were K131026.|subtitle2=Measurarty is able to reliably identify the fluorescence response of the sensor cells which is produced in a response to ''Pseudomonas aeruginosa''.|width=480px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing ''WatsOn'' our goal was to build a system that<br />
*incubates the sensing cells and the sampling chip <br />
*illuminates the chip with the right excitation wavelength for our fluorescence proteins<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*is portable and fast in analyzing the images<br />
<br />
With our final device we achieved all goals we set in the beginning. WatsOn is housed in a closed casing and is able to take images and time lapse shooting using LEDs with required wavelengths, analyze the image and visualize the result.<br />
<br />
All technical details including laser cutting plans, the list of needed components, sourcecodes for the different software and a building instruction are open-source and available on our wiki[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn].<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T17:48:01Z<p>Ansgar: /* Software */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
The device can incubate the sensing cells, take images and analyze them.<br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/21/Aachen_14-10-16_Measurarty_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use ''WatsOn''|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor chip for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Hardware_button_iNB.png|right|150px]]<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components|subtitle=From top left to bottom right: Arduino, Peltier element, Raspberry Pi, relay, cables, MOSFET, temperature display, camera, LEDs and resistors.|width=520px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass.<br />
<br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<br />
<br />
A detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Software_button_iNB.png|right|150px]]<br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
[[File:Aachen_WatsOn_igem_GUI_originalImage.png||400px]][[File:Aachen_WatsOn_igem_GUI_analyzedImage.png||400px]]<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Measurarty_button_iNB.png|right|150px]]<br />
<br />
== Measurarty ==<br />
<span class="anchor" id="watsonmeasurarty"></span><br />
<center><br />
{{Team:Aachen/Figure|Aachen_srm_regions_3.PNG|title=SRM component of our image analysis component ''Measurarty''|subtitle=SRM is one of the core components of our image analysis approach. This image shows the different regions created.|width=500px}}<br />
</center><br />
<br />
Measurarty is the '''image analysis software''' of our device and is designed to allow an automatic segmentation and classification of our '''agar chip pictures'''.<br />
Therefore, it expects as input an image from WatsOn, and produces an output image with pathogenic regions marked in red.<br />
<br />
This component mainly focuses on recognizing pathogens early, such that pure thresholding is not necessary.<br />
We therefore designed a pipeline and established a smoothness index to make statements about the pathogenity of a chip as early as possible, but also with as much certainty as possible.<br />
<br />
A sample output of the segmentation is presented below, showing that the pipeline works as intended.<br />
<br />
{{Team:Aachen/FigureDual|Aachen_K131026_Pseudomonas_aeruginosa_detection.gif|Aachen_Pseudomonas_aeruginosa_Measurarty_slower.gif|title1=Detection of ''Pseudomonas aeruginosa'' with K131026|title2=Optimized detection of ''Pseudomonas aeruginosa"" using Measurarty|subtitle1=Direct detection of ''Pseudomonas aeruginosa'' on sensor chips. Sensor cells used were K131026.|subtitle2=Measurarty is able to reliably identify the fluorescence response of the sensor cells which is produced in a response to ''Pseudomonas aeruginosa''.|width=480px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing ''WatsOn'' our goal was to build a system that<br />
*incubates the sensing cells and the sampling chip <br />
*illuminates the chip with the right excitation wavelength for our fluorescence proteins<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*is portable and fast in analyzing the images<br />
<br />
With our final device we achieved all goals we set in the beginning. WatsOn is housed in a closed casing and is able to take images and time lapse shooting using LEDs with required wavelengths, analyze the image and visualize the result.<br />
<br />
All technical details including laser cutting plans, the list of needed components, sourcecodes for the different software and a building instruction are open-source and available on our wiki[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn].<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T17:47:25Z<p>Ansgar: /* Software */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
The device can incubate the sensing cells, take images and analyze them.<br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F Device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/2/21/Aachen_14-10-16_Measurarty_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use ''WatsOn''|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor chip for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Hardware_button_iNB.png|right|150px]]<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components|subtitle=From top left to bottom right: Arduino, Peltier element, Raspberry Pi, relay, cables, MOSFET, temperature display, camera, LEDs and resistors.|width=520px}}<br />
<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass.<br />
<br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<br />
<br />
A detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Software_button_iNB.png|right|150px]]<br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
[[File:Aachen_WatsOn_igem_GUI_originalImage.png||450px]]<br />
[[File:Aachen_WatsOn_igem_GUI_analyzedImage.png||450px]]<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-16_Measurarty_button_iNB.png|right|150px]]<br />
<br />
== Measurarty ==<br />
<span class="anchor" id="watsonmeasurarty"></span><br />
<center><br />
{{Team:Aachen/Figure|Aachen_srm_regions_3.PNG|title=SRM component of our image analysis component ''Measurarty''|subtitle=SRM is one of the core components of our image analysis approach. This image shows the different regions created.|width=500px}}<br />
</center><br />
<br />
Measurarty is the '''image analysis software''' of our device and is designed to allow an automatic segmentation and classification of our '''agar chip pictures'''.<br />
Therefore, it expects as input an image from WatsOn, and produces an output image with pathogenic regions marked in red.<br />
<br />
This component mainly focuses on recognizing pathogens early, such that pure thresholding is not necessary.<br />
We therefore designed a pipeline and established a smoothness index to make statements about the pathogenity of a chip as early as possible, but also with as much certainty as possible.<br />
<br />
A sample output of the segmentation is presented below, showing that the pipeline works as intended.<br />
<br />
{{Team:Aachen/FigureDual|Aachen_K131026_Pseudomonas_aeruginosa_detection.gif|Aachen_Pseudomonas_aeruginosa_Measurarty_slower.gif|title1=Detection of ''Pseudomonas aeruginosa'' with K131026|title2=Optimized detection of ''Pseudomonas aeruginosa"" using Measurarty|subtitle1=Direct detection of ''Pseudomonas aeruginosa'' on sensor chips. Sensor cells used were K131026.|subtitle2=Measurarty is able to reliably identify the fluorescence response of the sensor cells which is produced in a response to ''Pseudomonas aeruginosa''.|width=480px}}<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing ''WatsOn'' our goal was to build a system that<br />
*incubates the sensing cells and the sampling chip <br />
*illuminates the chip with the right excitation wavelength for our fluorescence proteins<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*is portable and fast in analyzing the images<br />
<br />
With our final device we achieved all goals we set in the beginning. WatsOn is housed in a closed casing and is able to take images and time lapse shooting using LEDs with required wavelengths, analyze the image and visualize the result.<br />
<br />
All technical details including laser cutting plans, the list of needed components, sourcecodes for the different software and a building instruction are open-source and available on our wiki[https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn].<br />
<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/File:Aachen_WatsOn_igem_GUI_analyzedImage.pngFile:Aachen WatsOn igem GUI analyzedImage.png2014-10-17T17:46:19Z<p>Ansgar: </p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/File:Aachen_WatsOn_igem_GUI_originalImage.pngFile:Aachen WatsOn igem GUI originalImage.png2014-10-17T17:44:52Z<p>Ansgar: uploaded a new version of &quot;File:Aachen WatsOn igem GUI originalImage.png&quot;</p>
<hr />
<div></div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T00:29:37Z<p>Ansgar: /* Hardware */</p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use WatsOn|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components||width=520px}}<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass. <html><br/></html><br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the excitation LEDs and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<html><br/></html><br />
A detailed description of all components and the wiring can be found in the [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware Engineering section of our Notebook].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
[[File:Aachen_WatsOn_igem_GUI_originalImage.png||650px]]<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing our ''WatsOn'' our goal was to build a system that<br />
* incubates the sensing cells and the sampling chip <br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*illuminates the chip with the right excitation wavelength for GFP or iLOV<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*is portable and fast in analyzing the images<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T00:26:28Z<p>Ansgar: </p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use WatsOn|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components||width=520px}}<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass. <html><br/></html><br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller. The Arduino operates the LEDs for excitation and a Peltier heater for incubation. For taking images of the sensor chips we used the Raspberry Pi camera module which is directly connected to the board.<html><br/></html><br />
A detailed description of all components and the wiring can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
[[File:Aachen_WatsOn_igem_GUI_originalImage.png||650px]]<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing our ''WatsOn'' our goal was to build a system that<br />
* incubates the sensing cells and the sampling chip <br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*illuminates the chip with the right excitation wavelength for GFP or iLOV<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*is portable and fast in analyzing the images<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgarhttp://2014.igem.org/Team:Aachen/Project/Measurement_DeviceTeam:Aachen/Project/Measurement Device2014-10-17T00:21:01Z<p>Ansgar: </p>
<hr />
<div>__NOTOC__<br />
{{CSS/Main}}<br />
{{Team:Aachen/Stylesheet}}<br />
{{Team:Aachen/Header}}<br />
<br />
= ''WatsOn'' =<br />
{{Team:Aachen/FigureFloatRight|Aachen_Device_11.jpg|title=WatsOn|subtitle= |width=230px}}<br />
Part of the biosensor system ''Cellock Holmes'' are our agar chips. They contain our engineered sensing cells that fluoresce in the presence of the pathogen ''Pseudomonas aeruginosa''. However, bacteria are small and the fluorescent signal cannot be seen with the naked eye. Thus the central question '''"What's on the chip?"''' remains.<br />
<br />
To answer this question we present our measurement device '''''WatsOn'''''. <br />
<br />
''WatsOn'' is designed such that it can be easily copied. Our work heavily emphasizes the '''Open Source''' concept. Therefore, the construction manual and all technical detailes are [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsondiy published on our wiki]. Analogous to our [https://2014.igem.org/Team:Aachen/OD/F_device OD/F device], we used low-cost and easily available parts. <br />
<br />
<html><br />
<center><br />
<ul class="menusmall-grid"><br />
<!-- Overview --><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonapplication" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Application</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/thumb/c/c7/Aachen_WatsOn_easy.png/600px-Aachen_WatsOn_easy.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Hardware</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/5/59/Aachen_14-10-16_Hardware_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonsoftware" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Software</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonmeasurarty" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Measurarty</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/1/13/Aachen_14-10-16_Software_button_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<li><br />
<a class="menulink" href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#watsonachievements" style="color:black"><br />
<div class="menusmall-item menusmall-info" ><div class="menukachel">Achieve-<br/>ments</div></div><br />
<div class="menusmall-item menusmall-img" style="background: url(https://static.igem.org/mediawiki/2014/e/ef/Aachen_14-10-15_Medal_Cellocks_iNB.png); norepeat scroll 0% 0% transparent; background-size:100%"><br />
</div><br />
</a><br />
</li><br />
<br />
<br />
</ul><br />
</center><br />
</html><br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
== Application ==<br />
<span class="anchor" id="watsonapplication"></span><br />
<br />
{{Team:Aachen/Figure|How_two_use_watsOn_flowsheet_V7_ipo.png|title=How to use WatsOn|subtitle=This scheme illustrates handling WatsOn when testing the 2D biosensor for a fluorescent signal.|width=1000px}}<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
<br />
== Hardware ==<br />
<span class="anchor" id="watsonhardware"></span><br />
<br />
{{Team:Aachen/Figure|Aachen_Device_Elektronikkomponenten1.jpg|title=Hardware components||width=520px}}<br />
Our hardware consists of the casing and the electronical components. The casing which can be seen in the first section was build from laser cutted acrylic glass. <html><br/></html><br />
The electronic circuit is a combination of the components displayed in the image above. We combined the Raspberry Pi - a small single-board computer running a Linux operating system - and an Arduino board which is a programmable microcontroller to operate the LEDs and a Peltier heater. For taking an image we connected the Raspberry Pi camera to the board.<html><br/></html><br />
A detailed description of all components and the wiring can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonhardware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
<br />
== Software ==<br />
<span class="anchor" id="watsonsoftware"></span><br />
<br />
[[File:Aachen_WatsOn_igem_GUI_originalImage.png||650px]]<br />
<br />
The software is responsible for presenting a user interface on the display of the device and to take images with the LED wavelength selected by the user. Therefore it is separated into three single components: the graphical user interface (GUI) with a backend script running on the Raspberry Pi and the code on the Arduino board.<html><br/></html><br />
The GUI(left image) provides the user with the option to take a single image or a time lapse shooting and specify parameters for the camera and the wavelength of the LEDs. The wavelength used in our device are 480nm for GFP and 450nm for iLOV. Furthermore the images are analysed for the presence or absence of P. aeruginosa by analysing the image and providing the user with a visual feedback (right image). All taken images can be saved to disk manually for single images and automatically for time lapse shootings.<html><br/></html><br />
Further details on the software including the backend which gives the possibility of using the GUI remotely on a different device (e.g. notebook) in the same local network can be found here [https://2014.igem.org/Team:Aachen/Notebook/Engineering/WatsOn#watsonsoftware].<br />
<br />
{{Team:Aachen/BlockSeparator}}<br />
<br />
[[File:Aachen_14-10-15_Medal_Cellocks_iNB.png|right|150px]]<br />
<br />
== Achievements ==<br />
<span class="anchor" id="watsonachievements"></span><br />
<br />
When developing our ''WatsOn'' our goal was to build a system that<br />
* incubates the sensing cells and the sampling chip <br />
*prevents escape of potentially sampled pathogens and our genetically engineered cells<br />
*illuminates the chip with the right excitation wavelength for GFP or iLOV<br />
*takes photos and time lapse shootings of the chips<br />
*uses cheap filter slides to block the light emitted from the LEDs<br />
*analyzes the fluorescence signal<br />
*gives feedback to the user about the presence or absence of ''P. aeruginosa'' through a GUI (graphical user interface)<br />
*is portable and fast in analyzing the images<br />
<br />
{{Team:Aachen/Footer}}</div>Ansgar