19集 两款ESP32开发板如何选择?-《MCU嵌入式AI开发笔记》

19集 两款ESP32开发板我们用哪款?-《MCU嵌入式AI开发笔记》

有两款ESP32的开发板分别是ESP32 S3 和C3的,我们该如何选择?

1、ESP32-S3-BOX-3

在乐鑫官网上,https://www.espressif.com.cn/zh-hans/products/devkits
有ESP32S3 BOX开发板,链接如下:
https://github.com/espressif/esp-box
我们打开gitee的链接
https://gitee.com/EspressifSystems/esp-box
我们看一下这个板卡的功能配置:
ESP32-S3-BOX-3 主控单元由 ESP32-S3-WROOM-1 模组驱动,该模块提供了 2.4 GHz Wi-Fi + Bluetooth 5 (LE) 的无线功能,同时具备 AI 加速能力。在 ESP32-S3 SoC 提供的 512 KB SRAM 基础上,该模块还附带额外的 16 MB 四线 Flash 和 16 MB 八线 PSRAM。开发板配备一片 2.4 英寸 320 x 240 的 SPI 接口触摸屏(‘红圈’支持触摸),两个数字麦克风,一个扬声器,三轴陀螺仪,三轴加速度计,一个用于电源和下载/调试的 Type-C 接口,一个可实现硬件扩展的高密度 PCIe 连接器,以及三个功能按钮。
在这里插入图片描述
在这里插入图片描述
支持特性
即开即用的入门级边缘 AI + HMI 应用开发板
基于 FreeRTOS 的四合一语音交互面板:离线语音识别、网络通信、屏幕显示、外设控制
双麦克风支持远场语音交互
支持高唤醒率的离线语音唤醒和命令词识别
允许连续命令词识别、唤醒打断以及自定义配置 200+ 中英文命令词
灵活多样的家庭自动化解决方案:Matter、Home Assistant、ESP-RainMaker
可视化拖放式 GUI 开发:LVGL SquareLine Studio、Embedded Wizard 等
丰富的开发框架:ESP-IDF、Arduino、PlatformIO、Circuit Python 等

我们直接git clone https://gitee.com/EspressifSystems/esp-box.git
下载下来看一下:
硬件用cadence captrueCIS和Allegro画的。
软件
在这里插入图片描述

立创·实战派ESP32-C3开发板

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

视频教程: https://www.bilibili.com/video/BV1Jm411r7zz
开源资料:https://lceda001.feishu.cn/wiki/L5Qhw037viVW5MkyFXPcRLhznbe
开源硬件:https://oshwhub.com/li-chuang-kai-fa-ban/xd-esp32c3-aiot-v1_3_2
硬件用力创EDA画的。
文档教程如下:
https://lceda001.feishu.cn/wiki/Xqx3wH8wMi3BrrkmeTXcgLL7nQk
1.1 总体介绍

  • 开发板主控芯片为ESP32-C3,外置FLASH容量为8MB,芯片内置SRAM容量为400kB。
  • 显示方面,集成了2.0寸IPS高清彩色液晶屏,可以用作各种显示应用。电容式触摸屏,可以实现手指控制应用。
  • 音频方面,集成了音频编解码芯片ES8311,有麦克风输入声音,有喇叭播放声音。
  • 传感器方面,集成了6D姿态传感器,地磁传感器,可用于姿态显示,指南针等应用。温湿度传感器,用于温湿度显示。
  • 外拓接口两个,一个是I2C接口,一个是多功能接口。I2C接口,可以连接外部支持I2C通信的传感器器件。多功能接口,引出了2个ESP32的GPIO引脚,这两个引脚,可以当作两个普通GPIO口使用,也可以配置为串口,也可以配置为I2C,也可以配置为CAN口。
  • 开发板集成USB转TTL芯片,通过TYPE-C接口,一条数据线就可以完成供电、下载和观察数据。
  • 有一个复位按键和一个用户自定义按键。
  • 结合ESP32-C3的wifi和蓝牙功能,开发板就可以做很多有趣的应用了
    例程都是基本的外设例程,我们看一下音频部分

第8章 音频-扬声器和麦克风

8.1 音频芯片介绍
开发板上带有一个麦克风,一个扬声器,音频编解码芯片使用ES8311。麦克风直接连接到了ES8311芯片上,ES8311和扬声器之间,还有一个音频驱动放大器。ES8311通过I2S接口与ESP32-C3连接。
8.2 播放音乐
本例程,我们直接在官方提供的例程上修改,就可以完成。
复制esp-idf-v5.1.3\examples\peripherals\i2s\i2s_codec\i2s_es8311这个例程,到我们自己的实验文件夹。不需要改名字,我的路径是D:\esp32c3\i2s_es8311。
打开软件VSCode,然后使用VSCode打开i2s_es8311工程文件夹。
现在我们需要针对开发板上的引脚连接,先把例程中的引脚相关代码修改一下。
ES8311这个芯片不仅使用I2S接口与ESP32连接,还有I2C接口与ESP32连接,I2C接口用于配置,I2S接口用于音频传输。
点击打开example_config.h文件,I2C引脚相关代码在它24~35行之间,这里使用了条件编译,根据使用的ESP32不同型号,定义I2C引脚。针对我们开发板上ESP32-C3,我们应该修改它的33、34行,我们修改为开发板上使用的GPIO0和GPIO1引脚。
#define I2C_SCL_IO (GPIO_NUM_1)
#define I2C_SDA_IO (GPIO_NUM_0)
I2S引脚相关代码在它的37~48之间。
先修改39~41行。
#define I2S_MCK_IO (GPIO_NUM_10)
#define I2S_BCK_IO (GPIO_NUM_8)
#define I2S_WS_IO (GPIO_NUM_12)
然后修改46、47行。
#define I2S_DO_IO (GPIO_NUM_11)
#define I2S_DI_IO (GPIO_NUM_7)
I2S的5个引脚就修改好了。
特别要注意I2S引脚当中的GPIO11,这个引脚目前还是VDD_SPI引脚,默认是一个电源引脚,输出3.3V,我们需要把它变成GPIO11才可以使用。这个变化是不可逆的,变成GPIO11以后,就不能再变成VDD_SPI引脚了。你们自己设计产品的时候注意,如果这个引脚用作VDD_SPI给外部FLASH供电,千万不要把它搞成GPIO11,否则就得换芯片了。我们的开发板上只把它用做GPIO11,I2S_DO引脚。把它变成GPIO11,需要调用一个函数即可。
printf(“ESP_EFUSE_VDD_SPI_AS_GPIO start\n-----------------------------\n”);
esp_efuse_write_field_bit(ESP_EFUSE_VDD_SPI_AS_GPIO);
我们把上面两行代码放到app_main函数的最开始处。第一行语句是提示,第二行代码是把VDD_SPI引脚变成GPIO引脚的函数。使用这个函数,需要调用esp_efuse_table.h头文件。
#include “esp_efuse_table.h”
接下来,还有一个引脚需要控制,就是音频放大器芯片NS4150B的EN引脚,这个引脚连接到了ESP32-C3的GPIO13,这个引脚通过下拉电阻接地,低电平关闭音频输出,高电平打开音频输出,这里我们需要把这个引脚变成高电平才可以。
/* 初始化PA芯片NS4150B控制引脚 低电平关闭音频输出 高电平允许音频输出 */
gpio_config_t io_conf = {
.intr_type = GPIO_INTR_DISABLE, //disable interrupt
.mode = GPIO_MODE_OUTPUT, //set as output mode
.pin_bit_mask = 1<<13, //bit mask of the pins
.pull_down_en = 0, //disable pull-down mode
.pull_up_en = 1, //enable pull-up mode
};
//configure GPIO with the given settings
gpio_config(&io_conf);

gpio_set_level(GPIO_NUM_13, 1); // 输出高电平

把上面的代码,放到app_main函数中,就放到刚才添加的两行控制VDD_SPI引脚代码后面就可以。
直到这里,代码就修改完毕了,接下来我们配置好左下角的串口号、芯片型号、menuconfig等。
注意,配置menuconfig之前,一定要先选好芯片型号,否则menuconfig的内容会被复位,还得在配置一下。所以我们先把芯片配置成esp32-c3,然后打开menuconfig配置。这里需要配置两个地方,一个是FLASH容量改成8MB,另外一个是Example Configuration。
Example Configuration这里的Example mode有两种,一种是music音乐播放模式,另外一种是echo回声模式,这里我们先选music音乐模式,Voice volume是声音大小,模式是60,声音有点低,我们改成80。改好后点击保存,然后关闭。
然后编译下载到我们的开发板,就可以听到扬声器播放声音了。这里播放的声音是canon.pcm这个文件的声音。

同时,串口终端会输出:
I (10340) i2s_es8311: [music] i2s music played, 634240 bytes are written.
关于如何替换成自己定义的声音,可以参考这个例程的README.MD文件中的Customize your own music这一部分。另外,也可以看第17章的例程,第17章的例程有开机音乐,教程中有介绍如何制作。

这里面还有一个例程:
在这里插入图片描述
在这里插入图片描述
这里讲述了如何开发对话功能,还是比较详细的。

你觉得这两个开发板哪个更适合你呢?

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

简约唯美的404HTML源码

源码介绍 简约唯美的404HTML源码,很适合做网站错误页,将下面的源码放到一个空白的html里面,然后上传到服务器里面即可使用 效果预览 完整源码 <!DOCTYPE html> <html><head><meta charset="utf-8"><title>404 Error Example<…

无监督语义分割综述

引言 语义分割是计算机视觉领域的一个重要任务&#xff0c;旨在将图像中的每个像素分配给特定的语义类别。然而&#xff0c;传统的语义分割方法通常依赖大量标注数据&#xff0c;获取这些数据既费时又昂贵。无监督语义分割方法旨在通过不依赖标注数据或仅需少量标注数据的情况…

第11章 规划过程组(四)(11.4规划质量管理)

第11章 规划过程组&#xff08;四&#xff09;11.4规划质量管理&#xff0c;在第三版教材第412~414页&#xff1b; 文字图片音频方式 第一个知识点&#xff1a;工具与技术 1、数据分析&#xff08;重要知识点&#xff09; 成本效益分析 确定质量活动的可能成本与预期效益&a…

景区客流统计系统方便管理者直观地了解客流情况

在当今旅游业蓬勃发展的时代&#xff0c;景区的管理面临着诸多挑战。其中&#xff0c;如何准确、及时地了解客流情况是管理者们关注的重点之一。景区客流统计系统的出现&#xff0c;为解决这一问题提供了高效、便捷的方案&#xff0c;使管理者能够直观地洞察景区内游客的流动态…

探索 Python 的宝藏:深入理解 NumPy库

探索 Python 的宝藏&#xff1a;深入理解 NumPy 库 引言&#xff1a;为何选择 NumPy&#xff1f; NumPy 是 Python 中一个基础而强大的库&#xff0c;它为 Python 语言提供了高性能的多维数组对象和相应的操作。在科学计算、数据分析、机器学习等领域&#xff0c;NumPy 以其高…

Python与MQTT:构建物联网通信的桥梁

&#x1f680;Python与MQTT&#xff1a;构建物联网通信的桥梁&#x1f309; 在这个万物互联的时代&#xff0c;物联网&#xff08;IoT&#xff09;技术正以前所未有的速度改变着我们的生活。从智能家居到智慧城市&#xff0c;从工业自动化到农业智能化&#xff0c;物联网的触角…

[C++]一些list,stack和queue选择题和编程题

这时我们学完后的应用 一、选择题 1.下面有关vector和list的区别&#xff0c;描述错误的是( ) A.vector拥有一段连续的内存空间&#xff0c;因此支持随机存取&#xff0c;如果需要高效的随机存取,应该使用vector B.list拥有一段不连续的内存空间&#xff0c;如果需要大量的插入…

vue3-tree-org实现带照片的组织架构图

官方文档&#xff1a;vue3-tree-org 显示照片需要注意的地方 使用步骤 下载 npm install vue3-tree-org --save 在main.js中引入 import "vue3-tree-org/lib/vue3-tree-org.css"; import vue3TreeOrg from vue3-tree-org;app.use(vue3TreeOrg) 实现代码 <tem…

1.MQ介绍

MQ 消息队列&#xff0c;本质是一个队列&#xff0c;先进先出&#xff0c;只不过队列中存放的内容是message而已。 为啥学习MQ 1.流量消峰 如果一个订单系统最多每秒能处理一万次订单&#xff0c;正常情况下我们下单1秒后就能返回结果。但是在高峰期&#xff0c;如果有两万…

mybatisPlus和mybatis的版本冲突问题、若依换成MP、解决git无法推送、使用若依框架的swagger、以后再遇到团队项目应该怎么做。

20240716 一. mybatisPlus和mybatis的版本冲突问题1. 使用前的准备2. 我遇到了一个很严重的问题。3. 解决问题&#xff0c;好吧也没解决&#xff0c;发现问题&#xff01;&#xff01; 二、该死的git&#xff01;&#xff01;&#xff01;&#xff01;1. 解决无法在idea中使用g…

【对顶堆 优先队列】2102. 序列顺序查询

本文涉及知识点 对顶堆 优先队列 LeetCode 2102. 序列顺序查询 一个观光景点由它的名字 name 和景点评分 score 组成&#xff0c;其中 name 是所有观光景点中 唯一 的字符串&#xff0c;score 是一个整数。景点按照最好到最坏排序。景点评分 越高 &#xff0c;这个景点越好。…

nginx负载均衡实例

实现效果 浏览器输入地址http://nginx服务器ip(:80)/edu/a.html&#xff0c;实现负债均衡效果&#xff0c;平均分配到 服务器ip:8080和 服务器ip:8081进程中。 准备工作 准备两个tomcat&#xff0c;一个监听在8080端口&#xff0c;一个监听在8081端口。也可以准备多个tomcat。…

FreeRTOS的中断管理、临界资源保护、任务调度

什么是中断&#xff1f; 简介&#xff1a;让CPU打断正常运行的程序&#xff0c;转而去处理紧急的事件&#xff08;程序&#xff09;&#xff0c;就叫中断。 中断优先级分组设置 ARM Cortex-M 使用了 8 位宽的寄存器来配置中断的优先等级&#xff0c;这个寄存器就是中断优先级…

TS 入门(六):TypeScript泛型编程

目录 前言回顾接口与类1. 泛型函数2. 泛型接口3. 泛型类4. 泛型约束5. 多重类型参数与默认类型a. 多重类型参数b. 默认类型参数 结语 前言 在前三章中&#xff0c;我们介绍了 TypeScript 的基础知识、函数与对象类型。在本章中&#xff0c;我们将探讨更高级的类型和类型操作&a…

【STM32】按键控制LED光敏传感器控制蜂鸣器(江科大)

一、按键控制LED LED.c #include "stm32f10x.h" // Device header/*** 函 数&#xff1a;LED初始化* 参 数&#xff1a;无* 返 回 值&#xff1a;无*/ void LED_Init(void) {/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENAB…

多级表头固定列问题

父级的width&#xff0c;是需要固定的列的width的总和 参考&#xff1a; el-table 多级表头下对应列的固定

springboot基于协同过滤算法的黔醉酒业白酒销售系统lw源码调试讲解

相关技术 2.1 Vue框架 目前市面上出现了许多优秀的前端框架可以解决了许多开发问题&#xff0c;Vue 就是这样一款优秀的框架&#xff0c;它与现代浏览器和支持ES2015的Node.js版本兼容&#xff0c;Vue.js的核心库只关注视图层&#xff0c;非常容易学习和集成到其他库或项目中[…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【23】【订单服务】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【23】【订单服务】 订单中心订单信息用户信息订单基础信息商品信息优惠信息支付信息物流信息 订单状态订单流程订单创建与支付逆向流程 订单确认页Feign远程调用丢失请求头问题Feign异步…

基于springboot和mybatis的RealWorld后端项目实战一之hello-springboot

新建Maven项目 注意archetype选择quickstart pom.xml 修改App.java App.java同级目录新增controller包 HelloController.java package org.example.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotatio…

商业数据分析思维的培训PTT制作大纲分享

商业数据分析思维的培训PTT制作大纲: 基本步骤: 明确PPT的目的和主题 收集并整理相关内容资料 构思并确定PPT的框架大纲 编写PPT的内容文字 插入图片、图表等视觉元素 设计PPT的版式和模板 排练并修改PPT 输出并备份最终版本 目的:数据思维培养; 主题:商业数据分…