 |
Poichè i comandi del nostro cabinato fanno capo a dei volgarissimi switch (tipo quello qui a sinistra) si rende necessaria una interfaccia che faccia capire al PC cosa viene premuto in modo che lui possa eseguire il comando desiderato.
|
I modi per interfacciare i tasti sono sostanzialmente 3:
1) comprare una interfaccia bella e fatta (qui a destra)
ovvero una schedina con delle morsettiere ed una
interfaccia PS/2 o USB alla quale collegare i tasti di gioco. Il vantaggio delle interfacce è il funzionamento immediato senza alcun sbattimento, come svantaggio si ha un costo maggiore che con gli altri metodi.
Queste interfacce sono reperibili o dal sito della Ultimarc (prendono il nome di I-PAC) al costo di 34€ oppure dal negozio ebay di un progettista italiano al costo di 20€. |
 |
2) realizzare un joyhack, ovvero smontare uno o piu joystick collegando con dei fili i
microswitch al posto dei pulsanti originali (foto sotto). Questa è una delle strade piu semplici ma i joystick necessitano di driver specifici e non mettono a disposizione tasti come INVIO oppure ESC, necessari per entrare ed uscire dai giochi quindi è richiesto un pò di ammattimento per la configurazione.

3) Realizzare il keyhack di una tastiera, ovvero smontare una tastiera e collegare i microswitch al posto dei pulsanti.
A differenza dei joypad infatti la tastiera
(se con attacco PS/2) non necessita di
alcun driver e può funzionare indipendentemente sotto qualunque ambiente
operativo senza alcun problema. Putroppo nonostante le tastiere abbiano oltre
100 tasti con questa tecnica possiamo utilizzarne solo 25 – 30 senza che
problemi di Ghosting e Blocking rendano i controlli inutilizzabili (di questo problema ne parleremo piu in seguito). Possiamo quindi affermare che il
keyhack casereccio di una tastiera è utilizzabile per realizzare controller fino a
2 giocatori.
|
|
Vantaggi del keyhack sono indubbiamente l'economicità ma a fronte di questo c'è da mettere in conto diverse ore di lavoro. |
Guida al keyhack di una tastiera
1 – Come funziona una tastiera:
Una tastiera standard italiana ha 105 tasti e alla pressione di ognuno di essi un
controller interno invia al PC un codice diverso; nell'istante in cui smettiamo di
premere il nostro tasto il controller invia il segnale di fine pressione. Essendo i tasti
105 ci potremmo aspettare che all'interno della tastiera ci sia una miriade di
collegamenti e che al controller arrivino almeno 106 fili! Grazie al cielo non è così
infatti nelle tastiere viene utilizzata una configurazione dei tasti a matrice che
permette di ridurre notevolmente il numero di fili necessari. Andiamo a fare un
esempio con un tastierino a 12 numeri:
 |
A primo impatto la connessione qui a sinistra potrebbe sembrare quella più
efficace per connettere tutti i pulsanti
con meno fili possibile; usando un
contatto comune per tutti otteniamo
però un totale di 13 fili! Quindi il
numero dei fili è pari al numero dei
tasti + 1
|
Nella figua qui di fianco potete apprezzare la
soluzione migliore per connettere i
nostri 12 tasti; la connessione è
denominata “a matrice” e consiste in
tre colonne (A,B,C) e 4 linee.
Per poter funzionare questo tipo di
tastiere necessita di un controller; il
funzionamento è molto semplice:
Ciclicamente viene mandato un segnale alle 3 colonne (prima alla colonna A,poi alla B, poi alla C, poi nuovamente la A, ecc..).
Contemporaneamente sulle linee viene “ascoltato” se arriva qualcosa.
Quindi, ricapitolando: se ad esempio mentre è attiva la colonna “A” il controller rileva
il segnale sulla riga 3 questo vorrà dire che inequivocabilmente è stato premuto il
tasto 7. |
 |
Ricapitolando questo espediente permette di risparmiare un notevole quantitativo di fili (nel nostro
caso 7 anziché 13), infatti il prodotto tra numero di linee e numero di colonne fornisce
quanti tasti la nostra matrice può gestire. Tuttavia il sistema della matrice mostra dei
limiti notevoli che non potete sottovalutare nella realizzazione del vostro controller:
questi limiti si chiamano Ghosting e Blocking.
2 – Ghosting e Blocking: i limiti di una tastiera
Allora, il ghosting è il fenomeno per cui alla pressione di 3 tasti disposti in punti critici
della matrice la tastiera “crede” che in realtà siano premuti 4 tasti.
Vediamo di capire meglio come è possibile tutto cio:
Nella qui di fianco sono stati premuti a
titolo di esempio i tasti 1, 3 e 6.
La linea verde rappresenta il percorso
che compie il segnale in ingresso alla
colonna A: si vede che la pressione di
questa combinazione di tasti fa si che
quando il controller manda il segnale di
check alla colonna A lo ritrovi sia sulla
riga 1 che sulla riga 2; quindi lo
interpreta come pressione
contemporanea dei tasti 1 e 4. Questo è un esempio di Ghosting! Gli altri tasti premuti vengono invece riconosciuti
correttamente: infatti quando viene inviato il segnale alla colonna “C” questo viene
ritrovato correttamente sulle linee 1 e 2. |
 |
in linea generale possiamo dire che:
“Ogni qualvolta vengono premuti i tasti corrispondenti ai 3 lati di un rettangolo sulla
matrice viene generato il ghosting sul tasto corrispondente al quarto lato”.
Il blocking invece è una condizione di errore che genera il controller per prevenire il
ghosting: vengono infatti inabilitati alcuni tasti; nel nostro caso se premessimo 1, 3 e 6
contemporaneamente il controller restituirebbe al pc un messaggio di errore e
quest'ultimo non riconoscerebbe la pressione di nessun tasto.
Quindi in definitiva dobbiamo ricordarci di non creare mai una situazione di ghosting,
altrimenti il controller manderà in blocco i nostri tasti compromettendo la giocabilità
dei nostri videgames.
3 – Smontiamo una tastiera
Qui a destra potete apprezzare come si
presenta una tastiera appena
smontata: sulla sinistra c'è il
controller mentre i tasti sono
realizzati con dei contatti divisi su
due fogli plastici; quando premo un
tasto i due fogli (foto in basso) vanno a toccare
assieme realizzando un contatto
elettrico.
Dei due fogli uno contiene tutti i
collegamenti inerenti alle colonne,
l'altro quelli inerenti alle righe.

|

Nel mio caso il controller aveva 26 contatti di cui i
primi 18 andavano ad un foglio mentre i restanti 8
andavano all'altro. Ho così deciso in maniera del tutto arbitraria che i
primi 18 sarebbero stati le mie righe e i restanti
delle colonne.
|
Ho quindi numerato i contatti (foto qui in basso) e
i preparato una tabella per effettuare la mappatura.
4 - la mappatura
La mappatura consiste nell'appuntarsi su una tabella quale corrispondenza c'è tra i
vari incroci linea-colonna e il carattere che la tastiera restituisce al pc; per fare
questo lavoro c'è bisogno di un po' di pazienza e servono dei programmini di “keyscan”
(ovvero che ti dicano quale/i tasto/i viene premuto sulla tastiera), io ho usato “Ghostkey” e “keyscan” ottenendo questa tabella:

Vi faccio notare come nonostante la mia tastiera fosse un modello base le
combinazioni possibili fossero 144 ed alcune corrispondessero a tasti che non erano
nemmeno disponibili (tipo aprire Win media player, outlook, arrestare il pc, ecc..).
A questo punto c'è da scegliere quali tasti utilizzare nel nostro controller stando bene
attenti a non causare il ghosting; in prima istanza possiamo dire che se io uso un tasto
per ogni riga posso stare certo che non avrò mai ghosting.. quindi sono partito da
questa considerazione ed ho colorato le caselle che avrei avuto intenzione di usare:

Molto bene, in questo modo siamo arrivati a 16 tasti disponibili; peccato che a me ne
servissero 25! (6 tasti per giocatore + 2 manopole direzionali da 4 contatti l'una + i
due contatti delle gettoniere + i due pulsanti per selezionare 1 o 2 player + il bottone
per far avviare il gioco selezionato nel menù) quindi son dovuto scendere a
compromessi:
– innanzitutto nei joystick c'è da considerare che tasti come “destra” e “sinistra” o “su” e “giu” non possono fisicamente essere premuti contemporaneamente
– poi c'è da considerare che alcuni tasti, tipo il contatto della gettoniera per
aumentare i credits, è decisamente improbabile che vengano premuti in
contemporanea ad altri tasti.
Nella figura che segue ho applicato questi concetti ed ho colorato in rosa le caselle da dare ai
comandi che si autoescludono: ad esempio F3 e D potrebbero essere affibiati ai
pulsanti DX e SX mentre H e M potrebbero essere UP e DOWN nel joystick 1.
Ho inoltre spostato un paio di caselle rosse che erano capitate su incroci che non fornivano nulla.
In ogni caso, potete facilmente apprezzare che nel peggiore dei casi sarebbe premuto
al più un tasto per ogni riga quindi stiamo certi che non si possa creare ghosting.

Ok il lavoro è quasi completato; ci mancano solo altri 5 tasti.
Purtroppo la mappa non ci da molte possibilità quindi i 5 tasti che assegneremo ora
avranno qualche possibilità di avere ghosting. Per fortuna ormai tutti e 12 i tasti di
gioco ed entrambe le manopole sono state mappate quindi quelli che rimangono sono
tasti di servizio che non verranno mai premuti contemporaneamente ad altri. Qui sotto potete apprezzare l'assegnazione completa dei tasti: ho colorato di verde le
caselle che possono dare problemi infatti a titolo di esempio fo notare che Z genera
ghosting se premuto assieme a Q e a un tasto a scelta tra M INVIO o la virgola.
Stessa cosa pure per F1, 4, U, O.
però questo non rappresenta un problema, l'importante è che i tasti di gioco non diano
noie e con la nostra mappa possiamo stare tranquilli di poter giocare anche un doppio a
Street Fighter senza che i tasti che diano ghosting!

5 – Realizzazione e montaggio
Questa è forse la parte un po' piu pratica e nella quale dovrete eseguire
qualche saldatura; in sostanza si tratta di collegare i contatti del controller ad
una morsettiera. I modi per fare ciò sono molteplici, piu o meno ordinati.
Io personalmente ho realizzato il mio controller come nella figura che segue in modo da
ottenere una unica schedina e poter stare sicuro che eventuali movimenti non
potessero staccare qualche saldatura

6 – collegamento ai tasti di gioco
questa è la fase che richiede maggiore attenzione ma soprattutto maggiore
ordine; è facile sbagliare un filo e toppare tutto il cablaggio. |
In pratica i microswitch che avevamo visto all'inizio non
sono altro che dei deviatori (figura qui di fianco); dei tre contatti
disponibili il primo è comune, il secondo è normalmente
aperto mentre il terzo è normalmente chiuso, noi useremo
quindi i contatti 1 e 2 cablati in modo che alla pressione
del tasto vengano messi in corto la riga e la colonna da
noi prescelti. |
|
Prima di iniziare i collegamenti occorre decidere dove disporremo il nostro
controller, dopodiché dovremo procurarci un filo colorato per ogni riga e
colonna.
|
Una volta posizionato il controller e fatti arrivare i fili alla plancia dovrete
iniziare a collegare i fili ai
rispettivi interruttori;
praticamente tutti i fili
dovranno andare ad
almeno un paio di switch,
ad esempio dalla tabella della mappatura si vede chiaramente
che il filo della colonna A
dovrà andare a due
pulsanti di gioco e a due di
servizio, il filo della colonna
B invece andrà a due
pulsanti di gioco e a uno
switch del joystick, ecc...
il risultato finale dovrebbe
essere come segue:

INDICE DEL PROGETTO
 |
interfaccia monitor (con qualche modifica possiamo collegare un monitor Arcade all'uscita vga di un pc.. lo avreste mai detto?) |
|
|