Skip to content

活动

节拍器

初学者 | MakeCode, Python | LED显示器, 声音, 按钮 | 迭代, 速度

第 1 步:制作

它是什么?

编程制作你自己的电子节拍器,练习音乐的时候可以用它来打拍子,还可以调整节拍的快慢。

介绍

编程指南

学习目标

  • 如何调整micro:bit音乐节拍的速度
  • 如何使用输入按钮以及声音输出来制作一个实用的电子设备

工作原理

  • 在程序开始时,将节拍设置为100 bpm(每分钟100拍)。 这是控制音乐节拍或速度的标准方法。
  • forever循环使得micro:bit播放一个音符,然后静默一拍。
  • 将耳机连接到引脚0和GND,或者用新版micro:bit的内置扬声器,都能听到声音。
  • 按下按键A将速度减慢5 bpm。
  • 按下按键B将速度提高5 bpm。
  • 同时按下按键A和B则会在LED显示屏输出上显示当前的速度。

所需材料

  • 一个micro:bit
  • MakeCode或者Python编辑器
  • 电池盒(选配)

第 2 步:编程

1from microbit import *
2import music
3tempo = 100
4
5while True:
6    music.set_tempo(bpm=tempo)
7    music.play(['C4:1', 'r:3']) # play C for 1 tick, rest for 3 ticks
8    if button_a.was_pressed():
9        tempo -= 5
10    if button_b.was_pressed():
11        tempo += 5  
12    

第3步:完善

  • 你可能会注意到,它的节奏略慢于具有相同的BPM设置的电子仪器——这是因为每个循环都需要一又十六分之一拍 ,而非一拍。
  • 你可以通过以下方式使节拍器更精确:将多个短音符加起来组合成一个完全音符,1/2 + 1/4 + 1/8 + 1/16加起来得到15/16拍,再加1/16音符从而得到一个完全音符。
  • “Forever”模块也增加了一点延时,因此使用“while true”循环将使代码增速,从而让节拍器更精确。
  • 本页面上方的编程视频显示了如何实现这些功能。
网格显示的短音符加起来一共是15/16拍。