Difference between revisions of "Team:Imperial College/Software"

 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Imperial_College}}
+
{{:Team:Imperial_College/Templates/NavBar}}
 +
 
 
<html>
 
<html>
 +
<style>
 +
</style>
  
 +
<body>
 +
<div class="container">         
 +
  <div class="content">
 +
      <div class="titleimg">
  
<div class="clear"></div>
+
                <h1>Software</h1>
 +
                <br/>
 +
                <br/>
 +
  <img src="https://static.igem.org/mediawiki/2018/7/75/T--Imperial_College---software.png" alt="" width="18%"; >
 +
        </div>
  
 +
<p>In order to facilitate the control of our electrode array, we created an Android app that could connect to an Arduino via Bluetooth and send matrices of pattern data to program into our E.coli. The reason for this was double. From a purely practical perspective, the necessity to centre the voltages of our control logic around 0V (or the electrochemical reference voltage, close to 0V) made direct interfacing of the Arduino with a computer via a cable impossible. This impossibility left us with only two options for array control: either using pre-programmed arrays, with no ability to control the arrays without hard-coding the patterns into the Arduino (which we discarded) or use a wireless connection to send patterns remotely to the array. The second reason for opting for a wireless programming scheme was to increase the usability and flexibility of the hardware, as well as to make the project accessible to a wider audience by removing the need for the user to be able to program in order to use the device.
 +
</p>
 +
 +
</br>
 +
<div class="center">
 +
<img src="https://static.igem.org/mediawiki/2018/e/e6/T--Imperial_College--AppFig2.jpg" alt="" width="25%"; >
  
<div class="column full_size">
 
<h1>Software</h1>
 
 
</div>
 
</div>
<div class="column two_thirds_size">
+
</br>
<h3>Best Software Tool Special Prize</h3>
+
<div class="caption">
<p>Regardless of the topic, iGEM projects often create or adapt computational tools to move the project forward. Because they are born out of a direct practical need, these software tools (or new computational methods) can be surprisingly useful for other teams. Without necessarily being big or complex, they can make the crucial difference to a project's success. This award tries to find and honor such "nuggets" of computational work.
+
<p><b>Figure 1.</b> User interface of the app with a pattern drawn in it</p>
 +
</div>
  
 +
<p> The app uses a pixel-drawing user interface, upon which the user draws patterns with their fingers. It incorporates a paintbrush tool, an eraser tool, a 'clear' tool, a swipeable menu, and a 'done' button. The menu contains pre-programmed patterns in multiple colours, and serves as both a way for the user to select pre-programmed patterns, and to select a colour with which to paint. Upon finishing their design, the user clicks done, and a prompt is displayed which asks the user to confirm that they have finished. Upon confirmation, the app searches for a paired electrode array, and, if successful, sends the data to it. There are individual error messages for both the case of the device being unable to initialise Bluetooth and find a paired array, and for the case of the device being unable to connect to the discovered array and successfully send the data.</p>
  
<br><br>
+
</br>
To compete for the <a href="https://2018.igem.org/Judging/Awards">Best Software Tool prize</a>, please describe your work on this page and also fill out the description on the <a href="https://2018.igem.org/Judging/Judging_Form">judging form</a>.
+
<div class="center">
<br><br>
+
<img src="https://static.igem.org/mediawiki/2018/4/4c/T--Imperial_College--AppGif1.gif" alt="" width="25%">
You must also delete the message box on the top of this page to be eligible for this prize.
+
</p>
+
 
+
  
 +
</div>
 +
</br>
 +
<div class="caption">
 +
<p><b>Figure 2.</b> Animation of the use of the app</p>
 
</div>
 
</div>
  
<div class="column third_size">
+
<p> The design was kept minimalistic, both in order to make the app intuitive to use, and to avoid overinflating the expectation of the users. For example, during the initial stages of app development, the user was able to draw patterns using multiple colours simultaneously. However, this feature was deemed misleading, since the electrode array is only capable of binary programming, and so this feature was removed.
<div class="highlight decoration_A_full">
+
<h3> Inspiration </h3>
+
<p>
+
Here are a few examples from previous teams:
+
 
</p>
 
</p>
<ul>
+
 
<li><a href="https://2016.igem.org/Team:BostonU_HW">2016 BostonU HW</a></li>
+
 
<li><a href="https://2016.igem.org/Team:Valencia_UPV">2016 Valencia UPV</a></li>
+
<li><a href="https://2014.igem.org/Team:Heidelberg/Software">2014 Heidelberg</a></li>
+
<li><a href="https://2014.igem.org/Team:Aachen/Project/Measurement_Device#Software">2014 Aachen</a></li>
+
</ul>
+
</div>
+
 
</div>
 
</div>
  
 +
 +
 +
</body>
 
</html>
 
</html>
 +
{{:Team:Imperial_College/Templates/Footer}}

Latest revision as of 01:51, 18 October 2018

Software



In order to facilitate the control of our electrode array, we created an Android app that could connect to an Arduino via Bluetooth and send matrices of pattern data to program into our E.coli. The reason for this was double. From a purely practical perspective, the necessity to centre the voltages of our control logic around 0V (or the electrochemical reference voltage, close to 0V) made direct interfacing of the Arduino with a computer via a cable impossible. This impossibility left us with only two options for array control: either using pre-programmed arrays, with no ability to control the arrays without hard-coding the patterns into the Arduino (which we discarded) or use a wireless connection to send patterns remotely to the array. The second reason for opting for a wireless programming scheme was to increase the usability and flexibility of the hardware, as well as to make the project accessible to a wider audience by removing the need for the user to be able to program in order to use the device.



Figure 1. User interface of the app with a pattern drawn in it

The app uses a pixel-drawing user interface, upon which the user draws patterns with their fingers. It incorporates a paintbrush tool, an eraser tool, a 'clear' tool, a swipeable menu, and a 'done' button. The menu contains pre-programmed patterns in multiple colours, and serves as both a way for the user to select pre-programmed patterns, and to select a colour with which to paint. Upon finishing their design, the user clicks done, and a prompt is displayed which asks the user to confirm that they have finished. Upon confirmation, the app searches for a paired electrode array, and, if successful, sends the data to it. There are individual error messages for both the case of the device being unable to initialise Bluetooth and find a paired array, and for the case of the device being unable to connect to the discovered array and successfully send the data.



Figure 2. Animation of the use of the app

The design was kept minimalistic, both in order to make the app intuitive to use, and to avoid overinflating the expectation of the users. For example, during the initial stages of app development, the user was able to draw patterns using multiple colours simultaneously. However, this feature was deemed misleading, since the electrode array is only capable of binary programming, and so this feature was removed.