使用Arduino Nano 33 BLE Sense訓練TensorFlow模型以識別某些關鍵字并控制RGB燈帶。
與傳統(tǒng)代碼相比,邊緣機器學習對于創(chuàng)建可通過更少的編程和邏輯流程圖完成“智能”任務的設備非常有用。這就是為什么我想要結合邊緣關鍵字檢測功能,該功能可以識別某些單詞,然后根據(jù)所說的內容執(zhí)行任務。
該項目只有一個組件:Arduino Nano 33 BLE Sense。真正的魔力發(fā)生在機器學習模型中。Arduino Nano 33 BLE Sense充滿了傳感器,包括麥克風,9軸IMU,環(huán)境傳感器以及手勢/接近度/顏色/環(huán)境光傳感器(APDS-9960)。它上的微控制器是nRF52840,它以64MHz運行,并包含1MB閃存和256KB RAM。該項目還使用其板載RGB LED來顯示當前顏色。
我首先在Edge Impulse上創(chuàng)建一個新項目,然后安裝Edge Impulse CLI工具。有關如何執(zhí)行此操作的更多說明,請訪問安裝說明頁面。這使Arduino Nano與云服務通信以接收命令并自動發(fā)送傳感器數(shù)據(jù)。我下載了最新的Edge Impulse固件,然后通過雙擊重置按鈕使其進入引導加載程序模式,將其刷新到板上。然后我跑去flash_windows.bat轉移它。
在命令提示符上,我運行edge-impulse-daemon并跟隨向導進行設置?,F(xiàn)在,Nano出現(xiàn)在項目的設備列表中,該列表允許獲取樣本并作為培訓/測試數(shù)據(jù)集的一部分上載。
訓練機器學習模型需要數(shù)據(jù),并且數(shù)據(jù)很多。我希望RGB LED燈帶具有以下模式:
開
關
紅色
綠色
藍色
在每種模式下,我都會聽到大約1分鐘的聲音,在這種情況下,我會以1-2秒的間隔反復說出單詞并將其分開。
但是僅僅擁有這些樣本是不夠的,因為背景噪聲和其他詞語會給出錯誤的讀數(shù)。值得慶幸的是,Edge Impulse已經(jīng)為噪聲和“未知”單詞提供了一個預先構建的數(shù)據(jù)集,因此我使用了它們的“上傳現(xiàn)有數(shù)據(jù)”工具將這些音頻文件上傳到訓練數(shù)據(jù)中。