# Videocamere per replay e tracking dell'air hockey

Ricerca del 16 ottobre 2026. Proposte da verificare sul banco; nessuna camera acquistata o collaudata. Geometria di riferimento: campo 800 × 400 mm, cassone 900 × 500 mm, camera perpendicolare a 700 mm dal campo, disco Ø44 mm. Obiettivo: replay a colori 1280 × 720 e 120 fotogrammi/s, buffer 5 secondi prima del gol e 2 dopo; inferenza principale esterna.

## Aggiornamento 17 ottobre 2026 — USB economiche, solo colori

**Vincolo confermato dall’utente:** niente bianco e nero, anche per i replay. Le camere monocromatiche sotto restano come confronto storico, escluse dalla selezione. Salvare nel progetto i risultati delle ricerche successive. Nessun acquisto o collaudo.

- **ELP USBFHD08S, OV4689:** candidata USB2 UVC a colori, rolling shutter, con MJPEG 1280 × 720 a 120 fps dichiarati. La variante **KH100** dichiara HFOV 92° a 720p e 75° a 1080p; il campo visivo va verificato nel modo effettivo a 70 cm. [Scheda primaria ELP](https://www.elpcctv.com/elp-2mp-usb-camera-high-speed-720p-120fps-with-no-distortion-lens-for-golf-swing-p-605.html). La tabella contiene il refuso “12080X720”; intestazione e descrizione indicano 1280 × 720.
- **Prezzo della famiglia, non della variante grandangolare:** [SVPRO/ELP, USBFHD08S-L80 con lente 8 mm](https://www.svpro.cc/product/svpro-720p-120fps-usb-webcam-mjpeg-640x360-260fps720p-120fps-cmos-ov4689-1080p-60fps-camera-module-usb2-0-8mm-lens/) espone 65,50 USD. Questa lente non è la proposta per coprire il tavolo: prezzo e disponibilità della KH100/grandangolare da confermare. IVA, spedizione e costo consegnato in Italia non verificati.
- **Waveshare OV9281 1MP USB Camera (A), SKU 31671:** [produttore](https://www.waveshare.com/product/ov9281-1mp-usb-camera-a.htm), 25,99 USD, 720p120 dichiarati, global shutter, MJPEG, PCB 25 × 25 mm; **esclusa perché monocromatica**. Pagina prodotto e wiki discordano sul FOV (105° / 120°).
- **Arducam B0610:** resta candidata a colori global shutter USB3 della ricerca precedente, prezzo indicizzato 139,99 USD; revisione, modi 720p120 e ottica da riconfermare. Non è stata acquistata.

**Carico Raspberry:** acquisire e conservare il flusso MJPEG compresso evita la ricodifica continua per il buffer replay. Decodifica, tracking e disegno delle traiettorie richiedono comunque elaborazione. Proposta: originale e dati separati, overlay durante la riproduzione, esportazione MP4 annotata in un lavoro separato. Nessuna promessa di CPU o latenza senza prova completa. Non dedurre 120 immagini distinte dal solo fps dichiarato o dal contenitore.

## Esito iniziale del 16 ottobre (vincolo colori sopra prevalente)

La prima candidata economica è **Camera Module 3 Wide con filtro IR**, con una riserva importante: è rolling shutter. Per la maggiore fedeltà geometrica dei tiri, **Arducam B0610 USB3 global shutter a colori** è la candidata più convincente sulla carta, ma costa molto di più ed è necessario far confermare dal produttore la modalità esatta e il campo visivo a 720p120. B0495 e B0610 sono prodotti differenti: il primo non soddisfa 720p120 nelle specifiche pubblicate.

Un **Pi 4 non è escluso**: documentazione ufficiale descrive acquisizione H.264 720p120 e accorgimenti specifici per Pi 4. La sufficienza con tutte le funzioni simultanee deve essere misurata. Il Pi 5 offre margine per elaborazioni locali ma usa encoder video software; il numero superiore non garantisce automaticamente una pipeline di registrazione migliore. Con USB MJPEG già compresso, salvare direttamente i pacchetti evita una ricodifica continua. [Acquisizione ad alta frequenza e differenza Pi 5](https://www.raspberrypi.com/documentation/computers/camera_software.html#capture-high-framerate-video)

## Confronto delle camere

Le velocità della tabella riguardano le modalità pubblicate della camera o del driver, non il solo limite nominale del sensore. Non garantiscono la stessa frequenza nel file finale con tracking, streaming e interfaccia simultanei.

| Camera | Otturatore e colore | Modalità rilevanti documentate | Collegamento / compatibilità dichiarata | Valutazione |
|---|---|---|---|---|
| Raspberry Camera Module 3 Standard, IMX708 | Rolling shutter, colori | Sensore/driver 1536 × 864 a circa 120 fps; ridimensionabile a 1280 × 720 | CSI, stack ufficiale Pi 4 / Pi 5 | Economica ma a 700 mm **non copre il campo nel modo 120 fps** |
| Raspberry Camera Module 3 Wide, IMX708 | Rolling shutter, colori | Stessa modalità 1536 × 864 a circa 120 fps | CSI, stack ufficiale Pi 4 / Pi 5 | Miglior punto di partenza economico; copertura plausibile, calibrazione e mosso da verificare |
| Raspberry HQ, IMX477 | Rolling shutter, colori | 1332 × 990 a 120 fps; 2028 × 1080 a 50 fps | CSI; ottica C/CS o M12 separata | Flessibile ma ingombrante e richiede una lente ampia nel modo ritagliato |
| Raspberry Global Shutter, IMX296 | Global shutter, colori | 1456 × 1088 a 60 fps | CSI; lente C/CS separata | Buona per tracking a 60 fps; non soddisfa il requisito 120 fps ufficiale |
| Arducam B0495, AR0234 | Global shutter, colori | **YUY2 1920 × 1200 a 50 fps; 960 × 600 a 80 fps** su USB3 | USB3 UVC, Windows/Linux | Da escludere se 720p120 è vincolante |
| Arducam B0610, sensore 2,3 MP non nominato nella pagina primaria | Global shutter, colori | **MJPEG 1920 × 1080 a 120 fps e 1280 × 720 a 120 fps**; YUYV 1080p60 e 720p120 | USB3 UVC, Windows/Linux | Candidata per replay e tracking; preferire MJPEG per registrazione senza ricodifica |
| Arducam OV9281 USB B0332 | Global shutter, monocromatica | Pagina corrente: MJPEG 1280 × 800 a **100 fps**; YUY2 1280 × 800 / 720 a 10 fps | USB2 UVC, Raspberry/Linux dichiarati | URL contiene “120fps”, ma specifiche correnti dicono 100: non comprarla presumendo 120 |
| Arducam OV9281 CSI | Global shutter, monocromatica | Versioni/modi diversi; modulo M12 documentato 1280 × 800 a 120 fps; versione wide elenca RAW8 720p171 / 800p143, RAW10 720p137 / 800p114 | CSI; pagina wide elenca Pi 4 e Pi 5 su Bookworm/Trixie | Adatta al tracking; replay in bianco e nero. Confermare SKU, driver, formato e frequenza effettiva |

Fonti delle righe Raspberry: [tabella ufficiale delle camere](https://www.raspberrypi.com/documentation/accessories/camera.html#hardware-specifications). B0495: [datasheet del produttore](https://www.arducam.com/downloads/datasheet/B0495_AR0234_Global_Shutter_USB3.0_Camera_Module_Datasheet.pdf). B0610: [scheda prodotto Arducam](https://www.arducam.com/arducam-2-3mp-color-global-shutter-usb3-uvc-camera-module-with-onboard-isp-for-robotics-and-machine-vision.html). B0332: [pagina corrente con specifiche 100 fps](https://www.arducam.com/arducam-120fps-global-shutter-usb-camera-board-1mp-720p-ov9281-uvc-webcam-module-with-low-distortion-m12-lens-without-microphones-for-computer-laptop-android-device-and-raspberry-pi.html). OV9281 CSI: [modulo M12, datasheet](https://blog.arducam.com/downloads/modules/RaspberryPi_camera/OV9281_MIPI_Camera_Module_M12_DS.pdf) e [versione wide e compatibilità OS](https://www.arducam.com/mini-ov9281-mono-global-shutter-wide-angle-for-pi.html).

Ulteriore candidata a colori CSI: **Arducam B0353 AR0234 Pivariety**. La pagina corrente dichiara 720p120 e 1080p60, prezzo 109,99 USD, supporto Pi 4/Pi 5 con stack Arducam. Una precedente pagina del medesimo prodotto riporta invece 720p60 e 1080p30. Anche la descrizione “maximum ... 60fps” resta nel testo attuale: chiedere conferma scritta di revisione hardware, driver e modalità prima di considerarla equivalente alla B0610. [Pagina attuale](https://www.arducam.com/arducam-full-hd-color-global-shutter-camera-for-raspberry-pi-2-3mp-ar0234-wide-angle-pivariety-camera-module-b0353.html), [pagina precedente](https://www.arducam.com/blog/product/arducam-full-hd-color-global-shutter-camera-for-raspberry-pi-2-3mp-ar0234-wide-angle-pivariety-camera-module-b0353/).

## Il ritaglio a 120 fps cambia la scelta dell'ottica

La sola scritta “66°” o “102°” sulla camera non basta. Il driver Raspberry IMX708, nel modo 1536 × 864, legge una regione centrale **3072 × 1728** della matrice 4608 × 2592: circa due terzi della larghezza e altezza. Il modo 2304 × 1296 usa invece tutta l'area. [Codice ufficiale del driver IMX708, elenco delle modalità](https://raw.githubusercontent.com/raspberrypi/linux/rpi-6.12.y/drivers/media/i2c/imx708.c)

Applicando un modello ottico rettilineare ai FOV nominali dichiarati (Standard 66° orizzontali / 41° verticali; Wide 102° / 67°), la copertura a 700 mm nel modo veloce è:

| Camera Module 3, modo 120 fps | Copertura stimata sul piano | Conseguenza |
|---|---|---|
| Standard | circa **606 × 349 mm** | Taglia il campo 800 × 400; alzare la camera oppure cambiare ottica/versione |
| Wide | circa **1153 × 618 mm** | Include campo e cassone; disco Ø44 circa **49 pixel** nel video 1280 × 720 |

Sono **calcoli del progetto**, non misure della camera. Formula per ciascun asse: `2 × altezza × tan(FOV/2) × frazione_di_sensore`. La distorsione dell'ottica wide, la correzione geometrica e ulteriori ritagli possono cambiare il risultato. Calibrare con il rettangolo del campo nella modalità effettivamente usata; la stima precedente del progetto di 57 pixel assumeva una copertura generica di 980 mm, non l'ottica CM3 Wide. I FOV nominali provengono dal [product brief ufficiale](https://datasheets.raspberrypi.com/camera/camera-module-3-product-brief.pdf).

Anche HQ ritaglia: il modo 1332 × 990 usa una regione 2664 × 1980 rispetto a 4056 × 3040. Non scegliere l'obiettivo guardando soltanto il campo visivo a piena risoluzione. [Driver ufficiale IMX477](https://raw.githubusercontent.com/raspberrypi/linux/rpi-6.12.y/drivers/media/i2c/imx477.c)

Per B0610 il produttore indica FOV 98°H / 75°V, fuoco da 0,3 m a infinito, massimo 2 W e cavo USB3 Type-C da 1 m incluso. **Non è documentato nella pagina se il modo 720p120 ridimensioni l'intero campo o ritagli il sensore**: confermare questo punto. La pagina nomina genericamente un sensore globale a colori 2,3 MP, non AR0234; non trasferire il nome da B0495. [Scheda primaria B0610](https://www.arducam.com/arducam-2-3mp-color-global-shutter-usb3-uvc-camera-module-with-onboard-isp-for-robotics-and-machine-vision.html)

## Nitidezza, replay e AI

Il global shutter elimina la deformazione dovuta alla lettura progressiva; non ferma da solo il mosso durante l'esposizione. Il produttore Raspberry propone il proprio modello globale per sport e visione artificiale. [Presentazione tecnica Global Shutter](https://www.raspberrypi.com/news/new-raspberry-pi-global-shutter-camera/)

Calcoli per il nostro caso, con velocità **ipotizzata** del disco 5 m/s: tra immagini a 120 fps si percorrono 41,7 mm; con esposizione 1/1000 s il mosso è 5 mm, a 1/2000 s è 2,5 mm. Per CM3 Wide corrispondono a circa 5,6 e 2,8 pixel. Una luce bianca stabile e un'esposizione breve sono quindi essenziali; RGB scenografici non devono essere l'unica illuminazione del campo. Bloccare il fuoco dopo la calibrazione evita variazioni durante la partita. Tracking e misure metriche richiedono timestamp, calibrazione e gestione di mani/battitori che nascondono il disco. I gol restano determinati dai sensori nelle porte.

Un replay acquisito a 120 fps e riprodotto a 30 fps rallenta 4×. Non serve eseguire un grande modello AI su ogni fotogramma: si può registrare il flusso completo, tracciare con un algoritmo leggero e inviare eventi/sequenze selezionate all'AI esterna. Il reale carico di inferenza dipende dal modello, non dal solo numero 720p.

## Buffer, cavi e budget

Conservare dati compressi, non un array Python per ciascuna immagine. Esempi di dimensionamento **calcolati** per 7 s: H.264 a 20 Mbit/s occupa 17,5 MB; MJPEG dipende dal contenuto, per esempio 100 kB × 120 × 7 = 84 MB. YUYV non compresso 1280 × 720 × 2 × 120 = 221 MB/s, cioè circa 1,55 GB per 7 s. Questi valori non sono bitrate misurati delle camere.

Picamera2 offre `CircularOutput2`, un buffer temporale su dati codificati, adatto come base per una registrazione prima/dopo evento; occorre allineare correttamente timestamp e fotogrammi chiave H.264. La gestione USB UVC necessita della propria pipeline di acquisizione e buffer. [Implementazione ufficiale CircularOutput2](https://github.com/raspberrypi/picamera2/blob/main/picamera2/outputs/circularoutput2.py)

USB3 semplifica il montante: un normale cavo adatto trasporta alimentazione e dati. Per CSI la tratta reale comprende montante e braccio, quindi è **maggiore dei soli 700 mm verticali**. I cavi Raspberry Standard–Mini ufficiali sono da 200, 300 e 500 mm: non assumere che un flat passivo da 1 m funzioni al massimo bitrate senza errori. Valutare posizione del Raspberry più vicina alla camera o un'estensione specifica verificata. [Cavi ufficiali](https://www.raspberrypi.com/products/camera-cable/)

Prezzi indicativi del produttore, **non preventivi IVA/spedizione UE inclusa**: CM3 Standard 25 USD e Wide 35 USD di listino di lancio; HQ e Global Shutter 50 USD di lancio, ottica separata; B0610 139,99 USD “sample price”; B0332 49,99 USD. Non è stato verificato un prezzo europeo consegnato aggiornato per ogni variante; non usare questi importi come prezzo finale italiano. [Listini CM3](https://www.raspberrypi.com/news/new-autofocus-camera-modules/), [HQ e lenti](https://www.raspberrypi.com/news/new-product-raspberry-pi-high-quality-camera-on-sale-now-at-50/), [GS](https://www.raspberrypi.com/news/new-raspberry-pi-global-shutter-camera/); prezzi Arducam dalle rispettive pagine sopra.

## Prova decisiva prima di scegliere Pi 4 o Pi 5

1. Enumerare le modalità reali (`rpicam-hello --list-cameras` per CSI; `v4l2-ctl --list-formats-ext` per UVC), annotando SKU, OS, kernel e firmware.
2. Inquadrare quattro angoli del campo alla frequenza richiesta, con illuminazione ed esposizione definitive; misurare nitidezza del disco in movimento.
3. Registrare almeno 10–15 minuti a 720p120 con timestamp, buffer e salvataggi ripetuti; contare frame persi, intervalli reali e fotogrammi duplicati.
4. Aggiungere partita, RGB, suoni, streaming e carico AI previsto. Misurare CPU, temperatura, latenza sensori e velocità storage.
5. Su Pi 4 usare inizialmente H.264 hardware con camera CSI oppure MJPEG diretto dalla camera USB. Su Pi 5 verificare separatamente il costo di eventuale codifica H.264 software. Non considerare un file etichettato 120 fps prova di 120 acquisizioni distinte ogni secondo.

**Limiti dell'evidenza:** nessuna prova di laboratorio sul sistema completo; modalità dichiarate e supporto generico Linux non certificano l'applicazione integrata. Alcune pagine Arducam sono leggibili nell'indice del motore di ricerca ma l'apertura diretta restituisce errore (B0610, OV9281 wide); le relative specifiche sono state raccolte dal testo indicizzato della fonte primaria e devono essere riconfermate prima dell'ordine. I conflitti B0332/B0353 sono esplicitati anziché scegliere la cifra più favorevole.

### Riscontro prezzo italiano aggiuntivo

Alla consultazione del 16 ottobre2026, [Melopero, CM3 Wide con filtro IR](https://www.melopero.com/shop/accessories/cameras/camera-module-3-wide/) espone **37,58 €**, ma **non disponibile**. Spedizione e condizioni fiscali non confermate nel carrello; non è un’offerta consegnata né prenotazione. È un riferimento più recente del solo listino di lancio35USD.
