10642| 0
|
UpyCraft-micropython: 让Microbit发声 |
本帖最后由 Nana 于 2017-8-10 09:54 编辑 学习Python语言需要与实例相结合才能事半功倍。傻瓜教程来啦───使用Microbit播放音乐,显示图像或文字。 目的:
技能:
Microbit与扬声器连接示意图: 连线效果图: 所需代码: [mw_shl_code=python,true]# musical quiz buzzer for micro:bit # www.dfrobot.com.cn from microbit import * import music music.set_tempo(bpm=220) Player_A_tune = ["c", "d", "e", "f", "g"] Player_B_tune = ["g", "f", "e", "d", "c"] display.scroll("Quiz buzzer") while True: display.show(Image.HAPPY) if button_a.was_pressed(): display.show("A") music.play(Player_A_tune) sleep(2000) elif button_b.was_pressed(): display.show("B") music.play(Player_B_tune) sleep(2000) sleep(20) [/mw_shl_code] 运行成功效果: 代码详解:
第7行:控制当按键按下时音乐的播放速度,数值越大,播放越快。 第8行和第10行:定义2个列表,均含5个字符。这些字符代表着音符的名字。你可以自己写出更好的曲调,这里还有一些曲调可供参考: "c#:4" :播放c调4个节拍 "db5:1" :播放D调1个节拍,5代表播放比C调多一个八度音阶(即音阶4) "eb3:3" 播放E调3个节拍,第一个3代表播放比C调多一个八度音阶(即音阶4)
第12行:在屏幕上滚动显示字符' Quiz buzzer '/ " Quiz buzzer "。必须是英文字体的单引号或双引号。 第14行:while循环,后面的条件满足时,将会执行后面的语句,执行完后,在判断条件是否满足,以此循环,直到条件不满足时退出。这里的True表示条件为真,那么程序会一直运行14到24行的代码。 缩进是判断逻辑语句范围的标准,在python中非常重要。Python小白们要重视啊~ 第15行:显示一个笑脸。 第16到19行与第20到23行的功能相似:判断按键是否按下。如果按键a按下,显示‘A’播放列表‘Player_A_tune’,睡眠2秒,如果按键b按下,显示‘B’播放列表‘Player_B_tune’。 第24行:让程序睡眠20毫秒,然后继续进入循环。 下面是microbit的音乐代码,有一些错误供大家修改,‘#’可以注释(屏蔽)一行代码,可以用来判断BUG的位置。 [mw_shl_code=python,true]# musical quiz buzzer for micro:bit # www.dfrobot.com.cn from microbit import * import music music.set_tempo(bpm=220) PLAYER_A_TUNE = ["c", "d", "e", "f", "g"] PLAYER_B_TUNE = ["g", "f", "e", "d", "c"] display.scroll("Quiz buzzer") while True: display.show(Image.HAPPY) if button_a.was_pressed(): display.show("A") music.play(player_a_tune) sleep(2000) elif button_b.was_pressed() display.show("B") music.play(player_b_tune) sleep(2000) sleep(20) [/mw_shl_code] *Python是区分大小写的 *Python中缩进很重要 如果你将代码调试出来了,你可以试试同时按下2个按键。你会发现它会显示a按键被按下。这是为什么?能不能修复它?(预知后事如何,请待下回分解) |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed