venerdì 1 marzo 2013

Usare il joypad come periferica di input?


Nei progetti precedenti ho sempre utilizzato l'IPAC32 per far vedere la pressione dei pulsanti del videogame come se trattasse di una tastiera. Questa volta vorrei invece provare a realizzare un joyhack e utilizzare quindi un joypad per gestire la pressione dei tasti. Questo per due motivi:
  1. Ho a disposizione un paio di joypad rotti con i quali fare le prove
  2. Il joypad ha due leve analogiche: posso cercare di utilizzarle per realizzare un sensore del tilt (fissando la leva al contrario e attaccandoci un peso, in maniera tale che quando il flipper viene mosso lo spostamento del peso fa inclinare la leva) e per gestire la leva del lancio palla (collocando un filo di ferro che prolunghi la levetta del joypad  e facendo in modo che quando viene tirata la leva del tiro palla, questa faccia inclinare la levetta del joypad comunicando al VisualPinball quando caricare la molla.

Il joypad che ho smontato sembra molto facile da modificare: a fianco delle serpentine utilizzare per permettere ai pulsanti di effettuare il contatto ci sono infatti delle comode piazzole dove poter saldare i fili da portare ad una serie di connettori ai quali collegare i fili che arrivano dai pulsanti.

Per risolvere l'attivazione della modalità analogica all'accensione del joypad ho collegato in serie una resistenza da 1KOhm, una da 330Ohm e un condensatore elettrolitico da 100uF in modo da chiudere il ciruito del pulsante: utilizzando questo sistema la pressione del tasto viene ritardata di un paio di secondi e il joypad riconosce la richiesta di cambiare modalità.

2 commenti:

  1. Ciao Pergiorgio, io ho fatto come dici, cioe' ho messo due resistenze e un condensatore da 100uf in serie per chiudere il contatto, in realta' funziona ma quando il condensatore si ricarica mi cambia ancora modalita', cioe' per spiegarmi meglio, accendo il pc e dopo due secondi il pad mi va' in modalita' analog on per poi ritornarmi in madalita' analog off dopo 2 secondi e cosi' all'infinito.... posso sapere dove sbaglio?
    Grazie

    RispondiElimina
  2. Potrebbe essere che i valori dei componenti da utilizzare differiscano da joypad a joypad. A suo tempo avevo fatto delle prove con i componenti che avevo a casa (questo anche il motivo della doppia resistenza) fino a trovare i valori corretti. La resistenza serve a ritardare la carica del condensatore, che mi pare sia corretta come tempistica visto che dopo due secondi si attiva. Prova a cambiare il condensatore.

    RispondiElimina