from machine import Pin, PWM
from time import sleep
class Buzzer:
tones = {
"B0":31,
"C1":33, "CS1":35, "D1":37, "DS1":39, "E1":41, "F1":44, "FS1":46, "G1":49, "GS1":52, "A1":55, "AS1":58, "B1":62,
"C2":65, "CS2":69, "D2":73, "DS2":78, "E2":82, "F2":87, "FS2":93, "G2":98, "GS2":104, "A2":110, "AS2":117, "B2":123,
"C3":131, "CS3":139, "D3":147, "DS3":156, "E3":165, "F3":175, "FS3":185, "G3":196, "GS3":208, "A3":220, "AS3":233, "B3":247,
"C4":262, "CS4":277, "D4":294, "DS4":311, "E4":330, "F4":349, "FS4":370, "G4":392, "GS4":415, "A4":440, "AS4":466, "B4":494,
"C5":523, "CS5":554, "D5":587, "DS5":622, "E5":659, "F5":698, "FS5":740, "G5":784, "GS5":831, "A5":880, "AS5":932, "B5":988,
"C6":1047, "CS6":1109, "D6":1175, "DS6":1245, "E6":1319, "F6":1397, "FS6":1480, "G6":1568, "GS6":1661, "A6":1760, "AS6":1865, "B6":1976,
"C7":2093, "CS7":2217, "D7":2349, "DS7":2489, "E7":2637, "F7":2794, "FS7":2960, "G7":3136, "GS7":3322, "A7":3520, "AS7":3729, "B7":3951,
"C8":4186, "CS8":4435, "D8":4699, "DS8":4978, "AK1":99
}
def __init__(self, pin=14):
self.buz = PWM(Pin(pin))
def playtone(self,freq):
self.buz.duty_u16(10000)
self.buz.freq(freq)
def bequiet(self):
self.buz.duty_u16(0)
def play_lose(self):
lose = ["B6", "P", "B6"]
for i in range(len(lose)):
if (lose[i] == "P"):
self.bequiet()
else:
self.playtone(self.tones[lose[i]])
sleep(0.06)
self.bequiet()
def play_gameover(self):
game_over = ["D8", "C7", "G6", "B5", "A5", "FS5", "A4"]
for i in range(len(game_over)):
if (game_over[i] == "P"):
self.bequiet()
else:
self.playtone(self.tones[game_over[i]])
sleep(0.2)
self.bequiet()
def play_fire(self):
fire = [i for i in range(1000, 2000, 100)]
for i in range(len(fire)):
self.playtone(fire[i])
sleep(0.01)
self.bequiet()
b = Buzzer(28)
b.play_fire()
sleep(2)
b.play_lose()
sleep(2)
b.play_gameover()