步驟1:製作
它是什麼?
藉由這個新的 micro:bit 上的麥克風計時器來測量掌聲 - 或任何響亮的聲音 - 持續了多久。
介紹
編程指引
您將學到什麼
- 如何藉由麥克風來測量響亮或者輕微的聲響以觸發事件
- 如何使用 micro:bit 內建的計時器
- 如何設定響亮和輕微聲音的門檻值
運作方式
- 在程式開始時,設定觸發響亮聲音事件的門檻值。 使用較大的數字就會需要較大的聲響來觸發事件,數字越小,則較小的聲音便可。 你可以使用 0 到 255 之間的任何數字。
- 將一個名為 start 的變數設定為 0。 這是用來記錄大的聲響開始的時間。
- 當麥克風偵測到大的聲響時,將 start 變數設定成 micro:bit 目前的運行時間,同時在 LED 螢幕上顯示一個圖標,這樣就可以知道計時已經開始了。
- 運行時間是測量 micro:bit 開始運行程式的時間,以毫秒為單位(千分之一秒)。
- 當響亮聲響停止時,會觸發靜音事件。
- 如果已經有了一個大的響聲事件,而且計時器已開始,那麼 start 變數的值會大於 0。 此時,另一個變數 time 的值會被設定為新的目前運行時間減去開始時間。 這告知我們大的響聲持續了多長時間。
- 由於時間以毫秒為單位測量,因此程式將它除以 1000,將其轉換為秒,並在 LED 螢幕上顯示出來。
你需要的東西
- 一個micro:bit
- MakeCode 或, Python 編輯器
- 電池組(選配)
步驟2:編碼
1from microbit import *
2microphone.set_threshold(SoundEvent.LOUD, 150)
3start = 0
4
5while True:
6 if microphone.was_event(SoundEvent.LOUD):
7 start = running_time()
8 display.show(Image.TARGET)
9
10 if microphone.was_event(SoundEvent.QUIET):
11 if start > 0:
12 time = running_time() - start
13 start = 0
14 display.clear()
15 sleep(100)
16 display.scroll(time / 1000)
步驟3:進階
- 對大的聲聲和小的聲音事件進行不同門檻值實驗,以找到最適合您的值。
- 添加聲音記錄器項目的程式碼,這樣您也可以測量出掌聲有多大聲。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.