Benvenuto Ospite,
per utilizzare il Forum ed avere accesso a tutte le sezioni e poter aprire un tuo Topic, rispondere nelle varie discussioni, mandare o ricevere Messaggi Privati devi seguire pochi passaggi:
Leggi il nostro Regolamento -> PREMI QUI <-
Segui il link su come Iscriversi -> PREMI QUI <-
Ricordati di aggiornare l'Avatar usando una immagine che ti distingua nel Forum
per utilizzare il Forum ed avere accesso a tutte le sezioni e poter aprire un tuo Topic, rispondere nelle varie discussioni, mandare o ricevere Messaggi Privati devi seguire pochi passaggi:
Leggi il nostro Regolamento -> PREMI QUI <-
Segui il link su come Iscriversi -> PREMI QUI <-
Ricordati di aggiornare l'Avatar usando una immagine che ti distingua nel Forum
Nuovo progetto Lightgun
Nuovo progetto Lightgun
Ho avuto questa idea, una lightgun basata su sensore IMU (accelerometro e giroscopio) con un singolo led IR come ancora.
come hardware sto usando:
XIAO ESP32S3 Sense come microcontrollore principale (25-30€ su aliexpress)
IMU LSM6DSOX settato a 833 Hz, è il cuore del puntamento (io avevo il "modulino" del kit Arduino, ma si trovano le schedine adafruit/sparkfun a pochi €)
Camera OV2640 (inclusa con il Sense)
LED IR 850 nm + filtro ottico 850 nm (che mi devono ancora arrivare)
Come funziona:
Attualmente viene visto come USB HID assoluto (mouse assoluto, compatibile quindi con giochi ed emulatori)
L'approccio è diverso dalle lightgun classiche: il puntamento è guidato dall'IMU (giroscopio + accelerometro), non dalla camera. La camera serve solo come ancora ottica lenta (30fps) per limitare il drift nel tempo.
nel firmware viene usato un MEKF (Multiplicative Extended Kalman Filter) 8x8 custom che stima:
orientazione tramite quaternione, il bias del giroscopio e l'offset camera-IMU
il cursore sempre è attivo anche quando il LED non è visibile (es. off-screen)
c'è l'off-screen detection con isteresi ai bordi
i GPIO del microcontrollore sono configurabili come tasti tastiera o pulsanti mouse
la posizione del puntatore è aggiornata 500 volte al secondo (testato), ho fatto un video a 240 fps in cui riprendo il monitor, impostato a 120 fps, dove il prototipo e la freccia del mouse partono a muoversi e cambiano direzione nello stesso frame video, quindi latenza inferiore a 4ms, l'usb comunica col pc a 1000 Hz
Video (scarica e visualizza con VLC per avanzare frame per frame
appena mi arrivano i led ed i filtrini IR faccio un po di tuning finale contro blob ambientali multipli,
valutazione del drift su sessioni lunghe (30+ min), misure di latenza end-to-end (devo capire come oltre al video)
poi farò la variante wireless Bluetooth HID con gestione della batteria, infine recoil con solenoide.
può interessare?
come hardware sto usando:
XIAO ESP32S3 Sense come microcontrollore principale (25-30€ su aliexpress)
IMU LSM6DSOX settato a 833 Hz, è il cuore del puntamento (io avevo il "modulino" del kit Arduino, ma si trovano le schedine adafruit/sparkfun a pochi €)
Camera OV2640 (inclusa con il Sense)
LED IR 850 nm + filtro ottico 850 nm (che mi devono ancora arrivare)
Come funziona:
Attualmente viene visto come USB HID assoluto (mouse assoluto, compatibile quindi con giochi ed emulatori)
L'approccio è diverso dalle lightgun classiche: il puntamento è guidato dall'IMU (giroscopio + accelerometro), non dalla camera. La camera serve solo come ancora ottica lenta (30fps) per limitare il drift nel tempo.
nel firmware viene usato un MEKF (Multiplicative Extended Kalman Filter) 8x8 custom che stima:
orientazione tramite quaternione, il bias del giroscopio e l'offset camera-IMU
il cursore sempre è attivo anche quando il LED non è visibile (es. off-screen)
c'è l'off-screen detection con isteresi ai bordi
i GPIO del microcontrollore sono configurabili come tasti tastiera o pulsanti mouse
la posizione del puntatore è aggiornata 500 volte al secondo (testato), ho fatto un video a 240 fps in cui riprendo il monitor, impostato a 120 fps, dove il prototipo e la freccia del mouse partono a muoversi e cambiano direzione nello stesso frame video, quindi latenza inferiore a 4ms, l'usb comunica col pc a 1000 Hz
Video (scarica e visualizza con VLC per avanzare frame per frame
appena mi arrivano i led ed i filtrini IR faccio un po di tuning finale contro blob ambientali multipli,
valutazione del drift su sessioni lunghe (30+ min), misure di latenza end-to-end (devo capire come oltre al video)
poi farò la variante wireless Bluetooth HID con gestione della batteria, infine recoil con solenoide.
può interessare?
-
Tox Nox Fox
- Moderatore

- Messaggi: 12754
- Iscritto il: 14/01/2007, 23:35
- Medaglie: 4
- Grazie Inviati: 247 volte
- Grazie Ricevuti: 373 volte
- Alessandro Satanassi
- Newbie

- Messaggi: 8
- Iscritto il: 15/05/2026, 13:09
- Città: Sarsina
- Grazie Ricevuti: 1 volta
Re: Nuovo progetto Lightgun
Sarà opensource il tuo progetto ? .. se si dove trovo il repository ? ... grazie ... in futuro pensavo di aggiungere un giroscopio anche al mio progetto a cui sto lavorando (https://github.com/alessandro-satanassi ... ware-ESP32), proprio per gestire ancor meglio la perdita di visuale dei sensori
Re: Nuovo progetto Lightgun
Open source si, ma voglio lavorarci un po' prima di rendere pubblici i sorgenti, almeno testarlo, spero arrivino presto i led e i filtri IR, attualmente ogni sorgente luminosa la vede come blob da seguire, quindi l'ancoraggio si sposta e salta continuamente, senza camera invece è già piuttosto preciso, il calcolo MEKF fa un buon lavoro, si può usare tranquillamente come air mouse,
ho anche visto delle schedine con l'imu LSM6DSV sui 6€ su aliexpress che dovrebbero essere ancora piu precise, pensare che il LSM6DSV lo fanno in Italia
ho anche visto delle schedine con l'imu LSM6DSV sui 6€ su aliexpress che dovrebbero essere ancora piu precise, pensare che il LSM6DSV lo fanno in Italia
- Alessandro Satanassi
- Newbie

- Messaggi: 8
- Iscritto il: 15/05/2026, 13:09
- Città: Sarsina
- Grazie Ricevuti: 1 volta
Re: Nuovo progetto Lightgun
Se non sbaglio anche i primi giroscopi che montarono sui controlli della Wii, li fecero in Italia ... quando sarai pronto, fammelo sapere, grazie .. cosa usi, platformio ?
Re: Nuovo progetto Lightgun
Nell'attesa mi sta venendo una certa idea

oltre ad aver aumentato drasticamente le prestazioni sfruttando le SIMD di esp32,
ora la rilevazione ODS del sensore è passata a 1,66khz, e tratta 8 campioni ogni 2ms, la rilevazione della posizione del led è passata a 50fps (limite della fotocamera)

oltre ad aver aumentato drasticamente le prestazioni sfruttando le SIMD di esp32,
ora la rilevazione ODS del sensore è passata a 1,66khz, e tratta 8 campioni ogni 2ms, la rilevazione della posizione del led è passata a 50fps (limite della fotocamera)
Re: Nuovo progetto Lightgun
Eccomi, intanto che le poste decidono di rilasciare i miei led e filtri IR in ostaggio, ho preparato lo schema di un PCB dove è possibile inserire direttamente lo Xiao Sense con il mio firmware caricato, la schedina monta già:
i pcb si potrebbero vendere ad un ventina d'euro l'uno, forse poco più per rientrare delle tasse.
siccome ho parlato di batteria viene da se che ho implementato il Bluetooth, non sono molto sensibile al lag ma a me sembra più che accettabile, ovviamente il polling non è 1000hz con posizione rilevata ogni 2ms, in questo si arriva a rilevare la posizione 150 volte al secondo, esattamente come il trackpad di un buon portatile.
costruire il prototipo della scheda costa un centinaio di euro, cifra che per ora non ho voglia di spendere, prima vorrei far funzionare il sistema, farmi qualche partita ecc. spero che mi arrivi tutto prima che mi finisca la voglia.




- il sensore con accelerometro e giroscopi, ancora più preciso di quello che sto usando attualmente
- il circuito opzionale per pilotare direttamente un solenoide per il rinculo, con ingresso 12v dedicato, i cavi vanno stagnati sulla scheda
- il connettore 2 pin jst per una batteria al litio, anche questa opzionale, lo Xiao può ricaricala da usb, ma i pin sono sotto, perciò la batteria si può collegare alla scheda ma per usarla vanno stagnati due cavi dai pad bucati appositi
- i pad bucati per i collegamenti al trigger ad a tutti i tasti opzionali
- 4 mini tasti ed un mini joystick utilizzabili senza dover stagnare niente
- foro per far scendere verso il basso il cavo usbc collegato allo Xiao
i pcb si potrebbero vendere ad un ventina d'euro l'uno, forse poco più per rientrare delle tasse.
siccome ho parlato di batteria viene da se che ho implementato il Bluetooth, non sono molto sensibile al lag ma a me sembra più che accettabile, ovviamente il polling non è 1000hz con posizione rilevata ogni 2ms, in questo si arriva a rilevare la posizione 150 volte al secondo, esattamente come il trackpad di un buon portatile.
costruire il prototipo della scheda costa un centinaio di euro, cifra che per ora non ho voglia di spendere, prima vorrei far funzionare il sistema, farmi qualche partita ecc. spero che mi arrivi tutto prima che mi finisca la voglia.




Ultima modifica di Nenco79 il 24/05/2026, 10:55, modificato 1 volta in totale.
- Alessandro Satanassi
- Newbie

- Messaggi: 8
- Iscritto il: 15/05/2026, 13:09
- Città: Sarsina
- Grazie Ricevuti: 1 volta
Re: Nuovo progetto Lightgun
A 150 hz, ovvero a circa 7ms, non si percepisce alcun Lag, se col bluetooth hai ottenuto tali velocità di trasmissione dei pacchetti ed è costante, vai liscio, funzionerà benissimoNenco79 ha scritto: ↑oggi, 10:27
siccome ho parlato di batteria viene da se che ho implementato il Bluetooth, non sono molto sensibile al lag ma a me sembra più che accettabile, ovviamente il polling non è 1000hz con posizione rilevata ogni 2ms, in questo si arriva a rilevare la posizione 150 volte al secondo, esattamente come il trackpad di un buon portatile.
Re: Nuovo progetto Lightgun
dovrebbero essere 7.5ms (6x1,25) è il minimo impostabile, poi bisogna vedere se l'os da retta ed il driver da retta (windows 11 e drivers intel lo fanno), in condizioni ideali sono quindi 133hz. probabilmente il picco di 150hz è dato dal jitterAlessandro Satanassi ha scritto: ↑oggi, 10:42 A 150 hz, ovvero a circa 7ms, non si percepisce alcun Lag