OmniScan: Interfacing Laboratory Instruments with Python
Laboratory instruments can be interfaced with and controlled from personal computers. However, computer hardware and software change more rapidly (3-5 years) than instrument lifetime (20 years). Thus, programs must be replaced to run on modern computers and operating systems. This should be done to minimize dependence on specific hardware and software.
OmniScan is an extensible interface for scanning laboratory instruments that allows for the addition of new capabilities and functionality. The design capabilities are to permit users to control an instrument, setup a scan, acquire data, and store the data for subsequent analysis. The current implementation is for scanning a variety of lasers and monochromators used by the Polik Lab, with the long-term goal of generalizing the software to other types of instruments.
OmniScan is written in Python 3 in order to run on various computer platforms and access a variety of data acquisition products. It uses a Model-View-Controller architecture to decouple the logic, the user interface, and the instrument.
The robustness and flexibility of this approach allows PyScan to be run on a variety of computer architectures (Windows, Linux, Raspberry Pi) and use various data acquisition cards (Measurement Computing, Waveshare).
Students involved in this project will extend OmniScan to control both "command-driven" and "pulse-driven" instruments, add synchronous tuning features for accessories, and perform basic data analysis capabilities. It is an excellent opportunity to do practical computer programming in a scientific and/or engineering environment.
This project is open to Hope College students who are majoring in computer science, chemistry, mathematics, or physics. Previous experience and/or classes in computer programming are a prerequisite for this position.
For more information, check out Dr. Polik's Home Page.