microbit庫的使用


目錄:

  顯示(display)

  Images(圖像)

  Classes(類)

  Operations(操作)

  DIY Images(⾃⼰⼿動制作圖⽚)

  Animation(動態圖)

  按鈕

  Input/Output(輸⼊/輸出)

  脈沖寬度調制

  嗶嗶聲和雜⾳

  Music(⾳樂)

  Random(隨機)

  Movement(移動)

 

 

 

顯示(display)

from microbit import *
display.scroll("Hello World!")  # 讓microbit滾動顯⽰字符串“hello world!”
 
Images(圖像)
Microbit配備5*5格紅⾊LED燈,使⽤micropython,讓你領略藝術圖案。
Micropython擁有許多內置圖⽚⽤於顯⽰。
例如:開發板顯⽰圖⽚HAPPY
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 替換成你想要顯⽰的圖 ⽚即可。
內置Image圖⽚
 
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() 給揚聲器傳⼊特定頻率的⾳調,並播放指定時間。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM