当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]用你的声音控制你的家!我们的tinyml离线智能自动化让你说“灯亮”来切换设备-不需要云

1. 介绍

想象一下,早上醒来,只要简单地说一声“开灯”,你房间的灯就会立刻亮起来。当你开始一天的工作时,你一边啜饮咖啡,一边指示“开启风扇”,感受凉爽的微风。之后,当你放松下来的时候,你说“Mood Lights On”,用柔和的灯光创造一个放松的氛围。有了离线关键字定位,所有这一切都无缝地发生,没有互联网延迟,确保快速,私人和可靠的体验。随着Edge AI和TinyML的进步,智能家居自动化变得更加高效和易用。本项目演示了如何使用TinyML构建一个完全离线运行的语音控制智能家居自动化系统。通过利用XIAO ESP32S3 Sense微控制器,我们可以在不依赖云服务的情况下本地处理“开灯”和“关灯”等语音命令。这种方法确保了隐私、减少了延迟,并最大限度地降低了功耗。

主要特点:

•离线语音命令识别使用TinyML。

•通过继电器控制交流电器。

•手动覆盖开关,可靠性高。

•节能设计与睡眠模式。

2. 硬件需求

组件:

1. XIAO ESP32S3 Sense:内置麦克风的双核微控制器。

2. 1通道继电器模块:用于交流电器的开关。

3. 降压转换器:微控制器降压(5V输出)。

4. SPDT开关:手动控制覆盖。

5. *交流灯泡和灯座*:演示负载。

6. *跳线和PCB*:用于电路组装。

工具*:

—烙铁、万用表、螺丝刀。

3. 系统工作流程

•XIAO ESP32S3 Sense通过其板载麦克风持续监听语音命令。

•TinyML模型处理音频输入并检测特定的关键字。

•一旦检测到一个有效的命令,微控制器触发继电器模块开关各自的设备上或关闭。

•手动控制开关允许另一种操作设备的方法。

4. 一步一步的教程

第一步:Altium中1通道继电器和XIAO的PCB设计和制造

组件:

步骤1a:电路设计

继电器模块电路包括:

•继电器控制:

XIAO的D0引脚通过晶体管驱动继电器线圈(未列出,但在电路中假设)。

1N4007二极管横跨继电器线圈进行反电动势保护。

•状态指标:

红色LED (330Ω电阻)显示电源状态。

绿色LED (1kΩ电阻)表示继电器激活。

步骤1b: PCB布局

•组件放置:

将XIAO的足迹放置在边缘附近,以便于访问。

将继电器和led靠近各自的电阻。

•跟踪路由:

电源线使用20 - 30mil走线。

保持信号走线(D0到继电器)短以减少噪声。

•小集成:

为XIAO的D0、5V和GND引脚设计接线头/焊盘。

步骤1c:生成Gerber文件

在Altium:文件→制作输出→Gerber文件。

包括层:顶级铜,丝印,钻。

步骤1d。PCB制造

步骤1:准备覆铜板

清洁表面:

用钢棉擦洗铜片以去除氧化。

用异丙醇擦拭,使表面无油脂。

步骤2:转印设计

传热方式:

在光面纸上打印PCB布局(镜像)。

将纸放在铜片上,通过加热辊(180°C)加热5-10分钟。

将纸浸泡在水中,将墨粉留在铜片上。

3 .蚀刻

用氯化铁蚀刻:

将铜片浸入氯化铁溶液中(与水的比例为1:3)。

轻轻搅拌,直到不需要的铜溶解(10-30分钟)。

安全:佩戴手套和护目镜。

清洁PCB:

用钢丝绒擦掉墨粉。

用清水冲洗并擦干。

钻孔:

组件引线使用0.8-1mm钻头。

步骤1e装配与测试

步骤1:焊接元件

大会顺序:

电阻→led→二极管→继电器→XIAO头。

焊接小贴士:

加热衬垫,而不是部件。

用钢丝钳修剪多余的引线。

第二步:连续性检查

使用万用表在连续模式下验证:

5V与GND之间无短路。

D0引脚连接继电器控制电路。

使用万用表在连续模式下验证:

5V与GND之间无短路。

D0引脚连接继电器控制电路。

步骤3:功能测试

力量:

连接5V到XIAO。红色LED应该会发光。

力量:

连接5V到XIAO。红色LED应该会发光。

继电器测试:

将代码上传到XIAO以切换D0(参见下面的代码片段)。

当继电器激活时,绿色LED应该亮起。

继电器测试:

将代码上传到XIAO以切换D0(参见下面的代码片段)。

当继电器激活时,绿色LED应该亮起。

第二步:在XIAO ESP32S3 Sense上训练基于TinyML模型的音频

XIAO ESP32S3传感器介绍

一个紧凑但功能强大的开发板,旨在启动您的智能语音和视觉AI之旅。凭借其集成的相机传感器,数字麦克风和SD卡支持,这个小板包一个punch,提供嵌入式机器学习计算能力和摄影功能。无论您是深入研究边缘计算还是探索人工智能应用,XIAO ESP32S3 Sense都是您轻松高效地实现创新项目的首选工具。

边缘脉冲介绍

Edge Impulse是一个专门为边缘设备和嵌入式系统设计的机器学习模型开发平台。它提供了一套全面的工具和服务,使开发人员能够快速创建、训练和部署机器学习模型,而不需要深入的机器学习专业知识。

录音音频与XIAO ESP32S3传感器

让我们使用板载SD卡读卡器来保存。wav音频文件,我们需要首先调整XIAO PSRAM。

将micro - sd卡插入micro - sd卡插槽。请注意插入方向,金手指的那一面要朝内。

将以下程序编译上传到XIAO ESP32S3。

现在,编译并运行代码,获取不同大象声音的样本。你也可以捕捉噪音和其他声音。串行监视器将提示您接收要记录的标签。

发送标签(例如,l_on, l_off)。程序将等待另一个命令:rec。每次发送命令rec时,程序将开始记录新的样本。文件将保存为l_on.1.wav、l_on.2.wav、l_on.3.wav等,直到发送新标签(例如,notice)。在这种情况下,您应该为每个新示例发送命令rec,它将被保存为Noice1.wav, noice2 .wav, noice3 .wav等。最后,我们将在SD卡上获得保存的文件。

先发送第一个标签名称,通过串行监视器

然后发送命令rec,并开始使用XIAO记录命令。

以相同的量收集两种样品。

使用读卡器将存储在SD卡内的所有声音样本保存到您的计算机。

训练输出模型与边缘脉冲。

我们应该在Edge Impulse发起一个新项目,并给它起同样的名字“mini”。

创建项目后,在Data Acquisition部分中选择Upload Data工具。选择要上传的文件。

确保训练和测试集之间的平衡。80/20是推荐的最佳比例。

数据集上所有数据的长度都是1s,但上一节记录的样本长度为10s,必须分成1s个样本才能兼容。单击样本名称后的三个点,然后选择Split sample。

进入工具后,将数据分割为1秒记录。如果需要,添加或删除段。所有样品都应重复此步骤。

后藤动力设计

脉冲获取原始数据,使用信号处理提取特征,然后使用学习块对新数据进行分类。首先,我们将使用一个1秒的窗口获取数据点,增加数据,每隔500毫秒滑动该窗口。注意,设置了选项0 -pad数据。用小于1秒的零样本填充是很重要的(在某些情况下,我减少了分割工具上的1000毫秒窗口,以避免噪音和尖峰)。

下一步是创建下一阶段要训练的图像。我们可以保持默认参数值或利用DSP Autotuneparameters选项,我们将这样做。

我们将使用卷积神经网络(CNN)模型。基本架构由两个Conv1D + MaxPooling块(分别有8和16个神经元)和0.25 Dropout定义。在最后一层,四个神经元被压平后,每个类别一个。

性能校准导航到Edge Impulse Studio的“性能校准”选项卡。

配置测试设置:

选择噪音标签:识别代表背景噪音或静音的标签。

忽略特定的标签:选择在测试过程中应该忽略的任何标签。

选择音频样本类型:选择“模拟真实世界音频”从您的测试数据集生成合成音频流,或上传您自己的录音在.zip文件。

运行测试:单击“运行测试”启动性能校准。系统将评估你的模型的准确性,重点是假阳性和假阴性。

选择并保存配置

检查错误接受率(FAR)和错误拒绝率(FRR)图表上给出的建议配置。边缘脉冲文档

选择一种能够平衡假阳性和假阴性之间的取舍的配置,与您的项目需求保持一致。边缘脉冲文档

单击“Save selected config”以在部署期间应用此配置。

导出为Arduino库

Edge Impulse将打包所有所需的库,预处理功能和训练模型,将它们下载到您的计算机上。您应该选择Arduino Library选项,并在底部选择Quantized (Int8)并按下Build按钮。当选择Build按钮时,将创建一个Zip文件并将其下载到计算机上。部署模型到XIAO ESP32S3 Sense

部署模型到XIAO ESP32S3 Sense

将压缩文件上传到Arduino IDE

在使用下载的库之前,我们需要启用ESP NN加速器。为此,您可以从项目GitHub下载一个初步版本,解压缩它,并将其替换为ESP NN文件夹下的:src/edge-impulse-sdk/ portingespressif /ESP-NN,在您的Arduino库文件夹中。

第三步:编写并上传控制代码

使用Arduino IDE:

•安装必要的库(TensorFlow Lite for微控制器,Edge Impulse SDK等)。

•使用Arduino IDE:安装必要的库(TensorFlow Lite for微控制器,Edge Impulse SDK等)。

编写检测关键字的代码:

这部分代码遍历机器学习模型输出的每个预测(或标签)。对于每个标签,它首先检查标签是否为“l_on”(意思是“灯亮”),以及模型对该标签的置信度是否为70%或更高。如果两个条件都为真,它打印“灯已打开”到串行监视器,然后发送一个高信号到继电器引脚,它打开连接的灯。同样,它检查标签是否为“l_off”(意思是“关灯”),以及置信度是否至少为70%。如果是,它打印“灯已关闭”,并发送一个低信号到继电器,关闭灯。这种逻辑允许系统对模型识别的特定语音命令做出反应,并相应地控制灯光,但前提是模型对听到的声音有足够的信心

第三步:布线和组装

该电路由XIAO ESP32S3感测微控制器、2通道继电器模块、降压转换器以及风扇、灯泡和LED灯带等常见家用设备组成。一个9-12V的电源被送入降压转换器,降压转换器将其降压至5V,为ESP32S3和继电器模块供电。ESP32S3通过VCC、GND和GPIO控制引脚连接到继电器模块。这些控制引脚作为信号线来激活继电器。继电器输出连接到风扇和灯泡,使交流电源通过继电器接通或关闭。此外,双向开关与继电器并联连接,无论智能系统状态如何,都可以手动控制设备。

XIAO ESP32S3传感器通过连接的软件平台或嵌入式语音识别系统接收语音命令。根据命令,通过其GPIO引脚向继电器模块发送HIGH或LOW信号。当继电器接收到高信号时,它激活并关闭电路,允许交流电流流向相应的电器(风扇或灯泡)。低信号打开继电器,关闭电器。继电器作为低压控制侧(ESP32S3)和高压交流负载侧之间的桥梁。手动双向开关确保设备仍然可以传统操作,如果需要的话。所有高压连接都是仔细和安全的,遵循适当的绝缘和安全措施。

第四步:测试

观察

该设置经过了彻底的测试,以确保可靠的性能。XIAO ESP32S3能够正确识别“开灯”和“关灯”等语音命令,准确率很高。继电器开关反应迅速,几乎没有延迟。语音模型在设备上完全脱机运行,因此不需要互联网连接,这使得响应时间更快。

第五步:3D设计的外壳在融合360

在Fusion 360中设计了一个定制的外壳,以整齐地容纳继电器模块和XIAO ESP32S3微控制器。设计的重点是实用功能,如通风散热,易于访问的端口,并安装插槽固定的情况下。外壳的外观也与家庭内部很好地融合在一起。外壳使用PLA材料在FDM打印机上进行3D打印,并使用螺钉进行组装,以确保清洁和安全。

优势

•离线处理——消除对互联网的依赖

•增强隐私-没有数据发送到云服务

•通过Edge AI实现低功耗

•与基于云的系统相比,响应时间更快

•可定制和可扩展的系统架构

•人性化的免提操作

结论

本项目展示了使用TinyML和谷歌Assistant的高效、可扩展的智能自动化解决方案。它利用本地语音识别进行离线控制,并利用云集成进行远程访问。该方法可以扩展到多个设备,并扩展到工业或农村自动化系统。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭