0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用TinyML实现语音识别机器人车的设计

科技观察员 来源:文森特·科克 作者:文森特·科克 2022-04-11 16:51 次阅读

在本文中,我将在 Wio 终端上制作一个带有内置麦克风的声控机器人车,以通过 TinyML 识别行驶、停止和背景噪音。

使用由 Edge Impulse 提供支持的 Codecraft 训练了一个唤醒词识别模型!

在这篇详细的博客文章中,我将介绍以下内容:

什么是 UART 串​​行通信

Wio终端和uKit之间的UART串行通信探索

1.0 使用 Codecraft 训练嵌入式机器学习模型

2.0 Arduino文本代码修改

3.0 对机器人汽车进行编程(uKit 探索 - 基于 Arduino Mega 2560)

4.0 预期结果

什么是 UART 串​​行通信?

通俗地说,UART 允许嵌入式设备(例如 Arduino)通过 TX(发送)和 RX(接收)线将数据发送到另一个 Arduino,如下所示。

poYBAGJT69uAWZIPAAEbOZX4TOA343.png

举一个具体的例子:

Arduino UNO 没有内置的 WiFi,因此不可能做 IOT 相关的项目。通过了解基本的 UART 串​​行通信,我能够利用ESP8266/ESP32作为 Arduino UNO 的协处理器,以便从连接到 Arduino UNO 的传感器收集的数据将发送到 ESP8266/ESP32 发送转移到云平台,例如 Web 服务器、Blynk 或 FAVORIOT。

Wio终端和uKit之间的UART串行通信探索

Wio 终端的 TX 和 RX 引脚在引脚 8和10上可用。

TXD - 引脚 8

RXD - 引脚 10

pYYBAGJT69iAV5pFAAMkV0o58ag124.png

而对于 uKit Explore,引脚 D0 和 D1 上也有可用的 TX/RX 引脚。您可以在此处查看完整的 uKit 探索引脚排列

RX0 - D0

TX0 - D1

poYBAGJT69OAdW2XAAT4-qQk-eA588.png

对于硬件连接,基本上,您只需要如下连接:

Wio 终端(引脚 8)到 uKit 探索(引脚 0) - TXD 到 RXD

Wio 终端(引脚 10)到 uKit 探索(引脚 1) - RXD 到 TXD

我将详细解释软件编程如何在 3.0 Program the Robot Car(uKit Explore - Arduino Mega 2560 based)上完成。

第 1 步:使用 Codecraft 训练嵌入式机器学习模型

在第一部分中,我们的目标是使用 Codecraft 平台创建一个嵌入式机器学习模型(语音识别)。

使用 Codecraft 训练嵌入式机器学习模型涉及 4 个步骤。

1.创建“唤醒词识别(内置麦克风)”模型

2.数据采集(车载)

3.培训和部署

4.编程与模型使用

创建“唤醒词识别(内置麦克风)”模型转到https://ide.tinkergen.com/。选择“(对于 TinyML)Wio 终端”。

pYYBAGJT686APoH3AAJMS00wbFs693.png

点击左中嵌入式机器学习框上的“模型创建”。然后选择“Wake-Up Words Recognition(内置麦克风)”,如下图。根据需求输入模型名称。

poYBAGJT68uAD88QAAGJyZLE7P0872.png

点击确定,窗口会自动切换到“数据采集”界面。

第 2 步:数据采集(车载)

pYYBAGJT68aABXJZAAIKM-3odkY814.png

系统会自动为您创建 3 个默认标签(hi wio、background 和其他词)。

除非您想为标签使用不同的名称,否则您可以不加任何更改地使用它。就我而言,我更改了两个默认标签,如下所示:

hi wio 删掉

其他词改成停止

重要提示:现在,您必须记住更改默认数据采集程序上的标签以反映正确的修改标签

pYYBAGJT68OAVjCUAAN_c4gBVAk283.png

连接 Wio 终端和上传数据采集程序。

注意:您需要下载“ Codecraft Assistant ”才能在Codecraft在线IDE上连接和上传代码。

数据采集​​:在右上角的超链接中,您将找到数据采集的分步介绍。按照说明根据修改后的标签收集数据。

第 3 步:培训和部署

点击“Training & Deployment”,您将看到如下图所示的模型训练界面。

pYYBAGJT67-AP5X2AAHb6SOFrEg301.png

选择神经网络参数。选择合适的神经网络大小:小、中、大

设置参数:

训练周期数(正整数),

学习率(从 0 到 1 的数字)

最小置信度(从 0 到 1 的数字)

接口提供了50个训练周期的默认参数值,但是准确度不是很好。因此,我将训练周期更改为 100。

poYBAGJT67mAbmzWAAGnp60IgFU108.png

点击“开始训练”。单击“开始训练”时,窗口将显示“正在加载。”!等待训练完成!

观察模型性能以选择理想模型。在“模型训练报告”窗口中,您可以观察训练结果,包括模型的准确率、损失和性能。

pYYBAGJT67WAd6SiAAECHERQyPs833.png

在“模型训练报告”窗口中,点击“模型部署”。部署完成后,单击“确定”进入“编程”窗口,这是我们将模型部署到 Wio 终端之前的最后一步。

poYBAGJT67GAMn3lAAD4aDxFAgU966.png

第 4 步:编程和模型使用

好的,现在我们完成了使用 UART通信协议将人工智能(在本例中为机器学习)与机器人(机器人汽车)集成的模型和有趣的部分。

这是从块编程接口创建的示例程序:

pYYBAGJT66yARubtAARFSEssNkE936.png

我们使用 if-else 条件语句来评估标签的置信度。

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

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

否则,如果“背景”的置信度大于0.8(80%),我会在串口终端上打印“0”。

好的,所以现在,只需记住 3 个不同的条件:

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

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

“背景”。命令是‘0’

2.0 Wio终端Arduino文本代码修改

好的,所以请注意以下两个重要发现,因为这将是我们项目的关键部分!

您可以从 Wio Temrinal 的 40 针接头访问的串行线是 Serial1,而不是通常的 Serial,后者基本上通过串行终端显示输出。

我们在引脚 8 和 10 上提供了 TX/RX 引脚,可用于连接到另一块电路板(本例中为 uKit 探索)。

poYBAGJT66eAX5OGAALu6YmLFP0814.png

如果我们查看相应块代码的文本编码,您会注意到 Serial.print 没有使用 Serial1 行。因此,这导致我们进入第二步,即继续在 Arduino IDE 上进行编码以进行定制。

pYYBAGJT66OAIVZjAAKRgtKjJD8158.png

切换到文本代码区域并复制文本代码

在文本代码区域,按 CTRL + A 复制所有代码以选择所有代码。

打开 Arduino IDE,创建一个新文件,按 CTRL+V 将代码粘贴到空草图中。继续以所需名称保存草图。

pYYBAGJT65-AV6YcAAIqCfsB5DA108.png

复制 Edge Impulse TinyML Arduino 库

导航到 C:\Users\《User_Name》\AppData\Local\Programs\cc-assistant\resources\compilers\Arduino\contents\libraries

找到与 Arduino 文本代码顶部的 Edge Impulse 头文件具有相同编号的文件夹名称(在我的情况下为 47606)。

pYYBAGJT65uACPkeAAKiAiEwAEw622.png

复制整个 ei-project_47606 文件夹并将其粘贴到 C:\Users\《User_Name》\Documents\Arduino\libraries\

pYYBAGJT65iAVUZtAAEp4xoL6oE763.png

修改 Serial.println 函数

改为将 Serial.println 函数修改为 Serial1.println。

pYYBAGJT65KAGoOrAAQX1oxW3SI969.png

上传代码

确保您已安装 Wio 端子板支持包。如果没有,请参阅Seeed Wiki 上的“ Wio 终端入门”指南。

在将代码上传到 Wio 终端之前,请确保选择了正确的板和 COM 端口

poYBAGJT642AW6vdAAOGcv1D1fc299.png

第 4 步:对机器人汽车进行编程(uKit 探索 - 基于 Arduino Mega 2560)

我们将对基于 uKit Explore 的 Robot Car 进行编程。

uKit 简介探索

让我让您了解一下这个 uKit Explore 的内容。

uKit Explore 是 UBTECH Robotics 制造的机器人套件,它基于 Arduino 生态系统(芯片组为 Arduino 2560)。

“uKit Explore 有一个主控箱,配备 Arduino 开源平台,提供来自全球用户贡献的大量电子和编程学习资源。”

pYYBAGJT64iAesu5AAT4RJNtUW8505.png

编程 uKit Explore 以读取 UART 数据

现在,我们需要对 Robo Car 进行编程,使其在收到来自 Wio Terminal 的命令“1”、“2”和“0”时根据不同的条件采取行动。

这里的关键概念是,如果它包含任何数据,我们将需要让 uKit Explore继续侦听串行线。如果它确实包含串行数据,则串行读取数据并将其分配给一个变量。最后一步是我们将比较变量并执行不同的操作。

对于我们的案例,当 uKit 探索

收到命令“1”(go),RoboCar 将向前移动;

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

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

pYYBAGJT64WAIl5MAAPZSPuKLnw816.png

上传代码

最后,我们将代码上传到板上。与往常一样,请确保在上传之前选择了正确的板和 COM 端口。

最后,Robo Car 可以通过语音“go,go,go”激活,并通过“stopppps.。。。”或“background”停止。达到我们想要的目标!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19008

    浏览量

    302950
  • 语音识别
    +关注

    关注

    38

    文章

    1721

    浏览量

    112532
  • uart
    +关注

    关注

    22

    文章

    1227

    浏览量

    101160
收藏 人收藏

    评论

    相关推荐

    SPCE061A语音识别机器人应用方案

    为了提高广大单片机爱好者学习单片机的兴趣,凌阳科技大学计划教育推广中心推出了应用SPCE061A作为主控制器,外加电机驱动电路制作的语音识别机器人。该机器人采用特定人
    发表于 03-08 17:09

    智能避障语音遥控机器人

    我们设计的这款智能机器人,通过语音识别功能对智能机器人进行遥控,遥控的语音指令有前进、后退、左拐、右拐等运动控制指令,另外还加入一个音频播放
    发表于 10-26 22:50

    会物体识别语音识别的nao机器人

    ` nao机器人识别大量物体和自动语音识别,并可通过Choregraphe软件保存物体信息和语音。此后,当它再次看到已保存的物体时或需要与
    发表于 02-13 14:09

    【Aworks申请】家庭服务机器人

    申请理由:以开发板为处理器,利用深度传感器Kinect,实现家庭服务机器人的 物体识别技术、人体识别技术、动态不确定环境下的自定位、地图创建
    发表于 07-19 23:33

    智能语音机器人

    与人工智能系统算法设计;与国内外同类研究的比较:1.该机器人能与人进行简单的语言交流,能够识别部分方言;2.能够多平台控制:语音控制,手机控制,电脑控制; 3.搭载多种传感器,随时知道当地温度、湿度
    发表于 12-02 19:08

    51版游高铁机器人

    游高铁机器人是中国教育机器人大赛的标准竞赛平台,主要面向大学和高职用户。机器人利用前后端的安装的QTI传感器进行双向循线,到达比赛规则要求的各景点,通过RFID读卡器
    发表于 03-29 09:46

    企鹅机器人是怎么样的?

    ,可以实现企鹅机器人对前方障碍物的识别,从而实现企鹅机器人的智能避障和互动表演。重要技术点:行走结构、行走步态、
    发表于 03-29 17:29

    游高铁机器人套件介绍-鸥鹏科技

    名称。C51机器人游高铁小车能从一个指定高铁站到指定终点站自动选择最简便的路程方式,实现快速,精准。 重要技术点:循线算法、语音播放、电子标签识别、矢量控制算法
    发表于 04-01 15:26

    请问电销机器人智能语音识别的原理是什么?

    一个人们最为关心的问题大概就是,电销机器人如何做到语音识别,通俗来讲,就是电销机器人如何“听懂”人们说话?其实语音
    发表于 06-12 14:03

    AI语音智能机器人开发实战

    ) "AI语音识别机器人"前后台通信协议实现(4) "AI语音识别
    发表于 01-04 11:48

    机器人如何识别

    现在想做机器人图像识别方面的研究,有问题请教大家,比如说:现在有十种瓶子,机器人识别我指定的瓶子,并把它从A位置移动到B位置,关键是如何识别
    发表于 11-04 09:02

    【 平头哥CB5654语音开发板试用连载】智能语音识别机器人

    项目名称:智能语音识别机器人试用计划:使用开发板完成智能机器人设计,预期达到的目标可以语音控制机器人
    发表于 03-13 16:19

    使用旅游机器人需要注意哪些问题?

    、讲解互动功能  新型的旅游机器人,可以在公共场与游客互动交流,与人进行实时语音对话,通过语音识别屏交互等方式,为人提供智能化、人性化的
    发表于 06-12 17:04

    【HarmonyOS HiSpark AI Camera】基于图像的手语识别机器人系统

    项目名称:基于图像的手语识别机器人系统试用计划:申请理由本人是物联网专业在校大学生,疫情期间曾设计过基于勘智K210的口罩人脸离线识别打卡门禁系统,熟悉使用tensorflow lite iot部署
    发表于 09-25 10:11

    【HarmonyOS HiSpark AI Camera】厅堂机器人

    项目名称:厅堂机器人试用计划:申请理由:机器人项目集成摄像头实现人脸识别跟随,熟悉鸿蒙系统。项目名称:厅堂机器人项目计划:一个月内
    发表于 11-19 20:49