语音AI小夜灯项目

一、项目简介

使用ESP32-S3N8R8模块作为主控芯片,S3内核增加了用于加速神经网络计算和信号处理等的指令,这使得我们可以使用它来快速解析训练好的语音模型进行语音识别的功能。

二、原理解析

本项目由四个部分组成,电源部分、LED照明部分、主控部分、语音识别拓展部分,本项目主要是通过麦克风接收语音信号并进行处理,提取人声进行解析比较,当声音符合指令后,进行对应的控制操作。

2.1 电源电路

采用TYPE-C-16P接口作为供电接口,同时使用对应的USB数据引脚接入S3对应的USB引脚处(USBD+ IO20),(USBD- IO19),直接使用USB 作为下载和调试,无需转换为串口信号。在CC1和CC2引脚处加入5.1K下拉电阻,便于不同主机识别和配置。

使用AMS1117作为5V转3.3V降压LDO,ESP32S3在开启无线射频或做语音解析运算时,消耗电流较大,再加上有其余外设电路的存在,在进行电源芯片选型时,因选择输出电流至少在600mA以上的,AMS1117输出电流为1A,能够满足。

2.2 LED照明电路

使用四个RGB三色灯分布在板的四周,通过改变RGB三色灯不同颜色的亮度可以获得不同的显示效果。这里考虑到红灯、蓝灯、绿灯在所需电流上不一致,使用不同的电阻分开串联在对应的支路上,后续可以通过调整阻值来使亮度达到统一。同时将每一个颜色的灯串在一起,通过SI2302N沟道mos管进行统一导通和关闭,也可以通过PWM控制导通时间来进行亮度调整。

2.3 主控部分

使用ESP32S3N8R8模组作为主控芯片,这里需要注意,如果需要进行语音识别,所需的资源库是比较大的,建议选择Flash和PSRAM在8M以上。注意在带有OSPI PSRAM(即内置芯片为ESP32-S3R8及以上)的模组中,管脚IO35,IO36,IO37用于连接至模组内部集成的OSPI PSRAM,不可用于其他功能,这里我们需要在对应引脚上打上非连接标识。

在ESP32S3中,一共有4个Strapping引脚,在进行引脚分配时,尽可能不要去在这些引脚处加入上拉或下拉电阻去改变它的默认状态。

2.4 语音识别拓展部分

使用I2S数字硅麦克风接收语音信号,在I2S信号线处,为了获得更好的抗干扰效应,可以尝试串联小电阻进行阻抗匹配。

使用I2S信号的D类功放芯片进行语音输出,在声音输出路径中,加入磁珠与电容组成LC滤波电路,降低输出干扰。外部喇叭使用GH1.25*2P接口进行连接。

喇叭.png

ESP32S3带有两个I2S控制器,所有IO都可以经过内部矩阵复用为I2S引脚,大家可以随意分配。

加入震动传感器,当手拍打桌面时,也能进行不同灯光的切换,增加可玩性。震动传感器内部为弹簧结构,可以简单理解为弹簧按键。

震动传感器.png

三、器件焊接

3.1 物料清单

3.2 焊接辅助工具

焊接时可以在嘉立创EDA的PCB页面里点击顶部菜单栏的工具选择焊接辅助工具,会跳转到交互式BOM页面,实时交互显示元器件在PCB板上对应的坐标位置,可勾选隐藏或显示已焊接元器件,高效率焊接。

四、实物演示

4.1 3D渲染图

4.2 实物成品

4.3 软件资料链接:乐鑫语音藤球灯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/318439.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

作业--day41

利用模板类完成顺序表 #include <iostream>using namespace std;//模板类 template <typename T> class SeqTab{T arr[20];int maxsize; public:SeqTab():maxsize(0){}void Insert(T a);void Search(T a);void Delete(int index);void Show(); };//尾插 template …

《合成孔径雷达成像算法与实现》Figure5.13

clc clear close all距离向参数 R_eta_c_1 450; % 景中心斜距 R_eta_c_2 850; % 景中心斜距 R_eta_c_3 1250; % 景中心斜距方位向参数 c 3e8; f0 5.3e6; Vr 7100; Ta 0.64; % 目标照射时间 Ka 2095; % 方位向调频率 theta_r_c 0; % 斜视角参数计算…

C语言实例_math.h库函数功能及其用法详解

一、前言 数学在计算机编程中扮演着至关重要的角色&#xff0c;C语言的math.h头文件提供了一系列的函数和工具&#xff0c;用于数学计算和常用数学函数的实现。这些函数包括数值运算、三角函数、指数对数函数等&#xff0c;为开发人员提供了强大的数学处理能力。本文将对math.…

C++-类和对象(2)

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下 6 个默认成员 函数。 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译…

layui 日期不能重新渲染

需求&#xff1a;当用户选择开始日期的时候&#xff0c;结束日期要小于开始日期。 遇到的问题&#xff1a; 当切换开始时间时&#xff0c;结束时间的输入框不会被重新渲染。 解决&#xff1a; html代码&#xff1a; <div class"layui-form-item"><label…

引导和服务

一、Linux操作系统引导过程 1、引导过程总览图 2、引导过程的详细步骤 1.开机自检&#xff08;BIOS&#xff09; 服务器主机开机以后&#xff0c;将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测&#xff0c;检测成功后根据预设的启动顺序移交系统控制权&a…

VitulBox中Ubuntu虚拟机安装JAVA环境——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项

前言 在进行之后操作是请下载好JDK&#xff0c;之后的内容是以Ubuntu虚拟机中安装java环境续写。 建议大家先把文章看完在配&#xff0c;因为有一些出错原有在后面&#xff0c;看完之后调整顺序。 提示&#xff1a;以下操作是在虚拟机hadoop用户下操作的&#xff0c;并为安装…

C++ 实现Windows WIFI管理器

文章目录 前言一、代码二、补充知识三、遇到的问题字符集转换 四、剩余问题总结 前言 出于项目需要&#xff0c;需要用C开发一个wifi界面&#xff0c;实现wifi扫描、wifi连接与断开、wifi密码记住的基础功能。 一、代码 话不多说&#xff0c;直接上代码。 #pragma once #inc…

基于猫群算法优化的Elman神经网络数据预测 - 附代码

基于猫群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于猫群算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于猫群优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针…

SQL 在已有表中修改列名的方法

文章目录 1. MySQL2. SQL Server3. Oracle / PostgreSQL Question&#xff1a; 假设有一张表 StudentInfo&#xff0c;表中有一个列名是 Student_Name &#xff0c;想要把这个列名改成 StudentName 应该如何操作&#xff1f; 建表语句如下&#xff1a; --建表 if object_id(S…

洗地机有没有必要买?家用洗地机推荐

随着生活水平的提高&#xff0c;人们对家居环境的卫生和清洁要求也相应提高&#xff0c;因此家用洗地机作为一种现代化的清洁工具逐渐受到了广泛关注和青睐。那么&#xff0c;洗地机到底有没有必要买? 洗地机对于一些家庭确实是非常有必要的&#xff0c;特别是对于工作繁忙、…

vivado 定义相对放置的宏

定义相对放置的宏 关于相对放置的宏 相对放置宏&#xff08;RPM&#xff09;是一组基本逻辑元件&#xff08;BEL&#xff09;的列表。 逻辑元件的示例包括&#xff1a; •FF •LUT •DSP •闸板 RPM主要用于将小组逻辑紧密地放在一起&#xff0c;以改进资源效率并实现更…