ArcadeHID - interfaccia Arcade multi-HID

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    appassionato
    Amministratore

    Group
    Fondatore Supremo
    Posts
    168

    Status
    Offline
    Nuova interfaccia in arrivo!

    Si chiama ArcadeHID, è basata su arduino leoardo e, naturalmente, é open firmware.

    Features:

    - open firmware

    - possibilità di gestione di un massimo di 17 input digitali, di cui 4 configurabili come analogici

    - compatibile con tutte le periferiche arcade: bottoni e joystick (e questi son buoni tutti :p:), volanti a potenziometro (270°), volanti ottici (360°), spinner, trackball, light gun posizionali, acceleratori e freni analogici, etc. etc..

    - compatibile con tutti i sistemi operativi

    - emulazione multi-HID

    L'emulazione multi-HID merita qualche parola in più. In sostanza, l'interfaccia può essere riconosciuta dal PC come tastiera, mouse, joystick o un ibrido fra le tre. Inoltre, grazie alle nuove librerie arduino, può essere riconosciuta anche come joypad Xinput.

    Non citato, ma possibile, l'impostazione di alcuni pin quali output invece che input. Tutto merito del firmware aperto ;) .

    Applicazione tipo di una interfaccia come questa è nei bartop, plance arcade stand-alone, cabinati autocostruiti non cablati jamma, flipper virtuali, etc.etc.
    Per fare un confronto con prodotti commerciali, entro il limite dei 17 input, può essere utilizzata in qualsiasi progetto che abbia candidato l'uso di una U-HID, opti-PAC, A-PAC o SmartASD.

    Un render della schedina, per ora in fase di pre-approvazione (ma a breve nelle mie manine):

    arcadeHID



    Una shield semplicissima (de facto una pro-micro con terminali a vite), ma dalle potenzialità notevoli nel mondo arcade :b:

    Edited by barito - 30/5/2021, 21:36
     
    .
  2.  
    .
    Avatar

    nuovo utente

    Group
    Member
    Posts
    13

    Status
    Offline
    Leggo leggo lightgun posizionabili, wow!
    Grandissimmo!
    Vero, con i semplici pulsanti son bravi tutti!

    Sulle posizionabili mi ha sempre interessato il discorso "taratura" e corretta posizione fisica dell'arma rispetto al crt.
    Ad esempio, in T2 i colpi del P1 partono, graficamente parlando, da sx verso dx, perché infatti le gun erano fissate non centrate al monitor ma di sguincio (non vorrei sbagliarmi). Un effetto per dare continuità tra posizione fisica e grafica. Poi, ovvio, il crosshair, invece, risultava centrato.
    Mi chiedo il tipo di reattività per impedire disallineamenti tra mirino fisico e virtuale quando ci sono movimenti bruschi e scattosi. Sul mio accrocchio di legno con il mouse ci stavano, tra lag e "catena" delle varie leve che creavano in certi casi dei ritardi e quindi potevi trovarti con il crosshai decentrato. Ovviamente parlo di Mame e non di un cabinato jamma.

    Ma immagino che con prodotti arcade seri questo problema sia totalmente assente.

    Infiniti complimenti, barito!
     
    .
  3.  
    .
    Avatar

    appassionato
    Amministratore

    Group
    Fondatore Supremo
    Posts
    168

    Status
    Offline
    Il problema di disallineamento che hai avuto con il tuo progetto é sicuramente dovuto al fatto che hai "hackerato" un mouse "tradizionale". Il mouse é un hardware "relativo", cioè quando lo muovi non tiene conto di un punto di origine: dopo ogni movimento, la nuova posizione diventa "origine". Non puoi farci niente per migliorarlo perché l'impostazione é a livello di firmware.
    Con questa scheda il problema lo risolveresti utilizzando una libreria per mouse "assoluto": questo tiene conto di un'origine (che per esempio potrebbe essere il centro dello schermo) e la mantiene.
    Per interfacciare al PC una gun posizionale quello che si può fare é tradurre le posizioni dei due potenziometri della gun (uno per asse) in posizioni assolute del mouse.
    A livello pratico, considerando un singolo asse (asse X), se il pot é tutto girato a sinistra (senso antiorario), con questo tipo di libreria la scheda a microcontrollore dice al PC di mettere il puntatore del mouse tutto a sinistra nello schermo; analogamente, se il pot é al centro o a destra (senso orario), la scheda dirà al PC di posizionare il puntatore al centro o a destra. La cosa vale naturalmente anche per tutte le posizioni intermedie.
    Queste sono funzioni note e stranote in ambito robotica (dove arduino viene usata molto nei progetti amatoriali), mentre nel mondo arcade si usa poco forse perché visto come una complicazione (devi scriverti il firmware) o non necessario date le opzioni commerciali... a torto, visto che le librerie facilitano enormemente la stesura del codice, e, essendo facilissimo "buttarlo sulla schedina", bastano due o tre esempi per coprire la stragrande maggioranza dei progetti arcade.

    Edited by barito - 2/6/2021, 17:52
     
    .
  4.  
    .
    Avatar

    nuovo utente

    Group
    Member
    Posts
    13

    Status
    Offline
    Barito grazie della spiegazione, adesso mi è tutto più chiaro!

    Questa interfaccia che stai realizzando è fantastica, non vedo l'ora di vederla in azione!
     
    .
  5.  
    .
    Avatar

    appassionato
    Amministratore

    Group
    Fondatore Supremo
    Posts
    168

    Status
    Offline
    Di base, é una arduino leonardo con terminali a vite. Roba che abbiamo a portata di mano da anni e che da molto cerco di far "passare". Spero solo che in questa "forma" aiuti a superare una barriera psicologica che pare insormontabile in ambito arcade... sarà che il livello dei forum arcade in italia é bassissimo.

    Edited by barito - 2/6/2021, 09:03
     
    .
  6.  
    .
    Avatar

    nuovo utente

    Group
    Member
    Posts
    13

    Status
    Offline
    Quello che dici è vero; per anni mi avrai ripetuto "ancora con questi hack (ma fai una roba seria e pulita con arduino).

    Effettivamente vale la pena di investire il tempo in soluzioni tecnologicamente superiori, che perdere del tempo nel risolvere problematiche steampunk!

    Ma in teoria, volendo creare un progetto in completa autonomia, basterebbero due potenziometri da collegare alla scheda?
    (nel caso che uno volesse adattare/costruire da zero una positional gun)
     
    .
  7.  
    .
    Avatar

    appassionato
    Amministratore

    Group
    Fondatore Supremo
    Posts
    168

    Status
    Offline
    Si: due potenziometri lineari (da 10k ohm potendo scegliere, ma qualsiasi nel range da 1K a 100k può funzionare), una scheda arduino con microcontrollore ATmega32u4 (tipo arduino leonardo o pro micro), un minimo di impegno sul fronte sketch (ma niente paura! Io qualcosa so fare e posso aiutarti) e hai tutto ciò che serve per la positional gun (a parte la "gun", si intende :lol: )

    Edited by barito - 2/6/2021, 17:54
     
    .
  8.  
    .
    Avatar

    nuovo utente

    Group
    Member
    Posts
    13

    Status
    Offline
    Credo che queste schede che stai realizzando siano molto importanti, dal mio punto di vista vanno oltre il loro scopo principale - da un punto di vista tecnico.

    Sono una manna dal cielo per chi si ritrova un cabinato dedicato da restaurare. Nel senso che possono contribuire non poco a salvare cabinati originali.

    Cabinati dove una capra potrebbe dire "eh vabbè ma la pcb non ci sta e poi sti mitra come li collego al PC, adesso smantello tutto e mi vendo i ricambi" (= un cab in meno sul pianeta terra).

    Si presuppone l'evoluzione da capra a homo sapiens, ok, ma credo che il tempo ti darà ragione barito.

    È vero che ci sarà sempre il barbaro distruttore di turno, ma offrire una possibilità in più per recuperare un cabinato per le future generazioni, è sempre una cosa buona e giusta; una "semplice" (per modo di dire) schedina che in realtà può salvare e preservare il lavoro di chi tempo fa ha realizzato, progettato, buttando sangue e sudore, le nostre amate macchine da gioco.
     
    .
  9.  
    .
    Avatar

    appassionato
    Amministratore

    Group
    Fondatore Supremo
    Posts
    168

    Status
    Offline
    Mi rendo conto solo ora di non aver mai messo una fotina reale della scheda :lol:

    Nel frattempo ho scritto un Instructables a riguardo, pubblicato >>QUI<<

    C'è di più: ho realizzato una seconda versione della scheda, con giroscopio integrato. Il giroscopio può servire in progetti di virtual pinball per il nudge analogico.

    Di questa seconda versione non ho scritto niente, ma mi ha permesso di realizzare un controller con spinner e qualche tasto per poterlo utilizzare sia con Visual Pinball X (e nudge analogico, come dicevo), che MAME (Arkanoid in primis).

    Com'è che le chiamano oggi? Arcade box, o qualcosa del genere...

    Edited by barito - 21/11/2022, 16:03
     
    .
  10.  
    .
    Avatar

    appassionato
    Amministratore

    Group
    Fondatore Supremo
    Posts
    168

    Status
    Offline
    Rimettendo mano al cabinato di Buggy Boy e rivedendo lo schedino ottico montato sotto il volante, mi è venuta la voglia di rispolverare la scatoletta/controller che ho fatto sfruttando la seconda versione di arcadeHID.
    Siccome ho più volte citato il progetto, ma mai postato una foto, lo faccio ora :)

    1693984467447IMG_20230906_072115

    Questo lo scatolotto: in pratica è un controller arcade con qualche tasto e uno spinner. Dentro è più interessante:

    1693984468460IMG_20230906_072132

    Zoommiamo in zona circuiti:

    1693984469426IMG_20230906_072139

    A sinistra lo spinner e il suo schedino ottico; al centro la arcadeHID versione 2, popolata anche con modulino giroscopio (serve ad emulare il nudge analogico dei flipper virtuali); in alto lo schedino di buffer.
    Questa funzionava perfettamente a basse velocità di rotazione dello spinner, ma invertiva la direzione di rotazione ad alte velocità. Nel tentativo di risolvere il problema, ho preparato su millefori uno schedino buffer analogo a quello montato sul cabinato Buggy Boy. Non osservando alcun miglioramento, ho lavorato un po' sul codice (tipo due ore, vaff@ncvl0) senza però ottenere grandi risultati.
    Un codice analogo sul Buggy Boy funzionava perfettamente, dunque alla fine mi sono deciso ad osservare lo schedino ottico a banco: tutto ok (una pulita ci voleva, ma niente di grave). Rimontandolo mi sono accorto che il funzionamento era ancora "difettoso", ma in maniera differente. Muovendo lo schedino ho trovato alla fine la causa principale del problema: allineamento non perfetto dei due fotoaccoppiatori sullo schedino.
    Il messaggio è dunque: se hai un problema col volante ottico, prima smanetta sull'hardware :)
    Ho anche voluto verificare se il circuito di buffer avesse una qualche influenza sul funzionamento, ora che l'hardware era a posto. In effetti, i buffer servono. Non sono essenziali, ma il funzionamento generale migliora.
     
    .
9 replies since 29/5/2021, 09:45   148 views
  Share  
.