學(xué)習(xí)Python語言需要與實(shí)例相結(jié)合才能事半功倍。傻瓜教程來啦───使用Microbit播放音樂,顯示圖像或文字。
目的:
- 循環(huán): 重復(fù)執(zhí)行一段代碼
- 列表: 存放多個(gè)數(shù)據(jù)或命令
- 條件語句: 通過if語句,讓代碼來判斷條件
技能:
- 如何在microbit的屏幕上顯示圖像或文字
- 如何發(fā)現(xiàn)microbit的按鍵被按下
- 如何通過揚(yáng)聲器來播放音樂
所需軟硬件:
- UpyCraft-Micropython V0.24
- Micro:bit主板
- 數(shù)據(jù)線
揚(yáng)聲器Microbit與揚(yáng)聲器連接示意圖:
連線效果圖:
運(yùn)行成功效果:
、代碼詳解:
4 5 | from microbit import * import music |
第4行:你可以使用這個(gè)模塊里面的成員函數(shù)。導(dǎo)入的模塊越多,可以調(diào)用的成員函數(shù)也越多,但會(huì)占用更多的內(nèi)存。你可以通過Microbit模塊控制屏幕顯示、檢測(cè)按鈕狀態(tài)、音樂播放等。
7 8 9
10 |
music.set_tempo(bpm=220) Player_A_tune = ["c", "d", "e", "f", "g"]
Player_B_tune = ["g", "f", "e", "d", "c"] |
第7行:控制當(dāng)按鍵按下時(shí)音樂的播放速度,數(shù)值越大,播放越快。
第8行和第10行:定義2個(gè)列表,均含5個(gè)字符。這些字符代表著音符的名字。
你可以自己寫出更好的曲調(diào),這里還有一些曲調(diào)可供參考:
"c#:4" :播放c調(diào)4個(gè)節(jié)拍
"db5:1" :播放D調(diào)1個(gè)節(jié)拍,5代表播放比C調(diào)多一個(gè)八度音階(即音階4)
"eb3:3" 播放E調(diào)3個(gè)節(jié)拍,第一個(gè)3代表播放比C調(diào)多一個(gè)八度音階(即音階4)
12 13 14
15 16 17 18 19 20 21 22 23 24 |
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) |
第12行:在屏幕上滾動(dòng)顯示字符' Quiz buzzer '/ " Quiz buzzer "。必須是英文字體的單引號(hào)或雙引號(hào)。
第14行:while循環(huán),后面的條件滿足時(shí),將會(huì)執(zhí)行后面的語句,執(zhí)行完后,在判斷條件是否滿足,以此循環(huán),直到條件不滿足時(shí)退出。這里的True表示條件為真,那么程序會(huì)一直運(yùn)行14到24行的代碼。
Python:Microbit8
縮進(jìn)是判斷邏輯語句范圍的標(biāo)準(zhǔn),在python中非常重要。Python小白們要重視啊~
第15行:顯示一個(gè)笑臉。
第16到19行與第20到23行的功能相似:判斷按鍵是否按下。如果按鍵a按下,顯示‘A’播放列表‘Player_A_tune’,睡眠2秒,如果按鍵b按下,顯示‘B’播放列表‘Player_B_tune’。
第24行:讓程序睡眠20毫秒,然后繼續(xù)進(jìn)入循環(huán)。
下面是microbit的音樂代碼,有一些錯(cuò)誤供大家修改,‘#’可以注釋(屏蔽)一行代碼,可以用來判斷BUG的位置。
Python是區(qū)分大小寫的
*Python中縮進(jìn)很重要
如果你將代碼調(diào)試出來了,你可以試試同時(shí)按下2個(gè)按鍵。你會(huì)發(fā)現(xiàn)它會(huì)顯示a按鍵被按下。
轉(zhuǎn)自DF社區(qū)-Nana