Questo è un sistema basato su 4 punti IR, esiste anche un altro progetto simile che usa solo 2 punti (SAMCO) ma ha meno funzioni.
Non essendo molto bravo in elettronica (e nemmeno a scrivere se è per questo) aiutato e consigliato dal buon PICERNO, avendolo seguito da mesi e fatto da tester per questo progetto proverò a dare anch'io il mio contributo a questo forum

CARATTERISTICHE:
calibrazione automatica: si calibra automaticamente ogni volta che vede i 4 LED IR, quindi dovresti avere una buona visuale indipendentemente da dove ti trovi (purché tu sia naturalmente sotto la gamma dei LED). L'unica calibrazione necessaria è la calibrazione dell'offset della telecamera IR, ma dovrai farlo solo una volta, al primo utilizzo.
puntamento preciso della visuale: grazie al sistema a 4 led, il puntamento è molto preciso ed è molto meno agitato rispetto ad altre
soluzioni IR.
distanza minima ridotta: poiché questo sistema può rintracciarti fino a 1 ~ 2 led, la distanza che devi essere dallo schermo è molto inferiore rispetto ad altri sistemi. Devi solo essere in grado di vedere i 4 LED contemporaneamente quando miri al centro dello schermo (per la calibrazione).
supporto per la mira fuori dallo schermo: poiché la camma IR può ancora vedere un LED, continuerà a seguirti fuori dallo schermo, consentendo di spostare il cursore sui lati.
modalità di sparo fuori dallo schermo : quando spari fuori dallo schermo (o fuori o fuori dalla gamma dei LED IR), il grilletto attiverà il pulsante di ricarica invece del pulsante di fuoco, per consentire un gameplay più autentico quando si gioca a Virtua Cop, ad esempio. Ovviamente puoi anche usare il pulsante Ricarica (o il pulsante Pedale / Maniglia) se preferisci. Puoi persino usarli entrambi contemporaneamente. Puoi anche disabilitarlo in qualsiasi momento con i pulsanti Trigger + Calibration combinati.
mouse rilasciato quando fuori portata: quando la telecamera non vede alcun led IR, rilascia il controllo del mouse, quindi non è necessario scollegare o mettere in pausa la pistola per usare altri mouse (ad esempio in Windows).
modalità mouse / tastiera e joystick: ci sono modalità di emulazione del dispositivo Lightgun, che possono essere cambiate in qualsiasi momento con una singola pressione del pulsante A + pulsante di calibrazione. In modalità mamehooker, puoi anche attivarli automaticamente per ogni gioco o ciascun emulatore:
- modalità mouse / tastiera (modalità predefinita): usa il mouse per mirare, i pulsanti del mouse per i primi 4 pulsanti (grilletto, A, B, pedale / pulsanti della maniglia ) e utilizzare la tastiera per il resto dei pulsanti.
- modalità joystick: utilizza il joystick per la mira e i pulsanti del joystick per tutti i pulsanti.
- Modalità ibrida: usa il mouse per mirare e i pulsanti del joystick per tutti i pulsanti. Utile per dispositivi e giochi che supportano la mira del mouse ma non tanto mouse + tastiera. (Progetto MiSTer FPGA per esempio)
Supporto rapporto proporzioni 16/9 e 4/3: sono disponibili 3 modalità proporzioni, che possono essere cambiate in qualsiasi momento con una sola pressione del pulsante di calibrazione. In modalità mamehooker, puoi anche attivarli automaticamente per ogni gioco o ciascun emulatore.
- 16/9 (modalità predefinita), quindi dovrebbe funzionare con qualsiasi schermo 16/9 indipendentemente dalla risoluzione (dovrebbe funzionare anche con altri rapporti vicini al 16/9, come il 16/10). Ma per comodità ho aggiunto anche 2 modalità:
- 4/3 in 16/9 con box a pilastri (per giochi 4/3 su un 16/9): come puoi immaginare, ti permette di giocare a 4/3 giochi su un 16 / 9 schermo, non è necessario allungare lo schermo intero.
- nativo 4/3: quando si gioca su uno schermo 4/3.
Calibrazione manuale dello schermo: questo ti permetterà di calibrare lo schermo nel caso in cui i tuoi led non siano proprio accanto allo schermo o se hai un formato insolito.
supporto solenoide / rombo: aggiunte funzioni per supporto solenoide e / o rombo. Il solenoide viene attivato quando si spara sullo schermo e passa alla modalità automatica quando si tiene premuto il grilletto. Il rombo si attiva quando si ricarica o si spegne lo schermo e quando si cambia modalità. In modalità mamehooker, reagiranno al gioco se supportati.
Supporto per Mamehooker: con giochi ed emulatori supportati, imposterà automaticamente cose come le proporzioni e le modalità di mira / pulsante. Puoi anche usarlo per forzare quelle impostazioni in ogni momento (se ad esempio stai sempre giocando su un vero schermo 4/3). Come indicato prima, otterrai anche il supporto solenoide / rombo per ogni gioco che li supporta. Tuttavia, a causa del modo in cui funziona questo sistema arduino e per impedire la masterizzazione del solenoide, esiste un limite ai tempi di attivazione per quelli, in alcuni giochi con commutazione rapida (come la modalità automatica completa del terminatore 2), i tempi potrebbero essere leggermente disattivati.
Supporto del sensore di temperatura del solenoide (non ancora completamente implementato): con un sensore di temperatura, questo consente di controllare la velocità del solenoide in base alla temperatura, per evitare che muoia. Lo spegnerà completamente se viene raggiunta la temperatura limite. Devo ancora capire quali sono le temperature nominali da usare.
Occorente:
1) una qualsiasi lightgun per console (qualsiasi console non per forza guncon)
2) 1x scheda arduino pro micro Atmega32u4 5V / 16MHz (clone di arduino leonardo) e un cavo usb micro almeno 2mt
3) 1x fotocamera IR per arduino (DFRobot) mod. SEN0158 (probabilmente la camera andrà montata ruotata di 90° con la scritta top che deve andare a destra e non in alto)
4) 8x led infrarossi abbastanza potenti e con un angolo almeno di 30° (io ho usato LIR3333 che sono molto comuni)
5) 4x resistenze 1/4 watt, il valore va calcolato in base al tipo di led usato (per i LED LIR3333 ho usato resistenze da 47ohm)
6) basetta millefori da tagliare in 4 piccole basi da 4x4pin
7) del filo abbastanza lungo per saldare i led tra loro e all'alimentazione

9) un alimentatore usb 5v 1a
Collegamenti arduino:
Opzionale per avere Vibrazione e Rinculo:
1) motore rumble gamepad 5v (quelli per xbox360 vanno benissimo)
2) solenoide 24v (io ho preso questi JF-0630 che non hanno polarità)
3) alimentatore 24v e 5v aggiuntivo (io avevo un alimentatore per notebook universale che arrivava fino a 24v e anche con porta usb a 5v
4) cavo spiralite per avvolgere i cavi (per ragruppare cavo usb arduino, cavo alimentazione solenoide e motore
5) vari componenti per creare il circuito (qualche diodo, 1 mosfet 1 transistor e delle resistenze)
Schemi e firmware li trovate qui:
http://forum.arcadecontrols.com/index.p ... 189.0.html
Va calibrato una sola volta e la calibrazione è semplicissima, basta tenere premuto il pulsante di calibrazione e sparare una volta al centro dello schermo poi un altra volta in alto a sinistra e un altra in basso a destra.
Le 4 basette vanno fissate al centro dei 4 lati del monitor (se inclinato le basette vanno raddrizzati con un pò di spessore su un lato)
i led ir vanno saldati sulle basette in serie e collegati all'alimentatore 5v 1a (io ho collegato solo la basetta inferiore alla corrente e le altre in cascata a quest'ultima per consumare meno filo).Per verificare il funzionamento si può usare la fotocamera del cellulare se i led sono accesi e luminosi sono collegati e inclinati correttamente. Occhio se viene montato in un cab bisogna assicurarsi che i lati interni del mobile non siano lucidi in quanto potrebbe disturbare il segnale dei led (a me lo fa anche con le varie luci montate sul mobile, quindi nel caso vanno coperte per non avere problemi).Il vetro Bezel del cab non influisce sull'utilizzo ma se ci sono led sulla plancia il riflesso potrebbe disturbare il segnale.
Io ho realizzato tre lightgun di cui una sola era un guncon2 compatibile (e addirittura wifi), ho usato una BIOGUN per XBOX1 e una SRC BIOGUN per SEGA Dreamcast (avendole buttate da anni a prendere polvere ho deciso di sfruttarle di nuovo)
esempi di JayBee
le mie gun
La cosa bella di questo progetto è che va bene qualsiasi gun perchè serve principalmente solo l'involucro esterno delle pistole, e al massimo la scheda originale (rimuovendo i componenti installati se serve spazio) per utilizzare i collegamenti dei vari tasti.
collegamenti guncon2 di JayBee
Il costo di tutti i componenti necessari è davvero irrisorio paragonato a quanto costa una Aimtrak.Io ne ho fatte tre complete al costo di una...

Precisazione:
La cam IR è il componente più e bisogna trovarla a buon prezzo oppure prenderne più di una per risparmiare, io sono riuscito a farne tre rientrando nei costi di una Aimtrak completa di rinculo, ma anche se una dovesse venire a costare uguale ad un aimtrak, questo sistema in confronto è nettamente superiore in molti aspetti e per i motivi che seguono...
Considerazioni personali:
Si calibra automaticamente, ricarica fuori schermo, il puntamento è precisissimo pure spostandosi funziona sempre, ovviamente la gun deve sempre poter vedere i 4 punti IR sul monitor. Non necessità di driver, viene visto come un mouse, è diy, il firmware è aggiornabile per avere nuove funzioni e personalizzazioni. Essendo visto come mouse funziona con qualsiasi emulatore o gioco per PC e ArcadePC senza nessun problema, compatibile con demulshooter e mamehooker (per gestire il rinculo dei giochi come in sala), modalità di rinculo normale o a raffica se si tiene premuto il grilletto,vibrazione quando si carica oppure si fa l'offscreen reload.Supporta anche il pedale.Funziona su qualsiasi tipo di schermo o TV.Per non parlare del tremolio del cursore che qui è quasi inesistente...

Resoconto finale:
Ovviamente la buona riuscita del progetto può dipendere da vari fattori (grandezza schermo, tipo di led utilizzati,ecc), per quello che serve a me, e cioè usare le gun a distanza di 1/1,20mt da un monitor 25" CRT è la soluzione perfetta!!! Se state valutando l'acquisto di un Aimtrak o una Lightgun Arcade (e costano troppo)o una dolphinbar con wiimote (ma esteticamente non si possono guardare..) visitate il thread di riferimento sul forum di Arcadecontrols, ne resterete piacevolmente colpiti..

Più in là posterò anche qualche video delle mie prove , ma per farvi capire meglio il funzionamento vi linko quelle dell'autore del sistema
https://www.youtube.com/watch?v=RyhEKAqR8ZU
https://www.youtube.com/watch?v=5lOVDVhNPsA
Per info più dettagliate potete seguire il thread originale del progetto oppure chiedere qui, cercherò nel mio piccolo se possibile di aiutarvi!

Questo è l'elenco delle varie versioni uscite:
* 2020/02/29 - 1.93
- reworked the aiming and detection, to make it faster and better
- fixed some bugs
* 2020/02/29 - 1.91
- rewrote the 3 points aiming calculation, it's way more precise now
- changed the test tool to better see the led recognition.
* 2020/02/28 - 1.87
- 2 points detection is now inactive if too close from the screen, to avoid misdetection
* 2020/02/28 - 1.86
- fixed calibration issues
- fixed aiming issues
- fixed the flash/clear tool
* 2020/02/28 - 1.85 major update, please read the changelog carefully before updating!
- rewrote the whole flashing and config tool, now a lot more user friendly!
- made a double timing test to be able to flash any arduino. No need to modify the bat file anymore.
- various optimizations
- IR points detection bug corrected, it should be a bit more stable now
- reworked the buttons management
- merged normal and test firmware, now the test tool should trigger the test mode (replug the arduino once to reboot in normal mode)
- added RGB LED support for the 7 button + LED firmware! If your gun uses more than 7 buttons or if you don't want LED support please use the 11 buttons firmware
- added temperature sensor support! connect a tmp36 sensor to pin A0
- added rumble and LED feedbacks when changing modes
- added various LED feedbacks
- added EEPROM save and load gun data
- updated the game screen ratio modes for better usage and compatibility, now there are only 2; fullscreen and 4:3
- updated the test tool, now the one pde tool supports both normal and full screen, and has more options (don't use the old tools)
* 2020/02/18 - 1.76
- reworked the buttons management again and fixed the remaining issues (with the calibration for instance)
- fixed the bug with the feedback when offscreen reload is disabled, now it should trigger the solenoid (the way it works remain unchanged when offscreen reload is enabled)
- modified the flashing batch file to be more compatible (detects bootloader whatever the model, and waits for 6 seconds now)
- rewrote part of the guide, added installation instructions
* 2020/02/16 - 1.75
- fixed the combo buttons functions (joystick mode, offscreen shot...)
- reworked the buttons management to decrease risks of bugs and future-proof it
- did a lot of small optimization to increase the execution speed.
- changed the zip file, firmware name and flash bat again, now you can know which firmware you have, and choose between normal and test firmware. Please don't mix with the previous files.
* 2020/02/15 - 1.70
- restored the cursor accuracy without increasing the load, it should eliminate most wobbles
- put everything in only one zip and renamed the batches file for more clarity.
- added diagrams for the gun feedbacks
* 2020/02/13
- added the fullscreen IR testing tool
* 2020/02/12 - 1.68
- Improved the 2 points detection and optimized the other functions
- updated the .pde sketch for IR testing, now it can be edited easily to fit any setup/resolution/com port
* 2020/02/12 - 1.66
- fixed some bugs and re implemented the 2 points detection
* 2020/02/11 - IR cam testing tool
- I uploaded the Processing sketch for testing the IR points, and the firmware that works with it.
* 2020/02/09 - 1.55 beta
- Rewrote a big part of the aiming calculation, it should be far more stable.
- Added a better tilt/twist detection, now the gun should still work fine when tilting it, it increases the maximum tilt to 89 degrees on each side.
- Added a function to disable the press of secondary button when shooting offscreen.
+ You can disable it by holding trigger button and pressing the calibration button briefly.
+ Enable it back the same way.
+ For now this parameter isn't saved in the EEPROM, it will reset on power cycle.
* 2020/01/19 - 1.35
- slightly improved the led detection code and the calculation, now the twist is a bit better.
* 2020/01/18 - 1.3
- cleaned some code and added the option for screen calibration.
* 2019/10/26 - 1.2
- first public version
Lista componenti e collegamenti circuito per aggiungere rinculo e vibrazione
Visto che non ne capisco molto di elettronica non metterò gli schemi elettrici ma le foto di come ho collegato i vari componenti così sarà più facile per chi è come me...

Circuito Solenoide:
1x Mosfet IRL540
1x diodo 1N4001
1x resistenza da 100k
1x resistenza da 1k
1x schedino millefori da tagliare delle dimensioni necessarie (ho usato lo stesso schedino per tutti e due i circuiti)
1x solenoide 24v di tipo push and pull (io ho usato JF-0630 per le dimensioni contenute)
1x cavo alimentazione (io ho usato quello di un notebook rotto)
1x alimentatore 24v (io ho usato quello di un notebook universale 15-24v)
1x connettori DCJACK maschio femmina
alimentatore dedicato 24v oppure quelli universali 15-24 settato a 24v
Dcjack femmina da collegare al cavo che arriva al solenoide che sia compatibile con l'uscita del jack maschio dell'alimentatore
Se si vogliono collegare 2 pistole e usare un solo alimentatore da 24v vi serve questo:
Attenzione il mosfet deve essere necessariamente IRL540 (Logic Level gate) e anche se di uguali caratteristiche non IRF540 (Power gate) perchè hanno un comportamento diverso, e occhio alla numerazione dei pin

pinout del mosfet IRL540 (in foto è quello IRF540 ma il pinout è lo stesso)
schema elettrico per accontentare i più esperti

Semplicemente vanno collegati in questo ordine:
MOSFET PIN1 - PIN RESISTENZE 1K-100K
MOSFET PIN2 - PIN DIODO 1N4001 positivo (anodo) E SOLENOIDE GND
MOSFET PIN3 - GND ALIMENTAZIONE 24V
PIN RESISTENZA 1K - PIN 7 ARDUINO
PIN RESISTENZA 100K - GND ALIMENTAZIONE 24V E GND ARDUINO (UNO QUALSIASI DEI 3 DISPONIBILI)
PIN DIODO 1N4001 negativo (catodo) - ALIMENTAZIONE +24V E SOLENOID +
Se i fili del solenoide sono dello stesso colore, come nel mio caso, vuol dire che non ha polarità e quindi è indifferente come si collegano al diodo
Circuito Vibrazione:
1x transistor np2222
1x resistenza da 270ohms
1x diodo 1N4001
1x motore vibrazione gamepad 5v (gamepad xbox360 o simili)
1x schedino millefori da tagliare delle dimensioni necessarie (ho usato lo stesso schedino per tutti e due i circuiti)
1x cavo usb (qualsiasi cavo usb)
1x alimentatore 5v usb (l'alimentatore notebook che ho usato aveva anche un uscita usb)
schema elettrico per accontentare i più esperti

Collegamenti PIN:
TRANSISTOR PIN1 - GND ALIMENTAZIONE 5V E GND ARDUINO (UNO QUALSIASI DEI 3 DISPONIBILI)
TRANSISTOR PIN2 - PIN RESISTENZA 270OHM
TRANSISTOR PIN3 - DIODO 1N4001 positivo (anodo) e NEGATIVO MOTORE
PIN RESISTENZA 270OHM - PIN 5 ARDUINO
PIN DIODO 1N4001 negativo (catodo) - ALIMENTAZIONE +5V E POSITIVO MOTORE
Volendo se il motore non richiede troppa energia si potrebbe collegare direttamente ai +5v del pro micro ma sinceramente dovendo portare comunque un secondo filo per i 24v ho preferito aggiungere un cavo usb che lo alimenta a parte, tanto ho usato poi un semplice cavo spiralite per unirli tutti e tre o si può usare anche un cavo corrugato per i fili elettrici.
ATTENZIONE ai GND: devono essere connessi insieme GND ARDUINO e GND ALIMENTAZIONE
La vibrazione si attiva ogni qualvolta si preme il pulsante A o Ricarica OFFSCREEN oppure il PEDALE
il solenoide si attiva invece quando si preme il grilletto una volta o si tiene premuto va in modalità fullauto (raffica)

Ovviamenti per i vari collegamenti servono vari fili abbastanza sottili io ho usato quelli che si usano nei case dei PC
Se trovate qualche errore nei collegamenti che ho postato sentitevi liberi di farlo presente.

Alla fine mi sono trovato con 3 cavi di circa 1.5/1.8mt che partono dalla pistola, ovvero cavo mcirousb che alimenta il pro micro, un cavo corrente collegato al circuito del solenoide con dc-jack femmina da collegare all'alimentatore 24v e un cavo usb collegato al circuito del rumble da collegare ad un alimentatore a 5v, questi 3 cavi li ho raggruppati con un tubo spiralite come questo
ma potete anche usare un tubo corrugato come questo
pistole di JayBee
VIDEO ESEMPIO Solenoide e Rumble in funzione
https://youtu.be/0iA1-uByOKM
Circuito LED IR Monitor:
Per circuito led ir che ho usato io e penso vada bene su qualsiasi cab fino a 25" (forse anche 28) con distanza 1m/1.5m:
8x LED IR LIR3333
4x RESISTENZE 47 ohm
1x cavo usb
1x Alimentatore usb 5v 1a
1x schedino millefori da tagliare ad hoc
Tagliare la millefori in modo da fare 4 piccole basette 4x4 pin
inserire i due led ir in diagonale in modo che formino una V e collegarli in serie così:
PIN LED IR positivo (anodo) (gamba più lunga) - +5V cavo usb (filo rosso)
PIN LED IR negativo (catodo) - PIN SECONDO LED IR positivo (anodo)
PIN SECONDO LED IR negativo (catodo) - PIN RESISTENZA 47OHM
ALTRO PIN RESISTENZA 47OHM - gnd cavo usb (filo nero)
foto per rendere più chiari i collegamenti, il led metteteli come volete basta che formino una V
Stessi collegamenti sulle altre 3 schede solo che per alimentarli li collegheremo in cascata e cioè come si può anche vedere in foto colleghiamo altri 2 file (io ho usato una coppia di un cavo di rete) ai pin +5v e gnd del cavo usb e li portiamo ai PIN LED positivo e Resistenza della seconda scheda millefori (LATO DESTRO) e così via Lato Alto e lato sinistro, tutte e 4 le schedine andranno fissati esattamente al centro di ogni lato del monitor (vedere come li ho collegati sul mio, il filo l'ho nascosto nelle fessure tra il monitor e il mobile) per fissarli ho usato del bioadesivo extra strong

Se il monitor è inclinato come nel mio caso, le schedine vanno raddrizate (io ho aggiunto altro bioadesivo sulla parte superiore) altrimenti la cam ir avrà problemi a vederli.
i fili verde e biancoverde sono i +5v e gnd che vanno collegati in cascata agli altri schedini (io ho fatto così per usare meno cavo, ma potete collegare ogni schedino direttamente all'alimentazione usb)
Tutto qua!
Le mie tre gun finite e pronte all'uso...
Prossimamente posterò i video del funzionamento

Software Necessario:
Arduino IDE - Software e Driver per il pro micro leonardo
Firmware 4ir led system di JayBee (BYOAC forum)
Firmware 4IR di JayBee (BYOAC forum) ultima versione (1.93)
Procedura di installazione:
Scaricare il software arduino IDE ed installare sia il software che i driver USB
una volta finito collegare la scheda arduino alla porta usb ed attendere il rilevamento e l'installazione del dispositivo
Una volta finito scaricare il firmware dal link sopra o dal forum BOYAC e lanciare il file Firmware_flash.bat e scegliere se installare il firmware di Test (T) per verificare il funzionamento dei led IR oppure quello normale (N) per provare subito ad utilizzare la pistola, se l'arduino è stato installato correttamente il flash partirà dopo 6 secondi automaticamente.
Una volta fatto questo non resta che rimuovere la scheda e collegarla alla macchina che si vuole usare e giocare!

Aggiunta sensore di temperatura per evitare che il solenoide si surriscaldi e si frigga:
1x sensore di temperatura per arduino TMP36
Procedura molto semplice per aggiungere questo sensore di temperatura, vanno collegati Pin1 e Pin3 rispettivamente ai +5v e gnd dell'arduino e invece Pin2 al Pin 18 (A0) sempre di Arduino
Questo sensore dovrebbe regolare la velocità del sonenoide in base alla temperatura rilevata
