giovedì 21 marzo 2013

La gestione del tilt

Se si vuole simulare un flipper in maniera totale occorre riuscire a gestire il tilt, ovvero capire quando il giocatore da' qualche colpetto al cabinato per spostare la palla oppure quando lo inclina.

Visual Pinball permette sia una gestione analogica che una digitale del tilt: è possibile cioè sia associare dei tasti ai colpi laterali e frontali, sia utilizzare un dispositivo analogico (ad esempio la leva del joypad) per indicare l'inclinazione del tavolo di gioco.

Non so ancora quale sia il metodo migliore da utilizzare: nei forum ne ho visti diversi,  dai sensori al mercurio al pendolo modificato. Al momento sto facendo delle prove con un accelerometro collegato all'Arduino per capire se riesco a gestire facilmente gli urti. L'ideale sarebbe utilizzare tutti e due i sistemi, in maniera tale da intercettare sia il colpetto che l'inclinazione.
 
Una prova che voglio fare in futuro è utilizzare una leva del joypad installata a rovescio, alla quale collegare un peso che a seconda dell'inclinazione del flipper le fa assumere diversi valori analogici da comunicare al Visual Pinball simulando un joypad.

Tra l'altro, nella foto è già visibile uno dei gruppi di potenziometri che gestisce queste leve: lo sto utilizzando per provare a simulare la leva del lancio palla. Ma di questo ne parlerò in un altro post...

domenica 17 marzo 2013

Questione di feeling

La critica maggiore che viene rivolta ai flipper virtuali è di non rendere le stesse sensazioni di un flipper vero. Purtroppo questo è vero, in quanto non è presente una pallina che si muove all'interno di un tavolo di gioco e tutti i movimenti che nella realtà sarebbero meccanici qui vengono simulati da un software.

Con dei semplici trucchi è però possibile riuscire a rendere più realistico il proprio flipper virtuale: l'introduzione di luci, knocker, motori vibranti, solenoidi e meccanismi per il tilt, tanto per fare un esempio, ci avvicina a quella che è la resa di un vero flipper.


Uno dei trucchi che ho imparato da chi bazzica nei forum specialistici è quello di usare dei contattori per simulare rumore e vibrazione dei solenoidi dei flipper. I contattori sono dei grossi relè che gestiscono elevati carichi di corrente, quando vengono eccitati emettono un rumore meccanico molto simile a quello che cerchiamo. In particolare il modello suggerito come livello e qualità di rumore è il Siemens 3RH1131-1BA40, che lavora a 12V e quindi è facilmente integrabile all'interno dei propri progetti.

Le installazioni più comuni ne utilizzano otto: due per simulare i flipper, due per i respingenti collocati solitamente sopra i flipper, gli altri quattro posti nel fondo del campo di gioco, due laterali uno avanti e uno in fondo per simulare funghi, buchi e qualsiasi altro meccanismo.

Molto veloce a reagire nel momento in cui gli viene fornita la corrente, può essere collegato direttamente alla Ledwiz, mentre con l'Arduino conviene realizzare un circuito che aumenti la corrente fornita. Ricordarsi infine, come per tutti i relè, di porre un diodo tra positivo e massa per evitare il ritorno di corrente alla scheda al ritorno della bobina (un IN4007 o equivalente).

domenica 10 marzo 2013

PINemHi e la gestione dei record

Ho scoperto oggi l'esistenza di PINemHi, un eseguibile che consente di ricavarsi i record dai file di stato dei giochi per Visual Pinball e Future Pinball, in maniera analoga a quello che HiToText fa con il MAME.

La nuova versione di FPLaunch tra le altre novità sfrutta questo programma per visualizzare i record durante la pausa dalle partite.

sabato 9 marzo 2013

Il progetto è su Fritzing

Ho appena terminato di creare il progetto su Fritzing per tenere traccia del lavoro eseguito e per condividere schema e codice con la comunità.


venerdì 8 marzo 2013

Pulizia dei piedi

... del flipper ovviamente!

Ho completato la pulizia dei piedini del flipper, eliminando tutta la ruggine di cui erano coperti. Mi ritengo molto soddisfatto dell'operazione, anche se le filettature non sono perfette. Magari riprenderò il lavoro più avanti cercando di migliorare il risultato.

Per pulirli ho utilizzato un prodotto consigliatomi all'OBI contenente acido fluoridrico chiamato Ruginet, venduto in una boccetta da 75ml e dal prezzo di un paio di euro. Ho riempito un vasetto di acqua, poi ci ho aggiunto una piccola parte di questo prodotto, ho immerso i pezzi e li ho lasciati lì per una giornata circa.

Una volta tolti dal barattolo li ho sciacquati abbondantemente, dopodiché ho provveduto dapprima ad una ulteriore pulizia con una spugna abrasiva bagnata e poi ad una lucidatura con lo SMAC brilla metalli.

Il risultato è quello mostrato in foto.

giovedì 7 marzo 2013

You got the power...

You got the power
You got the might
Get ready for battle
Beat the Black Knight!



 Eccola in versione MP3...

Toc! Ho vinto!

Il flipper fa tornare alla mente rumori, colori e sensazioni che ormai si sono perse: il rumore della pallina quando colpisce gli ostacoli oppure batte il vetro, i funghetti quando cacciano la pallina o se la rimbalzano per una decina di volte mentre noi aspettiamo che ci scenda giù come un piombo tra le due palette...

E poi c'è lui: il classico colpo quando si vince la partita... TOC!

Assomiglia ad una bussata, ed infatti si tratta proprio di un colpo dato al legno del flipper in maniera assolutamente meccanica. Ma sapete come funziona questo meccanismo, chiamato knocker (da to knock, bussare)?

Si tratta fondamentalmente di un solenoide (una bobina) al cui interno viene posta una barretta di ferro. Nel momento in cui viene data corrente al solenoide, questo genera un campo magnetico che costringe la barretta a posizionarsi in maniera simmetrica rispetto al solenoide, alzandosi quindi dalla sua posizione originale. Grazie alla gravità poi, una volta tolta la corrente la barretta torna nella posizione iniziale. Posto quindi questo meccanismo rigorosamente in posizione verticale vicino ad un pannello orizzontale di legno (che solitamente viene rinforzato con una lamella di ferro) otteniamo il classico suono che tanto ci rende contenti...

Per concludere, un video in cui ho provato a collegare un knocker e un LED da 10W ad una Arduino e a impostare una sequenza di tre colpi sincronizzati con un flash.

mercoledì 6 marzo 2013

Configurazione automatica dei segnali in uscita

Sono fondamentalmente due i forum da seguire se si vuole costruire un flipper virtuale:
  • VP forums, che ospita soprattutto i progetti legati a Visual Pinball e PinMAME
  • HyperPin forum, che invece ospita  progetti legati all'omonimo front-end, oltre a moltissimi progetti di costruzione di cabinati.
Proprio in quest'ultimo forum è stato partorito lo script per poter gestire eventi comandati dalle ROM utilizzando una LedWiz (quello che poi ho modificato per poter utilizzare una Arduino) e un progetto di supporto che cerca di standardizzare le configurazioni degli eventi per permettere di utilizzare tali eventi indipendentemente dal posizionamento delle uscite nei pin della scheda.

Grazie a PixelMagic's LED-Wiz configuration utility sono riuscito in pochi minuti a creare un file di configurazione da utilizzare con le poche uscite che al momento gestisco (8 in tutto se consideriamo il LED RGB come 3 segnali differenti) e contenente tutte le informazioni per una cinquantina di flipper.

Nel momento in cui poi andrò a modificare le uscite dei miei segnali, dovrò solo aggiornare la mia configurazione nell'applicazione e rigenerare il file di configurazione.

Tutto questo per dire che stasera ho provato qualche altra tavola verificando il perfetto funzionamento dell'Arduino!

lunedì 4 marzo 2013

L'Arduino funziona!


Stasera ho modificato lo script di gestione dei LED col Visual Pinball per utilizzare l'Arduino programmata col mio codice invece della LedWiz, ho collegato due led normali per simulare il tasto Start e quello Launch e poi ho collegato anche i due flash che ho comprato qualche giorno fa. Un rapido ritocco al file di configurazione e ho provato subito un paio di tavole per fare qualche prova: funziona! Associati agli strobo o ai flash posteriori della tavola in gioco i due faretti si illuminano al momento giusto e anche con un'ottima luce; anche i LED associati ai pulsanti hanno funzionato in maniera impeccabile.

Adesso devo solo terminare il circuito per poter pilotare tutte le varie componenti, soprattutto quelle che richiedono più potenza.

Un'idea per lo switch di rilevazione portello gettoniera aperto

Foto recuperata da un forum. L'idea è molto interessante e non richiede modifiche al software.

domenica 3 marzo 2013

Simulare la LedWiz

Nei forum internazionali dedicati ai progetti di flipper virtuali tutti gli utenti consigliano e utilizzano la LedWiz, una scheda in grado di gestire 32 uscite in PWM con correnti fino a 500mA. In pratica è stato realizzato uno script VBS che interfacciandosi con il Visual Pinball consente di gestire direttamente i segnali della ROM del gioco (luci, flash, solenoidi e switch).

La scheda in se non costa molto (45 dollari sul sito ufficiale), ma risente ovviamente del prezzo di spedizione e delle spese doganali per importarla dall'America, dal momento che l'unico distributore qui in Europa se la fa pagare 72 euro (e per fortuna che è tedesco! mi sembra comunque un po' eccessivo...) anche cercare di comprarla in zona non è economico.

Fondamentalmente si tratta di un microcontrollore che gestisce 32 segnali, amplificati da quattro ULN2803; nulla quindi che non si possa replicare utilizzando una Arduino, magari riducendo i segnali utilizzati sfruttando un chip come il TLC5940: in questa maniera me resteranno di liberi per gestire altri segnali senza dover comprare una Mega (che anche quella non viene tirata dietro).

L'unico ostacolo a questo punto per poter utilizzare facilmente l'Arduino con lo script VBS è riuscire a replicare la sintassi della LedWiz in maniera da lasciare i comandi inalterati. Oggi mi sono messo al lavoro per riuscire ad ottenere questo obbiettivo e sono riuscito a riprodurre tutti i comandi; la sola cosa che al momento non viene riprodotta è la gestione trasparente dei lampeggi e dei fading, che richiedono uno studio aggiuntivo sulle temporizzazioni asincrone di questi effetti.

Non è detto che nei prossimi giorni non riesca ad implementarla...

10 minuti dopo: intanto sono riuscito ad implementare il lampeggio normale; per quanto riguarda i fading la cosa è più impegnativa perché dovrei modificare il valore della luminosità che però viene utilizzato per indicare il tipo di effetto...

Luci e strobo

Voglio porre nella parte superiore del flipper e sopra il piano di gioco in fondo una serie di flash collegati a quelli del flipper tramite uno script VBS che li attiva comandati dalla ROM del gioco. Ho trovato su Ebay dei LED RGB da 3x3W a 21 euro per una confezione da 3 spedizione compresa.


Sono molto potenti e collocandoli sotto dei cappucci trasparenti l'effetto è garantito. Su ebay esistono anche offerte per un numero maggiore di LED: quando verrà il momento deciderò quanti prenderne.

Al centro della parte superiore poi volevo collocare un LED da 10W con funzione di flash e strobo. Ho già comprato su Ebay un modello di prova con dissipatore e ventola, ma ho appena fatto l'ordine per un pacchetto da 5 pezzi a 11 euro spedizione compresa; ci vorrà un po' di tempo perché arrivino, visto che provengono dalla Cina.

Anche l'audio è a posto!

Un altro acquisto che ho fatto su Ebay sono le casse: le Logitech Z4 hanno il telecomando con un cavo lungo che mi permette di portarlo fino dietro lo sportello della gettoniera e un subwoofer potente che renderà possente il suono del flipper. Con 35 euro più 8 di spedizione me le sono portate a casa!

Strobo flash!

Ho recuperato su Ebay per 8 euro spedizione compresa due flash da 22 LED bianchi con tanto di interfaccetta strobo. Dell'interfaccetta non me ne faccio nulla ma i due faretti posso metterli agli angoli in fondo del piano di gioco per realizzare dei notevoli effetti flash pilotandoli con i 12 volt.

Terminata la costruzione del prototipo della plancia


Dopo un paio di giorni passati in garage tra sega e trapano sono riuscito a terminare il prototipo della plancia. Mi serve per studiare la disposizione dei tasti e delle interfacce senza rovinare il flipper. Ho installato anche la barra di appoggio e il suo dispositivo di fissaggio; ho anche fissato due contattori vicino ai pulsanti.

Una cosa che ho scoperto subito è che che la leva per lanciare la pallina se resta nella posizione originale si scontra con i pulsanti di gioco, che in origine erano corti. Ho quindi provato a invertire leva e pulsante per vedere se la soluzione può essere accettabile.

Ho già cablato tutti i pulsanti collegandoli alla IPAC, configurato i tasti e provato a collegarla al computer: perfetto! Ho fatto anche alcune prove con l'unico tasto che posiedo al momento con il LED RGB all'interno e funziona perfettamente! L'idea è quella di installare quattro di questi LED per comandare i flipper e le funzioni ausiliarie, illuminandoli secondo i colori del gioco originale o lasciandoli spenti nel caso non vengano utilizzati.

Il pulsante giallo sotto la leva lancia pallina è un tasto che ho inserito provvisoriamente per aggiungermi i crediti e che non verrà installato nel flipper.

L'ULN2803 non va bene!

Dopo aver sbattuto la testa per tutta la giornata, sono arrivato ad una triste conclusione: l'ULN2803 non va bene per potenziare le uscite del TLC5940! Il motivo è che il TLC esce con tensione inversa per cui ho bisogno dell'equivalente PNP dell'integrato. Dopo una rapida ricerca ho scoperto che il chip che mi serve è l'UDN2981 e tramite Ebay ne ho ordinati 10 pezzi a 10 euro (!).
Ecco il datasheet.
Speriamo bene....  Ora tolgo i 5 ULN che avevo messo nel carrello dell'EPM: fortuna che non li avevo ancora ordinati.

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à.

Ci siamo!


Ho deciso di avviare questo blog per realizzare un diario dettagliato del lavoro che sto facendo, dal momento che con questo strumento posso inserire aggiornamenti ogni volta che realizzerò qualcosa di nuovo.

Tutto il lavoro parte da un flipper non funzionante che ho comprato a Schio; non c'è stata fino ad ora la possibilità di realizzare una foto del flipper montato dal momento che lo abbiamo trasportato smontato e lo abbiamo scaricato in garage senza ricomporlo. Ho già iniziato a ripulirlo, togliendo tutti i cavi e le schede e mettendo in vendita alcuni pezzi. Altri riuscirò invece a recuperarli: la gettoniera per esempio, le gambe, la barra e il suo attacco, i vetri oltre naturalmente al mobile.

Le idee sono tutto sommato abbastanza chiare, visto che mi sono documentato molto sui forum, il lavoro sarà tanto ma non ho fretta di terminarlo (insomma!) e voglio che resti comunque un passatempo!

Nei prossimi giorni inserirò dei post in cui indicherò anche tutto il lavoro già fatto in questo mese di prove e acquisti.