Wait until---MakeCode 擴充積木分享|奧斯丁教育 OURSTEAM in EDUCATION
icon教學資源
082021.10

Wait until---MakeCode 擴充積木分享



Scratch 有好用的「wait until」功能,MakeCode 雖然沒有其功能,但仍可使用六個積木擴充(如上圖文字所示)。這些用在編撰紙板、樂高、木頭上的遊戲或是製作警報及摩斯密碼監聽器時相當地實用。



想玩玩新的編碼積木嗎?

此連結可直接連到 MakeCode 文件夾,檔案內有擴充檔及示範編碼,您可在模擬器中測試,輕鬆地了解編碼積木的工作原理:

https://makecode.microbit.org/_8yU4J9f8w3Wv

你也可以在搜尋區搜索「wait until」,點開「advanced」中的「extendions」,並將其積木新增至 MakeCode 的現有專案或新增專案。

如果無法運作,請複製以下網址至搜尋欄:
https://teacherpinky.github.io/Wait-Until-Blocks/

 

Wait until pin released

在許多 micro:bit 的遊戲中,當導電球關閉連接到 P1 、P2 或 GND 引腳時,玩家得分。但如果電路持續關閉超過 1 秒鐘,會無法使用「On pin pressed」積木(如下圖),因為要使用此積木啟動引腳必須在一秒內鬆開。詳見此網頁的解說:




https://makecode.microbit.org/reference/input/on-pin-pressed.

「On pin pressed」積木在彈球遊戲中,因為球體關閉電路後會迅速回彈,亦或是使用按鍵短暫關閉電路,程序皆可正常運作。但像是籃球遊戲則需要其它的編碼積木,因為球體會留在籃框內直到玩家將其取出。

另外,如果球體在籃子中彈跳超過一下,「On pin pressed」積木也會運作異常,因為電路會一直重複開關,造成計分失準。

下列影片示範了電路關閉超過一秒的遊戲:




在這個遊戲中,可使用「if pin is pressed then」偵測電路是否關閉。(請見下方編碼)



通常遊戲中當引腳被按下時,玩家會獲得積分,例如:導電球關閉 Pin1 的電路,玩家得分。而此處會遇到的問題是你必須防止玩家只投一次球卻可以獲得大量積分的情況出現。因此,必須新增編碼積木設定玩家要從籃框內取出籃球後才會獲得積分。

新的編碼積木可以做到此功能。你可以使用它來告訴 micro:bit 必須等到電路再次斷開才能執行下一行代碼。玩家取出球體後,引腳鬆開,才會計分,避免玩家一次獲得大量積分。

在上方示範的編碼中,可以看到新的編碼積木取代了原本較複雜的編碼,不管是孩童還是成人,在編碼的過程中都可以善加利用。

在「wait until」下方的「pause」積木可確保玩家在取出球體的過程中不會獲得額外的積分。因為取球時可能會意外地再次短暫關閉電路,而此積木設定了等待時間,可避免此情況。

此編碼可精準地計算分數。不過球體的重量必須夠重,用於關閉電路。如果球體過輕是無法觸及引腳,計分便會失準。


Wait until button is pressed

另一種計分方式「wait until button is pressed」,對於孩童來說可能更好理解。接下來的編碼提供了另一種計分方式,確保玩家不會一次獲得大量積分。

在此範例中,玩家取出球體後必須自已按下 A 鈕計分。如果沒有按下按鈕,引腳 1 和 GND 間電路仍是關閉狀態,則 micro:bit 不會記錄分數。




沒有「wait until button is pressed」積木,就必須使用對新手來說更為複雜的的編碼。例如:當籃子是空的時候,設定變數為 1,如果變數不為 1,則不計分。而取出球體後按下 A 鈕,再次設定變數為 1。



「wait until button is pressed」及「wait until button is released」這兩個程式積木也很適合製作警報。

你可以設定按 A 鈕或 B 鈕關閉警報,也可以當作使用者開始遊戲前必須輸入的密碼。

下列為簡單的示範介紹積木如何使用,個人認為這樣的編碼可以讓孩童易於理解。





Wait until sound level above/below

此程式積木可讓孩童簡單地編寫 micro:bit V2 :表現害怕當你喊「噓」的時候。

此程式積木只能與新板 micro:bit 搭配使用。




最後一個紫色自訂義積木也可用於摩斯密碼監聽器,將聲音轉換成文字。
為此,micro:bit 必須測量聲音(音調)的長度。可使用新版 micro:bit (V2)上的麥克風及下列的編碼完成。使用一個或兩個「wait until」積木皆可。




執行此段編碼時,micro:bit 會在聽到響亮聲音時透過內建的時鐘顯示時間。

「running time」程式積木屬於變數,用於記錄 micro:bit 自開機以來的時間(以微秒為單位)。透過比較聲響的始末時間可計算出聲音的長度。另外可使用新的紫色自訂義積木讓 micro:bit 注意到聲音停止的時候。




接著,當 micro:bit 知道了聲音的長度之後,便可使用此積木將聲音轉換為文字。



測量聲音長度也可用於製作簡單的 micro:bit 聲控機器人。在此專案中,你可以製作遙控器 (透過發送無線電訊號控制機器人的 micro:bit),編碼告訴機器人在你發出短聲響時向左轉;發出較長聲響時向右走;發出長聲響時則向前走。
 

擴充

「wait until」自訂義積木是一位懂打字稿且好心的 Scratch 使用者為我製作的。這是 9 月 30 日獲得 Micro:bit 基金會及 MakeCode 批准的官方擴充專案,所以在 MakeCode 中點選 extensions 並搜尋「wait until」就可以找得到。




如果無法搜尋到,也可以透過複製下列網址至擴充搜尋欄中找到:
https://teacherpinky.github.io/Wait-Until-Blocks/


未來理想

如果 MakeCode 也可以像 Scratch 一樣提供通用的「wait until」積木,一定很棒!該積木也讓您多了選擇,例如:搭配模擬讀取引腳積木。


  • icon
  • icon
  • icon
  • icon
  • icon
  • icon電話:04-2337-1605
  • icon傳真:04-2256-9949
  • icon統編:13438259
  • iconE-mail:oursteamtw@gmail.com
  • iconLINE ID:@oursteam