This project implements a Python based measurement framework which is able to take measurements from heterogeneous devices to combine everything in one visualization, logging, queuing and management platform. A brief schematic overview is given below:
The plug-in architecture of the software makes adding support for new hardware easy. A programmer can develop a plug-in for hardware and call the plug-in from a recipe file. A recipe file is a text file specifying which plug-in needs to be called and what parameters need to be used.
To get started with the measurement framework, a small example using an Arduino board has been provided. The sketch file for this example can be found under “arduino_sketches” in this repository. The Arduino board needs to be hooked-up in the following way for this example to work.
Before the software can run the Arduino recipe, the sketch file needs to be uploaded to the Arduino board. Consult the Arduino manual for guidelines.
Click on the picture below to view a screen recording showing the software at work with the Arduino device.
In the video we see a recipe running which activated the webcam on my laptop as well as the Arduino. The webcam plugin sends frames to the graphical user interface and the Arduino sends data to be plotted. We see that when I shine light with and LED torch on the light sensitive resistor its resistance goes down as we see in the plots. Similarly, when I turn the knob of the potentiometer its resistance fluctuates accordingly.
Recipe files are zip files which contain two text files: recipeInfo.txt and sequence.txt. Among other things the former file tells the software where the output of the recipe needs to be stored. The sequence file contains recipe execution instructions. The recipe "camera_and_arduino" which we see being run in the video contains the instructions:
startProcess_webcam(640, 480)
startProcess_arduino()
execute_sleep(30.0)
stopProcess_arduino()
stopProcess_webcam()