运动与定位

PI 纳米定位台、Attocube、Newport Picomotor、Thorlabs APT 等精密运动与定位驱动。

概述

Quatm 支持从压电纳米定位到步进电机长行程的多种运动平台,统一 IMultiaxisStage 接口。


Physik Instrumente (PI) 压电纳米定位

概述

GenericPIController 封装 PI 通用控制器串口通信,通过 ASCII 命令集控制多种 PI 压电定位平台。

⚙️ PI 压电控制器 E-xxx 系列
通信串口 (RS232)
协议PI ASCII 命令集
轴数取决于控制器型号
精度亚纳米级
典型应用包括高 NA 物镜精密对焦、光纤耦合自动对准、干涉仪光路调节和光偶极阱束腰位置控制。
驱动模块:GenericPIController

初始化

from quatm.drivers.PhysikInstrumente.base import GenericPIController

# 串口连接
stage = GenericPIController(conn="/dev/ttyUSB0")

# 归零
stage.home(axis=0)

# 绝对定位(µm)
stage.move_to(axis=0, position=50.0)

# 相对移动
stage.move_by(axis=1, delta=10.0)

# 查询当前位置
pos = stage.get_position(axis=0)

关键方法

方法说明
home(axis)指定轴归零
move_to(axis, position)绝对定位 (µm)
move_by(axis, delta)相对移动 (µm)
get_position(axis)查询当前位置
stop(axis)紧急停止

设备配置

"objective_z": {
    "type": "local",
    "module": "drivers.PhysikInstrumente.base",
    "class": "GenericPIController",
    "arguments": {"conn": "/dev/ttyUSB0"},
}

## 使用示例

```python
# 在 Experiment 类中
self.pi_stage = self.get_device("pi_stage")

# 移动到指定位置 (μm)
self.pi_stage.move_absolute(x=50.0, y=25.0, z=10.0)

# 相对移动
self.pi_stage.move_relative(dx=1.0, dy=0.0, dz=0.0)

注意:压电平移台有行程限制,超出范围会触发硬件保护。使用前请查阅设备手册确认最大行程。


Thorlabs APT/Kinesis 位移台

KDC101 / K10CR1 系列

⚙️ KDC101 / K10CR1 / 滤光轮 Thorlabs APT/Kinesis
通信串口 (FTDI)
协议APT (二进制)
适用设备直流伺服电机、步进电机、滤光轮、快门
统一封装 Thorlabs APT 协议设备。
驱动模块:BasicKinesisDevice
from quatm.drivers.Thorlabs.kinesis import BasicKinesisDevice
stage = BasicKinesisDevice(conn="27200001")
stage.home()
stage.move_to(position=25.0)    # mm

Elliptec 压电谐振电机

⚙️ ELLx 系列 Thorlabs Elliptec
通信串口 (9600 baud)
行程取决于滑块
精度µm 级
紧凑型压电谐振电机,适合空间受限的光学调整架。
驱动模块:ElliptecMotor
from quatm.drivers.Thorlabs.elliptec import ElliptecMotor
motor = ElliptecMotor(conn="/dev/ttyUSB0", addrs=[0])
motor.move_to(axis=0, position=10.0)

电动滤光轮 FW102/FW212

from quatm.drivers.Thorlabs.serial import FW
fw = FW(conn="/dev/ttyUSB0")
fw.set_position(position=2)    # 切换到第 2 个滤光片位置

Physik Instrumente (PI)

概述

GenericPIController 封装 PI 通用控制器串口通信,通过 ASCII 命令集控制多种 PI 压电定位平台。

⚙️ PI 压电控制器 E-xxx 系列
通信串口 (RS232)
协议PI ASCII 命令集
轴数取决于控制器型号
精度亚纳米级
典型应用包括高 NA 物镜精密对焦、光纤耦合自动对准、干涉仪光路调节和光偶极阱束腰位置控制。
驱动模块:GenericPIController

初始化

from quatm.drivers.PhysikInstrumente.base import GenericPIController

# 串口连接
stage = GenericPIController(conn="/dev/ttyUSB0")

# 归零
stage.home(axis=0)

# 绝对定位(µm)
stage.move_to(axis=0, position=50.0)

# 相对移动
stage.move_by(axis=1, delta=10.0)

# 查询当前位置
pos = stage.get_position(axis=0)

关键方法

方法说明
home(axis)指定轴归零
move_to(axis, position)绝对定位 (µm)
move_by(axis, delta)相对移动 (µm)
get_position(axis)查询当前位置
stop(axis)紧急停止

设备配置

"objective_z": {
    "type": "local",
    "module": "drivers.PhysikInstrumente.base",
    "class": "GenericPIController",
    "arguments": {"conn": "/dev/ttyUSB0"},
}

## 使用示例

```python
# 在 Experiment 类中
self.pi_stage = self.get_device("pi_stage")

# 移动到指定位置 (μm)
self.pi_stage.move_absolute(x=50.0, y=25.0, z=10.0)

# 相对移动
self.pi_stage.move_relative(dx=1.0, dy=0.0, dz=0.0)

注意:压电平移台有行程限制,超出范围会触发硬件保护。使用前请查阅设备手册确认最大行程。


Thorlabs 位移台与电机

Quatm 支持多类 Thorlabs 设备,包含位移台、光学测量仪器与相机。

APT/Kinesis 位移台 BasicKinesisDevice

⚙️ KDC101 / K10CR1 / 滤光轮 Thorlabs APT/Kinesis
通信串口 (FTDI)
协议APT (二进制)
适用设备直流伺服电机、步进电机、滤光轮、快门
统一封装 Thorlabs APT 协议设备,通过串口(FTDI 芯片)通信。
驱动模块:BasicKinesisDevice
from quatm.drivers.thorlabs.kinesis import BasicKinesisDevice

# 连接指定序列号的设备
stage = BasicKinesisDevice(conn="27200001")  # 序列号

# 归零
stage.home()

# 绝对定位(mm)
stage.move_to(position=25.0)

# 读取当前位置
pos = stage.get_position()

Elliptec 压电谐振电机 ElliptecMotor

⚙️ ELLx 系列 Thorlabs Elliptec
通信串口 (9600 baud)
行程取决于滑块长度
精度µm 级
真空兼容可选
紧凑型压电谐振电机,适合空间受限的光学调整架。
驱动模块:ElliptecMotor
from quatm.drivers.thorlabs.elliptec import ElliptecMotor

motor = ElliptecMotor(conn="/dev/ttyUSB0", addrs=[0])
motor.move_to(axis=0, position=10.0)   # mm

电动滤光轮

from quatm.drivers.thorlabs.serial import FW

fw = FW(conn="/dev/ttyUSB0")          # FW102 / FW212
fw.set_position(position=2)            # 切换到第 2 个滤光片位置

KDC101 电机平移台

通过 .NET SDK 控制 Thorlabs KDC101/T-Cube 系列电机平移台。

from quatm.drivers.thorlabs.kdc101 import KDC101

stage = KDC101("26001234")   # 序列号
stage.home()                  # 回零
stage.move_absolute(10.0)     # 移动到 10.0 mm
pos = stage.get_position()    # 读取当前位置
功能说明
回零自动寻找限位开关
绝对移动移动到指定位置 (mm)
相对移动相对当前位置移动
位置读取实时读取当前位置

##概述

Quatm 支持从压电纳米定位到步进电机长行程的多种运动平台。所有平台继承 io.stage 接口,提供统一的 move_to / get_position / home API。


Attocube ANC300 / ANC350 纳米定位

⚙️ ANC300 Attocube
通信TCP/IP (端口 7230)
轴数最多 7 轴
行程mm 级
精度nm 级
适用低温 / 真空
模块化纳米定位控制器,通过 TCP/IP 远程控制。广泛用于低温恒温器内物镜和样品的精确定位。
驱动模块:ANC300
from quatm.drivers.Attocube.anc300 import ANC300

anc = ANC300(conn=("192.168.1.30", 7230))

# 归零
anc.home(axis=0)

# 纳米级步进
anc.move_by(axis=0, delta=0.1)  # 100 nm

# 连续扫描模式
anc.set_continuous_mode(axis=1, enable=True)
anc.set_continuous_speed(axis=1, speed=100.0)  # nm/s
⚙️ ANC350 Attocube (USB)
通信USB HID (PyUSB)
轴数最多 3 轴
控制USB 直接连接
USB 版本,适合桌面应用。
驱动模块:ANC350
from quatm.drivers.Attocube.anc350 import ANC350

anc = ANC350(conn=0)  # 第一台 USB 设备
anc.move_to(axis=0, position=50.0)

Newport Picomotor 8742 4 轴控制器

⚙️ Picomotor 8742 Newport
通信USB (PyUSB) 或 TCP/IP Telnet (端口 23)
轴数4
步长< 30 nm
真空兼容可选
压电惯性电机控制器,支持 USB 直连或网络控制。真空兼容型号可直接用于真空腔内的光学元件调整。
驱动模块:Picomotor8742
from quatm.drivers.Newport.picomotor import Picomotor8742

# USB 连接
pico = Picomotor8742(conn=0)

# 或 TCP/IP
pico = Picomotor8742(conn="192.168.1.40", multiaddr=(0, 1))

pico.move_to(axis=0, position=5.0)  # mm
pico.home(axis=0)

SmarAct MCS2 / SCU3D 高精度定位

⚙️ MCS2 SmarAct
通信原生 MCS2 SDK
轴数最多 18 轴
精度nm 级
速度最高 20 mm/s
真空/低温可选模块
模块化高精度定位系统,支持多轴协调运动和复杂轨迹。
驱动模块:MCS2
from quatm.drivers.SmarAct.MCS2 import MCS2

mcs = MCS2(locator="usb:sn:12345678")
mcs.move_to(axis=0, position=10.0)  # mm
mcs.get_position(axis=0)
⚙️ SCU3D SmarAct 3 轴
通信SCU3DControl SDK
轴数3
一体化 3 轴控制器,适合紧凑空间。
驱动模块:SCU3D
from quatm.drivers.SmarAct.scu3d import SCU3D

scu = SCU3D(idx=0)
scu.move_to(axis=1, position=25.0)

Standa 8SMC 步进电机控制器

⚙️ 8SMC4 / 8SMC5 Standa
通信串口 (115200 baud)
轴数1–4
步进分辨率取决于电机/丝杠
应用长行程位移台、旋转台
经济型步进电机控制器,适合光学平台上的长行程粗定位。
驱动模块:Standa8SMC
from quatm.drivers.standa.base import Standa8SMC

stage = Standa8SMC(conn="/dev/ttyUSB0")
stage.move_to(position=50.0)  # mm
stage.home()

Arcus Performax 多轴步进控制

⚙️ Performax Arcus Technology
通信USB (DLL) 或 RS485 串口
轴数最多 4 轴
功能加减速曲线、限位检测
高性能步进电机控制器,提供平滑的 S 曲线加减速。
驱动模块:GenericPerformaxStage
from quatm.drivers.arcus.performax import GenericPerformaxStage

stage = GenericPerformaxStage(idx=0, conn="USB")
stage.move_to(axis=0, position=100.0)
stage.set_acceleration(axis=0, accel=50.0)   # mm/s²

Trinamic TMCM-1110 一体化步进电机

⚙️ TMCM-1110 Trinamic
通信串口 (9600 baud, TMCL 协议)
功能StallGuard 失速检测、CoolStep 节能
一体化步进电机模块,内置控制器和驱动器。适合简单旋转/平移任务和光路快门。
驱动模块:TMCM1110
from quatm.drivers.trinamic.base import TMCM1110

motor = TMCM1110(conn="/dev/ttyUSB0")
motor.move_to(position=180.0)  # 旋转 (°)
motor.set_velocity(500.0)      # °/s

Thorlabs Elliptec 压电谐振电机

Thorlabs 位移台详情见本页下方。


通用运动平台配置

"objective_z": {
    "type": "local",
    "module": "drivers.Attocube.anc300",
    "class": "ANC300",
    "arguments": {"conn": ("192.168.1.30", 7230)},
}