X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=glove.py;h=942d83bb0b1b7bfb0e3fd65bed58cbf284f5cddc;hb=6470db67887388e51816186ccd08c5ed232b8417;hp=03a56bc473e321bd3b759bfe6c4e985a3591cccb;hpb=23ffe389c0d989441e34dfe1f121d009fe31f64f;p=pi-music.git diff --git a/glove.py b/glove.py index 03a56bc..942d83b 100644 --- a/glove.py +++ b/glove.py @@ -1,16 +1,5 @@ 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) - guitars = ['sounds/guitar1.wav', 'sounds/guitar2.wav', @@ -18,27 +7,21 @@ guitars = ['sounds/guitar1.wav', 'sounds/guitar4.wav', 'sounds/guitar5.wav'] -pins = [25, 24, 18, 22] - pygame.mixer.init() sounds = [pygame.mixer.Sound(g) for g in guitars] +def handle_sound(pin): + if not gpio.input(pin): + sounds[pins.index(pin)].play() + else: + sounds[pins.index(pin)].stop() + gpio.setmode(gpio.BCM) +pins = [25, 24, 18, 22] + for pin in pins: gpio.setup(pin, gpio.IN) - -last_states = [gpio.input(p) for p in pins] -these_states = list(last_states) + gpio.add_event_detect(pin, gpio.BOTH, callback=handle_sound, bouncetime=200) while True: - these_states = [gpio.input(p) for p in pins] - logger.debug("These: {0}, Last: {1}".format(these_states, last_states)) - for i in range(len(pins)): - if these_states[i] and not last_states[i]: - sounds[i].play() - last_states[i] = these_states[i] - logger.info("Started playing {0}".format(i)) - if not these_states[i] and last_states[i]: - sounds[i].stop() - last_states[i] = these_states[i] - logger.info("Stopped playing {0}".format(i)) + pass