Open Pixel Control (OPC)
Open Pixel Control (OPC) — Protocollo Pixel Leggero
Open Pixel Control (OPC) è un protocollo minimale basato su TCP/IP per inviare dati pixel in streaming a controller LED. È stato progettato da Micah Scott per il progetto Fadecandy ed è ampiamente usato in ambienti di coding creativo.

Specifiche Tecniche
| Parametro | Valore |
|---|---|
| Trasporto | TCP/IP (porta 7890 predefinita) |
| Max pixel per messaggio | 65.535 byte (~21.845 pixel RGB) |
| Max canali | 256 |
| Tipi di comando | Imposta colori pixel, imposta correzione colore, system exclusive |
| Intestazione | Intestazione binaria semplice + payload dati |
Formato Intestazione Protocollo
| Byte | Campo | Descrizione |
|---|---|---|
| 0 | Canale | Canale di uscita (0–255) |
| 1 | Comando | 0 = imposta pixel, 1 = imposta correzione colore, 255 = system exclusive |
| 2–3 | Lunghezza | Numero di byte dati (big-endian, 16-bit) |
| 4+ | Dati | Dati pixel (RGB 0–255 per canale) |
Un messaggio dati pixel per 3 LED (RGBRGBRGB) sarebbe: [0, 0, 0, 9, R, G, B, R, G, B, R, G, B]
Confronto con Altri Protocolli
| Caratteristica | OPC | Art-Net | sACN (E1.31) |
|---|---|---|---|
| Trasporto | TCP | UDP | UDP |
| Max pixel per pacchetto | ~21.845 | 512 (RGB) / 680 (RGBW) | 512 (RGB) / 680 (RGBW) |
| Supporto universo/canale | 256 canali | 32.768 universi | 63.999 universi |
| Controllo errori | Nessuno (lo gestisce TCP) | Nessuno | CID + numeri di sequenza |
| Complessità | Molto bassa | Moderata | Moderata |
| Latenza | Bassa (overhead TCP) | Molto bassa | Molto bassa |
Strumenti che Usano OPC
| Strumento | Scopo |
|---|---|
| Fadecandy | Controller LED USB con server OPC |
| Processing | PixelBender, libreria OPC per sketch Java |
| openFrameworks | Addon ofxOPC per coding creativo C++ |
| Glediator | Software di controllo matrice LED |
| PixelController | Controllo matrice LED basato su web |
| Client Python OPC | Libreria Python leggera per controllo LED |
Casi d’Uso
- Installazioni interattive — Bassa latenza, facile da integrare con Processing, openFrameworks, TouchDesigner
- Configurazioni Fadecandy — Il protocollo nativo per controller Fadecandy (8 uscite, 512 pixel ciascuna)
- Prototipazione — Overhead minimo lo rende ideale per sketch LED rapidi
- Installazioni medio-piccole — Fino a ~21K pixel per canale senza multiplexing