2024年2月20日 星期二

如何讓micro:bit Python程式同時多做一些事

編輯器:makecode、micro:bit Python

micro:bit是一顆擁有許多感測器、按鈕且有一個顯示器(5x5矩陣LED)的微型電腦,簡單好用,但您有發現當顯示器在顯示文字時,按鈕的功能似乎會沒有作用,這是因為程式執行是採用阻斷式的程式設計,雖然在使用makecode來設計程式,都是採用事件驅動。


以上圖為例,當顯示器在顯示Hello!時,按下A鈕,顯示器並不會立即地更改顯示內容,而是讓Hello!顯示結束後才會有反應。今天要推薦一篇很棒的文章,從該篇文章您可以瞭解到使用Python程式設計會比積木式程式設計來得更靈活。

參考文章:Become a Time Lord with the BBC micro:bit

範例一、按鈕計次

1
2
3
4
5
6
from microbit import *
n = 0
while True:
  if button_a.was_pressed():
    n += 1
    display.scroll(str(n))

當執行上面程式時,一開始您快速連按幾個按鈕,您會發現按鈕次數統計上有問題。

範例二、採用wait關鍵字參數來提升程式效能

1
2
3
4
5
6
from microbit import *
n = 0
while True:
  if button_a.was_pressed():
    n += 1
    display.scroll(str(n), wait=False)

上面程式解決了按鈕次數統計錯誤的問題,但當您一直連續按鈕時,似乎不能看到您按了幾下,這是就可以採用定時顯示的方法。

範例三、採定時顯示按鈕次數

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from microbit import *
UPDATE_INTERVAL = 10000
next_update = 0
n = 0
while True:
  if running_time() > next_update:
    display.scroll(str(n), wait=False)
    next_update = running_time() + UPDATE_INTERVAL
  if button_a.was_pressed():
    n += 1


沒有留言:

張貼留言