🇬🇧 OpenShotClock is a web app to manage and customize a digital shot clock. The project, still in alpha, is designed both for training purposes and for tournament matches. Hardware not provided.
OpenShotClock is designed to help understand the logic behind the device, to gain a deep understanding of the meaning of the numbers shown on the display, the reset values, and the impact these variables have on the game.
🇮🇹 OpenShotClock è una web app per gestire e personalizzare uno shot clock digitale. Il progetto, ancora in fase alpha, è pensato sia per scopi di allenamento che per partite di torneo. Hardware non fornito.
OpenShotClock è pensato per comprendere il funzionamento della logica alla base dell’apparecchio, per conoscere a fondo il significato dei numeri mostrati a display, dei valori di reset e le ripercussioni che queste variabili hanno sul gioco
- Collegati a udc-tv.github.io/OpenShotClock oppure scarica i file e apri
index.html - Configura le scorciatoie da tastiera nelle impostazioni o usa quelle di default
- Scegli le impostazioni di
BLANK,DECIMALSeSTOP ON RESET - Apri il display esterno dalla console e abilita l'audio cliccando una volta sul display
- Sei pronto per usare lo shot clock!
Configurazioni di esempio e manuale illustrato disponibili qui
- Introduzione
- Primo Avvio
- Utilizzo Base
- Funzioni Avanzate
- Configurazione
- Risoluzione Problemi
- Domande Frequenti
OpenShotClock è uno shot clock (cronometro dei 24 secondi) digitale per esercitarsi nella comprensione del funzionamento dello strumento a 360º. Il sistema è composto da due componenti principali:
- Console di Controllo (
index.html) - Gestione dello shot clock. - Display Esterno (
display.html) - Per la visualizzazione su scheda separata/monitor/etc.
- Display LED digitale con caratteri rossi su sfondo nero
- Due tempi preimpostati configurabili (default: 24s e 14s)
- Scorciatoie da tastiera personalizzabili
- Sirena quando il tempo scade. Possibilità di caricare file audio personalizzati
- Stop-lamp arancione visibile a tempo scaduto (DEMO)
- Tempo trascorso visualizzato in tempo reale
- Sezioni comprimibili per un'interfaccia pulita
- Browser moderno (Chrome, Firefox, Safari, Edge)
- Utilizzo senza installare (online): su udc-tv.github.io/OpenShotClock
- Utilizzo con installazione in locale: nessun server richiesto - funziona completamente offline
Assicurati di avere tutti questi file nella stessa cartella:
OpenShotClock/
├── index.html # Console di controllo
├── display.html # Display esterno
├── app.js # Logica applicazione
├── style.css # Stili e design
├── fonts/
│ └── DSEG7.woff2 # Font LED digitale
└── static/
└── horn.m4a # Suono allarme
-
Apri la Console di Controllo
- Fai doppio clic su
index.html - Si aprirà nel tuo browser predefinito
- Vedrai il cronometro impostato a 24.0 secondi
- Fai doppio clic su
-
Apri il Display Esterno
- Nella console, scorri fino alla sezione "External Display"
- Clicca sul pulsante "Open Display in New Window"
- Si aprirà una nuova finestra con il display
-
Posiziona il Display
- Posiziona la finestra del display nella posizione desiderata
- IMPORTANTE: Clicca una volta sul display per abilitare l'audio
-
Sei Pronto!
- La console e il display sono ora sincronizzati
- Puoi iniziare a usare il cronometro
Elementi Principali:
-
Timer Principale (grande, grigio)
- Mostra il tempo rimanente con 1 decimale (sempre)
- Esempio: "24.0", "15.3", "0.0"
-
Tempo Trascorso (piccolo, in basso a destra)
Metodo 1 - Pulsante:
- Clicca sul pulsante "Start"
- Il cronometro inizia il conto alla rovescia
- Il pulsante diventa "Stop"
- Clicca sul pulsante "Stop"
- Il cronometro si ferma
- Il pulsante torna a "Start"
Metodo 2 - Tastiera:
- Premi la Barra Spaziatrice (default, personalizzabile)
- Il cronometro si avvia immediatamente
- Premi di nuovo la Barra Spaziatrice
- Il cronometro si ferma
Reset a Time-1 (24 secondi):
- Clicca "Reset to Time-1", OPPURE
- Premi il tasto "1" sulla tastiera (default, personalizzabile)
Reset a Time-2 (14 secondi):
- Clicca "Reset to Time-2", OPPURE
- Premi il tasto "2" sulla tastiera (default, personalizzabile)
Nota: È possibile configurare se il cronometro si ferma automaticamente quando avviene un reset.
Se hai fatto un reset per errore:
- Clicca sul pulsante "Recall Previous"
- Il cronometro torna al valore precedente al reset
- Utile per correggere errori rapidamente
Caratteristiche:
- Sfondo nero per massimo contrasto
- Numeri rossi LED grandi e leggibili. Font familiare
- Stop-lamp arancione in alto quando il tempo scade
- Sincronizzazione automatica con la console
Quando il Tempo Scade (0.0):
-
Stop-lamp arancione appare
- Una barra luminosa arancione appare in alto
- Rimane visibile finché non resetti il cronometro
- Molto visibile anche da lontano
-
Sirena
- Viene riprodotto il file audio
horn.m4a(già fornito) - Suona una sola volta quando si raggiunge 0.0
- Suono personalizzabile nelle impostazioni
- Viene riprodotto il file audio
Per impostare un tempo personalizzato:
-
Espandi "Time Adjustment"
- Clicca sull'intestazione "Time Adjustment"
- La sezione si espande mostrando il campo di input
-
Inserisci il Tempo
- Digita il tempo desiderato in secondi (formato
S / SS / SS.D) - Esempi: "1", "02", "13.5"
- Puoi usare decimali (e.g., 14.5 = 14 secondi e mezzo)
- Digita il tempo desiderato in secondi (formato
-
Applica il Tempo
- Clicca sul pulsante "Set Time"
- Il cronometro si aggiorna immediatamente
- Il campo di input si svuota
-
Chiudi la Sezione (opzionale)
- Clicca di nuovo su "Time Adjustment"
- La sezione si comprime per risparmiare spazio
Importante: Puoi regolare il tempo solo quando il cronometro è fermo
L'interfaccia ha sezioni che puoi aprire/chiudere:
Time Adjustment:
- Clicca sull'intestazione per aprire/chiudere
- Contiene il campo per regolare manualmente il tempo
- Chiusa di default all'avvio
Settings:
- Clicca sull'intestazione per aprire/chiudere
- Contiene tutte le configurazioni
- Chiusa di default all'avvio
Indicatori Visivi:
- ▼ = Sezione aperta
- ▶ = Sezione chiusa
Il tempo trascorso viene mostrato in basso a destra del timer principale:
Funzionamento:
- Inizia da 0.0 quando resetti il cronometro
- Aumenta mentre il cronometro è in esecuzione
- Si ferma quando fermi il cronometro
- Si azzera quando fai un reset
Utilizzo:
- Evita di dover calcolare mentalmente il tempo passato
- Mostra quanto tempo è effettivamente passato
- Formato: SS.D (e.g., "5.3" = 5.3 secondi trascorsi)
- Scorri verso il basso nella console
- Trova la sezione "Settings"
- Clicca sull'intestazione per espandere
- Modifica le impostazioni desiderate
- Clicca "Save Settings" per salvare
Nota: Le impostazioni vengono salvate automaticamente nel browser e persistono tra le sessioni
Time-1 (Tempo principale):
- Trova il campo "Time-1 (seconds)"
- Inserisci il valore desiderato (e.g., "24")
- Questo è il tempo usato dal pulsante "Reset to Time-1"
Time-2 (Tempo secondario):
- Trova il campo "Time-2 (seconds)"
- Inserisci il valore desiderato (e.g., "14")
- Questo è il tempo usato dal pulsante "Reset to Time-2"
Esempi Comuni:
- Basket NBA: Time-1 = 24, Time-2 = 14
- Basket FIBA: Time-1 = 24, Time-2 = 14
- Allenamento: Time-1 = 30, Time-2 = 15
Puoi cambiare i tasti per controllare il cronometro:
Start/Stop Key (default: Barra Spaziatrice):
- Clicca sul campo "Start/Stop Key"
- Premi il tasto che vuoi usare
- Il campo mostra il nuovo tasto (vuoto se Barra Spaziatrice)
Reset Time-1 Key (default: "1"):
- Clicca sul campo "Reset Time-1 Key"
- Premi il tasto desiderato
- Esempio: puoi usare "v"
Reset Time-2 Key (default: "2"):
- Clicca sul campo "Reset Time-2 Key"
- Premi il tasto desiderato
- Esempio: puoi usare "n"
Suggerimento: Usa tasti facili da raggiungere
Stop timer on reset:
- Attivato (Default): Quando resetti, il cronometro si ferma automaticamente.
- Disattivato: Quando resetti, il cronometro continua a correre (o resta fermo se era già fermo).
Funzione "Hold to Reset" (Tieni premuto): NB. Se "Stop timer on reset" è disattivato:
- Tieni premuto il tasto di reset (e.g., "1").
- Il tempo si resetta e rimane "congelato" finché tieni premuto.
- Rilascia il tasto per far ripartire il conteggio immediatamente.
Blank display when reset to Time-1:
- Attivato: Il display diventa nero quando il tempo è uguale o superiore a Time-1 (e.g., 24.0).
- Disattivato: Il display mostra sempre il valore numerico.
Utilizzo:
- Funzionamento codificato da FIBA.
- Il display si riaccende automaticamente appena il tempo scende (e.g., 23.9).
- Indicatore Attività: Quando il display è nero, appare un puntino rosso al centro per indicare che il sistema è acceso e connesso.
- Utile per nascondere il tempo durante le azioni morte, avendo però la possibilità di verificare immediatamente che il sistema è attivo.
Show decimals on display (≤4.9s):
- Attivato: Mostra i decimali negli ultimi 5 secondi (4.9, 4.8, ..., 0.0).
- NB: in caso di decimali attivi, il "valore vuoto" sarà 24 (i.e., dopo il reset a 24.0, il display mostrerà "23" dopo un decimo di secondo).
- Disattivato: Mostra sempre il valore arrotondato per eccesso.
- NB: in caso di decimali NON attivi, per i valori da 0.9 a 0.1, il display mostrerà "1".
Logica con decimali attivati:
| Tempo | Display |
|---|---|
| 24.0s | 24 |
| 23.7s | 23 |
| 5.0s | 5 |
| 4.9s | 4.9 |
| 4.5s | 4.5 |
| 1.2s | 1.2 |
| 0.0s | 0.0 |
Logica con decimali disattivati:
| Tempo | Display |
|---|---|
| 24.0s | 24 |
| 23.7s | 24 |
| 5.0s | 5 |
| 4.9s | 5 |
| 4.5s | 5 |
| 1.2s | 2 |
| 1.0s | 1 |
| 0.1s | 1 |
| 0.0s | 0 |
Cambiare il file audio:
- Espandi la sezione "Settings"
- Scorri fino a "Horn Sound File"
- Clicca su "Scegli file" o "Choose File"
- Seleziona il tuo file audio (MP3, M4A, WAV, ecc.)
- Il file viene caricato e convertito automaticamente
- Clicca "Save Settings"
File supportati:
- MP3 (consigliato)
- M4A
- WAV
- OGG
- Altri formati audio standard
Suggerimenti:
- Usa file brevi (1-3 secondi)
- Assicurati che il volume sia adeguato
- Testa il suono
File Predefinito:
- Percorso:
static/horn.m4a - Puoi sostituire questo file direttamente (stesso nome e percorso)
- Oppure carica un file personalizzato tramite l'interfaccia
Problema: L'allarme non suona quando il tempo scade
Soluzioni:
-
Abilita l'Audio sul Display
- Quando apri il display, vedrai "🔊 Click to Enable Sound"
- Clicca una volta ovunque sul display
- Questo è richiesto dai browser moderni per motivi di sicurezza
-
Controlla il Volume
- Verifica che il volume del sistema non sia a zero
- Controlla che il browser non sia silenziato
- Verifica l'uscita audio corretta (cuffie/altoparlanti)
-
Verifica il File Audio
- Assicurati che
static/horn.m4aesista - Prova a caricare un file audio diverso
- Controlla che il file non sia corrotto
- Assicurati che
-
Console del Browser
- Premi F12 per aprire gli strumenti sviluppatore
- Vai alla scheda "Console"
- Cerca messaggi di errore relativi all'audio
- Potrebbero esserci informazioni utili
Problema: La barra di avviso non si vede quando il tempo scade
Soluzioni:
-
Verifica che il Tempo Raggiunga 0.0
- Controlla che il cronometro arrivi effettivamente a 0.0
- La barra appare solo quando il tempo è
$\le$ 0.0005 secondi
-
Ricarica il Display
- Chiudi la finestra del display
- Clicca di nuovo "Open Display in New Window"
- Prova di nuovo
-
Svuota la Cache
- Premi Ctrl+F5 (Windows) o Cmd+Shift+R (Mac)
- Questo ricarica completamente la pagina
- Risolve problemi di CSS non aggiornato
Problema: Il display mostra un tempo diverso dalla console
Soluzioni:
-
Ricarica Entrambe le Pagine
- Chiudi la finestra del display
- Ricarica la console (F5)
- Riapri il display
-
Verifica localStorage
- Assicurati che localStorage sia abilitato nel browser
- Vai in Impostazioni
$\rightarrow$ Privacy$\rightarrow$ Assicurati che i cookie siano abilitati
-
Usa lo Stesso Browser
- Console e display devono essere nello stesso browser
- Non funziona tra browser diversi (e.g., Chrome e Firefox)
-
Controlla le Estensioni
- Alcune estensioni del browser possono bloccare localStorage
- Prova in modalità incognito/privata
- Disabilita temporaneamente le estensioni
Problema: Premere i tasti non controlla il cronometro
Soluzioni:
-
Controlla il Focus
- Clicca sulla finestra della console
- Assicurati che nessun campo di input sia selezionato
- Le scorciatoie non funzionano quando stai scrivendo
-
Verifica i Tasti Assegnati
- Apri Settings
- Controlla quali tasti sono configurati
- Prova a riassegnarli se necessario
-
Tasti Riservati dal Browser
- Alcuni tasti sono riservati (e.g., F11, Ctrl+T)
- Usa tasti semplici come lettere o numeri
- Evita combinazioni con Ctrl, Alt, Cmd
Problema: Il cronometro è lento o scatta
Soluzioni:
-
Chiudi Schede Inutilizzate
- Troppo schede aperte rallentano il browser
- Chiudi applicazioni pesanti
-
Riduci la Dimensione della Finestra
- Usa la risoluzione nativa del monitor
-
Aggiorna il Browser
- Assicurati di usare l'ultima versione
- I browser vecchi possono avere problemi di prestazioni
Sì! Puoi aprire più finestre di display:
- Clicca "Open Display in New Window" più volte
- Ogni finestra si sincronizza automaticamente
- Posiziona ogni display su monitor diversi
- Tutti mostrano lo stesso tempo
Sì, ma con limitazioni:
- ✅ La console funziona su tablet
- ✅ Il display funziona su smartphone/tablet
⚠️ Le scorciatoie da tastiera non sono disponibili su touchscreen⚠️ Alcuni browser mobile limitano l'audio automatico
Consiglio: Usa un computer per la console e tablet/smartphone solo per display aggiuntivi.
Sì! Tutte le impostazioni sono salvate automaticamente:
- Tempi preimpostati (Time-1, Time-2)
- Scorciatoie da tastiera
- Opzioni display
- File audio personalizzato
Dove vengono salvate:
- Nel localStorage del browser
- Persistono anche dopo aver chiuso il browser
- Sono specifiche per ogni browser (Chrome, Firefox, ecc.)
Per resettare tutto:
// Apri la Console del browser (F12) e incolla:
localStorage.clear();
location.reload();Sì! Modifica il file style.css:
:root {
/* Cambia questi valori */
--text-timer-console: #888888; /* Grigio console */
--text-timer-display: #ff0000; /* Rosso display */
--accent-primary: rgb(233, 162, 59); /* Arancione */
--accent-tertiary: rgb(51, 118, 205); /* Blu */
}Sì, completamente!
- Non richiede connessione internet
- Tutti i file sono locali
- Funziona anche in aereo 😄
Eccezione: I font Google Fonts richiedono internet la prima volta, poi vengono memorizzati nella cache. Nel caso in cui non siano disponibili, viene usato un font di riserva.
Assolutamente! OpenShotClock è open source:
- Segnala bug o problemi
- Suggerisci nuove funzionalità
- Contribuisci con codice
- Migliora la documentazione
Molto preciso:
- Aggiornamento ogni 100ms (0.1 secondi)
- Decremento di 0.1 secondi per tick
- Precisione sufficiente per uso sportivo professionale
Nota: La precisione dipende dal browser e dal carico del sistema.
Checklist
- Verifica che tutti i file siano presenti
- Testa la sirena
- Configura i tempi corretti (24s, 14s, ecc.)
- Posiziona il display affinché sia visibile
- Abilita l'audio sul display (clicca una volta)
- Testa le scorciatoie da tastiera
- Verifica la sincronizzazione console-display
- Prepara un cronometro di backup (sempre!)
Se trovi un bug o hai suggerimenti:
- Annota esattamente cosa è successo
- Includi screenshot se possibile
- Specifica browser e sistema operativo
- Descrivi i passaggi per riprodurre il problema
Console: La pagina di controllo (index.html) usata dall'operatore
Display: La pagina di visualizzazione (display.html)
Time-1: Il tempo preimpostato principale (default 24 secondi)
Time-2: Il tempo preimpostato secondario (default 14 secondi)
Recall Previous: Funzione per ripristinare il tempo prima dell'ultimo reset
Elapsed Time: Tempo trascorso dall'ultimo reset
Horn Sound: Suono allarme riprodotto quando il tempo scade
Yellow stop-lamp: Barra arancione che appare in alto sul display a tempo scaduto
localStorage: Memoria del browser dove vengono salvate le impostazioni
Collapsed: Sezione compressa/chiusa dell'interfaccia
| Azione | Tasto |
|---|---|
| Start/Stop | Barra Spaziatrice |
| Reset Time-1 | 1 |
| Reset Time-2 | 2 |
| Azione | Metodo |
|---|---|
| Espandi/Comprimi Sezione | Clicca intestazione |
| Regola Tempo | Time Adjustment |
| Salva Impostazioni | Settings |
| Apri Display | External Display |
| Azione | Metodo |
|---|---|
| Abilita Audio | Clicca una volta ovunque |
| Schermo Intero | F11/fn+F |
| Esci Schermo Intero | ESC/F11/fn+F |
Versione Guida: 0.1
Data: 24 Dicembre 2025
Compatibile con: OpenShotClock v0.1
