Control de Píxeles Abierto (OPC)
Open Pixel Control (OPC) — Protocolo de Píxeles Ligero
Open Pixel Control (OPC) es un protocolo mínimo basado en TCP/IP para transmitir datos de píxeles a controladores LED. Fue diseñado por Micah Scott para el proyecto Fadecandy y se usa ampliamente en entornos de programación creativa.

Especificaciones Técnicas
| Parámetro | Valor |
|---|---|
| Transporte | TCP/IP (puerto 7890 por defecto) |
| Píxeles máximos por mensaje | 65,535 bytes (~21,845 píxeles RGB) |
| Canales máximos | 256 |
| Tipos de comando | Establecer colores de píxeles, establecer corrección de color, exclusivo del sistema |
| Estructura | Encabezado binario simple + carga útil de datos |
Formato del Encabezado del Protocolo
| Byte | Campo | Descripción |
|---|---|---|
| 0 | Canal | Canal de salida (0–255) |
| 1 | Comando | 0 = establecer píxeles, 1 = establecer corrección de color, 255 = exclusivo del sistema |
| 2–3 | Longitud | Número de bytes de datos (big-endian, 16-bit) |
| 4+ | Datos | Datos de píxeles (RGB 0–255 por canal) |
Un mensaje de datos de píxeles para 3 LEDs (RGBRGBRGB) sería: [0, 0, 0, 9, R, G, B, R, G, B, R, G, B]
Comparación con Otros Protocolos
| Característica | OPC | Art-Net | sACN (E1.31) |
|---|---|---|---|
| Transporte | TCP | UDP | UDP |
| Píxeles máximos por paquete | ~21,845 | 512 (RGB) / 680 (RGBW) | 512 (RGB) / 680 (RGBW) |
| Soporte de universos/canales | 256 canales | 32,768 universos | 63,999 universos |
| Verificación de errores | Ninguna (TCP lo maneja) | Ninguna | CID + números de secuencia |
| Complejidad | Muy baja | Moderada | Moderada |
| Latencia | Baja (sobrecarga TCP) | Muy baja | Muy baja |
Herramientas que Usan OPC
| Herramienta | Propósito |
|---|---|
| Fadecandy | Controlador LED USB con servidor OPC |
| Processing | PixelBender, biblioteca OPC para sketches de Java |
| openFrameworks | Complemento ofxOPC para programación creativa en C++ |
| Glediator | Software de control de matriz LED |
| PixelController | Control de matriz LED basado en web |
| Cliente OPC Python | Biblioteca Python ligera para control de LED |
Casos de Uso
- Instalaciones interactivas — Baja latencia, fácil integración con Processing, openFrameworks, TouchDesigner
- Configuraciones Fadecandy — El protocolo nativo para controladores Fadecandy (8 salidas, 512 píxeles cada una)
- Prototipado — La sobrecarga mínima lo hace ideal para sketches LED rápidos
- Instalaciones pequeñas a medianas — Hasta ~21K píxeles por canal sin multiplexación