venerdì 22 agosto 2014

La gestione del tilt




Da un po' di tempo sto cercando di studiare una soluzione per gestire i colpi dati lateralmente e frontalmente al cassone, affinché interagiscano col gioco e in particolare con la traiettoria della palla.
Visual Pinball e Future Pinball permettono di gestire questi eventi in due maniere distinte:
  • digitale: alla pressione di un tasto viene associata una spinta della palla verso la direzione assegnata. Più a lungo viene tenuto premuto il tasto, maggiore sarà la spinta inferta.
  • analogico: l'inclinazione del tavolo viene associata agli assi X e Y di un joystick analogico. Più il joystick si discosta dalla posizione centrale, più il tavolo di gioco risulterà inclinato.
Molte delle soluzioni che vengono implementate prevedono una gestione digitale dell'evento: pulsanti laterali, sensori al mercurio, piombo originale del flipper modificato, sono tutte implementazioni che non permettono di modulare la spinta della palla.

I primi tentativi di gestire in maniera analogica tali eventi sono stati effettuati utilizzando vecchi joypad della Microsoft contenenti all'interno un accelerometro. Un sistema più pulito a questo punto può essere quello di utilizzare un accelerometro collegato ad una scheda come Arduino: questa simula un joystick collegato al computer e varia la posizione della leva in base ai valori degli assi X e Y restituiti dall'accelerometro.

I risultati sono stati più che buoni, migliorati solo dall'adozione di una nuova scheda, la Freescale FRDM-KL25Z, che integra al suo interno un accelerometro, rendendo quindi l'installazione all'interno del cabinato più compatta. Esattamente come l'Arduino Leonardo inoltre permette di simulare tastiera o mouse collegati al computer. Al momento dell'avvio il programma installato in memoria realizza un'autocalibrazione per stabilire la posizione di riposo, comunicando successivamente tutte le variazioni degli assi come modifiche della posizione del joystick.


L'installazione quindi è molto semplice e si limita ad un saldo montaggio della scheda sul fondo del cassone e al suo collegamento ad una delle prese USB del computer.

2 commenti:

  1. Questo commento è stato eliminato dall'autore.

    RispondiElimina
  2. Ciao, innanzitutto bel lavoro! Ti faccio una domanda: secondo te come si potrebbe fare per gestire il plunger e anche il pulsante launch ball? per il plunger ho usato un potenziometro da collegare alla FRDM-KL25Z, ma per collegare anche il pulsante? in maniera tale da usare quello in quei tavoli dove non è presente il plunger? grazie

    RispondiElimina