Exemplo n.º 1
0
button2 = Button(3)
button3 = Button(4)
button4 = Button(5)
button5 = Button(6)
button6 = Button(7)
button7 = Button(8)
button8 = Button(9)
b1 = 0
b2 = 0
b3 = 0
b4 = 0
b5 = 0
b6 = 0
b7 = 0
b8 = 0
if button1.is_pressed():
    b1 = 1
if button2.is_pressed():
    b2 = 1
if button3.is_pressed():
    b3 = 1
if button4.is_pressed():
    b4 = 1
if button5.is_pressed():
    b5 = 1
if button6.is_pressed():
    b6 = 1
if button7.is_pressed():
    b7 = 1
if button8.is_pressed():
    b8 = 1
Exemplo n.º 2
0
def main():
    # Init variablen voor gebruik in game loop
    r_knop = Button(14)         # Groene Knop
    g_knop = Button(15)         # Rode knop
    b_knop = Button(4)          # Start knop
    g_lamp = LED(22)            # Groen LED Kleur
    r_lamp = LED(27)            # Rood LED Kleur       
    led = LED(22)               # led lampje
    sda_lcd = 2                 # LCD scherm
    scl_lcd = 3                 
    
    control_pins = [12,16,18,22]

    GPIO.setmode(GPIO.BOARD)
    for pin in control_pins:
        GPIO.setup(pin, GPIO.OUT)
        GPIO.output(pin, 0)

    mp1, mp2, mp3, mp4 = OD(18), OD(23), OD(24), OD(25)
    step_pins = [mp1, mp2, mp3, mp4]
    seq = [
        [1,0,0,0],
        [1,1,0,0],
        [0,1,0,0],
        [0,1,1,0],
        [0,0,1,0],
        [0,0,1,1],
        [0,0,0,1],
        [1,0,0,1]
    ]

    step_count = len(seq)
    step_links = 1
    step_rechts = -1
    step_counter = 0
    
#LCD scherm aanmaken
    lcd_rs        = 25 
    lcd_en        = 24
    lcd_d4        = 23
    lcd_d5        = 17
    lcd_d6        = 18
    lcd_d7        = 22
    lcd_backlight = 4
    lcd_columns = 16
    lcd_rows = 2

    lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)    
    
    speel = True
    punten = 0
    start = True

    moeilijkheids_graad = 0.8   #elke moeilijker rondes wordt snelheid s die de gebruiker heeft om te klikken gelijk aan 0.8s
    moeilijker = 2              #na dit aantal rondes wordt het spel moeilijker
    teller = 0                  #hoeveelste ronde waar het programma in zit
    maximale_tijd = 1000        #begint met 1 seconde, steeds korter. In milliseconden.
    min_tijd = 2                #minimale tijd dat verstreken is voor een lampje aangaat
    max_tijd = 5                #maximale tijd dat verstreken is voor een lampje aangaat

    while start:
        delay = 1000
        
        lcd.message("Begin met blauw./nPunten: 0")
        
        print("Begin spel. Druk op de blauwe knop.")

        if b_knop.is_pressed:                              
            sleep(random.randint(min_tijd,max_tijd))             #  Random tijnd wanneer de lamp aan gaat
            g_lamp.on()                         #1. Groen lamp gaat aan

            if g_knop.is_pressed:               #2. Groene lamp klik event 
                g_lamp.off()                    #Groene lamp uit

                # 3. Motor gaat aan
                for halfstep in range(8):
                    for pin in range(4):
                    GPIO.output(control_pins[pin], seq[halfstep][pin])
                    sleep(0.001)

                #Start speel loop
                while speel:
                    teller += 1

                    # Moel
                    if teller % moeilijker == 0:
                        min_tijd = min_tijd * moeilijkheids_graad
                        max_tijd = max_tijd * moeilijkheids_graad

                    #Prints voor debuging
                    print(step_counter)
#;-;
                    kleur = random.choice(["groen", "rood"])    #Selecteer een willekeurige kleur
    
                    if kleur == "rood":
                        sleep(random.randint(min_tijd,max_tijd)) # 4. Lamp gaat aan 
                        r_lamp.on()
                        print("rode lamp")
                    else:
                        sleep(random.randint(min_tijd,max_tijd)) 
                        g_lamp.on()
                        print("groene lamp")
                    
                    press = datetime.datetime.now()

                    # Groen knop invoer event.
                    if g_knop.is_pressed():
                        
                        # check als de kleur overheen komt met de de gedrukte knop
                        if kleur == "groen":
                            change = datetime.datetime.now() #change time \

                            if change - press > 1: # Als de gebruiker te langzaam is.
                                lcd.clear()
                                lcd.message("Game over./nPunten: " + str(sum(punten)))
                                break
                            g_lamp.off()
                        
                            # Motor systeem versie 2
                            for halfstep in range(8):
                                for pin in range(4):
                                GPIO.output(control_pins[pin], seq[halfstep][pin])
                                sleep(0.001)
                            
                            print("Goed antwoord")

                        else:
                            lcd.clear()
                            lcd.message("Game over")
                            g_lamp.off()
                            r_lamp.off()
                            speel = False
                            print(f"Totaal aantal goed: "+str(punten))   # Toon aantal goed beantwoord
                            break               #Stop het spel door verkeerd antwoord
                    
                    # Rood knop invoer event.
                    # Checkt of de kleur rood is en voegt punten toe.
                    elif r_knop.is_pressed:
                        if kleur == "rood":
                            r_lamp.off()                            
                            #change time
                            change = datetime.datetime.now()

                            if change - press > 1: # Als de gebruiker te langzaam is.
                                lcd.clear()
                                lcd.message("Game over./nPunten: " + str(sum(punten)))
                                break

                            # Motor systeem versie 1
                            for pin in range(0, 4):
                               xpin = step_pins[pin]
                               if Seq[step_counter][pin] != 0:
                                   xpin.on()
                               else:
                                   xpin.off()
                            step_counter += step_rechts
                            

                            print("Goed antwoord")

                        else:
                            g_lamp.off()
                            r_lamp.off()
                            speel = False
                            lcd.clear()
                            lcd.message("Game over./nPunten: " + str(sum(punten)))
                            print(f"Totaal aantal goed: "+str(punten))   #aantal toont goed beantwoorde/Toon aantal goed beantwoord
                        break                                       #Stolp het splel door verkeerd antwoord

                    #restart de sequence
                    if (step_counter>=step_count):
                        step_counter = 0
                    if (step_counter<0):
                        step_counter = step_count+step_links

                else:       
                    #Iets ging fout. Kom niet in de spel loop.
                    print("Verkeerde invoer. Gebruiker komt niet in speel loop.")
                    sleep(2)
                
            #PUNTEN BEREKENINGING.
            if r_knop.is_pressed or g_knop.is_pressed:          #Groen of rood ingedrukt
                                                      
                diff = change - press                 #Verschil tussen press en change in microseconden/milliseconden
                millisec = (diff.days * 24 * 60 * 60 + diff.seconds) * 1000 + diff.microseconds / 1000.0 # Stackoverflow ;-; Het werkt :o
                print("Hoelang je erover deed: " + millisec)

            if teller % moeilijker == 0:
                maximale_tijd = maximale_tijd * moeilijkheids_graad
            if millisec <= maximale_tijd:
                punten_lijst = []
                punten_lijst.append(millisec)
                lcd.clear()
                lcd.message("Punten: " + str(sum(punten_lijst)))
                print(sum(punten_lijst))

        else:
            print("Spel niet gestart")

    GPIO.cleanup()

if __name__ == "__main__":
    main()
Exemplo n.º 3
0
b,b,b,b,b,b,b,b,
]
        
ten = [
b,b,b,b,b,b,b,b,
b,g,b,g,g,g,g,b,
b,g,b,g,b,b,g,b,
b,g,b,g,b,b,g,b,
b,g,b,g,b,b,g,b,
b,g,b,g,b,b,g,b,
b,g,b,g,g,g,g,b,
b,b,b,b,b,b,b,b,
]

while True: 
    if Button3.is_pressed()
               random_number = random.randint(1,10)
               if random_number == (1):
                   sense.set_pixels(one)
               elif random_number == (2):
                   sense.set_pixels(two)
               elif random_number == (3):
                   sense.set_pixels(three)
               elif random_number == (4):
                   sense.set_pixels(four)
               elif random_number == (5):
                   sense.set_pixels(five)
               elif random_number == (6):
                   sense.set_pixels(six)
               elif random_number == (7):
                   sense.set_pixels(seven)