All Projects
Packaging Zaber Motion Library with MATLAB Compiler
Utility
This example demonstrates how to build and run a standalone MATLAB application which uses the Zaber Motion Library toolbox.
The source code for the application is in
src/main.m.Simple GUI using SwiftUI
Graphical User Interface
This example demonstrates using the SwiftUI Framework
to create a simple Interface to control a Zaber device.
Well Plate Loading Demo
Microscopy
This example code is for the Zaber microscope well plate loader demo,
which is a machine comprising a Zaber microscope with an X-ADR stage and X-LCA4 illuminator, a Mecademic robot arm
on an X-LRM stage as a range extender, and a VSR on top of an LSM stage to transport well plates from two stack
towers that use an X-SCA Process Controller to control solenoids that restrain the plate stacks.
Tracking Motion Using PID Controller
Motion
The example demonstrates how Zaber stages can track analog input signals using a PID controller.
A PID controller is a control loop feedback mechanism widely used in industrial control systems.
It calculates the error between a desired setpoint and a measured process variable and applies a correction based on proportional, integral, and derivative terms.
In Zaber's case, the controller can move the stage to track the setpoint of the analog input signal.
Zaber only supports the PI controller, which is a simplified version of the PID controller without derivative term.
Tiling Example with Basler Camera
Microscopy
Often we want to capture high resolution images of samples which we cannot fit into a single camera frame. In situations like this it makes sense to create an image tileset: a collection of images which when joined form an ultra-high resolution representation of the sample in question.
Packaging ZML with PyInstaller
Utility
This example demonstrates how to package a Python script that uses Zaber Motion Library with PyInstaller.
The script itself in
main.py is a simple motion example.PVT Sequence Generation
Motion
This repository contains code to complement our article
Motion Planning with Position-Velocity-Time.
The cubic polynomial PVT algorithm described in the article is implemented in Python, along with helper functions to
automatically generate missing parameters, plot the generated path and trajectory, and save the results to a CSV file
that is compatible with Zaber Launcher's PVT Viewer App.
2D Calibration
Calibration
When programming a 2D Cartesian gantry or XY system, it is often necessary to calibrate the stages for orthogonality, distortion, and stretch of each axis to achieve the accuracy required. The end goal is to be able to commanding the stage to go to a particular coordinate, and have the stage be on target.
Microscope Focus Map Algorithms
Microscopy
A focus map gives estimated focus heights for any location on a microscope slide.
Microplate Scanning - High Speed
Microscopy
The optimal strategy to scan a microwellplate is one where the scanning stage never pauses and images are acquired at regular intervals along the direction of travel. This can be accomplished by using a global shutter or Time Delay Integration (TDI) camera with a sufficiently short exposure to avoid motion blur.
To reduce the scan time even further, we can avoid communications latency by using hardware triggers and buffered commands onboard the stages themselves. This allows for a substantial speedup compared to a conventional well-plate scanning strategy.
Microscope Autofocus with Python and OpenCV
Microscopy
To acquire a sharp image from a microscope requires that the sample be in focus. This is achieved by positioning the sample at the correct distance from the objective lens. The human eyes and brain are good at judging when an image is in focus, so a typical workflow here is to manually move the objective up and down, watching the resulting image until it looks good. However, this process is tedious, subjective, and requires a person to be present every time a slide or objective is changed.
Microplate Scanning - Basic
Microscopy
This example script demonstrates how to set up a Zaber motorized microscope stage
to scan ANSI standard microplates with 96, 384, and 1536 wells.
Direct Encoder Stepper Stage Self Test
Diagnostics
These are scripts that can be run with a Zaber stepper motor driven direct encoder stage to allow the stage to analyze its own performance.
Microscope Filter Cube
Microscopy
This example script demonstrates how to switch between different filter cubes on the Zaber filter cube turret and Zaber microscopes equipped with it.
Input Shaping for Motion Control Vibration Reduction
Motion
This repository contains code to complement our article Input Shaping for Motion Control Vibration Reduction. Input shaping algorithms described in the article are implemented in Python, along with classes allowing them to be easily used with Zaber stages via the Zaber Motion Library API.
Microscope Illuminator
Microscopy
This example script demonstrates how to switch between different LED channels and change the illuminator intensity,
using the X-LCA4 lighting controller and MLR3 illuminaor for multi-channel imaging of flourescent targets using multiple fluorophores.
Basic HID joystick control
User Interaction
A simple example of controlling Zaber devices with a USB game controller (Windows, Python & C#).
COM Port Scan
Utility
This script quickly scans all active ports and displays which device is connected to which port.
Simple Text-based GUI (TUI) using Textual
Graphical User Interface
This example demonstrates using the Python package Textual
to create a simple Text Based Interface to control Zaber devices.
Raspberry PI Touch Screen Device Control
Graphical User Interface
The example demonstrates a simple user interface for Raspberry PI with a touch screen that controls a Zaber device.