2 import RPi
.GPIO
as gpio
6 logger
= logging
.getLogger(__name__
)
7 loggerFileHandler
= logging
.FileHandler('glove.log')
8 loggerFileHandlerFormatter
= logging
.Formatter('%(asctime)s %(levelname)-8s %(message)s')
9 loggerFileHandler
.setFormatter(loggerFileHandlerFormatter
)
10 logger
.addHandler(loggerFileHandler
)
11 logger
.setLevel(logging
.WARNING
)
12 logger
.setLevel(logging
.INFO
)
15 guitars
= ['sounds/guitar1.wav',
21 pins
= [25, 24, 18, 22]
25 sounds
= [pygame
.mixer
.Sound(g
) for g
in guitars
]
27 gpio
.setmode(gpio
.BCM
)
29 gpio
.setup(pin
, gpio
.IN
)
31 last_states
= [gpio
.input(p
) for p
in pins
]
32 these_states
= list(last_states
)
35 def handle_sound(pin
):
37 sounds
[pins
.index(pin
)].play()
38 logger
.info("Started playing {0}".format(pins
.index(pin
)))
40 sounds
[pins
.index(pin
)].stop()
41 logger
.info("Stopped playing {0}".format(pins
.index(pin
)))
45 gpio
.add_event_detect(pin
, gpio
.BOTH
, callback
=handle_sound
, bouncetime
=200)
46 # gpio.add_event_detect(pin, gpio.FALLING, callback=stop_sound, bouncetime=100)
52 # these_states = [gpio.input(p) for p in pins]
53 # logger.debug("These: {0}, Last: {1}".format(these_states, last_states))
54 # for i in range(len(pins)):
55 # if these_states[i] and not last_states[i]:
57 # last_states[i] = these_states[i]
58 # logger.info("Started playing {0}".format(i))
59 # if not these_states[i] and last_states[i]:
61 # last_states[i] = these_states[i]
62 # logger.info("Stopped playing {0}".format(i))