目錄:
顯示(display)
from microbit import * display.scroll("Hello World!") # 讓microbit滾動顯⽰字符串“hello world!”
Images(圖像)
Microbit配備5*5格紅⾊LED燈,使⽤micropython,讓你領略藝術圖案。
Micropython擁有許多內置圖⽚⽤於顯⽰。
例如:開發板顯⽰圖⽚HAPPY
內置Image圖⽚
from microbit import * display.show(Image.HAPPY)
Classes(類)
class microbit.Image(string) class microbit.Image(width=None,height=None,buffer=None)
width() #返回圖像的列數 height() #返回圖像的行數 set_pixel(x,y,value) #設置x列y⾏的像素亮度為value,在0(暗)和圖9(亮)之間.這種⽅法不能改變任何內置的圖像,否則會異常,因為內置圖像是只讀的,例如 Image.HEART 。 get_pixel(x,y) #返回x列y⾏的像素亮度值,范圍在0(暗)到9(亮)之間 shift_left(n) #返回通過將圖⽚左移n位⽽得到的新圖像 shift_right(n) #返回通過將圖⽚右移n位⽽得到的新圖像 shift_up(n) #返回通過將圖⽚上移n位⽽得到的新圖像 shift_down(n) #返回通過將圖⽚下移n位⽽得到的新圖像 crop(x,y,w,h) #從x列y⾏將圖像裁剪為寬度w,⾼度h的新圖像 copy() #返回該圖像復制的新圖像 invert() #通過反轉圖像中像素的亮度來返回新圖像 fill(value) #將圖像中所有像素的亮度設置為 value ,必須在0(暗)和9(亮)之間,這種⽅法會在任何內置的只讀圖像調⽤時發⽣異常,例如Image.HEART blit(src,x,y,w,h,xdest=0,ydest=0) #將圖像 src 中的 x , y , w , h 指定的矩形圖像復制到這個圖像中, xdest , ydest 為⽬標圖 像中的坐標。
shift_left() , shift_right() , shift_up() , shift_down() 和 crop() 可以通過使 ⽤ blit() 全部實現。例, img.crop(x,y,w,h) 可以實現為: def crop(self, x, y, w, h): res = Image(w, h) res.blit(self, x, y, w, h) return res

Image.HEART
Image.HEART_SMALL
Image.HAPPY
Image.SMILE
Image.SAD
Image.CONFUSED
Image.ANGRY
Image.ASLEEP
Image.SURPRISED
Image.SILLY
Image.FABULOUS
Image.MEH
Image.YES
Image.NO
Image.CLOCK12,Image.CLOCK11,Image.CLOCK10,Image.CLOCK9,Image.CLOCK8,Image.CLOCK7,Image.CLOCK6,Image.CLOCK5,Image.CLOCK4,Image.CLOCK3,Image.CLOCK2,Image.CLOCK1
Image.ARROW_N,Image.ARROW_NE,Image.ARROW_E,Image.ARROW_SE,Image.ARROW_S,Image.ARROW_SW,Image.ARROW_W,Image.ARROW_NW
Image.TRIANGLE
Image.TRIANGLE_LEFT
Image.CHESSBOARD
Image.DIAMOND
Image.DIAMOND_SMALL
Image.SQUARE
Image.SQUARE_SMALL
Image.RABBIT
Image.COW
Image.MUSIC_CROTCHET
Image.MUSIC_QUAVER
Image.MUSIC_QUAVERS
Image.PITCHFORK
Image.XMAS
Image.PACMAN
Image.TARGET
Image.TSHIRT
Image.ROLLERSKATE
Image.DUCK
Image.HOUSE
Image.TORTOISE
Image.BUTTERFLY
Image.STICKFIGURE
Image.GHOST
Image.SWORD
Image.GIRAFFE
Image.SKULL
Image.UMBRELLA
Image.SNAKE
這⾥有很多圖⽚,你可以使⽤這些圖⽚來代替 HAPPY ,只需要將Image.HAPPY 替換成你想要顯⽰的圖 ⽚即可。
Operations(操作)
repr(image) #獲取圖像的字符串表⽰ str(image) #將圖像轉化為字符串 image1+image2 #將兩個圖像對應的像素相加,得到新圖像 image*n #通過乘以每個像素的亮度創建⼀個新的圖像
DIY Images(⾃⼰⼿動制作圖⽚)
如果你想在microbit開發板上顯⽰你⾃⼰設計的圖⽚,很簡單。
每⼀個LED燈都有⼗種模式可以設置。如果設置為0,則關閉該LED燈;如果設置為9則LED燈亮度最⼤;
1-8可設置LED燈不同的亮度,值越⼤,亮度越⼤。
所以,你可以創建⼀個新圖像,如下所⽰:
from microbit import * boat=Image("05050:" #第⼀⾏的五個燈,每個值對應每個燈的亮度(0為關閉LED燈) "05050:" "05050:" "99999:" "09990") display.show(boat)
你也可以寫成這樣:
boat=Image("05050:05050:05050:99999:09990")
Animation(動態圖)
顯⽰動態圖⽚,只需要使⽤圖像列表即可
列表的寫法如下:
列表中也可以包含不同的數據類型,如下,包含字符串,浮點數,內置圖⽚: mixed_up_list=["hello!",1.234,Image.HAPPY] 我們可以使⽤圖⽚動畫,例如 Image.ALL_CLOCKS 和 Image.ALL_ARROWS : from microbit import * display.show(Image.ALL_CLOCKS,loop=True,delay=100) 使⽤ display.show 來顯⽰這個動畫, Image.ALL_CLOCKS 中包含⼀個圖⽚列表, loop 表⽰循環顯⽰, delay=100 表⽰每隔100毫秒改變⼀次
創建自己的動畫:
from microbit import * boat1=Image("05050:05050:99999:09990:00900") boat2=Image("00000:05050:05050:99999:09990") boat3=Image("00000:00000:05050:05050:99999") boat4=Image("00000:00000:00000:05050:05050") boat5=Image("00000:00000:00000:00000:05050") boat6=Image("00000:00000:00000:00000:00000") while True: all_boats=[boat1,boat2,boat3,boat4,boat5,boat6] display.show(all_boats,delay=200)
按鈕
microbit的LED左右兩側各有⼀枚按鍵,標記為A和B。我們可以通過⼀些⽅法讓microbit在按鈕被按下時做出反應。
屬性
button_a:A按鈕,按鈕左下⾓有A字符
button_b:B按鈕,按鈕右上⾓有B字符
類和⽅法
注意:⽤戶不可創建新button,兩個button都是已經內置,且只能使⽤這兩個button。
is_pressed() #如果指定的按鈕被按下返回 True ,否則返回 False was_pressed() #如果指定的按鈕在開機或復位之后被按下過,則返回 True ,否則返回 False get_presses() #返回開機或復位后,button被按下的次數,並且調⽤此⽅法后,會將計數置0 示例: from microbit import * sleep(10000) display.scroll(str(button_a.get_presses())) 這個程序的功能:記錄10秒內,A按鍵被按下的次數,並在10秒后將次數滾動顯⽰出來 雖然這是⼀個沒什么⽤的程序,但是它引⼊了⼀些新的點: 1. sleep() :設置microbit睡眠的時間,以毫秒為單位, sleep(10000) 則是睡眠10秒。 2. 有⼀個 button_a 對象被調⽤,通過它的 get_presses() ⽅法得到它被按下的次數。 由於 get_presses() 返回的是⼀個整數,但是 display.scroll() 只接收字符,所以我們需要將整數轉 換為字符串。
事件循環
通常你需要你的程序掛起來等待某事發⽣或者⼀直運⾏。為此,您可以循環⼀段代碼。
該代碼定義了如何對某些預期事件(如按下按鈕)做出反應。
from microbit import * while running_time() < 10000: display.show("1") display.show("2")
running_time() 返回⾃設備啟動以來的毫秒數。
這段程序檢測microbit的啟動時間,如果⼩於10秒,顯⽰"1",⼤於10秒,顯⽰"2"。
處理事件
from microbit import * while True: if button_a.is_pressed(): display.show(Image.HAPPY) elif button_b.is_pressed(): break else: display.show(Image.SAD) display.clear() is_pressed() ⽅法只產⽣兩個結果:True(正確)或False(錯誤)。 如果你按下按鈕返回 True ,否則返回 False 。上⾯的代碼⽤語⾔表述,“永遠執⾏下⾯的循環代碼,如果按下按鈕A,就顯⽰⼀個笑臉,否則如果按鈕B被按下就跳出循環,否則顯⽰⼀個悲傷的臉”,我們跳出 了循環(停⽌程序循環階段)⽤break聲明。最后,當網絡寵物死亡時,我們⽤clear()清除屏幕。
Input/Output(輸⼊/輸出)
microbit的底部邊緣有⾦屬條,這些是輸⼊與輸出引腳(也稱為I/O引腳)
⼀些引腳⽐其他的⼤,可以⽤鱷⻮夾夾住,這些引腳的標記分別是: 0 , 1 , 2 , 3V 和 GND 。
如果將microbit與拓展板拼接上,可以通過導線連接其他設備。
microbit的每個引腳都有編號,也是⼀個對象,和button相似,所以如果要調⽤N引腳,則可以⽤pinN表⽰。
總共有19個引腳,編號為0-16和19-20。引腳17和18不可⽤。
例如,下⾯的程序將根據引腳0上的數字輸⼊信號改變microbit上的顯⽰:
from microbit import * while True: if pin0.read_digital(): display.show(Image.HAPPY) else: display.show(Image.SAD)
這些引腳可以作為microbit模塊的屬性來使⽤:microbit.pin0- microbit.pin20
這些引腳可以作為microbit模塊的屬性來使⽤:microbit.pin0- microbit.pin20

脈沖寬度調制
板⼦上的引腳輸出模擬信號的⽅式與⾳頻揚聲器不同,它不能夠調整引腳上的電壓,這些引腳只⽀持3.3V輸出,或者被拉低為0V。但是我們仍然可以通過很快地切換電壓的⾼低來控制LED的亮度或電動機的速
度。這種技術稱為脈寬調制(PWM),這就是下⾯的 write_analog() ⽅法。
以上您可以看到三種不同PWM信號的圖表。這些都具有相同的周期,但它們具有不同的占空⽐(⾼電平占整個周期的⽐例)。
第⼀個由 write_analog(511) ⽣成,因為它的占空⽐為50%,⾼低電平各占⼀半,其結果和1.65V差不多。
第⼆個由 write_analog(255) ⽣成,占空⽐為25%。它的效果如同引腳上輸出0.825V。
第三個由 write_analog(767) ⽣成,信號占空⽐為75%。它的電壓是第⼆個信號的三倍,相當於在引腳上輸出2.475V。
這適⽤於諸如電機本⾝具有很⼤慣性的設備或LED,但是在⽣成聲波時效果不會很好。
這個板⼦本⾝只能產⽣⽅波的聲⾳,這聽起來就像是以前的電腦游戲(主要是因為這些游戲的聲⾳就是⽅波產⽣的)。
類
有三種引腳,它們的⽤途不同,下⾯會列出它們的類。注意,它們形成層次結構,因此每個類都具有上⼀個類的所有功能。
注意:這些類已經被實例化,您⽆法創建新的實例。您只能使⽤已提供的實例對象,代表電路板上的物理引腳。
class microbit.MicroBitDigitalPin
read_digital() #如果引腳為⾼電平則返回1,如果引腳為低電平則返回0 write_digital(value) #如果 value 為1,將引腳設置為⾼電平;如果為0,就將其設置為低電平
class microbit.MicroBitAnalogDigitalPin read_analog() #讀取引腳的電壓,並將其作為0(0V)和1023(意為3.3V)之間的整數返回 write_analog(value) #將 value 作為PWM值輸出。value可以是0(0%占空⽐)與1023(100%占空⽐)之間的數 set_analog_period(period) #將PWM信號的周期設置為 period 毫秒,最⼩有效值為1ms set_analog_period_microseconds(period) #將PWM信號的周期設置為 period 微秒。最⼩有效值為256μs
class microbit.MicroBitTouchPin is_touched() #如果引腳被觸摸返回 True ,否則返回 False
引腳的模式會⾃動配置,當你調⽤ read_analog / read_digital / is_touched 時,會變為input模式。
在 read_digital 模式時,你可以通過 set_pull 來改變默認的拉模式,拉模式: NO_PULL ,PULL_DOWN , PULL_UP 。
注意:
microbit僅在引腳0,1和2上安裝了外部弱上拉(10M),以便觸摸感應⼯作。可以參閱邊緣連接器數據表:http://tech.microbit.org/hardware/edgeconnector_ds/
檢測引腳是否被觸摸:
from microbit import * while True: if pin0.is_touched(): display.show(Image.HAPPY) else: display.show(Image.SAD) 當Pin0引腳與GND連接時,會顯⽰⼀張笑臉,否則顯⽰⼀張哭臉
嗶嗶聲和雜⾳
我們可以在microbit上附加⼀個揚聲器,讓它發聲
引腳0的電線應連接到揚聲器上的正極連接器,並⽤導線將GND連接到負極
from microbit import * while True: pin0.write_digital(1) sleep(20) pin0.write_digital(0) sleep(480) 在這⾥1表⽰開,0表⽰關。這個程序是⼀個⽆限循環,讓蜂鳴器發聲20毫秒,然后安靜480毫秒,然后循 環,重新開始,所以你會在1秒鍾內聽到兩次嗶嗶聲
Music(⾳樂)
Microbit開發板擁有⼀個⾳樂模塊。如果Pin0和GND連接揚聲器,調⽤相應⽅法,可以播放⼀些⾳樂
播放⾳樂:
import music music.play(music.NYAN)
注意:導⼊music模塊;它包含⽣成和控制聲⾳的⽅法
music.set_tempo(ticks=4,bpm=120) 設置播放的速度,⼀個⾳節(表⽰為整數)構成⼀個節拍。每個節拍將以每分鍾的特定頻率播放。 建議的默認值允許以下有⽤的⾏為: 45 music.set_tempo() 將速度設為默認值:ticks = 4,bpm = 120。 music.set_tempo(ticks=8) 改變⼀個節拍的“定義”。 music.set_tempo(bpm=180) 只改變速度。 計算出毫秒的刻度⻓度⾮常簡單: 60000/bpm/ticks_per_beat 。默認值 為 60000/120/4=125milliseconds 或 1beat=500milliseconds music.get_tempo() 獲取當前節奏作為整數元組: (ticks,bpm) music.play(music,pin=microbit.pin0,wait=True,loop=False) music 包含上⾯定義的⾳樂DSL的播放。 如果 music 是⼀個字符串,它將被預期為單個注釋,例如 'c1:4' 。 如果 music 被指定為⾳符列表(如上⾯⾳樂DSL中的部分所定義的),則將它們連續地播放出來。 在這兩種情況下,在播放⾳樂之前,將 duration 和 octave 重置為默認值。 指定輸出引腳 microbit.pin0 。 如果 wait 設置 True ,則阻塞。 如果loop設置為True,則重復播放直到stop被調⽤(⻅下⽂)或被阻塞中斷。 music.pitch(frequency,len=-1,pin=microbit.pin0,wait=True) 在指定的時間(單位:毫秒)內播放1個⾳調。例如,如果 frequency 為440, len 為1000,那么我們 聽到⼀種⾳調(frequency為440)⼀秒鍾。 如果 wait 設置為 True ,則此函數處於阻塞狀態。 如果 len 為負,⾳調將持續播放,直到阻塞被中斷。 music.stop(pin=microbit.pin0) 停⽌給定針腳上的所有⾳樂播放 music.reset() 以下列⽅式重置以下屬性的狀態: ticks=4 bpm=120 duration=4 octave=4
Micropython包含許多內置⾳律,你可以使⽤如下旋律演⽰:
music.DADADADUM---⻉多芬C⼩調第五交響曲開幕 music.ENTERTAINER---Scott Joplin的Ragtime經典“The Entertainer”的開場⽚段 music.PRELUDE---在JSBach的48個Preludes and Fugues的C⼤調第⼀個序曲開幕 music.ODE---⻉多芬第九交響曲“DOD”中的“歡樂”主題 music.NYAN---Nyan Cat主題 music.RINGTONE---聽起來像⼿機鈴聲的東西。⽤於指⽰傳⼊的消息 music.FUNK---⼀個時髦的低⾳線 music.BLUES---boogie-woogie 12桿藍調散步低⾳ music.BIRTHDAY---“祝你⽣⽇快樂” music.WEDDING---⽡格納歌劇“Lohengrin” music.FUNERAL---“葬禮游⾏”,⼜稱FrédéricChopin的鋼琴奏鳴曲“B”⼩調中的第2號鋼琴奏鳴曲 music.PUNCHLINE---⼀個有趣的⽚段 music.PYTHON---約翰·菲利普·蘇薩(John Philip Sousa)的“⾃由鍾” music.BADDY---沉默的電影時代⼊⼝的⼀個壞蛋 music.CHASE---沉默的電影時代追逐的場景 music.BA_DING---⼀些事情的簡短信號 music.WAWAWAWAA---⾮常難過的⻓號 music.JUMP_UP---⽤於游戲,指⽰向上移動 music.JUMP_DOWN---⽤於游戲,表⽰向下移動 music.POWER_UP---表⽰成就解鎖的狂歡 music.POWER_DOWN---表⽰失去成就的悲傷狂歡
創建⾃⼰的曲調很容易!
每個⾳符表⽰為⼀串字符是這樣的:
NOTE[octave][:duration]
每⼀個⾳符都有⼀個名稱(⽐如C調或F調),⾳階(向Micropython傳遞⾳符⾳調⾼低)和周期(⾳調的持續時間)。⾳階由數字表⽰。0是最低階,4代表中⾳C調,8是最⾼⾳階。你應該不會⽤到8,除⾮你想魔⾳穿⽿。周期也是由數字表⽰,數字越⼤持續時間越⻓。不同周期值之間互有聯系,⽐如說周期4的持續時間是周期2的兩倍等等。如果你調⽤周期R,Micropython會在指定周期內不發聲。
例如, “A1:4” 表⽰1個為A的⾳符在⼋度⾳階持續播放“4”周期。
列出的基調來創建⼀個旋律(相當於創建⼀個動畫的圖像)。例如,下⾯是如何使MicroPython播放“FrereJaques”:
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)
Sound Effects(⾳效)
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)
上⾯例⼦中的range⽤戶循環改變曲調。Range(800,1760,16)表⽰在800到1760之間,每循環⼀次,freq增加16.(-16每循環⼀次,減少16)。
注意music.pitch這個實例如何使⽤。它需要⼀個頻率,例如,頻率設置為440,⽤於調出管弦樂中的A調。
上⾯例⼦中的range⽤戶循環改變曲調。Range(800,1760,16)表⽰在800到1760之間,每循環⼀次,freq增加16.(-16每循環⼀次,減少16)。
Examples
from microbit import * import music # play Prelude in C. notes=['c4:1','e','g','c5','e5','g4','c5','e5','c4','e','g','c5','e5','g4','c5','e5','c4','d','g','d5','f5','g4','d5','f5','c4','d','g','d5','f5','g4','d5','f5','b3','d4','g', 'd5','f5','g4','d5','f5','b3','d4','g','d5','f5','g4','d5','f5','c4','e','g','c5','e5', 'g4','c5','e5','c4','e','g','c5','e5','g4','c5','e5','c4','e','a','e5','a5','a4','e5','a5', 'c4','e','a','e5','a5','a4','e5','a5','c4','d','f#','a','d5','f#4',' a','d5','c4','d','f#','a','d5','f#4','a','d5','b3','d4','g','d5','g5','g4','d5','g5','b3', 'd4','g','d5','g5','g4','d5','g5','b3','c4','e','g','c5','e4','g','c5','b3','c4','e','g','c5' ,'e4','g','c5','b3','c4','e','g','c5','e4','g','c5','b3','c4','e','g','c5','e4','g','c5','a3', 'c4','e','g','c5','e4','g','c5','a3','c4','e','g','c5','e4','g','c5','d3','a','d4','f#','c5' ,'d4','f#','c5','d3','a','d4','f#','c5','d4','f#','c5','g3','b','d4','g','b','d','g','b','g3', 'b3','d4','g','b','d','g','b'] music.play(notes)
Random(隨機)
有時候你想預留⼀些⾃由發展的可能性,希望設備能夠⾃由操作。
MicroPython提供了⼀個random模塊,該模塊基於Python標准庫中的random模塊,它包含⽣成隨機數的函數。
警告:因為底層⽣成器函數最多返回30位,n可能只有1-30之間的值。
import random random.getrandbits(n) #以⻓整型形式返回n個隨機位。 警告: 因為底層⽣成器函數最多返回30位,n可能只有1-30之間的值。 random.seed(n) #⽤⼀個已知的整數初始化隨機數產⽣器。這將從給定的起始狀態開始,有⼀定規律的給出隨機值 random.randint(a,b) #返回⼀個在a和b之間的隨機整數N,包括b。 random.randrange(n) #返回0到n之間的隨機選擇的整數,不包括n。 random.randrange(a,b) #返回⼀個在a和b之間的隨機整數N,不包括b random.randrange(a,b,step) #返回在a和b之間的隨機整數N,step為遞增基數 random.choice(seq) #從⾮空序列返回⼀個隨機元素seq。如果seq是空的則會報出誤差指⽰ random.random() #返回范圍[0.0,1.0]中的⼀個隨機⼩數(浮點數) random.uniform(a,b) #返回⼀個a和b之間的隨機浮點數N。
你可以輕松地實現隨機選擇,例如:
from microbit import * import random names = ["Mary", "Yolanda", "Damien", "Alia", "Kushal", "Mei Xiu", "Zoltan" ] display.scroll(random.choice(names)) 定義的列表中有7個名字。最后⼀⾏是⼀個嵌套。這個 random.choice() ⽅法返回 names 列表中隨機選 擇的⼀個對象。 然后將這個對象作為 display.scroll() ⽅法的參數,滾動顯⽰出來。
隨機數字
隨機數是⾮常有⽤的,⽐如我們可以做⼀個虛擬的骰⼦
from microbit import * import random display.show(str(random.randint(1, 6))) 每⼀次下載這個程序的時候,都會顯⽰⼀個在1到6之間的隨機數
如果你想選擇⼀個⼩數(也稱為浮點數),可以⽤ random.random() ⽅法。他只能選擇0到1之間的浮點數。如果你需要其他的⼩數可以這樣:
from microbit import * import random answer = random.randrange(100) + random.random() display.scroll(str(answer))
Movement(移動)
microbit⾃帶三軸加速計:
X:左右運動
Y:前后運動
Z:上下運動
每個⽅向都有⼀種⽅法,它返回⼀個正數或負數,當讀數為0時,你是沿着那個特定軸的“⽔平”。
例如,這⾥有⼀個⾮常簡單的例⼦,它使⽤ get_x() ⽅法來測量設備在X軸上的⽔平:
from microbit import * while True: reading = accelerometer.get_x() if reading > 20: display.show("R") elif reading < -20: display.show("L") else: display.show("-") 如果你把設備固定住,它應該顯⽰ - ,然后向左或向右旋轉它會分別顯⽰ L 和 R
我們想要設備能夠不斷地根據變化作出反應,因此我們使⽤while死循環。
在循環體內部做的第⼀件事是沿着X軸的測量,叫做讀數。因為加速度計很靈敏,所以我們的測量范圍是+/-20。如果讀數在-20到20之間,那么我們認為它是⽔平的。對於每⼀種情況,我們使⽤ show() 來顯⽰
相應的字符。
還有⽤於Y軸的 get_y() ⽅法和Z軸的 get_z() ⽅法。
⼿機的⼀些重⼒感應游戲,使⽤的加速度計和上⾯的程序是⼀樣的。游戲控制器包含加速計,幫助你在游戲中操控和移動。
控制播放⾳樂:
microbit可以和不同的設備連接在⼀起,實現不同的功能。
例如,讓我們把它變成⼀種樂器。
連接揚聲器,就像在⾳樂教程中⼀樣。使⽤鱷⻥夾將引腳pin0和GND連接到揚聲器的正極和負極。
如果我們從加速度計讀取數據並將其作為⾳調播放,會發⽣什么?我們來看看
from microbit import * import music while True: music.pitch(accelerometer.get_y(), 10)
⾮常簡單。我們將Y軸讀取的值傳⼊ music.pitch() ⽅法。我們只讓它播放10毫秒,因為我們希望⾳調隨着設備的翻轉⽽迅速改變。由於該程序處於while循環,因此它會⼀直對Y軸上的變化做出反應。 music.pitch() 給揚聲器傳⼊特定頻率的⾳調,並播放指定時間。