Team:EPF-Lausanne/Tools/Microfluidics/Tamagotchip

From 2011.igem.org

(Difference between revisions)
Line 1: Line 1:
-
{{:Team:EPF-Lausanne/Templates/Header|title=Online microfluidics game}}
+
{{:Team:EPF-Lausanne/Templates/Header|title=Tamagotchip: an online microfluidics game}}
<html>
<html>
Line 29: Line 29:
[[File:EPFL-Tamagotchip-controls.png|thumb|left|250px|Fellow iGEMers can play with our setup from anywhere, using their web browser.]]
[[File:EPFL-Tamagotchip-controls.png|thumb|left|250px|Fellow iGEMers can play with our setup from anywhere, using their web browser.]]
[[File:EPFL-Tamagotchip-waiting-line.png|thumb|left|250px|If another person is playing, the user has to wait in line, but can still watch the video feed.]]
[[File:EPFL-Tamagotchip-waiting-line.png|thumb|left|250px|If another person is playing, the user has to wait in line, but can still watch the video feed.]]
 +
 +
== For the geeks: details of the software framework ==
 +
 +
The entire software framework, code-named "Muigi the Microplumber" was written in Python, and is open sourced under the GPL license. The source code is available on github: https://github.com/douglas-watson/muigi. From the hardware up:
 +
 +
Communicating with the EasyDAQ is done through the ''pySerial'' library. The EasyDAQ expects two-character strings to set the state of its on-chip relays. To provide a clearer interface to the card, a 'driver'-like library provides a set of high level functions, allowing explicit opening or closing of valves, that are then used by the other layers. It also automatically reconnects to the EasyDAQ when it drops the connection. Overall, it provides an abstraction from the hardware, for the other layers to avoid low-level hardware communication.
 +
 +
On top of that, a Remote Procedure Call (RPC) layer provides the connection between the web application and the hardware driver, enabling the two to run on separate computers. All this is handled by the ''RPyC'' library and its registry server (which used by the RPC client to discover RPC servers on the network).
 +
 +
The final layer is the web application written in ''Flask'', with jQuery on the client side for AJAX calls (to submit forms, and keep track of users in the queue). The queue is kept in a Redis database. The application is served by the CherryPy web server. The automatic twitter posting, from the web app, is managed by python-twitter. All scheduled events (tweeting, clearing the queue of inactive users) is managed by ''kronos''.
 +
 +
Video is streamed through EPFL's Flash streaming server. The video is transcoded live by Flash Media Encoder on a Mac Pro, to which the webcam microscope is connected.
 +
 +
[[File:EPFL-Muigi-schematic.png|600px]]
{{:Team:EPF-Lausanne/Templates/Footer}}
{{:Team:EPF-Lausanne/Templates/Footer}}

Revision as of 19:23, 18 September 2011