按鈕開關
Last updated
Last updated
import RPi.GPIO as gpio
import time
wait_time = 0.2
gpio.setmode(gpio.BCM)
btn = 13
gpio.setup(btn, gpio.IN, pull_up_down=gpio.PUD_UP)
pre_status = None
pre_time = time.time()
current_time = None
try:
while True:
get_btn = gpio.input(btn)
current_time = time.time()
if get_btn == gpio.LOW and pre_status == gpio.HIGH and (current_time - pre_time) > wait_time:
pre_time = current_time
print('button pressed!', time.ctime())
pre_status = get_btn
time.sleep(0.3)
except KeyboardInterrupt:
print('keyboard interrupt')
finally:
gpio.cleanup()sudo apt install fluid-soundfont-gmimport pygame.midi
from time import sleep
pygame.midi.init()
player = pygame.midi.Output(2)
player.set_instrument(0)
player.note_on(60, 127)
sleep(1)
player.note_on(64, 127)
sleep(1)
player.note_on(67, 127)
sleep(3)
player.note_off(60)
player.note_off(64)
player.note_off(67)
player.close()
pygame.midi.quit()from gpiozero import Button
import pygame.midi
from signal import pause
pins_notes = [(4, 60), (17, 64), (27, 67), (22, 72)]
class PainoButton(Button):
def __init__(self, pin, note):
super().__init__(pin)
self.note = note
def playnote(btn):
player.note_on(btn.note, 127)
def stopplay(btn):
player.note_off(btn.note, 127)
pygame.midi.init()
player = pygame.midi.Output(2)
player.set_instrument(0)
painos = [PainoButton(pin, note) for pin, note in pins_notes]
for paino in painos:
paino.when_pressed = playnote
paino.when_released = stopplay
temp = input('按下enter鍵離開')
player.close()
pygame.midi.quit()