[ PROMPT_NODE_27110 ]
hardware-backends
[ SKILL_DOCUMENTATION ]
# PyLabRobot 中的硬件后端
## 概述
PyLabRobot 使用后端抽象系统,允许相同的协议代码在不同的液体处理机器人和平台上运行。后端处理设备特定的通信,而 `LiquidHandler` 前端提供统一的接口。
## 后端架构
### 后端工作原理
1. **前端**: `LiquidHandler` 类提供高层 API
2. **后端**: 设备特定的类处理硬件通信
3. **协议**: 同一套代码适用于不同的后端
python
# 相同的协议代码
await lh.pick_up_tips(tip_rack["A1"])
await lh.aspirate(plate["A1"], vols=100)
await lh.dispense(plate["A2"], vols=100)
await lh.drop_tips()
# 适用于任何后端(STAR、Opentrons、模拟等)
### 后端接口
所有后端都继承自 `LiquidHandlerBackend` 并实现:
- `setup()`: 初始化硬件连接
- `stop()`: 关闭连接并清理
- 设备特定的命令方法(吸液、分液等)
## 支持的后端
### Hamilton STAR (完全支持)
Hamilton STAR 和 STARlet 液体处理机器人拥有完整的 PyLabRobot 支持。
**设置:**
python
from pylabrobot.liquid_handling import LiquidHandler
from pylabrobot.liquid_handling.backends import STAR
from pylabrobot.resources import STARLetDeck
# 创建 STAR 后端
backend = STAR()
# 初始化液体处理工作站
lh = LiquidHandler(backend=backend, deck=STARLetDeck())
await lh.setup()
**平台支持:**
- Windows ✅
- macOS ✅
- Linux ✅
- Raspberry Pi ✅
**通信:**
- USB 连接到机器人
- 直接固件命令
- 无需 Hamilton 软件
**特性:**
- 完整的液体处理操作
- CO-RE 吸头支持
- 96 通道移液头支持(如果配备)
- 温度控制
- 基于载架和导轨的定位
**台面类型:**
python
from pylabrobot.resources import STARLetDeck, STARDeck
# 用于 STARlet (较小台面)
deck = STARLetDeck()
# 用于 STAR (完整台面)
deck = STARDeck()
**示例:**
python
from pylabrobot.liquid_handling import LiquidHandler
from pylabrobot.liquid_handling.backends import STAR
from pylabrobot.resources import STARLetDeck, TIP_CAR_480_A00, Cos_96_DW_1mL
# 初始化
lh = LiquidHandler(backend=STAR(), deck=STARLetDeck())
await lh.setup()
# 定义资源
tip_rack = TIP_CAR_480_A00(name="tips")
plate = Cos_96_DW_1mL(name="plate")
# 分配到导轨
lh.deck.assign_child_resource(tip_rack, rails=1)
lh.deck.assign_child_resource(plate, rails=1