Microbit Python 課程介紹 --Movement
2017-07-09 22:56Microbit Python 課程介紹 --Movement
您的BBC micro:bit帶有一個加速度計。 它測量三軸運動:
•X - 從左向右傾斜。
•Y - 向前和向後傾斜。
•Z - 上下移動。
每個軸都有一個返回正數或負數的方法,表示毫米的測量值。 當讀數為0時,沿著該特定軸是“level”。
例如,這是一個非常簡單的精神級別,它使用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 and R。
我們希望設備不斷變化,所以我們使用無限循環(infinite while loop)。 在循環體內發生的第一件事是沿著X軸的測量,稱為讀數(reading)。
因為加速度計非常敏感,所以我的等級是+/- 20。 這就是為什麼if和elif conditionals( if and elifconditionals)檢查> 20和<-20 (> 20 and < -20)。 else聲明意味著如果讀數在-20到20之間,那麼我們認為它是水平的。 對於每個這些條件,我們使用顯示來顯示適當的字符。
還有一個Y軸的get_y方法和Z軸的get_z方法。
如果您曾經想過手機知道如何在屏幕上顯示圖像,那是因為它使用與上述程序完全相同的加速度計。 遊戲控制器還包含加速度計,以幫助您在遊戲中引導和移動。
Musical Mayhem
MicroPython在BBC micro:bit上最美妙的一個方面是如何讓您輕鬆地將設備的不同功能連接在一起。 例如,讓我們把它變成一種樂器(各種各樣的)。
連接揚聲器,就像在音樂教程中一樣。 使用鱷魚夾將引腳0和GND連接到揚聲器的正負輸入 - 連接到揚聲器的方式並不重要。
如果我們從加速度計讀取數據並將其作為音調發生,會發生什麼? 我們來看看:
from microbit import *
import music
while True:
music.pitch(accelerometer.get_y(), 10)
關鍵是結束,非常簡單。 我們將Y軸上的讀數作為頻率進行編輯,進入music.pitch方法。 我們只讓它播放10毫秒,因為我們希望音調隨著設備的翻轉而迅速改變。 由於該裝置處於無限循環(an infinite whileloop)中,因此它將不斷地對Y軸測量的變化作出反應。
就是這樣!
向前和向後提示設備。 如果沿著Y軸的讀數為正,則會改變由the micro:bit播放的音調的音高。
想像一下這些設備的整個交響樂團。 你可以演奏曲調嗎? 您將如何改進程序,使the micro:bit的聲音更加音樂化?
Microbit 中文 課程 : Python , Javascript, 物聯網
標籤:
—————