Collins Joel T, Knapper Joe, McDermott Samuel J, Ayazi Filip, Bumke Kaspar E, Stirling Julian, Bowman Richard W
Centre for Photonics and Photonic Materials, Department of Physics, University of Bath, Bath, UK.
Cavendish Laboratory, University of Cambridge, Cambridge, UK.
R Soc Open Sci. 2021 Nov 17;8(11):211158. doi: 10.1098/rsos.211158. eCollection 2021 Nov.
We present the OpenFlexure Microscope software stack which provides computer control of our open source motorised microscope. Our diverse community of users needs both graphical and script-based interfaces. We split the control code into client and server applications interfaced via a web API conforming to the W3C Web of Things standard. A graphical interface is viewed either in a web browser or in our cross-platform Electron application, and gives basic interactive control including common operations such as Z stack acquisition and tiled scanning. Automated control is possible from Python and Matlab, or any language that supports HTTP requests. Network control makes the software stack more robust, allows multiple microscopes to be controlled by one computer, and facilitates sharing of equipment. Graphical and script-based clients can run simultaneously, making it easier to monitor ongoing experiments. We have included an extension mechanism to add functionality, for example controlling additional hardware components or adding automation routines. Using a Web of Things approach has resulted in a user-friendly and extremely versatile software control solution for the OpenFlexure Microscope, and we believe this approach could be generalized in the future to make automated experiments involving several instruments much easier to implement.
我们展示了OpenFlexure显微镜软件栈,它能对我们的开源电动显微镜进行计算机控制。我们多样化的用户群体既需要图形界面,也需要基于脚本的界面。我们将控制代码拆分为通过符合W3C物联网标准的网络应用程序编程接口(Web API)进行交互的客户端和服务器应用程序。图形界面既可以在网页浏览器中查看,也可以在我们的跨平台Electron应用程序中查看,并提供基本的交互式控制,包括诸如Z轴堆叠采集和平铺扫描等常见操作。可以通过Python和Matlab或任何支持HTTP请求的语言进行自动控制。网络控制使软件栈更加强健,允许一台计算机控制多台显微镜,并便于设备共享。基于图形和脚本的客户端可以同时运行,从而更易于监控正在进行的实验。我们加入了一个扩展机制来添加功能,例如控制额外的硬件组件或添加自动化程序。采用物联网方法为OpenFlexure显微镜带来了一个用户友好且极其通用的软件控制解决方案,我们相信这种方法未来可以推广,使涉及多种仪器的自动化实验更易于实施。