Here's where I left off last year :
https://hackaday.io/project/6490-a-versatile-labtool

And before that :
https://hackaday.io/project/5971-python-powered-scientific-instrumentation-tool

Objective:

This project aims to equip educators and budding citizen scientists with a flexible range of control and measurement equipment in a compact, standalone form, with minimal BOM.

It also tries to reduce the dependence of the target audience on proprietary software by including various free and open source alternatives in fully configured form , thereby facilitating the transition to a FOSS environment.

A real-time data acquisition unit combined with analog and digital circuitry is paired with a single board computer that runs the analytics and visualization part using mostly Python and its vast array of modules that achieve just about everything. PyQt widgets along with PyQtGraph handle most of the UIs .

Interfacing with the real world is as straightforward as :

from SEEL import interface
I=interface.connect()
I.get_voltage('CH1')

from SEEL.SENSORS import HMC5883L # A 3 axis- magnetometer
M = HMC5883L.connect()
Gx,Gy,Gz = M.getRaw()

Physics Experiments : Example use for commonly available sensors for science labs

Aim : To study the oscillations of a physical pendulum, and observe the relation of its angle to its velocity. Also calculate the value of g, given the length of the pendulum

The picture shows an MPU-6050 (3-Axis accelerometer + 3-Axis Gyroscope ) hooked up to the I2C port via thin guage copper wires designed to cause minimal perturbation to the oscillations of the pendulum.


The IC is positioned at the pivot so that the accelerometer can be used to measure the angle of the pendulum accurately using the vertical compoenent of earth's gravitational pull.The gyroscope's values for the axis parallel to the pendulum's pivot are also recorded.

Resultant data : Note that the velocity is maximum at the mean, and zero at the extremities


Electronics Experiments example: Studying a linear amplitude modulator circuit

Fourier transform of the modulated output shows a single peak for the carrier, and sidebands with frequencies (carrier +/- modulator ) . Changing the modulation amplitude changes the height of the sidebands. In the figure, CH2 is connected to the modulation input.

Help files :

Each Experiment window involves an HTML based help file ( replacing the traditional hard-bound lab manual ) , and is available for educators to edit as they deem fit.

The feature list for the acquisition and control portion:


Logs :

Applicable licences:

Communication Library : GPL V3
Graphical Applications : GPL V3

Dependencies :
Python : GNU GPL compatible
Python - Scipy : BSD Licensed
iPython, iPython-qtconsole : MIT License
PyQt4 : GPL
PyQtGraph : MIT licence

Third Party APIs (Optional):
PubNub : remote access without a static IP requisite.
Twitter : Auto-responder for twitter based queries

Hardware Schematics : GPL-v3

Enclosure designs : GPL-V3


While the library is open source, and most users will eventually spin their own code to develop innovative experiments, numerous graphical interfaces targeting 101 experiments have been built keeping in mind that the majority might not be from a CS background, and may not know how to code.


Example: RC phase shift experiment

Aim: To observe the phase shift produced by a simple RC network and the corresponding Lissajous figure on an oscilloscope. CH1 monitors the input waveform, and CH2 monitors the output of the RC network.









Figure : Schematic. The connections are made according to the schematic.


Resulting Data: The resulting Lissajous figure is a tilted ellipse.