luyuhao 发表于 2017-8-11 13:45:53

UpyCraft-micropython:简易电子琴

之前看过一篇控制microbit发声的帖子,现在我想通过检测microbit按键和pin脚的状态做一个简易的电子琴。由于microbit的引脚有限,以及本人对音乐的了解较浅,所以只能大概做个模型,以供大家查考……首先,我们需要准备的工具:硬件:
[*]Micro:bit主板
[*]数据线
[*]扬声器
软件:

[*]UpyCraft-Micropython

连接图:



代码及解析:from microbit import *
import music

music.set_tempo(bpm=220)
# keep looping forever
while True:

    if button_a.was_pressed():
      music.play("a")

    elif button_b.was_pressed():
      music.play("c")
      
    elif pin1.is_touched():
      music.play("e")
      
    elif pin2.is_touched():
      music.play("h")

    sleep(200)
第1行和第2行:导入需要的包
第4行:控制音调播放速度,数值越大,播放越快
第6行:while循环,将重复执行第9行到第22行的代码
第8行到第18行:分别判断按键a、b是否被按下,以及pin1、pin2是否接地,如果条件触发,这播放相应的音节。
第20行:睡眠0.2秒,保证播放音节时间充足


运行结果:


如果觉得音节少的话,可以尝试组合按键,比如说:button_a与button_b同时按下播放一个音节,或button_a按下与pin0接GND是另一个音节,等等。

欢迎大家加入uPyCraft-micropython QQ群:619558168

页: [1]
查看完整版本: UpyCraft-micropython:简易电子琴