FP-AI-MONITOR1為無線工業節點上之多感測器AI資料監控架構,是STM32Cube的功能套件。本模組有助於實作和開發以STM32Cube的X-CUBE-AI擴充套件或NanoEdge AI Studio 設計的感測器監控型應用,且FP-AI-MONITOR1從擷取資料集到整合至實體節點,完整覆蓋了機器學習專案開發。
FP-AI-MONITOR1可在SensorTile無線工業節點開發套件(STEVAL-STWINKT1B)上即時執行學習及推論工作,將內建感測器的資料作為輸入資料。除此之外,FP-AI-MONITOR1利用有線互動式CLI設定節點,並使用NanoEdge? AI程式庫管理學習、偵測和分類階段,與此同時,支援雙階段進階模式,利用CNN模型將NanoEdge? AI程式庫的偵測與分類結果結合。在簡易現場操作情況下,FP-AI-MONITOR1的獨立電池供電模式能讓使用者無須使用主控台,僅透過使用者按鈕,便能進行基本控制。
硬體與軟體概覽
SensorTile無線工業節點開發套件STEVAL-STWINKT1B
SensorTile 無線工業節點(STEVAL-STWINKT1B)為開發套件與參考設計,可簡化狀態監控與預防性維護等進階工業物聯網應用的原型設計和測試。本產品採超低功耗的Arm Cortex-M4 MCU、120 MHz(含FPU)、2048 KB快閃記憶體(STM32L4R9),還配備microSD記憶卡槽,適用於獨立的資料記錄應用。
STEVAL-STWINKT1B亦搭載多種工業物聯網感測器,包括但不限於:
‧ 超寬頻帶(最高達6 kHz)、低噪音的3軸數位振動感測器(IIS3DWB)
‧ 具備機器學習內核心(ISM330DHCX)的6軸數位加速度計及陀螺儀iNEMO慣性測量單元(IMU)
‧ 頻率響應高達80 kHz的類比MEMS麥克風(IMP23ABSU)。
以取得STEVAL-STWINKT1B所支援之不同感測器和功能的所有資訊。
FP-AI-MONITOR1軟體說明
FP-AI-MONITOR1功能套件的頂層架構,如圖所示。
先決條件及設定
硬體的先決條件及設定
在STEVAL-STWINKT1B使用FP-AI-MONITOR1功能套件需要取得以下硬體:
‧ STEVAL-STWINKT1B開發套件板;
‧ STLINK-V3MINI debugger;
‧ 支援Windows 7、8或10;
‧ 兩條Micro-USB連接線,一條將感測器板連接至電腦,另一條則連接至STLINK-V3MINI。
軟體要求
‧ 從ST網站下載FP-AI-MONITOR1套件,並將.zip檔解壓縮,複製到電腦上的資料夾內。套件中包含STEVAL-STWINKT1B感測器板的二進位檔案及原始程式碼。
‧ 安裝下列任一IDE:
‧ STMicroelectronics STM32CubeIDE 1.9.0版;
‧ IAR Embedded Workbench for Arm(EWARM)toolchain 9.20.1版或更新版本;
‧ RealView微控制器開發套件(MDK-ARM)toolchain 5.32版。
‧ STM32CubeProgrammer(STM32CubeProg)為全方位多重作業系統軟體工具,適合為STM32產品進行程式設計。本產品透過除錯介面(JTAG及SWD)與開機載入器介面 (UART、USB DFU、I2C、SPI及CAN)提供易於使用的高效率環境,適合讀寫和驗證裝置記憶體。STM32CubeProgrammer具備多樣功能,可為STM32內部記憶體(如快閃記憶體、RAM和OTP)以及外部記憶體進行程式設計。FP-AI-MONITOR1採用 STM32CubeProgrammer 2.10.0版測試。本軟體可從STM32CubeProg下載。
‧ TeraTerm為免費開放的原始碼軟體終端模擬器,其透過序列連線主控FP-AI-MONITOR1 的CLI。(請下載並安裝TeraTerm最新版本。)
‧ STM32CubeMX:FP-AI-MONITOR1需搭配STM32CubeMX 6.5.0 版使用。
‧ X-CUBE-AI:最簡單的方法是於STM32CubeMX工具(7.1.0 版或更新版本)內下載X-CUBE-AI,如同使用手冊UM2526所述。
‧ Python 3.7.3:所需套件及版本清單以文字檔提供,可於/FP-AI-MONITOR1_V2.0.0/Utilities/requirements.txt目錄下取得。以下指令適用於Anaconda Prompt或Ubuntu的指令終端內,以安裝設定檔案requirements.txt中指定的所有套件:pip install -r requirements.txt
‧ NanoEdge? AI Studio:NanoEdge? AI Studio是新的機器學習(ML)技術,可將真正的創新體驗輕鬆地呈現給終端使用者,只需幾個步驟,開發人員便能使用最少資料打造出最出色的ML程式庫。
更新感測器板STEVAL-STWINKT1B上的應用程式
下載並解壓縮套件後,下一步便是用功能套件的二進位檔案對感測器節點進行程式設計。為了方便使用者,功能套件配備了預先建立的專案二進位檔案,取得路徑如下:
/FP-AI-MONITOR1_V2.0.0/Projects/STM32L4R9ZI-STWIN/Applications/FP-AI-MONITOR1/Binary/FP-AI-MONITOR1.bin。如圖二所示,只需執行拖放動作,即可利用隨附的二進位檔案對感測器板進行程式設計。
圖二 : 更新STEVAL-STWINKT1B上的應用程式 |
|
FP-AI-MONITOR1主控台應用程式
設定主控台
利用專案的二進位檔案針對感測器板進行程式設計後(如第2、3節所示),接著透過TeraTerm設定感測器板與電腦之間的序列連線。首先,啟動TeraTerm,並從工具列選取或選取適當連接埠建立新連線,以建立與感測器板之間的序列通訊。下圖為COM10 - USB序列裝置(COM 10),但可能會因使用者而異。
設定感測器
透過CLI介面,使用者可針對感測和狀態監控應用設定支援的感測器。輸入sensor_info指令,即可在CLI主控台上顯示所有受支援感測器的清單。此指令會列出受支援感測器及其ID清單,如圖所示,而這些ID可用於設定感測器,選項包含:
‧ enable(啟用):啟用或停用感測器;
‧ ODR(輸出資料速率):從可用選項清單中設定感測器輸出資料的速率;
‧ FS(全規模範圍):從可用選項清單中設定全規模範圍。
下圖範例為取得和設定的數值,以及舊值和變更後之數值。
成功建立連線後,以下訊息將隨即顯示,若非如此,請重新設定感測器板。
輸入help即可顯示所有可用指令的清單及使用說明。
按鈕操作模式
模式是讓使用者即使沒有CLI主控台,仍能在STWIN上操作FP-AI-MONITOR1。在按鈕操作模式中,感測器節點可透過使用者按鈕控制,不須使用互動式CLI主控台。
然而,按鈕操作模式無論是否有搭配CLI皆可執行,且能完全相容於當前的序列主控台以及其命令列介面(command-line interface,CLI)的定義。
此版本功能套件(STEVAL-STWINKT1B)的支援硬體配備下列三個按鈕:
1.User按鈕:是軟體唯一可以使用的按鈕;
2.Reset按鈕:連接至STM32 MCU重設腳位;
3.Power按鈕:連接至電源管理;
以及三個LED燈:
1.LED_1(綠色):由軟體控制;
2.LED_2 (橘色):由軟體控制;
3.LED_C (紅色):由硬體控制,當透過USB連接線供電時,表示正在充電。
因此,按鈕的基本使用者互動僅需透過兩個按鈕(User及Reset按鈕),以及兩個LED燈(綠色及橘色)完成。以下將詳細說明這些資源如何分配,藉以向使用者展示哪些執行階段為作用中,或報告感測器節點的狀態。
可用的應用
‧ NanoEdge AI異常偵測虛設常式
‧ n元分類虛設常式
FP-AI-MONITOR1包含部分預先整合的虛設常式,可輕鬆地由NanoEdge AI Studio所產生和提供的AI狀態監控程式庫取代。此虛設常式可模擬NanoEdge AI相關的功能,像是在邊緣執行學習和偵測階段。
‧ 慣性資料分類
此為CLI應用,含有預先建置的人類活動識別模型。
‧ 雙重模式應用
除了上述的三種應用,FP-AI-MONITOR1亦可提供進階執行,也被稱做「雙重應用模式」。此模式使用以NanoEdge AI程式庫為基礎的異常偵測功能,並使用以類比麥克風為基礎的預先建置ANN模型進行分類。雙重模式可於省電模式下運作,且內含的應用互相獨立。以NanoEdge AI程式庫為基礎的低功率異常偵測演算法會持續依據振動資料執行,而以高頻率類比麥克風路線為基礎的ANN分類僅會於偵測到異常時觸發。除此之外,雙重模式是針對USB風扇在最大速度下執行建立,因此於其他速度下測試時,效能並非十分出色。此應用的執行方式非常簡單。
參考資源
[1]FP-AI-MONITOR1連結下載:
https://www.st.com/en/embedded-software/fp-ai-monitor1.html
[2]FP-AI-MONITOR1使用手冊:
https://wiki.stmicroelectronics.cn/stm32mcu/wiki/AI:FP-AI-MONITOR1_user_manual
[3]取得更多FP-AI-MONITOR1應用,例如:在FP-AI-MONITOR上執行異常偵測: https://wiki.st.com/stm32mcu/wiki/AI:How_to_perform_anomaly_detection_using_FP-AI-MONITOR1
[4]在STM32L4 IoTnode上執行動作感測:
https://wiki.stmicroelectronics.cn/stm32mcu/wiki/AI:How_to_perform_motion_sensing_on_STM32L4_IoTnode