Skip to content

活動

AI 活動計時器

中等級數 | MakeCode | 加速計 | 收集數據, 機器學習, 清理數據, 瞭解人工智慧

一個利用 micro:bit CreateAI 進行個人化的簡單專案。 製作一個智慧計時器,可以偵測您進行不同活動的時間長度。

逐步專案指南

步驟 1:了解它

它是如何運作的?

在這項專案中,您將訓練機器學習 (ML) 模型來辨識您何時配戴 BBC micro:bit 進行特定移動。

您會將該模型與 MakeCode 程式合併以製作一個活動計時器,並且將模型和程式碼兩者都放在您的 micro:bit 上。 只需配戴 micro:bit 就能測量您進行不同活動的時間長度。

按下按鍵 A 或 B 以查看您執行各項活動的秒數。

什麼是機器學習?

機器學習 (ML) 是人工智慧 (AI) 的一種,電腦可以根據數據進行學習並做出決策。

ML 模型經過人類訓練來幫助它們做出這些決策,例如,當您以不同方式移動您的 micro:bit 時辨識不同的「動作」。

我將需要做些什麼?

人工智慧系統需要人類來設計、建造、測試和使用它們。 您將收集數據來訓練 ML 模型、測試它、改進它,並將其與電腦程式碼結合來製造使用 AI 的智慧型裝置。 您將運用 micro:bit 和 micro:bit CreateAI 網站來做這件事。

步驟 2:建立它

你需要的東西

收集數據樣本

當您在 micro:bit CreateAI 中開啟專案時,您會看到我們為您提供了一些「行走」、「跳躍」和「靜止」的數據樣本:

walking

jumping

being still

您將使用 micro:bit 的移動感應器或加速度計來新增您自己的移動樣本

在 micro:bit CreateAI 中,點擊「連線」按鍵來連接您的數據收集 micro:bit 並依照指示進行操作。

將數據收集 micro:bit 連接在您的右腳踝內側,按鍵 B 位於上方;專案中的所有樣本都在身體上使用相同的 micro:bit 放置位置,這一點很重要。 如果您想變更配戴方式,只需取代所有數據樣本即可。

新增您自己的行走、跳躍和靜止的移動數據樣本。 依序點擊各個動作,然後點擊「錄製」以記錄各個動作的簡短樣本。 如果您犯了錯誤,您可以刪除任何您不需要的樣本。 您也可以按下 micro:bit 上的按鍵 B 開始錄製。

檢查數據樣本:所有「行走」樣本都看起來類似嗎? Do the ‘jumping’ samples look different to ‘walking’ and ‘being still’?

訓練和測試模型

點擊「訓練模型」按鍵來訓練模型,然後測試它。 嘗試走動,並且看看估計的動作是否顯示為「行走」。 嘗試跳躍並保持靜止。 將您的 micro:bit 交給其他人配戴,看看對於他們是否也能良好運作。

改進您的模型

這是您將循環改進的步驟。 大多數模型都可以藉由更多數據進行改進。 如果模型需要改進以辨識您的動作,點擊「← 編輯數據樣本」。

您可以透過刪除任何您認為不適合的數據樣本來清理數據集(因為它們看起來與相同動作的其他樣本完全不同)。 您也可以藉由新增更多來自您自己和其他人的樣本來改進模型。

您可能需要將非常微小的移動作為您的「靜止」數據樣本的一部分,來幫助模型區分不同的動作。 運用 micro:bit 在不同方向上收集靜態樣本也有助於模型的建立。

再次訓練模型,然後再次測試。

將模型及程式碼放置在您的 micro:bit 上

在 micro:bit CreateAI 中,點擊「在 MakeCode 內編輯」以在 MakeCode 編輯程式中查看專案程式碼。

您可以像在任何 micro:bit MakeCode 專案中一樣修改程式碼,或者直接嘗試。 使用 USB 數據纜線接附 micro:bit,點擊 MakeCode 畫面中的「下載」按鍵,然後依照指示將您的 AI 模型和程式碼區塊傳輸到 micro:bit。 拔下 micro:bit 插頭,裝上電池組,配戴它並測試。

  • 按下按鍵 A 看看您已經行走了多少秒。
  • 按下按鍵 B 看看您已經跳躍了多少秒。
  • 一起按下 A & 和 B 看看您靜止了幾秒鐘。
  • 按下 micro:bit 背面的重設按鍵或是斷開並重新連接電池組來重設計時器。

程式碼區塊如何運作

程式碼使用三個變數來追蹤您執行特定活動的時間長度。 當程式第一次運行時,它將這些計時器變數設定為 0。

當 ML 模型決定您已啟動它辨識出的活動時,會觸發「on ML...start」區塊。 它們會根據 micro:bit 估計您進行中的動作在 micro:bit 的 LED 顯示器上顯示不同的圖示。

當 ML 模型決定您已完成某個動作時,例如行走、跳躍或靜止,就會觸發「on ML...stop」區塊。 每個區塊內的程式碼都會清除螢幕,並且將剛完成的動作的持續時間新增到儲存行走、跳躍或靜止的總時間的變數內。

「on button... pressed」區塊包含用於顯示變數的程式碼,這些變數顯示您已進行各個動作的總時間。 計時器以毫秒(千分之一秒)為單位進行計數,因此顯示的數字會除以 1000 來顯示以秒為單位的總持續時間。

評量

它測量您從事某個特定動作的時間方面有多準確? 它對不同的人同樣有效嗎?

藉由三個簡單步驟來測試計時器程式碼是否與模型配合良好:

  1. 按下重設按鍵。
  2. 跳躍 30 秒。
  3. 按下按鍵 B。您應該會看到您的顯示器上捲動接近 30 的數字。
  • 如果您想改進模型,點擊 MakeCode 編輯程式左上角的 <箭頭來新增更多數據樣本並且重新訓練模型.

將 AI 活動計時器與 步數計數器敏感步數計數器的不使用ML (機器學習)項目進行比較:

  • 如何利用機器學習建立更有用的專案?
  • 製作有用的專案總是需要人工智慧/機器學習嗎?

步驟 3:擴展它

  • 為不同的動作新增數據,並且使用觸控標誌按鍵來檢視對於新動作的計時器變數。
  • 新增聲音區塊以在偵測到不同的活動時提供音訊回饋。
  • 您能夠利用您關於機器學習的新知識來「破解模型」嗎? 您能夠以某種方式移動來欺騙模型以對於您正在做的動作做出錯誤的決定嗎? 您也可以嘗試新增「混淆的」數據樣本並評估它們對 ML 模型的影響。 比較為什麼有些數據樣本運作良好,而其他的數據樣本運作不佳,是一種探索您對該技術的瞭解程度的好方法。