Я строю музыкальные лестницы с датчиками движения и малиновым пи, и я совсем новичок в Python.В настоящее время, когда пользователь проходит мимо датчика движения, нота будет воспроизводиться в течение всего времени действия файла .wav, но мне было интересно, есть ли способ, которым звук будет воспроизводиться только в течение времени, в течение которого передается датчик движения?
import RPi.GPIO as GPIO
import pygame.mixer
pygame.mixer.init()
'''GPIO setup'''
GPIO.setmode(GPIO.BCM)
GPIO.setwarningS(False)
'''Define stairs and GPIO pins'''
step1 = 4
step2 = 17
step3 = 27
'''Motion sensor setup'''
GPIO.setup(step1, GPIO.IN, GPIO.PUD_UP)
GPIO.setup(step2, GPIO.IN, GPIO.PUD_UP)
GPIO.setup(step3, GPIO.IN, GPIO.PUD_UP)
'''Sound files'''
C1 = pygame.mixer.Sound("piano/C1.wav")
D = pygame.mixer.Sound("piano/D.wav")
E = pygame.mixer.Sound("piano/E.wav")
def play(pin):
sound = sound_pins[pin]
sound.play()
'''Dictionary of steps and sounds'''
sound_pins = {
step1: C1,
step2: D,
step3: E,
}
for pin in sound_pins:
GPIO.setup(pin, GPIO.IN, GPIO.PUD_UP)
GPIO.add_even_detect(pin, GPIO.RISING, play, 100)