import RPi.GPIO as GPIO
import time
import signalINPUT = 12
OUTPUT = 25def sound(i, o, t):GPIO.setwarnings(False)GPIO.setmode(GPIO.BCM)GPIO.setup(o, GPIO.OUT)GPIO.setup(i, GPIO.IN)def handler(signum, frame):GPIO.output(o, GPIO.LOW)exit(0)signal.signal(signal.SIGINT, handler)while 1:if GPIO.input(i) != 0:GPIO.output(o, GPIO.HIGH)time.sleep(t)else:GPIO.output(o, GPIO.LOW)
sound(INPUT, OUTPUT, 0.1)
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1-12为C到B
13降一个8度,14升一个8度,15回到中间的8度,16输出小星星(你可以自己改代码写曲子)
# Music.py
import RPi.GPIO as GPIO
import time
class Music:# c1_ is c1#c1 = 33c1_ = 35d1 = 37d1_ = 39e1 = 41f1 = 44f1_ = 46g1 = 49g1_ = 52a1 = 55a1_ = 58b1 = 62c2 = 65c2_ = 69d2 = 73d2_ = 78e2 = 82f2 = 87f2_ = 93g2 = 98g2_ = 104a2 = 110a2_ = 117b2 = 123c3 = 131c3_ = 139d3 = 147d3_ = 156e3 = 165f3 = 175f3_ = 185g3 = 196g3_ = 208a3 = 220a3_ = 233b3 = 247c4 = 262c4_ = 277d4 = 294d4_ = 311e4 = 330f4 = 349f4_ = 370g4 = 392g4_ = 415a4 = 440a4_ = 466b4 = 494c5 = 523c5_ = 554d5 = 587d5_ = 622e5 = 659f5 = 698f5_ = 740g5 = 784g5_ = 831a5 = 880a5_ = 932b5 = 988c6 = 1047c6_ = 1109d6 = 1175d6_ = 1245e6 = 1319f6 = 1397f6_ = 1460g6 = 1568g6_ = 1661a6 = 1760a6_ = 1865b6 = 1976c7 = 2093c7_ = 2217d7 = 2349d7_ = 2489e7 = 2537f7 = 2794f7_ = 2960g7 = 3136g7_ = 3322a7 = 3520a7_ = 3729b7 = 3951def __init__(self):GPIO.setwarnings(False)GPIO.setmode(GPIO.BCM)GPIO.setup(12, GPIO.OUT)GPIO.output(12, GPIO.HIGH)def outOne(self, note, t):buzz = GPIO.PWM(12, note)buzz.start(50)time.sleep(t)buzz.stop()def get_mode_list(self):ret = [[[self.c1, self.c1_, self.d1, self.d1_],[self.e1, self.f1, self.f1_, self.g1],[self.g1_, self.a1, self.a1_, self.b1],],[[self.c2, self.c2_, self.d2, self.d2_],[self.e2, self.f2, self.f2_, self.g2],[self.g2_, self.a2, self.a2_, self.b2],],[[self.c3, self.c3_, self.d3, self.d3_],[self.e3, self.f3, self.f3_, self.g3],[self.g3_, self.a3, self.a3_, self.b3],],[[self.c4, self.c4_, self.d4, self.d4_],[self.e4, self.f4, self.f4_, self.g4],[self.g4_, self.a4, self.a4_, self.b4],],[[self.c5, self.c5_, self.d5, self.d5_],[self.e5, self.f5, self.f5_, self.g5],[self.g5_, self.a5, self.a5_, self.b5],],[[self.c6, self.c6_, self.d6, self.d6_],[self.e6, self.f6, self.f6_, self.g6],[self.g6_, self.a6, self.a6_, self.b6],],[[self.c7, self.c7_, self.d7, self.d7_],[self.e7, self.f7, self.f7_, self.g7],[self.g7_, self.a7, self.a7_, self.b7],],] return retdef out_star(self):buzz = GPIO.PWM(12, 440)star = [self.c4, self.c4, self.g4, self.g4, self.a4, self.a4, self.g4]for i in star:buzz.ChangeFrequency(i)buzz.start(50)time.sleep(0.4)buzz.stop()time.sleep(0.1)if __name__ == "__main__":pass
# keyboard_music.py
import RPi.GPIO as GPIO
import time
import Music
import signal
class keybroad:rows = [17, 27, 22, 16]columns = [5, 6, 13, 26]keybroad_map = [["1","2","3","4"],["5","6","7","8"],["9","10","11","12"],["A","B","C","D"]]m = Music.Music()mode_list = m.get_mode_list() # 7s 8curMode = 3def __init__(self):GPIO.setwarnings(False)GPIO.setmode(GPIO.BCM)for row ws:GPIO.setup(row, GPIO.OUT)for col lumns:GPIO.setup(col, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)def deal(self, x, y):t = 0.2if x < de_list[self.curMode][x][y], t)elif y == 0:if self.curMode > 0:self.curMode -= 1elif y == 1:if self.curMode < 6:self.curMode += 1elif y == 2:self.curMode = 3elif y == ut_star()else:print(x, y)def start(self):while 1:for i in range(len(self.keybroad_map)):GPIO.ws[i], GPIO.HIGH)for j in range(lumns)):if (GPIO.lumns[j]) == 1):self.deal(i, j)time.sleep(0.3)GPIO.ws[i], GPIO.LOW)def check(self, code):ret = 0for i in range(len(self.keybroad_map)):GPIO.ws[i], GPIO.HIGH)for j in range(lumns)):if (GPIO.lumns[j]) == 1 and code == self.keybroad_map[i][j]):ret = 1GPIO.ws[i], GPIO.LOW)return retdef handler(signum, frame):exit(0)if __name__ == "__main__":signal.signal(signal.SIGINT, handler)k = keybroad()k.start()
本文发布于:2024-01-29 17:58:59,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170652234317264.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |