Мелодии
MicroPython на Microbit содержит мощный музыкальный и звуковой инструмент.
Вы можете легко генерировать звуковые и музыкальные сигналы.
В Microbit V1 необходимо подключить динамик к пину 0 и GND
В Microbit V2 динамик уже встроен и Вы можете сразу переходит к коду.
Примечание
Для проигрывания необходимо использовать пассивный зумер. Нельзя использовать активный
Давайте проиграем мелодию:
import music
music.play(music.NYAN)
Необходимо подключить библиотеку music и использовать команды указывая объект.
MicroPython имеет довольно много встроенных мелодий:
music.DADADADUMmusic.ENTERTAINERmusic.PRELUDEmusic.ODEmusic.NYANmusic.RINGTONEmusic.FUNKmusic.BLUESmusic.BIRTHDAYmusic.WEDDINGmusic.FUNERALmusic.PUNCHLINEmusic.PYTHONmusic.BADDYmusic.CHASEmusic.BA_DINGmusic.WAWAWAWAAmusic.JUMP_UPmusic.JUMP_DOWNmusic.POWER_UPmusic.POWER_DOWN
Обратите внимание встроенные мелодии также пишутся через объект music
Собственные мелодии
У каждой ноты есть свое имя (например C# или F), также указывается продолжительность
проигрывания. Октавы обозначаются цифрами ~ 0 самая низкая, 4 средняя, 8 высокая.
Каждая нота выражается в виде строки символов, подобных этому:
NOTE[Октава][:Длительность]
Например "A1:4", указывается нота A, октава 1, воспроизводится 4.
Можно использовать список для создания мелодии, например:
import music
tune = ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4",
"E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"]
music.play(tune)
Примечание
MicroPython запоминает октаву и продолжительность, поэтому код можно переписать так:
import music
tune = ["C4:4", "D", "E", "C", "C", "D", "E", "C", "E", "F", "G:8",
"E:4", "F", "G:8"]
music.play(tune)
Звуковые Эффекты
MicroPython позволяет создавать звуки, не используя ноты. Например, так можно создать эффект полицейской сирены
import music
while True:
for freq in range(880, 1760, 16):
music.pitch(freq, 6)
for freq in range(1760, 880, -16):
music.pitch(freq, 6)
Команда music.pitch ожидает частоту и продолжительность. В коде используется цикл for
для прохода по генератору (range), который выдает числа от 880 до 1760 с шагом 16.
Сирена звучить вечно, она заключена в бесконечный цикл while.