背景
我們的寵物應該得到更多保持活躍的方法。我正在使用 XIAO BLE Sense,它是一款配備強大 Nordic nRF52840 MCU 的微型微控制器,采用藍牙 5.0 模塊設計,圍繞 32 位 ARM? Cortex?-M4 CPU 構建。它有 6 Axis IMU,用于預測諸如休息、步行和跑步等活動。tinyML 模型根據來自 3 Axis IMU 的數據預測活動。
隨附的移動應用程序通過藍牙連接到設備,微控制器每分鐘發送一次預測數據。數據存儲在移動本地存儲上并繪制在圖表上以提供有意義的洞察力。
從 XIAO 開始構建
在開始使用 XIAO 編程之前,您需要安裝板固件。最好的資料來源是wiki ,你可以在上面得到逐步的指導,以設置您的 Arduino IDE。
EI Blue - 通過藍牙收集數據
對于任何機器學習項目,數據收集都是非常重要的部分。為了捕捉更準確的數據,我必須在我的狗戴著項圈時收集數據,這意味著我無法收集通過 USB 線將 XIAO BLE Sense 連接到計算機的數據。因此,我創建了一個名為 EI Blue 的移動應用程序,使用它從 XIAO 無線收集數據。該應用程序將加速度計數據直接發送到 Edge Impulse 工作室。
該應用程序非常易于使用。您需要將固件內核上傳到您的XIAO,掃描二維碼在應用程序上配置項目并開始采樣。
您應該在 Edge Impulse Studio 上看到如下數據。我收集了5s樣本。為穩健的 ML 模型收集盡可能多的數據。我已經收集了大約 6 分鐘的數據以開始使用,并且隨著時間的推移將繼續收集更多數據。
創造行為
您可以在此處定義輸入數據、要用于模型的任何數字信號處理和神經網絡。
如您所知,加速度計數據基本上是時間序列原始數據。我選擇了頻率 = 50Hz,這意味著每秒將有 50 個加速度計數據讀數,間隔為 1000/50=200 毫秒。
我選擇了光譜分析作為我的處理模塊,因為它可以很好地與加速度計數據一起提取有意義的特征。
在光譜分析頁面上,確保選中“計算特征重要性”,這將根據您的數據指示哪些特征很重要。例如,如您在上圖中所見,“accX Spectral Power”具有最高的重要性,因為我有休息、步行和跑步的數據,其中 X 軸變化很大并進行了分離。
我在模型測試期間獲得了 90% 的準確率但請記住,這是一個概念證明,我只從我的狗那里收集數據。理想情況下,我應該收集來自不同犬種的數據,這將增加數據集中的多樣性并使模型變得健壯。但就目前而言,它解決了目的。
完成后,下載 Arduino 庫并添加到 Arduino IDE。然后上傳XIAO_BLE_Pet_Activity.ino程序到XIAO BLE Sense。
為 iOS 構建移動應用程序
移動應用程序是用 Flutter 編寫的。所以你需要安裝顫振。我強烈建議使用 Flutter 配置 VS Code,這使得在 flutter/dart 中編寫代碼變得非常容易。按照此鏈接開始從安裝到編寫第一個 Flutter 應用程序的 Flutter。
安裝和配置所有軟件后,克隆此repo 。
我已經為 iOS 構建了該應用程序,因為我現在沒有任何 Android 設備。但是 Flutter 是一個混合移動框架,這意味著相同的代碼也應該適用于 Android 應用程序。
要為 iOS 構建,請從項目文件夾的根目錄運行以下命令。
open ios/Runner.xcworkspace/
之后就會打開 Xcode,你就可以使用您的配置文件簽署應用程序并在您的手機上運行,到此一切準備工作就完成了。
-
微控制器
+關注
關注
48文章
7645瀏覽量
151857 -
追蹤器
+關注
關注
0文章
171瀏覽量
25746
發布評論請先 登錄
相關推薦
評論