步驟1:製作
它是什麼?
使用新版 micro:bit 的觸控標記感測器作為一個額外按鍵來建造一個真正的秒錶。
介紹
編程指引
您將學到什麼
- 如何在實際項目中使用新版的 micro:bit 的觸控標記感測器作為額外的按鍵
- 如何使用變數和數學運算符來測量時間
- 如何使用數學運算符來換算單位(毫秒換算為秒)
- 什麼是布爾變數,以及如何使用它們來控制程式的流程
如何使用它
- 將程式燒錄到包含內建揚聲器的新版 micro:bit 中。
- 按下按鍵 A 來開始秒錶計時。 當秒錶計時的時候,LED 螢幕上會顯示一個跳動的心型動畫。
- 按下按鍵 B 來停止計時。 您可以隨時開始或暫停計時,時間將累計增加,就像一個真正的秒錶一樣。
- 按下 micro:bit 前面的金色觸控標誌,來顯示測量到的時間(秒)。
- 按 micro:bit 背面的重設按鍵來清除計時,重設時間為 0。
運作方式
- micro:bit 會記錄開機的時間,以毫秒為單位(千分之一秒)。 這稱為運行時間。
- 當您按下按鍵 A 時,名為 start 的變數會被設定為目前的運行時間。
- 當您按下按鍵 B 時,新的運行時間會減去 start 記錄的值,這樣就能算出從秒錶開始計時到目前過了多少時間。 此差值將被累加到總時間中,總時間會被儲存在一個名為 time 的變數裡。
- 如果您按下觸控標誌,該程式會在 LED 螢幕上顯示總時間。 它將時間除以 1000, 從毫秒(千分之一秒)換算為秒。 它使用整數除法運算符給出整數結果。
- 該程式也使用名為 running 的布爾變數來控制運行。 布爾變數只能有兩個標準值:真或偽。 如果 running 是真,代表秒錶已經開始計時。 如果 running 是偽,代表秒錶並未開始或已經停止計時。
- 如果 running 是真,循環模式將會保持 LED 螢幕上出現的心型動畫。
- 如果秒錶已被停止,且如果 running 變數的值不是真時,只有按下標誌時才會顯示時間。
- 該程式碼為了防止錯誤計數,變數 time 的值僅在當計時開始後且當您按下按鍵 B 時才會改變,而判斷方式為如果 running 值為真。
你需要的東西
- 新版包含內建聲音功能的 micro:bit(或 MakeCode 模擬器)
- MakeCode 或, Python 編輯器
- 電池組(選配)
步驟2:編碼
1from microbit import *
2time = 0
3start = 0
4running = False
5
6while True:
7 if running:
8 display.show(Image.HEART)
9 sleep(300)
10 display.show(Image.HEART_SMALL)
11 sleep(300)
12 else:
13 display.show(Image.ASLEEP)
14 if button_a.was_pressed():
15 running = True
16 start = running_time()
17 if button_b.was_pressed():
18 if running:
19 time += running_time() - start
20 running = False
21 if pin_logo.is_touched():
22 if not running:
23 display.scroll(int(time/1000))
步驟3:進階
- 修改程式,以便您可以藉由搖晃 micro:bit 來重設時間。
- 藉由使用分數來代替整數來讓計時器更準確。
- 添加一個 lap time 函數,以便記錄當您在秒錶運行時觸控標誌,就會顯示該點的時間。 確保這不會被累加到記錄總時間的 time 變數中。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.