使用micro:bit v2 進行數據記錄 datalogger|奧斯丁國際有限公司 OURSTEAM Internationl
icon教學資源
2021/09/23

使用micro:bit v2 進行數據記錄 datalogger

如果您擁有BBC micro:bit V2,可以試用新數據記錄功能的測試版!

它允許您在 micro:bit上記錄數據,即使在micro:bit與電源斷開連接後,數據也會被保留。





什麼是數據記錄?
數據記錄是隨著時間的推移記錄下數據,常用於學校的科學實驗,以記錄環境或物理數據。
它可以是短時間的,例如:測量物體落下時的加速度;或更長時間段的,例如:記錄一天的音量度或一周的溫度或光線等級。

它為什麼實用?
micro:bit內建環境相關感測器,可以檢測光、溫度、磁力、加速度和聲音。您現在可以在 micro:bit上記錄和儲存來自這些感測器的數據,並在之後檢索這些數據以供研究使用。打開電子表格中的數據,學生可以對數據進行統計分析,並使用折線圖或條形圖將數據視覺化。

即使斷電,數據也會保留在您的micro:bit上,不需要特定的軟體即可讀取。

先計畫您的數據記錄

在開始之前,透過幾個問題幫助計畫您的數據紀錄的執行:
  • 您想收集什麼數據?
  • 間隔多久收集一次?
  • 是否需要在LED顯示上增加數據記錄的時間指示?
  • 如何控制開始進行數據記錄與停止記錄?
  • 如果數據日誌已滿會發生什麼事?您可以在程式中控制它
  • 如果想刪除數據?您可以在程式中執行此操作,或者透過將程式重新寫入您的micro:bit

MakeCode中的數據記錄
首先,打開MakeCode編輯器,點選選單上的Advanced(進階),接著點擊Extensions(擴展)並輸入文字搜尋:「datalogger」,找到此擴展並點擊圖片將它下載到MakeCode編輯畫面中。




設置標籤欄位
在開始數據記錄之前,確保先設置您的標籤欄位是一個很好的做法,這樣您就會知道數字代表的是什麼。在這個例子中,我們將記錄溫度和光線數據,因此我們使用有意義的名稱來設置列:




手動記錄
只有當您按下按下A鍵時,才會啟動以下的程式:在LED上顯示心形圖案後,進行數據記錄:



將程式下載到您的micro:bit,接著您就可以將其和電腦斷開連接,透過連接電池組(或任何可以供電的方式)並開始在任何地方按下A鍵進行數據記錄。即使您斷開電源,數據也會保留在您的micro:bit 上。

程式連結




在哪裡可以找到數據記錄?
透過USB將micro:bit連接到電腦,可以在micro:bit的槽內看到【MY_DATA】。



打開【MY_DATA】後,可以看到micro:bit的數據記錄(如下圖)。



更多關於數據記錄的常見問題,可以參考官方的說明


自動記錄
您可以使用Loops程式類別中新的【every】程式幫助定期獲取數據。
該程式每秒將記錄 3 個維度(x、y 和 z)中的加速度計數據十次。此程式讓您可以透過按下A鍵開始和停止記錄,並透過顯示心形圖案以表示其正在記錄數據。
您也可以透過同時按下A鍵和B鍵來刪除日誌,如果日誌已滿,它顯示一個“X”來警告您。




程式連結

 

Python

用於數據記錄的 Python API 目前正在開發中 - 請密切注意這個空間!
 
讀取數據

透過USB將micro:bit連接到電腦,可以在micro:bit的槽內看到【MY_DATA】。



打開【MY_DATA】後,可以看到micro:bit的數據記錄(如下圖)。
 

您現在可以
 
  • 複製數據轉貼到 Microsoft Excel、Google 表格或 Apple Numbers 等電子表格中
  • 直接在 micro:bit 上的 MY_DATA 文件中以圖型化預覽數據
  • 將數據下載為 CSV(使用逗號分隔數值)文件,也可以將其導入電子表格
  • 在 Excel 中製作圖表時,散點圖是很好的選擇,因為它們會在 X 軸上準確地繪製您的時間。在 Google 表格中,預設的折線圖則是一個不錯的選擇。
監控數據

數據會保留在 micro:bit 和計算機上,供您複製或下載。除非您選擇上傳,否則它不會上傳到互聯網或與任何人共享。

離線存取

您可以在沒有網路連接的情況下使用 micro:bit 記錄數據,但電腦未連線的狀態下,MY_DATA 網頁看起來會有些不同。


使用舊版micro:bit進行數據記錄

如果你擁有的是舊版的micro:bit,仍然可以記錄數據!下面的MakeCode專案提供您使用MakeCode編輯器記錄數據,以同步繪製和獲取數據,可以下載這些數據以供日後研究。

Python 無線數據記錄器與 Mu 編輯器的工作方式類似。

Python 高低溫數據記錄程序使用 micro:bit 上的永久記憶體來記錄少量數據,即使在電池斷開時也是如此。

 


製作MakeCode數據記錄器

第 1 步:
使用micro:bit作為無線數據記錄器,記錄感測器的數據。




如何運作?
  • 將廣播程式下載到micro:bit上(需供電),接著將其連接到會移動的物體上(例如:蔬菜旋轉脫水器的內部),或是用它來玩捉迷藏。
  • 在3個維度(x、y 和 z 軸)上獲取力的恆定加速度計讀數,並透過廣播傳輸它們。
  • 將接收端的micro:bit 連接到電腦並使用Chrome瀏覽器或獨立的MakeCode 應用程式將記錄器的程式刷入其中。這將接收加速度計數據並作為串行數據傳送到您的電腦。
您應該會看到micro:bit模擬器下方出現一個【show console device】按鈕,點擊後會看到數據讀數的圖表出現在螢幕上。試著操控micro:bit,看看在不同軸上的讀數是如何變化。或試試把它扔到空中、蔬菜脫水器中旋轉等,您看到什麼變化?

按下暫停,您可以將數據下載為CSV檔案,透過在電子表格程式中打開文件以進行數據分析。如果刪除第二個和第三個時間列,只保留第一個,您可以在電子表格中繪製數據圖,顯示力量如何隨著時間變化。



準備項目
  • 2個micro:bit和一個電池組(或任何供電項目)
  • 用於記錄數據的筆電或桌電等
  • MakeCode編輯器(Chrome v65或更高版本中的獨立應用程式或網頁版)
  • 接收端的micro:bit需使用最新的韌體(0249或更高版本)

第 2 步:程式設計

傳送端

 

接收端



第 3 步:優化

以這種方式遠程記錄其他micro:bit感測器的數據,例如溫度、光線或磁力讀數。

對micro:bit在蔬菜脫水旋轉器中旋轉時的作用力進行物理實驗。
這符合你的期望嗎?(請留意micro:bit上的加速度計最多只能讀取 2g 的力,是地球重力的兩倍。如果你太過快速地旋轉它,它可能會因為受到太大的力量而無法記錄)。

 

製作 Python data logger 數據記錄器 

第 1 步:

使用 micro:bit 作為無線數據記錄器,記錄感測器的數據。
 
如何運作?
  • 將廣播程式下載到帶有電池組的 micro:bit 上,接著將其連接到移動的物體上(例如:蔬菜旋轉脫水器的內部),或者用它玩丟接遊戲。該程序會在 3 個維度(x、y 和 z 軸)上獲取力的恆定加速度計讀數,並通過廣播傳輸它們。
  • 透過 USB 將接收端的 micro:bit 連接到電腦,然後使用Mu Python 編輯器應用程式將記錄器的程式載到電腦上。
  • 這個 micro:bit 會接收加速度計數據並以串行數據的方式傳送到電腦。點擊 Mu 中的「Plotter 繪圖儀」按鈕,會在螢幕上看到數據讀數的圖表。
  • 將傳感器 micro:bit 放在每一側,看看每個軸的讀數如何變化。試著把它扔到空中或是用蔬菜脫水器旋轉:你看到了什麼變化?
  • Mu 會將數據以 CSV 文件的方式儲存在電腦主文件夾中(以逗號作為分隔值)。可以查看「mu_code」,然後選擇「data_capture」文件夾。
  • 可透過在電子表格程式中打開 CSV 文件進行數據分析。您可以藉由刪除第二個和第三個時間列,只保留第一個的方式在電子表格的散點圖上繪製數據,顯示力如何隨時間變化。

準備項目
  • 2 個 micro:bit 和一個電池組
  • 用於記錄數據的筆電或桌上型電腦
  • Mu Python 編輯器應用程序:https : //codewith.mu/
  • 蔬菜脫水旋轉器(自由選擇)

第 2 步:程式設計

感測器/傳送端



接收端 / 記錄器

第 3 步:優化
  • 以此方式遠端記錄其它 micro:bit 感測器的數據,例如:溫度、光線或磁力讀數。
  • 針對 micro:bit 在蔬菜旋轉脫水器中時的作用力進行物理實驗。觀察是否符合您的預期?(請留意 micro:bit 上的加速度計最多只能讀取 2g 的力度,約為地球重力的兩倍。如果旋轉速度太快,可能會因為受力過大而無法記錄。)
 
 
 
製作高低溫記錄儀

第 1 步:

何謂高低溫度記錄儀?
  • 將 micro:bit 變成一台數據記錄器,可記錄並儲存最高溫及最低溫的數值。即便電力耗盡或斷開電源也能保留數據。
  • 這是 Python 的程式,但您不需要了解任何有關 Python 的知識便可使用它。
學習項目
  • 如何使用 Python 讀取數據並永久儲存在 micro:bit 上,即使斷開電源也不會流失數據。
  • 如何處理 Python 程式中出現的錯誤
  • 如何將數值變量轉換為字符串回傳
準備項目
  • 1個 micro:bit
  • 電池組(自由搭配)
  • 如何使用
  • 將 .hex 程式文件載入您的 micro:bit
  • 如有電池組,可與 micro:bit 連接後,放置在會發生溫度變化的地方。可將裝置放在室外或冰箱中數分鐘進行測試。
  • 搖晃裝置顯示目前溫度
  • 按下 A 鈕顯示最低溫紀錄
  • 按下 B 鈕顯示最高溫紀錄
  • 用手指同時按下 GND 及 2 個引腳重置為當前溫度

第 2 步:程式設計
 


如何運作?
  • 因該數據是儲存在永久儲存槽中,所以即使斷開電源,數據仍會保留在 micro:bit 上。此方式為計算機內存,可在電源關閉時仍保留載入的內容。
  • 數據會以 min.txt 及 max.txt 這兩種文本檔案的形式儲存在您的 micro:bit 上,以利 Python 程式可以讀取及更新。
該程序使用三個變數追蹤及比較溫度:
  • currentTemp 是以 micro:bit 內建的溫度感測器所讀取到的當前溫度數值 
  • max 為最高溫度。 如果當前溫度大於 (>) 的當前值,則會為其分配一個新值max。
  • min 為最低溫度。 如果當前溫度小於 (<) 的當前值,則會為其分配一個新值min。
  • 「get_nv_data」和「 set_nv_data」兩個函數,用於讀取及寫入數據至永久儲存的文本檔案夾。這些函數會將數字轉換為文字並回傳:
  • int() 將文字(字符串) 轉換為可用與當前溫度進行比較的數字(整數)變量。
  • str() 將數值變量(如溫度數值)轉換為文本字符串,以便將其保存在文本文件中。
這些函數使用 try 和 except 來捕獲讀取或寫入數據文件時的錯誤。如果沒有保存最高和最低溫度的文本文件,當您第一次執行時,它會將 max 和 min 變量設定為當前溫度。

程序的主要部分在 while True: 的循環內運行。這類似於 MakeCode 中的 forever 積木。

第 3 步:優化
  • micro:bit 的溫度感測器位於處理器內部,讀取到的溫度數值通常會高於周圍空氣的溫度。使用普通溫度計測量差異,並透過從temperature()讀數中減去差異來為程序添加偏移量
  • 轉換程序以記錄不同類型的數據,例如加速度計測量的力
  • 加入無線電功能將數據發送到另一個位置的另一個 micro:bit
 

 
logo
iconiconiconiconicon
icon  電話:04-2375-3535
icon  傳真:04-2256-9949
icon  統編:90386785
icon  E-mail:service@oursteam.com.tw
icon  LINE ID:@oursteam
Inspire every child to create