Si può imparare giocando?

In questa lezione realizzeremo il gioco del Ping Pong con Scratch ed utilizzando pulsanti e led comandati dai GPIO di Raspberry.

Da piccolo ho amato il Ping Pong giocando la versione del COommodore 64 (vuoi rivivere i giochi del Commodore 64? Ecco l’emulatore http://www.ccs64.com/):

Esistono diverse versioni del Ping Pon realizzato con una matrice e dei potenziometri, un esempio lo trovate Su instructables: http://www.instructables.com/id/2-Player-Pong-Game-Using-Arduino-Uno-and-8×8-Led-M/

 

Cosa occorre:

Raspberry

5 led

resistenze da 220 OHM

2 pulsanti

cavi M/M F/M

Ecco lo schema circuitale:

I pulsanti sono collegati al pin 10 e 19.

 

Spiegazione del gioco

I cinque led costituiscono una matrice che ha una sola colonna e cinque righe. In sostanza la luce parte da un estremo, lanciata dall’apposito pulsante e dopo un certo tempo arriva all’estremo opposto. Il giocatore dovrà “colpire” la pallina-luce prima che essa vada fuori. Nel gioco assegneremo dei punteggi: negatativi per il giocatore che ha perso la pallina e positiva per quello che invece ha lanciato

 

Possibili varianti: il gioco del ping pong può essere realizzato direttamente con la grafica di Scratch, in tal caso i pulsanti serviranno solo per muovere a destra e sinistra la barra (4 pulsanti per due giocatori) ed i led possono indicare delle azioni, tipo vittoria perdita , palla colpita etc. (led continui, led che lampeggiano…)

 

Lo Script

La programmazione non è complicata.

in sostanza si tratta di accendere i led, sugli appositi pin, ad intervalli regolari. Es. teniamo acceso l’1 e gli altri 4 spenti, poi spegniamo 1 e accendiamo 2 e così via…questo creerà una sorta di movimento: sembrerà che vi sia una luce che scorre lungo un condotto.

Il primo blocco è il seguente:

Quando si preme spazio, si inizia la partita, i due pulsanti non sono premuti e viene acceso il led sul pin 11 (una versione migliore la si può ottenere facendo accendere a caso il pin 11 o 16, così da non far iniziare la partita sempre allo stesso giocatore)

A questo punto si invia il comando beta, che inizia a far scorrere la pallina-led lungo la striscia dei 5 led….

La pallina scorre lungo i 3 led centrali contrassegnati dai pin 12 13 e 15.

 

La parte interessante è fare in modo che solo quando il primo e l’ultimo led sono accesi ed il pulsante è premuto allo rilancio la palla, ogni pressione del pulsante, prima o dopo l’arrivo della palla sarà giudicato come partita persa da parte di quel giocatore.

Il gioco può essere reso più lento o veloce man mano che si procede e si possono assegnare dei punteggi opportuni…

Ecco un video di dimostrazione di quanto fatto:

Vai alla barra degli strumenti