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