请注意,绕过图像验证是一个安全漏洞,产品制造商有责任消除违规行为。
SLN-LOCAL2-IOT套件包装如图1所示。包装盒中除了工具套件之外,还有一张“快速入门卡”,上面写着“快速入门!”和Type-C转Type-A电缆。该套件预编程了LED控制演示,只要通过USB线缆供电,即可开始运行。
图1. SLN-LOCAL-IOT内含物。
除了上面所列的物品之外,SLN-LOCAL2-IOT开发套件的所有者还可以访问一个软件包,包含SLN-LOCAL2-IOT MCUXpresso SDK、预编译的发行二进制文件和制造工具。
第2.1节详细介绍了如何下载SLN-LOCAL2-IOT MCUXpresso SDK。
制造工具也可在此下载:
将USB Type-C连接器插入SLN-LOCAL2-IOT套件,并将双Type-A连接器插入您的PC。图2说明了如何使用USB线缆连接套件。
图2. 将USB线缆插入PC和SLN-LOCAL2-IOT套件中。
第一次启动套件时,设备LED灯将变为绿色,约 2 秒钟后熄灭。LED灯熄灭后,套件扬声器将播放音频“L、E、D、演示”,表示LED灯控制演示正在运行并等待唤醒词“Hey, NXP”。图3为LED灯启动等待唤醒词和命令时的状态。
图3. RGB LED状态指示灯。
一切准备就绪,可运行首次开箱即用的演示。只需说“你好,恩智浦”, SLN-LOCAL2-IOT开发套件就会回答“我能帮你吗?”,并在等待LED控制命令时将LED变成蓝色。
说出以下一个命令:
如果此套件检测到您的语音命令,它将改变 LED 颜色并播放音频“OK!”。
如果套件在一段时间内未检测到任何LED控制命令,LED灯则会变为紫色并发出提示音,表示响应等待时间已结束。默认情况下,响应等待时间为8 秒,但您可以在连接串行终端后通过Shell 命令超时更改该值。
按下套件上的SW2,可将LED控制切换到多语言演示。更改后,套件将播放音频“智能家居,多语言演示”。
图 4. 开发套件上的 SW2。
该套件支持四种语言。表1显示了英语、汉语、德语和法语的唤醒词和命令集。
表 1. 多语言演示的唤醒词和命令。
语言 | 唤醒词 | 智能家居命令 | 电梯命令 | 音频设备控制命令 | 洗衣机命令 |
---|---|---|---|---|---|
英语(EN) | Hey, NXP |
|
|
|
|
汉语(ZH) | 你好, 恩智浦 |
|
|
|
|
德语(DE) | Hallo, NXP |
|
|
|
|
法语(FR) | Salut, NXP |
|
|
|
|
说出一个唤醒词:
一旦设备检测到唤醒词,它会以音频进行回应:
说出表 1 中的智能家居命令。设备将以检测到的语言口音响应“OK”。
按下套件上的 SW2,可从多语言切换到对话演示。更改后,套件将播放音频“对话演示”。说出“你好,恩智浦”唤醒词,然后LOCAL2-IOT开发套件就会以音频“我能帮你吗?”回应你,并在等待对话演示命令时将LED变成蓝色。
采用一个下述命令,即可控制烤箱温度:
设备将对“说出要设置的温度”音频做出响应。然后,您可以说出华氏温度(例如,“250 度”)。设备识别了您的语音命令,将会对“温度已设置”音频做出响应。
同样,对于定时器控制,请说出“设置定时器”命令,您可以说出您想要设置的时间。图5显示了对话演示的流程。
图5. 对话演示命令流(4路)。
可用的温度和定时器命令如下所示:
当您准备为自己的自定义命令和唤醒词创建语音模型时,请联系恩智浦的EdgeReady本地语音团队(local-commands@nxp.com)。我们将向您发送有关此主题的应用笔记,让您选择要么通过电子邮件将您所需的词语发送给我们,为您创建模型,要么我们授权您访问基于 PC (Windows™) 的语音建模工具,允许您自己从文本输入创建自定义语音模型。无论哪种情况,都不需要为自定义命令和唤醒词创建语音模型。i.MX RT106S和i.MX RT105S解决方案可以支持40多种不同语言和方言的多个唤醒词和100多个命令。
将串行终端应用程序连接到枚举的USB串行设备接口(115200-8-N-1)。图6是串行终端设置的快照。
图6.串行终端端口设置。
按下键盘上的Enter键,您将看到SHELL>>提示。键入help,显示可用命令。图7显示了可用的命令,以及每个命令的描述。
图7. Shell界面。
要切换语音命令组,请使用changeto Shell命令。图 8 显示当前语音命令组设置为智能家居(IoT)。
您还可以使用 changeto shell 命令选择不同的命令组,例如电梯(电梯)、音频设备控制(音频)和洗衣机(洗涤)。也可以使用相同的shell命令切换演示。
图 8. 从“LED(默认)演示”更改为“智能家居演示”。
要选择语言,请使用多语言Shell命令。图9显示了仅设置英语和德语的命令。
图9. 仅启用英语和德语。
图10显示了Shell命令,可设置英语(en)、汉语(zh)、德语(de)和法语(fr)。
图10. 图10.启用英语、汉语、德语和法语。
要列出可用的语音命令,请使用Shell命令,如图11所示。
图11. 图 11. 列出智能家居 (IoT) 演示的命令
如有可能,请勿启用不必要的语言,因为启用额外的语言可能会增加误触发。
现在让我们用英语、汉语、德语和法语测试智能家居(IoT)演示。
说出一个唤醒词:
一旦设备检测到唤醒词,它会以音频进行回应:
说出列表中的一个语音命令。设备将以检测到的语言口音响应“OK”,并在串行终端上打印检测到的命令。图12显示了“Hey,NXP”英语唤醒词后跟语音命令“Brighter”的示例,“Hallo,NXP”唤醒词后跟命令“Heller”的另一示例。
图12. 英语和德语唤醒词和命令的示例。
MCUXpresso SDK为免费附赠,包含所有硬件抽象和外设驱动软件的完整源代码,根据宽松的开源许可提供。
点击以下链接,为SLN-LOCAL2-IOT开发套件下载预配置的SDK版本。
恩智浦提供名为MCUXpresso IDE的附赠工具链。
许多示例应用通过MCU UART输出数据,因此您需要确保已安装了板虚拟COM端口的驱动程序。运行驱动程序之前,必须将板插入您的PC。
借助已安装的串行端口驱动程序,运行您喜欢的终端应用程序,查看MCU UART的串行输出。将终端的波特率配置为115200,数据位配置为8,无奇偶校验并且停止位为1。如需确定MIMXRT1060-EVK虚拟COM端口的端口号,请打开设备管理器并在"端口"组下查找。
不确定如何使用终端应用?试试这些教程:
SEGGER J-Link是SLN-LOCAL2-IOT套件的推荐调试器。用户需要确保安装的J-Link软件版本为V6.98或最新版本。可以从www.segger.com/downloads/jlink中下载各种操作系统的J-Link软件和文档包。
Tera Term是一款备受欢迎的开源终端仿真应用。此程序可用来显示从恩智浦开发平台虚拟串行端口发送的信息。
PuTTY是一款备受欢迎的终端仿真应用。此程序可用来显示从恩智浦开发平台虚拟串行端口发送的信息。
构建SLN-LOCAL2-IOT SDK示例项目之前,需要将目标SDK导入到MCUXpresso IDE中,方法是将目标SDK存档拖放到“Installed SDK”窗口中,如图13所示。
图13. MCUXpresso IDE 的 SLN-LOCAL2-IOT SDK 安装。
如果弹出窗口出现,单击“OK”。
图14. MCUXpresso SDK导入确认窗口。
借助已安装的SDK,用户可以导入示例应用作为开发起点。
要导入示例项目,请从IDE左下角的Quickstart(快速入门)窗格中选择Import SDK example(s)…(导入SDK示例),如图15所示。
图15. 正在导入现有的SDK项目。
用户应该看到如图16所示的弹出窗口。选择sln_local2_iot选项,然后选择Next(下一步)按钮继续。
图16. 选择SLN-LOCAL2-IOT套件。
导入向导,如图17所示,将显示所有可以导入的项目。
图17. MCUXpresso项目导入选择。
选择bootstrap、bootloader和local_demo。
成功导入项目后,它们将列在项目浏览器中,可供构建和运行。
在 MCUXpresso bootstrap项目中,右击根项目并导航到:
在Preprocessor部分,将 MACRO “DISABLE_IMAGE_VERIFICATION”更改为“1”,然后按“Apply and Close”,如图18所示。
图18. 禁用Bootstrap中的图像验证。
更改后,从 Quickstart Panel 中选择Build选项(如图19所示),可启动bootstrap的编译和链接。
图19. Quickstart Panel的Build选项。
在 MCUXpresso bootloader项目中,右击根项目并导航到:
在Preprocessor部分,将 MACRO “DISABLE_IMAGE_VERIFICATION”更改为“1”,然后按“OK”,如图20所示。
图20. 禁用Bootloader中的图像验证。
更改后,从 Quickstart Panel 中选择Build选项(如图21所示),可启动bootloader的编译和链接。
图21. Quickstart Panel的Build选项。
要构建bootstrap项目,请先在项目资源管理器中单击项目名称。Quickstart(快速启动)窗格中选择Build(构建)选项,如图22所示。
图22. 构建应用
如果导入了其他项目(bootloader和local_demo),则可以相同的方式构建。
确保将10引脚J-Link连接器连接到SLN-LOCAL2-IOT套件背面的i.MX RT JTAG连接器,如图23所示。
图23. SLN-LOCAL2-IOT套件背面的i.MXRT调试接口。
单击将编程到SLN-LOCAL2-IOT套件中的项目名称(bootstrap、bootloader、local_demo)。单击Quickstart(快速入门)窗格中的Debug(调试)按钮,如图24所示。
图24. 启动调试会话。
用户应该看到如图25所示的弹出窗口。选择连接到套件的J-Link硬件调试器,然后按OK。
图25. 探测器选择对话。
这将启动刷机工具,然后继续将图像加载到闪存中。编程状态显示在另一个弹出窗口中,如图26所示。完成后,将启动并运行调试器。然后用户可以步进、运行或设置断点。
图26. J-Link编程窗口。
采用MSD功能,设备在不使用SEGGER工具的情况下,仅通过USB即可更新。bootloader和bootstrap保持不变时,才能更新“local_demo”。如果bootstrap和bootloader需要更新,则必须通过SEGGER或“出厂编程”流程来完成。
默认情况下,MSD功能绕过了签名验证,可支持更轻松的开发流程,因为签名映像可能是不适合快速调试和验证的过程。
请注意,绕过图像验证是一个安全漏洞,产品制造商有责任消除违规行为。
要将设备置于MSD模式,请按住开关 2 (SW2) 并重启板,直到紫色 LED (D2)灯循环闪烁3秒。
图27. MSD更新的SW2和LED。
观察LED行为后,导航到“我的电脑”,并确认SLN-LOCAL2-IOT套件可作为MSD进行安装。
图33. 作为USB MSD安装的SLN-LOCAL2-IOT套件。
将编译好的“local_demo”二进制文件拖到MSD中。这将启动下载过程并将二进制文件写入闪存。
将图像设定到闪存后,将开始执行已加载的图像。
如果将图像编译为在错误的应用库中运行,则会发生错误。开发人员需要将应用重新编译到设备未运行的库。如需了解更多详细信息,请参考开发人员指南文档。
请注意,这需要一个LOCAL_DEMO二进制文件,该二进制文件已编译,可在当前应用运行的对面库中运行
恩智浦提供了工厂自动化环境,可用于对生产线上的设备进行安全编程。该脚本集合称为Ivaldi。
Ivaldi是一个无需J-Link即可负责制造编程和重新编程的软件包。它使用i.MX RT106S引导ROM的串行下载器模式与称为Flashloader的应用进行通信,该应用已编程到RT106S中。Ivaldi的创建专注于客户开发和制造周期的构建基础架构。其主要重点为:
如需了解制造工具的更多详情,请查看可从www.nxp.com/mcu-local2下载的开发指南。
可从www.nxp.com/mcu-local2中找到更多资源,包括开发指南、用户指南,以及硬件和软件设计文件。请访问此链接,并探索更多有关基于MCU的本地语音控制解决方案!
要了解帮助步骤,请先找到您的问题。如果仍需帮助,请联系恩智浦支持。
在恩智浦的一个社区网站上,可与其他工程师交流,获取专家建议,了解如何使用i.MX RT10xx进行产品设计。
产品论坛: