Software
The software consists of several parts which provide a user interface and manage the connection to the hardware.
GUI (Graphical User Interface)
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.
The scheme below shows the different components of the software:
Features of the GUI include:
- Change settings (1):
- The user can specify the iso-value and the shutter speed of the camera.
- Custom settings can be labeled and saved for future reference.
- Existing settings can be updated or deleted unless they are default configurations.
- Take image/s (2):
- The excitation wavelength of GFP (480 nm) and iLOV (450 nm) can be selected.
- The GUI offers two possibilities to take images:
- Take a single image with the active camera settings.
- 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.
- 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.
- Analyze image (4):
- The image is analyzed by an image segmentation algorithm and shows whether the pathogen Pseudomonas aeruginosa is present on the chip or not
Backend
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.
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.
Download the backend sourcecode: Download
Arduino
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.
Download the Arduino sourcecode: Download
|