Open Pixel Control (OPC)
Open Pixel Control (OPC) — 轻量级像素协议
**Open Pixel Control (OPC)**是一种最小的、基于TCP/IP的协议,用于将像素数据流式传输到LED控制器。它由Micah Scott为Fadecandy项目设计,广泛用于创意编码环境。

技术规格
| 参数 | 值 |
|---|---|
| 传输 | TCP/IP(默认端口7890) |
| 每条消息的最大像素数 | 65,535字节(约21,845个RGB像素) |
| 最大通道数 | 256 |
| 命令类型 | 设置像素颜色、设置颜色校正、系统专用 |
| 帧格式 | 简单的二进制头部 + 数据负载 |
协议头部格式
| 字节 | 字段 | 描述 |
|---|---|---|
| 0 | 通道 | 输出通道(0–255) |
| 1 | 命令 | 0 = 设置像素,1 = 设置颜色校正,255 = 系统专用 |
| 2–3 | 长度 | 数据字节数(大端,16位) |
| 4+ | 数据 | 像素数据(每通道RGB 0–255) |
3个LED(RGBRGBRGB)的像素数据消息将是:[0, 0, 0, 9, R, G, B, R, G, B, R, G, B]
与其他协议的对比
| 特性 | OPC | Art-Net | sACN (E1.31) |
|---|---|---|---|
| 传输 | TCP | UDP | UDP |
| 每个数据包的最大像素数 | 约21,845 | 512(RGB)/ 680(RGBW) | 512(RGB)/ 680(RGBW) |
| Universe/通道支持 | 256个通道 | 32,768个universe | 63,999个universe |
| 错误检查 | 无(TCP处理) | 无 | CID + 序列号 |
| 复杂性 | 非常低 | 中等 | 中等 |
| 延迟 | 低(TCP开销) | 非常低 | 非常低 |
使用OPC的工具
| 工具 | 用途 |
|---|---|
| Fadecandy | 带OPC服务器的USB LED控制器 |
| Processing | 用于Java草图的PixelBender、OPC库 |
| openFrameworks | 用于C++创意编码的ofxOPC附加组件 |
| Glediator | LED矩阵控制软件 |
| PixelController | 基于网页的LED矩阵控制 |
| OPC Python客户端 | 用于LED控制的轻量级Python库 |
用例
- 交互式安装 — 低延迟,易于与Processing、openFrameworks、TouchDesigner集成
- Fadecandy设置 — Fadecandy控制器的原生协议(8个输出,每个512个像素)
- 原型制作 — 最小开销使其成为快速LED草图的理想选择
- 中小型安装 — 每个通道最多约21K像素,无需多路复用