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 | Channel | Выходной канал (0–255) |
| 1 | Command | 0 = установить пиксели, 1 = установить цветокоррекцию, 255 = системное |
| 2–3 | Length | Количество байт данных (big-endian, 16-бит) |
| 4+ | Data | Данные пикселей (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) |
| Поддержка вселенных/каналов | 256 каналов | 32 768 вселенных | 63 999 вселенных |
| Проверка ошибок | Нет (TCP обрабатывает) | Нет | CID + порядковые номера |
| Сложность | Очень низкая | Умеренная | Умеренная |
| Задержка | Низкая (накладные TCP) | Очень низкая | Очень низкая |
Инструменты, использующие OPC
| Инструмент | Назначение |
|---|---|
| Fadecandy | USB LED-контроллер с OPC-сервером |
| Processing | PixelBender, OPC библиотека для Java скетчей |
| openFrameworks | ofxOPC аддон для C++ креативного кодинга |
| Glediator | ПО для управления LED-матрицами |
| PixelController | Веб-управление LED-матрицами |
| OPC Python client | Лёгкая Python библиотека для управления LED |
Сценарии использования
- Интерактивные инсталляции — Низкая задержка, лёгкая интеграция с Processing, openFrameworks, TouchDesigner
- Установки Fadecandy — Нативный протокол для контроллеров Fadecandy (8 выходов, 512 пикселей каждый)
- Прототипирование — Минимальные накладные расходы делают его идеальным для быстрых LED-скетчей
- Небольшие и средние установки — До ~21K пикселей на канал без мультиплексирования