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章的例程有开机音乐,教程中有介绍如何制作。

这里面还有一个例程:

这里讲述了如何开发对话功能,还是比较详细的。

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

相关推荐
Halo咯咯3 分钟前
无限免费 OpenClaw:接入本地模型后,你的 AI Agent 就可以 24 小时自动干活(Mac Mini 可用)
人工智能
NAGNIP12 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab13 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab13 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP17 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年17 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼17 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS17 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区19 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈19 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能