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