2022 Senior Design Project by Aria Wright and Jack Hymowitz.
Proof of concept that can be adapted to support additional hardware for a correlative microscopy system.
- Python code for controlling electron and optical microscopes
- Designed to interface with Thorlabs scientific equipment
- Can be run locally or remotely through OPC-UA
The OPC-UA architecture contains four nodes:
opcua-microscope-server
can live on a remote or local machine and can send movement instructions to the clientopcua-microscope-client
interfaces with a machine that is connected to the stage and will tell the hardware to movecamclient
interfaces with the camera and streams the live feed tocamserver
camserver
tellscamclient
to start and receives the camera feed
- Clone this repo in your desired project directory on a computer with direct access to the microscope stage and camera
- Download the Thorlabs Kinesis Example Projects from here and edit the DLL paths in
opcua-microscope-client
to match your download path - Download the Thorlabs Windows SDK for Scientific Cameras and extract into your project directory. Navigate to
Scientific Camera Interfaces/Python_README.txt
and follow the instructions - Note that the IP addresses of each node will need to be slightly different. It is recommended to pick an address for one node and have each subsequent node be similar, ie
10.0.1.1
and10.0.1.2
for client and server respectively - You should now be able to run
opcua-microscope-client
andcamclient
!opcua-microscope-server
andcamserver
may either be run on the same or a separate machine, and need only be clone and run
Special thanks to Prof. Kevin Lu and Terrence McGuckin for helping us make this happen!