X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=glove.py;h=b2f2075aedd0221278856edaad8e1856933b97d1;hb=82639c95d092e4ab4afd8a40d644e548c6fa5dc8;hp=b63f64824036e2ee4708c6172b9ec134dd1136e6;hpb=bb4de2820c94c1fe96b095028d99875fb4f40908;p=pi-music.git diff --git a/glove.py b/glove.py index b63f648..b2f2075 100644 --- a/glove.py +++ b/glove.py @@ -1,44 +1,29 @@ import pygame import RPi.GPIO as gpio -import time -import logging - -logger = logging.getLogger(__name__) -loggerFileHandler = logging.FileHandler('glove.log') -loggerFileHandlerFormatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s') -loggerFileHandler.setFormatter(loggerFileHandlerFormatter) -logger.addHandler(loggerFileHandler) -logger.setLevel(logging.WARNING) -logger.setLevel(logging.INFO) +gpio.setmode(gpio.BCM) +pins = [25, 24, 18, 22] guitars = ['sounds/guitar1.wav', 'sounds/guitar2.wav', 'sounds/guitar3.wav', - 'sounds/guitar4.wav', - 'sounds/guitar5.wav'] + 'sounds/guitar4.wav'] pygame.mixer.init() -sounds = [pygame.mixer.Sound(g) for g in guitars] -#for s in sounds: -# s.play() -# time.sleep(0.5) -#time.sleep(2) +sounds = {} +for pin, wav in zip(pins, guitars): + sounds[pin] = pygame.mixer.Sound(wav) -gpio.setmode(gpio.BCM) -gpio.setup(25, gpio.IN) +def handle_sound(pin): + if not gpio.input(pin): + sounds[pin].play() + else: + sounds[pin].stop() -last_switch = gpio.LOW +for pin in pins: + gpio.setup(pin, gpio.IN) + gpio.add_event_detect(pin, gpio.BOTH, callback=handle_sound, bouncetime=200) while True: - this_switch = gpio.input(25) - logger.debug("This: {0}, Last: {1}".format(this_switch, last_switch)) - if this_switch and not last_switch: - sounds[0].play() - last_switch = this_switch - logger.info("Started playing") - if not this_switch and last_switch: - sounds[0].stop() - last_switch = this_switch - logger.info("Stopped playing") + pass