This repo holds four Micro-Manager 2.0 plugins to control and monitor a Photo Emission Electron Microscope (PEEM) in conjunction with an image acquisition system and an interferometric delay stage.
-
Simple image acquistion with reasonable default values for exposure and binning. Images are saved to a hard coded predefined folder structure. PEEM parameters are saved besides the image file
-
Preset management allows to save a set of PEEM parameters to recall it at a later stage or to switch between two zoom settings quickly
-
Optimisation series sweep through a single PEEM parameter while holding the remaining parameters constant. After the series has finished you can select the best fitting parameter which gives the sharpest image
-
The panel in the middle is more or less a substitute for the hardware interface of the microscope. You can set single or all PEEM parameters or read out the PEEMs current state
-
The history table lists the last acquisitions with their corresponding PEEM parameters. A double click loads the parameters to the middle panel. They are then ready to be sent to the PEEM to retake an image
-
The browse button in the top right corner lets you view measurements from the past. If you took a picture of a sample a week ago and want to see the parameters you can browse through the history. See the following screenshot:
In the following screenshot you can see the inspector panel which shows meta information for the current image. There are three panels opened up which are part of PEEM-Controller. Namely
- Area Mean
- Field Of View
- Max Count
The area mean inspector plugin shows the average pixel value of a region of interest or if none exists the whole image over time. You can start/stop the mean calculation, reset it or save its values to a text file for further analyses. The graph is plotted with the free library JFreeChart. This is useful for keeping track of the transient of a time resolved measurement with the delay stage.
You can see a typical PEEM image down below. It has a circular field of view whereas the dimension can be approximated via the PEEM parameters of both projectives and the extractor. In case of the screenshot the field of view (diameter of the circle) amounts to 91.4 µm.
The max count plugin looks at every pixel of the image and returns prints the overall highest value to the screen. In the screenshot under Histogram and Settings you can see values for min/max/mean. This plugin just magnifies the middle value to be easily visible from the distance.
PEEM-Controller is solely written in Java. It communicates via RS232 with the microscope and over TCP/IP with the delay stage. All the panels you see in the above screenshot are independent modules. However, from time to time they need to communicate with each other. This is done via the observer pattern. I tried to comply to the single responsibility principle and inject dependencies as often as possible. In general SOLID principles are your friend.
You need the following items in your Java class path:
- projects
libdirectory. This dir contains a 64-bit version of the RxTx serial communication library (link) ij.jar(inside the Micro-Manager 2.0 installation folder)plugins/Micro-Managerdirectory (inside the Micro-Manager 2.0 installation folder)
Use Java 1.8 and install all Maven dependencies.
Have a look at the ConstantsExample.java file, rename it to Constants.java and adapt it to your local setup.
In order to run the plugin together with Micro-Manager 2.0 you need to run ij.ImageJ as the main
class (in IntelliJ). Micro-Manager will automatically find your plugin.
After you've built an artifact of this plugin you'll need to place it in the mmplugins directory
inside the Micro-Manager 2.0 installation folder).
This tool makes it easier to take images like this:
If you want to have a look at images and videos of a time resolved measurement visit AG Bauer.
