Skip to content

活動

水平儀

中等級數 | MakeCode, Python | LED 螢幕, 加速計, 聲音 | 布爾邏輯, 感應器, 選擇, 關係運算符

步驟1:製作

它是什麼?

製作一個工具來確保照片、架子、或者是工作平面是水平的。 新的 micro:bit 的內建揚聲器可藉由音訊回饋來輕鬆改善您的水平。

介紹

編程指引

您將學到什麼

  • 如何使用加速感測器來測量角度
  • 什麼是「縱向(pitch)」和「橫向(roll)」
  • 如何結合感測器在兩個方向上的讀數來找到一個水平表面。

運作方式

圖片顯示了 micro:bit 的縱向及橫向傾斜
  • micro:bit 的加速計可以測量兩個方向上的傾斜角度:上下(縱向)以及左右(橫向)。 本項目以此來顯示 micro:bit 何時處於水平狀態,當保持水平時將會在 LED 螢幕上提示並發出聲音,這在懸掛照片或者是製作工作平面時會非常有用。
  • 程式藉由迴圈來不斷地測量 micro:bit 的角度。
  • 如果加速計測量到 micro:bit 的傾斜角度是在 +5 -5 度之間,包括縱向橫向,那麼我們就可以認為它是處在合理水平的位置。 它將在 LED 螢幕上輸出一個勾號,並且播放樂曲。
  • 將耳機連接到 micro:bit 的引腳 0 和 GND 來聽取聲音,如果您有新版的 micro:bit,其內建的揚聲器就可以讓您直接聽到聲音。
  • 如果縱向或者橫向傾斜度其中一個超過 +5 到 -5 度的範圍,那麼程式將在 LED 螢幕上輸出一個叉號,並且停止播放聲音。

你需要的東西

  • 一個micro:bit
  • MakeCode 或, Python 編輯器
  • 電池組(選配)

步驟2:編碼

1from microbit import *
2import music
3
4# Uses accelerometer readings in the x and y axis 
5# and also allows the micro:bit to be slightly off-level
6# to make it work better in practice
7while True:
8    if accelerometer.get_x() > -10 and accelerometer.get_x() < 10 and accelerometer.get_y() > -10 and accelerometer.get_y() < 10:
9        display.show(Image.YES)
10        music.play('C5:1')
11        sleep(200)
12    else:
13        display.show(Image.NO)
14

步驟3:進階

  • 您能根據角度來改變音樂的音調嗎?
  • 您能程式設計製作在 LED 螢幕上移動的「泡泡」嗎?就像真正的水平儀那樣。