Skip to content

活動

觸控秒錶

中等級數 | MakeCode, Python | 觸控標誌, LED 螢幕, 按鈕 | 布爾邏輯, 測量, 算術運算符, 變數, 輸入輸出

步驟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 變數中。