0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用TinyML實(shí)現(xiàn)語音識(shí)別機(jī)器人車的設(shè)計(jì)

科技觀察員 ? 來源:文森特·科克 ? 作者:文森特·科克 ? 2022-04-11 16:51 ? 次閱讀

在本文中,我將在 Wio 終端上制作一個(gè)帶有內(nèi)置麥克風(fēng)的聲控機(jī)器人車,以通過 TinyML 識(shí)別行駛、停止和背景噪音。

使用由 Edge Impulse 提供支持的 Codecraft 訓(xùn)練了一個(gè)喚醒詞識(shí)別模型!

在這篇詳細(xì)的博客文章中,我將介紹以下內(nèi)容:

什么是 UART 串??行通信?

Wio終端和uKit之間的UART串行通信探索

1.0 使用 Codecraft 訓(xùn)練嵌入式機(jī)器學(xué)習(xí)模型

2.0 Arduino文本代碼修改

3.0 對(duì)機(jī)器人汽車進(jìn)行編程(uKit 探索 - 基于 Arduino Mega 2560)

4.0 預(yù)期結(jié)果

什么是 UART 串??行通信?

通俗地說,UART 允許嵌入式設(shè)備(例如 Arduino)通過 TX(發(fā)送)和 RX(接收)線將數(shù)據(jù)發(fā)送到另一個(gè) Arduino,如下所示。

poYBAGJT69uAWZIPAAEbOZX4TOA343.png

舉一個(gè)具體的例子:

Arduino UNO 沒有內(nèi)置的 WiFi,因此不可能做 IOT 相關(guān)的項(xiàng)目。通過了解基本的 UART 串??行通信,我能夠利用ESP8266/ESP32作為 Arduino UNO 的協(xié)處理器,以便從連接到 Arduino UNO 的傳感器收集的數(shù)據(jù)將發(fā)送到 ESP8266/ESP32 發(fā)送轉(zhuǎn)移到云平臺(tái),例如 Web 服務(wù)器、Blynk 或 FAVORIOT。

Wio終端和uKit之間的UART串行通信探索

Wio 終端的 TX 和 RX 引腳在引腳 8和10上可用。

TXD - 引腳 8

RXD - 引腳 10

pYYBAGJT69iAV5pFAAMkV0o58ag124.png

而對(duì)于 uKit Explore,引腳 D0 和 D1 上也有可用的 TX/RX 引腳。您可以在此處查看完整的 uKit 探索引腳排列

RX0 - D0

TX0 - D1

poYBAGJT69OAdW2XAAT4-qQk-eA588.png

對(duì)于硬件連接,基本上,您只需要如下連接:

Wio 終端(引腳 8)到 uKit 探索(引腳 0) - TXD 到 RXD

Wio 終端(引腳 10)到 uKit 探索(引腳 1) - RXD 到 TXD

我將詳細(xì)解釋軟件編程如何在 3.0 Program the Robot Car(uKit Explore - Arduino Mega 2560 based)上完成。

第 1 步:使用 Codecraft 訓(xùn)練嵌入式機(jī)器學(xué)習(xí)模型

在第一部分中,我們的目標(biāo)是使用 Codecraft 平臺(tái)創(chuàng)建一個(gè)嵌入式機(jī)器學(xué)習(xí)模型(語音識(shí)別)。

使用 Codecraft 訓(xùn)練嵌入式機(jī)器學(xué)習(xí)模型涉及 4 個(gè)步驟。

1.創(chuàng)建“喚醒詞識(shí)別(內(nèi)置麥克風(fēng))”模型

2.數(shù)據(jù)采集(車載)

3.培訓(xùn)和部署

4.編程與模型使用

創(chuàng)建“喚醒詞識(shí)別(內(nèi)置麥克風(fēng))”模型轉(zhuǎn)到https://ide.tinkergen.com/。選擇“(對(duì)于 TinyML)Wio 終端”。

pYYBAGJT686APoH3AAJMS00wbFs693.png

點(diǎn)擊左中嵌入式機(jī)器學(xué)習(xí)框上的“模型創(chuàng)建”。然后選擇“Wake-Up Words Recognition(內(nèi)置麥克風(fēng))”,如下圖。根據(jù)需求輸入模型名稱。

poYBAGJT68uAD88QAAGJyZLE7P0872.png

點(diǎn)擊確定,窗口會(huì)自動(dòng)切換到“數(shù)據(jù)采集”界面。

第 2 步:數(shù)據(jù)采集(車載)

pYYBAGJT68aABXJZAAIKM-3odkY814.png

系統(tǒng)會(huì)自動(dòng)為您創(chuàng)建 3 個(gè)默認(rèn)標(biāo)簽(hi wio、background 和其他詞)。

除非您想為標(biāo)簽使用不同的名稱,否則您可以不加任何更改地使用它。就我而言,我更改了兩個(gè)默認(rèn)標(biāo)簽,如下所示:

hi wio 刪掉

其他詞改成停止

重要提示:現(xiàn)在,您必須記住更改默認(rèn)數(shù)據(jù)采集程序上的標(biāo)簽以反映正確的修改標(biāo)簽

pYYBAGJT68OAVjCUAAN_c4gBVAk283.png

連接 Wio 終端和上傳數(shù)據(jù)采集程序。

注意:您需要下載“ Codecraft Assistant ”才能在Codecraft在線IDE上連接和上傳代碼。

數(shù)據(jù)采集??:在右上角的超鏈接中,您將找到數(shù)據(jù)采集的分步介紹。按照說明根據(jù)修改后的標(biāo)簽收集數(shù)據(jù)。

第 3 步:培訓(xùn)和部署

點(diǎn)擊“Training & Deployment”,您將看到如下圖所示的模型訓(xùn)練界面。

pYYBAGJT67-AP5X2AAHb6SOFrEg301.png

選擇神經(jīng)網(wǎng)絡(luò)參數(shù)。選擇合適的神經(jīng)網(wǎng)絡(luò)大?。盒?、中、大

設(shè)置參數(shù):

訓(xùn)練周期數(shù)(正整數(shù)),

學(xué)習(xí)率(從 0 到 1 的數(shù)字)

最小置信度(從 0 到 1 的數(shù)字)

接口提供了50個(gè)訓(xùn)練周期的默認(rèn)參數(shù)值,但是準(zhǔn)確度不是很好。因此,我將訓(xùn)練周期更改為 100。

poYBAGJT67mAbmzWAAGnp60IgFU108.png

點(diǎn)擊“開始訓(xùn)練”。單擊“開始訓(xùn)練”時(shí),窗口將顯示“正在加載。”!等待訓(xùn)練完成!

觀察模型性能以選擇理想模型。在“模型訓(xùn)練報(bào)告”窗口中,您可以觀察訓(xùn)練結(jié)果,包括模型的準(zhǔn)確率、損失和性能。

pYYBAGJT67WAd6SiAAECHERQyPs833.png

在“模型訓(xùn)練報(bào)告”窗口中,點(diǎn)擊“模型部署”。部署完成后,單擊“確定”進(jìn)入“編程”窗口,這是我們將模型部署到 Wio 終端之前的最后一步。

poYBAGJT67GAMn3lAAD4aDxFAgU966.png

第 4 步:編程和模型使用

好的,現(xiàn)在我們完成了使用 UART通信協(xié)議將人工智能(在本例中為機(jī)器學(xué)習(xí))與機(jī)器人(機(jī)器人汽車)集成的模型和有趣的部分。

這是從塊編程接口創(chuàng)建的示例程序:

pYYBAGJT66yARubtAARFSEssNkE936.png

我們使用 if-else 條件語句來評(píng)估標(biāo)簽的置信度。

如果“go”的置信度大于0.8(80%),我會(huì)在串口終端打印“1”。

如果“停止”的置信度大于 0.8(80%),我會(huì)在串口終端上打印“2”。

否則,如果“背景”的置信度大于0.8(80%),我會(huì)在串口終端上打印“0”。

好的,所以現(xiàn)在,只需記住 3 個(gè)不同的條件:

“go” 》 0.8,命令為 ‘1’

“停止”》 0.8,命令為“2”

“背景”。命令是‘0’

2.0 Wio終端Arduino文本代碼修改

好的,所以請(qǐng)注意以下兩個(gè)重要發(fā)現(xiàn),因?yàn)檫@將是我們項(xiàng)目的關(guān)鍵部分!

您可以從 Wio Temrinal 的 40 針接頭訪問的串行線是 Serial1,而不是通常的 Serial,后者基本上通過串行終端顯示輸出。

我們?cè)谝_ 8 和 10 上提供了 TX/RX 引腳,可用于連接到另一塊電路板(本例中為 uKit 探索)。

poYBAGJT66eAX5OGAALu6YmLFP0814.png

如果我們查看相應(yīng)塊代碼的文本編碼,您會(huì)注意到 Serial.print 沒有使用 Serial1 行。因此,這導(dǎo)致我們進(jìn)入第二步,即繼續(xù)在 Arduino IDE 上進(jìn)行編碼以進(jìn)行定制。

pYYBAGJT66OAIVZjAAKRgtKjJD8158.png

切換到文本代碼區(qū)域并復(fù)制文本代碼

在文本代碼區(qū)域,按 CTRL + A 復(fù)制所有代碼以選擇所有代碼。

打開 Arduino IDE,創(chuàng)建一個(gè)新文件,按 CTRL+V 將代碼粘貼到空草圖中。繼續(xù)以所需名稱保存草圖。

pYYBAGJT65-AV6YcAAIqCfsB5DA108.png

復(fù)制 Edge Impulse TinyML Arduino 庫

導(dǎo)航到 C:\Users\《User_Name》\AppData\Local\Programs\cc-assistant\resources\compilers\Arduino\contents\libraries

找到與 Arduino 文本代碼頂部的 Edge Impulse 頭文件具有相同編號(hào)的文件夾名稱(在我的情況下為 47606)。

pYYBAGJT65uACPkeAAKiAiEwAEw622.png

復(fù)制整個(gè) ei-project_47606 文件夾并將其粘貼到 C:\Users\《User_Name》\Documents\Arduino\libraries\

pYYBAGJT65iAVUZtAAEp4xoL6oE763.png

修改 Serial.println 函數(shù)

改為將 Serial.println 函數(shù)修改為 Serial1.println。

pYYBAGJT65KAGoOrAAQX1oxW3SI969.png

上傳代碼

確保您已安裝 Wio 端子板支持包。如果沒有,請(qǐng)參閱Seeed Wiki 上的“ Wio 終端入門”指南。

在將代碼上傳到 Wio 終端之前,請(qǐng)確保選擇了正確的板和 COM 端口。

poYBAGJT642AW6vdAAOGcv1D1fc299.png

第 4 步:對(duì)機(jī)器人汽車進(jìn)行編程(uKit 探索 - 基于 Arduino Mega 2560)

我們將對(duì)基于 uKit Explore 的 Robot Car 進(jìn)行編程。

uKit 簡(jiǎn)介探索

讓我讓您了解一下這個(gè) uKit Explore 的內(nèi)容。

uKit Explore 是 UBTECH Robotics 制造的機(jī)器人套件,它基于 Arduino 生態(tài)系統(tǒng)(芯片組為 Arduino 2560)。

“uKit Explore 有一個(gè)主控箱,配備 Arduino 開源平臺(tái),提供來自全球用戶貢獻(xiàn)的大量電子和編程學(xué)習(xí)資源。”

pYYBAGJT64iAesu5AAT4RJNtUW8505.png

編程 uKit Explore 以讀取 UART 數(shù)據(jù)

現(xiàn)在,我們需要對(duì) Robo Car 進(jìn)行編程,使其在收到來自 Wio Terminal 的命令“1”、“2”和“0”時(shí)根據(jù)不同的條件采取行動(dòng)。

這里的關(guān)鍵概念是,如果它包含任何數(shù)據(jù),我們將需要讓 uKit Explore繼續(xù)偵聽串行線。如果它確實(shí)包含串行數(shù)據(jù),則串行讀取數(shù)據(jù)并將其分配給一個(gè)變量。最后一步是我們將比較變量并執(zhí)行不同的操作。

對(duì)于我們的案例,當(dāng) uKit 探索

收到命令“1”(go),RoboCar 將向前移動(dòng);

收到命令‘2’(停止),它將停止;

收到命令‘0’(背景),它也會(huì)停止。

pYYBAGJT64WAIl5MAAPZSPuKLnw816.png

上傳代碼

最后,我們將代碼上傳到板上。與往常一樣,請(qǐng)確保在上傳之前選擇了正確的板和 COM 端口。

最后,Robo Car 可以通過語音“go,go,go”激活,并通過“stopppps.。。。”或“background”停止。達(dá)到我們想要的目標(biāo)!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5045

    文章

    18813

    瀏覽量

    298429
  • 語音識(shí)別
    +關(guān)注

    關(guān)注

    38

    文章

    1695

    瀏覽量

    112243
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1199

    瀏覽量

    100821
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SPCE061A語音識(shí)別機(jī)器人應(yīng)用方案

    為了提高廣大單片機(jī)愛好者學(xué)習(xí)單片機(jī)的興趣,凌陽科技大學(xué)計(jì)劃教育推廣中心推出了應(yīng)用SPCE061A作為主控制器,外加電機(jī)驅(qū)動(dòng)電路制作的語音識(shí)別機(jī)器人。該機(jī)器人采用特定人
    發(fā)表于 03-08 17:09

    智能避障語音遙控機(jī)器人

    我們?cè)O(shè)計(jì)的這款智能機(jī)器人,通過語音識(shí)別功能對(duì)智能機(jī)器人進(jìn)行遙控,遙控的語音指令有前進(jìn)、后退、左拐、右拐等運(yùn)動(dòng)控制指令,另外還加入一個(gè)音頻播放
    發(fā)表于 10-26 22:50

    會(huì)物體識(shí)別語音識(shí)別的nao機(jī)器人

    ` nao機(jī)器人識(shí)別大量物體和自動(dòng)語音識(shí)別,并可通過Choregraphe軟件保存物體信息和語音。此后,當(dāng)它再次看到已保存的物體時(shí)或需要與
    發(fā)表于 02-13 14:09

    【Aworks申請(qǐng)】家庭服務(wù)機(jī)器人

    申請(qǐng)理由:以開發(fā)板為處理器,利用深度傳感器Kinect,實(shí)現(xiàn)家庭服務(wù)機(jī)器人的 物體識(shí)別技術(shù)、人體識(shí)別技術(shù)、動(dòng)態(tài)不確定環(huán)境下的自定位、地圖創(chuàng)建
    發(fā)表于 07-19 23:33

    智能語音機(jī)器人

    與人工智能系統(tǒng)算法設(shè)計(jì);與國(guó)內(nèi)外同類研究的比較:1.該機(jī)器人能與人進(jìn)行簡(jiǎn)單的語言交流,能夠識(shí)別部分方言;2.能夠多平臺(tái)控制:語音控制,手機(jī)控制,電腦控制; 3.搭載多種傳感器,隨時(shí)知道當(dāng)?shù)販囟?、濕?/div>
    發(fā)表于 12-02 19:08

    51版游高鐵機(jī)器人

    游高鐵機(jī)器人是中國(guó)教育機(jī)器人大賽的標(biāo)準(zhǔn)競(jìng)賽平臺(tái),主要面向大學(xué)和高職用戶。機(jī)器人利用前后端的安裝的QTI傳感器進(jìn)行雙向循線,到達(dá)比賽規(guī)則要求的各景點(diǎn),通過RFID讀卡器
    發(fā)表于 03-29 09:46

    企鵝機(jī)器人是怎么樣的?

    ,可以實(shí)現(xiàn)企鵝機(jī)器人對(duì)前方障礙物的識(shí)別,從而實(shí)現(xiàn)企鵝機(jī)器人的智能避障和互動(dòng)表演。重要技術(shù)點(diǎn):行走結(jié)構(gòu)、行走步態(tài)、
    發(fā)表于 03-29 17:29

    游高鐵機(jī)器人套件介紹-鷗鵬科技

    名稱。C51機(jī)器人游高鐵小車能從一個(gè)指定高鐵站到指定終點(diǎn)站自動(dòng)選擇最簡(jiǎn)便的路程方式,實(shí)現(xiàn)快速,精準(zhǔn)。 重要技術(shù)點(diǎn):循線算法、語音播放、電子標(biāo)簽識(shí)別、矢量控制算法
    發(fā)表于 04-01 15:26

    請(qǐng)問電銷機(jī)器人智能語音識(shí)別的原理是什么?

    一個(gè)人們最為關(guān)心的問題大概就是,電銷機(jī)器人如何做到語音識(shí)別,通俗來講,就是電銷機(jī)器人如何“聽懂”人們說話?其實(shí)語音
    發(fā)表于 06-12 14:03

    AI語音智能機(jī)器人開發(fā)實(shí)戰(zhàn)

    ) "AI語音識(shí)別機(jī)器人"前后臺(tái)通信協(xié)議實(shí)現(xiàn)(4) "AI語音識(shí)別
    發(fā)表于 01-04 11:48

    機(jī)器人如何識(shí)別

    現(xiàn)在想做機(jī)器人圖像識(shí)別方面的研究,有問題請(qǐng)教大家,比如說:現(xiàn)在有十種瓶子,機(jī)器人識(shí)別我指定的瓶子,并把它從A位置移動(dòng)到B位置,關(guān)鍵是如何識(shí)別
    發(fā)表于 11-04 09:02

    【 平頭哥CB5654語音開發(fā)板試用連載】智能語音識(shí)別機(jī)器人

    項(xiàng)目名稱:智能語音識(shí)別機(jī)器人試用計(jì)劃:使用開發(fā)板完成智能機(jī)器人設(shè)計(jì),預(yù)期達(dá)到的目標(biāo)可以語音控制機(jī)器人
    發(fā)表于 03-13 16:19

    使用旅游機(jī)器人需要注意哪些問題?

    、講解互動(dòng)功能  新型的旅游機(jī)器人,可以在公共場(chǎng)與游客互動(dòng)交流,與人進(jìn)行實(shí)時(shí)語音對(duì)話,通過語音識(shí)別、屏交互等方式,為人提供智能化、人性化的
    發(fā)表于 06-12 17:04

    【HarmonyOS HiSpark AI Camera】基于圖像的手語識(shí)別機(jī)器人系統(tǒng)

    項(xiàng)目名稱:基于圖像的手語識(shí)別機(jī)器人系統(tǒng)試用計(jì)劃:申請(qǐng)理由本人是物聯(lián)網(wǎng)專業(yè)在校大學(xué)生,疫情期間曾設(shè)計(jì)過基于勘智K210的口罩人臉離線識(shí)別打卡門禁系統(tǒng),熟悉使用tensorflow lite iot部署
    發(fā)表于 09-25 10:11

    【HarmonyOS HiSpark AI Camera】廳堂機(jī)器人

    項(xiàng)目名稱:廳堂機(jī)器人試用計(jì)劃:申請(qǐng)理由:機(jī)器人項(xiàng)目集成攝像頭實(shí)現(xiàn)人臉識(shí)別跟隨,熟悉鴻蒙系統(tǒng)。項(xiàng)目名稱:廳堂機(jī)器人項(xiàng)目計(jì)劃:一個(gè)月內(nèi)
    發(fā)表于 11-19 20:49