=== Imparando.net ===

Gioco del simon con arduino

Prendendo spunto da un articolo pubblicato su Linux Pro di gennaio ho reimplementato il gioco Simon, con cui ho fatto lunghe partite da piccolo, a casa dei miei cugini in Svizzera. Per prima cosa ho provato a montare solo un interruttore e un led per vedere se ero in grado da codice di far accendere il led premendo l'interruttore e non ci sono stati problemi. Come già evidenziato nell'articolo una delle difficoltà è stata quella di piazzare i componenti in modo che non intralciassero le dita del giocatore e io l'ho risolta nel modo che si vede nella galleria sotto, anche se dopo averlo usato un po' ho visto che si potrebbero spostare alcune cose per renderlo migliore (comunque sono soddisfatto del risultato raggiunto).

Il software che ho scritto al momento resta in attesa della pressione di un pulsante qualsiasi per dare il via al gioco, poi parte a mostrare la sequenza di accensioni e aspetta che l'utente ripeta correttamente la sequenza mostrata. Se lo fa la prossima sequenza viene accelerata del 10% e così via finchè o il giocatore sbaglia o vince perché arriva fino alla sequenza finale di 20 accensione (al momento nessuno ci é riuscito ed é stato testato parecchio perché per un pomeriggio intero i ragazzini delle terze medie in visita all'Open Day dell'ITIS Castelli ci hanno provato). Il piezo buzzer che in figura si trova a sinistra é un po' misero per produrre suoni diversi, li ho ottenuti usando il PWM con duty cycle diversi e ottenendo dei suoni diversi per ogni led, tutti altrettanto sgradevoli.

Migliorie che si potrebbero fare sono dal punto di vista software fare come nel gioco vero in cui il giocatore non ha a disposizione un tempo infinito per ripetere la sequenza, ma dopo poco se non preme nessun tasto perde e da punto di vista hardware sostituire il piezo buzzer con un altoparlante e produrre qualcosa di più carino.

Lezioni apprese:

  • se si vuole usare Fritzing per disegnare il circuito, farlo un po' per volta e non come ho fatto io tutto alla fine, altrimenti lo schema elettrico è difficile da sbrogliare (difatti mi sono stufato dopo poco).
  • quando qualcosa non va durante la progettazione controllare prima l'hardware (fili collegati, ecc.) e poi il software (almeno per me che sono programmatore).
  • quando qualcosa non va durante l'utilizzo guardare prima l'hardware, perchè tutti i collegamenti sulla breadboard sono traballanti: sempre in occasione dell'Open Day si è staccato un filo e un paio di volte gli interruttori si sono incastrati creando un corto.

Video


Galleria fotografica...