Simulatore di tiro a segno

Ciao a tutti, sono un nuovo iscritto al Forum.
Ho acquistato Arduino e sto imparando ad utilizzarlo per uno scopo ben preciso: quello di realizzare un simulatore indoor di tiro a segno, mixando Arduino e Processing per la Sezione TSN di cui faccio parte.
Dopo aver acquistato e testato alcuni sensori (ultrasuoni per il calcolo dell'altezza dell'arma da terra; giroscopio per verificare deriva laterale) mi sono impantanato perchè gestire il posizionamento del mirino sul bersaglio con questi sensori mi risulta difficile e poco preciso.
Volevo quindi chiedere a voi più esperti quali sensori / strumenti potrei utilizzare per realizzare questo progetto, che praticamente prevede:
Track millimetrico del movimento del mirino sul bersaglio (disegnandolo graficamente con processing), acquisizione momento dello scatto (acquisibile tramite un sensore audio o un interruttore sul grilletto), verifica del posizionamento del colpo sul bersaglio (?????).
Pensavo che una soluzione alternativa potesse essere mettere un puntatore laser sulla pistola, ma sul bersaglio, come faccio ad acquisire il raggio laser ? esistono matrici di sensori adatti allo scopo o altre soluzioni praticabili per interpolazione dei punti?
Se qualcuno avesse suggerimenti o indicazioni pratiche già applicabili al progetto, sarebbe fantastico.
Grazie mille!!
Maurizio

Essendo il tuo primo post, sei pregato di presentarti, dicendo quali competenze hai di elettronica e di programmazione.

A mio avviso il progetto che vuoi realizzare non si presta molto a essere realizzato solo con schede arduino.
Sistemi di questo tipo usano un laser e telecamere per rilevare l'immagine.

>mamussi: come ti ha già segnalato "torn24", essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

Mi sono presentato..nessuno ha qualche idea ?

Scordati di ottenere la posizione sul bersaglio con precisione millimetrica usando sensori low cost, intanto hai un grosso problema di parallasse, un solo grado di errore a 1 metro di distanza diventano 17.5 mm di errore sul bersaglio, inoltre i sensori mems normalmente usati con Arduino soffrono di una rilevante deriva degli assi nel tempo.
La soluzione più "semplice" al tuo problema è usare un laser ir montato dentro la canna dell'arma simulata e una webcam con risoluzione 1080p, senza filtro ir e schermata dalla luce ambiente, deve vedere solo gli ir, per rilevare la posizione del punto laser sul bersaglio, in base alle coordinate in pixel del punto laser rilevato dal sensore ottieni la reale posizione sul bersaglio con discreta precisione.
Va da se che la webcam deve essere posizionata in modo da avere il centro del bersaglio al suo centro e, preferibilmente, dotata di ottica che gli permette di avere solo il bersaglio nel suo campo visivo, ovviamente nei calcoli tocca tenere conto anche dell'errore di parallasse dato dal fatto che la camera deve essere installata angolata rispetto al bersaglio, non deve essere coperta dalla persona che fa il tiro.

Grazie Astrobeed per la dritta. Immaginavo fosse abbastanza complicato realizzare il progetto.
Secondo te quale telecamera potrei acquistare ? Inoltre immagino servirà un software di riconoscimento immagini per tracciare lo spostamento del laser IR sul bersaglio.
Purtroppo con le mie scarse conoscenze temo dovrò abbandonare il progetto.

Potrebbe risolvere il problema dell'occupazione dell'immagine nel campo visivo della camera usando 3 (o 4, agli angoli) led IR montati sul bersaglio ... usandoli come marcatori, il software potrebbe calcolare automaticamente la posizione del centro ... ma non penso un'arduino possa bastare, come capacita' di calcolo ...

Se invece non gli servisse una precisione millimetrica, potrebbe usare un'array di fotodiodi sul bersaglio, ed effettuando la lettura delle intensita', avere anche un'indicazione di massima della posizione del punto anche se colpisse fra due o piu fotodiodi ... ma anche quello non e' esattamente un sistema semplice ...

A proposito, se non si trovano filtri ottici per l'IR economici (quelli che bloccano la luce visibile e lasciano passare gli IR, in genere chi li vende tende a salassare non poco gli acquirenti), basta chiedere ad un fotografo se vi salva la "coda" di un rullino di diapositive (la parte nera che non viene esposta, e che di solito i fotografi buttano via perche' non contiene alcuna immagine) ... il 98% delle pellicole per dia, se sviluppate senza essere esposte, risultano totalmente nere alla luce visibile, ma trasparenti agli IR, e basta ritagliarne un dischetto ed incollarlo sul retro dell'obbiettivo (dove di solito c'e' il filtro "anti-IR" in vetro, che se presente ovviamente va rimosso), per ottenere una camrea che legge solo gli IR, a costo praticamente zero ... :wink:

Grazie a tutti ma temo sia troppo complicato per le mie conoscenze di Arduino ed elettronica.
Proverò per ora a mettere in pratica questa idea che mi è venuta oggi a pranzo:

  • 2 sensori a ultrasuoni collegati ad Arduino: il primo misura l'altezza da terra, il secondo la distanza da una parete laterale
  • Imposto un algoritmo che legge la distanza in mm da terra e dalla parete laterale e la passa via seriale a processing
  • Su processing disegno una ellisse che si sposta al variare di Y (altezza=distanza in mm da terra) e X (piano orrizzontale=distanza in mm dalla parete). Questo dovrebbe intanto aiutarmi a vedere cosa succede quando si va in linea di mira e gli errori di posizione e allineamento del braccio.
    Secondo voi è fattibile ? non mi serve una accuratezza particolare in quanto l'esercizio serve per migliorare postura e posizionamento sul bersaglio.

Se lo scopo e' quello, temo non bastino ... primo perche' i sensori ad ultrasuoni non sono molto precisi e comunque se c'e' qualcosa nel cono di rilevazione danno false indicazioni, secondo perche' se l'arma non e' perfettamente perpendicolare (non tutti sparano tenendola "a bolla", la cosa e' estremamente soggettiva) si introducono ulteriori errori, terzo perche' quelle due distanze non ti forniscono una linea di mira, se ad esempio io imbraccio l'arma e poi mi sposto con il corpo mantenendo i sensori nella stessa posizione (cioe' li uso come punto di rotazione), i sensori ti dicono che l'arma e' sempre nella strssa posizione, mentre io sto mirando a caso in qualsiasi punto tranne che sul bersaglio ... :wink:

Come inizio potresti invece inserire un laser (anche visibile) nella canna, allineato con essa, poi come bersaglio usi un pannellino con una piccola matrice di fotodiodi, tipo 3x3 o 5x5, distanti pochi mm fra loro, in quel modo potresti almeno misurare allineamento, spostamento, eventuale tremolio o scostamenti dovuti al respiro, e cosi via ... non e' molto, ma sempre meglio dei sensori ad ultrasuoni ...

Etemenanki, in questo caso, posso sempre usare Arduino per leggere la matrice di sensori ? Esiste qualche esempio anche se non perfettamente calzante per capire come funziona ? Immagino serviranno formule per capire quale sensore ho colpito in modo da disegnarlo graficamente con processing..
Esiste poi una matrice già assemblata o me la dovrei assemblare da solo ?
Intanto grazie per le dritte.

Premetto che non ne ho costruite personalmente, ma sto solo andando "a logica" ... un fotodiodo di solito si legge polarizzandolo inversamente e leggendone poi le variazioni dovute all'illuminazione ... quindi, se creo una matrice di fotodiodi, e collego, ad esempio, i catodi alle "righe" della matrice, ed ogni riga la mando ad un'ingresso analogico, ed allo stesso tempo ogni riga la collego al VCC con una resistenza, da tipo 100K per fornire la polarizzazione inversa, mentre gli anodi dei fotodiodi li collego alle "colonne" della matrice, e tramite dei transistor open-collector a massa, con i transistor pilotati da uscite, dovrei poterli leggere in multiplexing ... nel senso, chiudo a massa la colonna 1, leggo in sequenza gli ingressi, scollego la colonna 1 e collego la 2, leggo gli ingressi, eccetera ...

Quando la colonna e' connessa a massa, i led che ne fanno parte vengono polarizzati inversamente tramite le resistenze delle righe verso VCC, quando e' aperta, in teoria non dovrebbero causare variazioni mancando la polarizzazione ... per cui dovrei riuscire a leggerli in multiplex ... il tutto, ovviamente, "in teoria" ... :wink:

Grazie ma mi sono già perso :slight_smile: :slight_smile:

mamussi:
Grazie ma mi sono già perso :slight_smile: :slight_smile:

A me capita lo stesso quando si mettono a parlare in "programmatorese stretto" ... :smiley:

Intendevo dire, semplificando, una cosa del genere

gli ingressi sono analogici, le uscite digitali ... quando piloti un'uscita alta (ad esempio OUT1), colleghi gli anodi dei fotodiodi che compongono la colonna 1 a massa, quindi si ritrovano polarizzati dalle resistenze verso il VCC, e li si possono leggere in sequenza con i tre ingressi, poi si spegne l'uscita 1 e si accende la 2, si legge la seconda colonna, e cosi via, in sequenza (multiplexing) ... teoricamente dovrebbe funzionare ... ma nella pratica e' tutto da provare, ed io al momento non posso farlo ...

EDIT: l'unico dubbio che ho, non potendo fare la prova in pratica, e' che le colonne lasciate "volanti" interferiscano in qualche modo con la lettura di quelle polarizzate, anche se non dovrebbe succedere ... in quel caso potrebbe essere necessario mettere in serie ad ogni fotodiodo (tutti lato transistor possibilmente) un diodo per segnali, i normali ed economici 1N4148 dovrebbero andare bene ...

Cerco di recuperare il materiale e ci provo.
Grazie per la disponibilità, è raro trovarne di questi tempi :slight_smile:

Dopo aver navigato in giro per il WEB, forse ho trovato il modo di realizzare il simulatore utilizzando il nunchuck della WII che è dotato dei necessari sensori. Aprendo il controller e posizionando la scheda sotto l'impugnatura della Pistola dovrei riuscire a gestire il posizionamento X,Y,Z e con uno dei due pulsanti gestire il controllo dello scatto e del reset della poszione.

Oltre ad Arduino UNO, ho a disposizione, da cannibalizzare:
1 x Wiimote
1 x Nunchuck
1 x USB IR Sensor Bar
Ho visto alcuni esempi su youtube dove con il nunchuck si controlla gli assi X,Y,Z di un oggetto con Arduino + Processing..

Qualcuno del Forum ha esperienze in materia? E' fattibile ?

Il Nunchuk è solo una impugnatura con dentro un joystick e un accelerometro, tutti due a bassa risoluzione, ci fai molto poco.
Il Wiimote contiene un sensore cmos che "vede" i led ir sulla barra e permette di ricavare l'assetto dello stesso, però con una risoluzione ridicola, il sensore è una Pixart Infrared Camera da 128x64 pixel, basta e avanza per l'uso videogiochi, assolutamente insufficiente per quello che vuoi fare.

Ciao Astrobeed, grazie per le dritte.
Ieri ho collegato il wiimote sul MAC (su Windows non ancora) e con un apposito software sono riuscito a verificarne il funzionamento con e senza barra LED. La risoluzione anche se bassa potrebbe anche andare bene perchè lo scopo è quello di monitorare il gesto atletico che porta da una posizione di riposo alla linea di mira, alla ricerca del bersaglio ed infine allo scatto. Come avevo scritto precedentemente, vorrei ricreare artigianalmente ed a basso costo, quello che fa il simulatore di tiro della SCATT(vedi qui Scatt Training System Tiro a segno, pistola carabina issf - YouTube). Eventualmente potrei sostituire la CAM che usa il Wiimote con una 1080p che ho disponibile da canibalizzare in modo che da una distanza di 3-4mt si riesca a far funzionare il tutto.

Quel sistema ha due versioni, ed entrambe funzionano in modo differente da quanto vorresti fare tu ...

La versione MX01 usa un bersaglio con una sorgente infrarossa al centro ,ed una camera USB sotto l'arma ... il software inquadra la sagoma del bersaglio, legge la posizione dell'emetittore IR al centro del bersaglio, ed elabora l'immagine in modo da tracciare tutti i movimenti ... ma non puo essere usata in esterno o per tiro reale, quindi hanno realizzato la versione MX02 ...

La 02 usa una camera USB ad alta risoluzione (se non mi sbaglio, attualmente una 1080p) e funziona con luce ambiente, non IR ... e' il software che fa tutto il lavoro, distinguendo il bersaglio in base al contrasto fra il punto nero centrale e la zona bianca intorno, e rilevando tutti i movimenti dell'arma in base a quelli ... questa versione puo essere usata anche in esterni e durante tiro reale ...

Entrambe le camere hanno ovviamente obbiettivi modificati per avere aperture di un grado o meno, e distanza di messa a fuoco minima di 5 metri, in modo che una volta messi a fuoco sull'immagine del bersaglio a distanza di tiro, la parte inquadrata sia il piu stretta possibile ... e' comunque il software che fa il 90% del lavoro, elaborando le immagini in "tempo reale" ... cosa che arduino non puo fare ... forse puo riuscirci una scheda a 32bit con SO, ma non una MCU ad 8bit ...