15/06/2019, 19:07
Ciao! Grazie! Io nel frattempo son riuscito a collegare il LED e a far scorrere delle scritte. Adesso quando torno do un occhio a quello che mi hai postato!!!
Air hockey con segnapunti a sensori IR
|
(27/05/2019, 23:17)Zzed Ha scritto: Ho avuto qualche impegno in famiglia, ma non mi sono scordato.
Ecco qui una bozza di quello che potrebbe essere lo script Python di gestione.
Ho messo un ritardo di 5 secondi dopo ogni goal per avere il tempo di riposizionare il disco e fare in modo che il programma non continui a contare goal perché vede il disco in buca. E' però perfettibile.Codice:# importo le librerie
from gpiozero import DistanceSensor, Button
from time import sleep
from signal import pause
# --- impostazioni --- #
punteggio = [0,0]
vittoria = 10 #punteggio per vincere
gioco = "TRUE" # TRUE = gioco attivo FALSE = gioco fermo
# -------------------- #
def goal(g):
global punteggio
global gioco
print ("Goal!")
# qui eventuale effetto sonoro goal
punteggio[g] = (punteggio[g]+1)
print (str(punteggio[0]) + "-" + str(punteggio[1]))
sleep(5)
# qui fischio di ripresa del gioco
if punteggio[g] == vittoria: #controlla se qualcuno ha vinto
print ("Vittortia giocatore " + str(g+1))
# qui eventuale effetto sono vittoria
gioco = "FALSE"
def reset():
global punteggio
global gioco
print ("Inizio Partrita!")
punteggio = [0,0]
gioco = "TRUE"
sleep(2)
# eventuale effetto sonoro inizio
print (str(punteggio[0]) + "-" + str(punteggio[1]))
# main
sensoreA = DistanceSensor(echo=18, trigger=17) #sensore porta A
sensoreB = DistanceSensor(echo=23, trigger=22) #sensore porta B
reset = Button(27) #pulsante reset partita
#quando sensore A interviene
sensoreA.when_in_range = goal(0)
#quando sensore B interviene
sensoreB.when_in_range = goal(1)
#quando premi il pulsante
reset.when_pressed = reset()
pause()
I vari print dei messaggi possono essere sostituiti da scritte scorrevoli sul display, volendo si può aggiungere qualche effetto sonoro o LED (ad esempio illuminando la porta dove viene segnato il goal).