ESP32-S3-DualEye-LCD-1.28

来自Waveshare Wiki
跳转至: 导航搜索
ESP32-S3-DualEye-LCD-1.28
{{{name2}}}
{{{name3}}}
功能简介
特性 无特性,不解释
显示尺寸 1.28 英寸
分辨率 240×240
' 无特性,不解释
' 无特性,不解释
接口 UART SPI

产品介绍

产品简介

ESP32-S3-DualEye-LCD-1.28 是一款支持 2.4GHz Wi-Fi 和蓝牙 BLE 5 的微控制器开发板。集成大容量 Flash 和 PSRAM,板载 2 块 1.28 英寸 LCD 屏,可流畅运行 LVGL 等 GUI 界面程序,结合多种外设接口,可快速开发 ESP32-S3 的 HMI 等应用。

产品特性

  • 搭载 ESP32-S3R8 高性能 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
  • 支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE),板载天线
  • 内置 512 KB SRAM 和 384 KB ROM,叠封 8 MB PSRAM 和板载 16 MB Flash (支持接入扩展设备)
  • 采用 Type-C 接口,提高用户便捷性和设备兼容性
  • 板载 2 块 1.28 英寸 LCD 屏,分辨率 240 × 240,65K 彩色
  • 支持 I2C 接口控制触摸,支持中断
  • 引出 UART、I2C 以及部分 IO 接口
  • 板载 3.7V MX1.25 锂电池充放电接口
  • 板载 Micro SD 卡槽,用于扩展存储和快速数据传输,具备灵活性,适用于数据记录和媒体播放,简化了电路设计
  • 支持灵活时钟、多种电源模式等准确控制,实现多场景低功耗模式
  • 引出多个 GPIO ,可映射为多种功能接口,方便客户自定义开发

产品参数

参数名称 参数
接口 USB Type-C
主控芯片 ESP32-S3
屏幕控制芯片 Display :GC9A01A
板载设备 ES8311
ES7210
MIC
Micro SD
喇叭
电池充电管理模块
固定螺丝 M2

产品尺寸

内部硬件连接

  • LCD1
LCD引脚 ESP32S3
LCD_DOUT GPIO40
LCD_CLK GPIO41
LCD_DIN GPIO42
LCD_DC GPIO45
LCD_CS GPIO47
LCD_RST GPIO48
LCD_BL GPIO46
TP_SDA GPIO11
TP_SCL GPIO10
TP_INT GPIO5
TP_RST GPIO4
  • LCD2
LCD引脚 ESP32S3
LCD_DOUT GPIO40
LCD_CLK GPIO41
LCD_DIN GPIO42
LCD_DC GPIO45
LCD_CS GPIO38
LCD_RST GPIO8
LCD_BL GPIO39
TP_SDA GPIO3
TP_SCL GPIO2
TP_INT GPIO7
TP_RST GPIO6
  • SD Card
SD Card ESP32S3
SD_D0 / MISO GPIO18
SD_CMD / MOSI GPIO21
SD_SCK / SCLK GPIO17
SD_D3 / CS NC
SD_D1 NC
SD_D2 NC
  • MIC
ES8311 ESP32S3
I2C_SDA GPIO11
I2C_SCL GPIO10
I2S_MCLK GPIO12
I2S_SCLK GPIO13
I2S_LRCK GPIO14
I2S_DSDIN GPIO16
  • SPEAKER
ES7210 ESP32S3
I2C_SDA GPIO11
I2C_SCL GPIO10
I2S_MCLK GPIO12
I2S_SCLK GPIO13
I2S_LRCK GPIO14
I2S_ASDOUT GPIO15

资源简介

ESP32-S3-DualEye-Touch-LCD-1.28-details-intro.jpg

标号 部件 说明
ESP32-S3R8 双核处理器,高达 240MHz 的运行频率
16MB Flash
电池充电管理芯片
功放芯片
ES8311
ES7210
麦克风
MP1605GTF-Z 电源模块,支持高达 3.3V 2A 输出
贴片陶瓷天线
IPEX 1 代座子 可通过拆焊电阻切换为使用外部天线
BOOT 按键
GPIO1 功能修改电阻位 默认焊接在靠近晶振位置,此时 GPIO1 用于电池电压测量,若修改为远离晶振位置,则将引到 FPC 排线,此时可修改程序实现三屏显示
系统电池接口 MX1.25 2PIN 连接器,可用于接入 3.7V 锂电池,支持充放电
充电指示灯 在连接系统电池时,充电为常亮,充满熄灭 (未连接系统电池时,状态不定)
喇叭接口
LCD1-Board SH1.0 14PIN 排线接口
18PIN FPC 接口 在主板保持上电状态下,调整位号为 R12 的电阻值,同时修改程序中的显示配置参数,即可实现三屏显示功能。在掰断板子的情况下,可以通过 FPC 排线连接,使两个屏幕都正常工作(注意,掰断板子使用 FPC 排线连接的情况下 RESET 按键不可用)
18PIN FPC 接口 用于连接主控
SD 卡通信模式选择 当板子掰断的情况下,在使用其他主控控制 SD 卡这一侧时可切换为 SPI 模式,此时可以用一组 SPI 同时控制 SD 卡与屏幕
Micro SD 卡座 允许连接大容量 SD 卡
RESET 按键
LCD2-Board SH1.0 14PIN 排线接口 当板子掰断的情况下,将位号 R19 的电阻配置为 SPI 模式,此时可以使用 14PIN 排线通过一组 SPI 同时控制 SD 卡与屏幕
Type-C 接口

排线接口

  • 请对照排线接口上的丝印,从左到右分别为1-14
  • 完整、详细的引脚定义请查看 原理图
序号 LCD1-Board SH1.0 14PIN 排线接口 LCD2-Board SH1.0 14PIN 排线接口
1 USB_5V 3V3
2 GND GND
3 D_N SD_MISO
4 D_P SD_MOSI
5 3V3 SD_SCLK
6 GND SD_CS
7 SDA LCD_CS2'
8 SCL LCD_DC
9 UART_RXD LCD_RST2
10 UART_TXD LCD_BL2
11 TP2_SDA TP2_SDA
12 TP2_SCL TP2_SCL
13 GPIO0 TP2_INT
14 RESET TP2_RST

使用说明

ESP32-S3-DualEye-LCD-1.28 目前提供 Arduino IDEESP-IDF 两种开发工具和框架,提供了灵活的开发选择,你可以根据项目需求和个人习惯选择适合的开发工具。

开发工具介绍

Arduino-IDE-logo.jpg

Arduino IDE

Arduino IDE是一款便捷灵活、方便上手的开源电子原型平台。不需要太多基础,简单学习后,你也可以快速地进行开发。同时,Arduino 拥有庞大的全球用户社区,提供了海量的开源代码、项目示例和教程,还有丰富的库资源,封装了复杂功能,让开发者能快速实现各种功能。

ESP-IDF-logo.jpg

ESP-IDF

ESP-IDF,全称Espressif IDE,是乐鑫科技为 ESP系列芯片推出的专业开发框架。它使用C语言开发,包括编译器、调试器、烧录工具等,可在命令行下或使用集成开发环境(如 Visual Studio Code 配合 Espressif IDF 插件)进行开发,插件提供代码导航、项目管理、调试等功能。


这两种开发方式各有其优势,开发者可以根据自身需求和技能水平进行选择。Arduino 适合初学者和非专业人士,因其简单易学、上手快。而对于有专业背景或对性能要求较高的开发者,ESP-IDF 是更好的选择,它提供了更高级的开发工具和更强的控制能力,适用于复杂项目的开发。

器件准备

  • ESP32-S3-DualEye-LCD-1.28 x1
  • 含MP3文件的SD卡 x1
  • USB线 type A公口 转 Type C公口 x1

注意事项

  • 请注意,电脑用户名必须是英文,用户名为中文会导致编译出错
  • 在通过提供的示例启用所有板载设备时,若想继续使用板载蓝牙设备,建议使用其他内存占用较小的音频库文件(否则会导致SRAM占用过大)
  • 开发板使用USB下载程序,如果出现无法识别到端口,请进入boot模式(摁住boot按键后,再连接电脑,然后松开boot按键),下载程序后,断开设备连接,重新连接设备至电脑可运行程序
  • Arduino 上的 ESP32 3.0.2 基于 ESP-IDF v5.1开发,与此前基于 ESP-IDF V4.X 有较大差异,在进行以下操作后,原先可以正常运行的程序可能需要进行一些调整才可使用
在操作前,建议先浏览目录,快速了解文档结构。为顺利操作,请仔细阅读FAQ,提前了解可能的问题。文档中所有资料均提供超链接,方便下载。

Arduino开发

本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。 Arduino-flow-04.png

环境搭建

下载和安装 Arduino IDE

  • 点击访问Arduino官网,选择对应的系统和系统位数下载。
    ESP32-S3-AMOLED-1.91-Ar-software-01.png
  • 运行安装程序,全部默认安装即可。
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问Arduino-esp32环境搭建参考。(Mac下使用 需要安装MAC 驱动程序

安装 ESP32 开发板

  • ESP32相关主板在Arduino IDE使用,须先安装“esp32 by Espressif Systems”开发板的软件包
  • 根据板安装要求进行安装,一般推荐“在线安装”, 若在线安装失败,则使用“离线安装
  • 安装教程,详见:Arduino 板管理教程
  • ESP32-S3-DualEye-LCD-1.28 所需开发板安装说明
板名称 板安装要求 版本号要求
esp32 by Espressif Systems “离线”安装/“在线”安装 3.2.0≤版本号

安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装离线安装若库安装要求离线安装,则必须使用提供的库文件
    对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • 库安装教程,详见:Arduino 库管理教程
  • ESP32-S3-DualEye-LCD-1.28 库文件存放于示例程序中,点击此处跳转:ESP32-S3-DualEye-LCD-1.28示例程序
  • ESP32-S3-DualEye-LCD-1.28 库文件安装说明
库名称 说明 版本 库安装要求
LVGL 图形库 v8.3.10 “离线”安装
ESP32-audioI2S-master 音频解码库 v2.0.0 “离线”安装
es7210 音频驱动库 xxx “离线”安装
es8311 音频驱动库 xxx “离线”安装
LVGL更多学习及使用可参考LVGL官方文档

运行第一个 Arduino 程序

如果你刚入门学习ESP32和Arduino,还不知道如何创建、编译、烧录和运行Arduino ESP32程序,那么请展开看看,希望可以帮助到你!

新建工程

  • 运行Arduino IDE,选择 File -> New Sketch
    ESP32-S3-AMOLED-1.91-Ar-study-01.png
  • 输入代码:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("Hello, World!");
  delay(2000);
}
  • 保存代码工程,选择 File -> Save As...;在弹出的菜单选择保存工程路径,并输入工程名,如 Hello_World,点击保存

ESP32-S3-AMOLED-1.91-Ar-study-02.png

编译和烧录程序

  • 选择对应的开发板,以ESP32S3主板为例:

①. 点击选择下拉框选项“Select Other Board and Port”;
②. 搜索需要的开发板型号“esp32s3 dev module”并选择;
③. 选择COM口
④. 保存选择。
ESP32-S3-AMOLED-1.91-Ar-study-03.png

  • 若ESP32S3主板只有USB口,须打开(Enable)USB CDC,如下图所示:

ESP32-S3-AMOLED-1.91-Ar-study-04.png

  • 编译并上传程序:

①. 编译程序;②. 编译并下载程序;③. 下载成功。
ESP32-S3-AMOLED-1.91-Ar-study-05.png

  • 打开串口监视窗口,程序每隔2秒会打印“Hello World!”,运行情况如下所示:

ESP32-S3-AMOLED-1.91-Ar-study-06.png

示例程序

Demo-flow-01.png

  • ESP32-S3-DualEye-LCD-1.28 示例程序
示例程序 基础例程说明 依赖库
LVGL_Arduino 测试板载设备功能 LVGL,ESP32-audioI2S-master

Arduino 工程参数设置

  • 若烧录的示例存在语音识别模型,则 Partition Scheme 选择 "ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODEL)"
  • 若烧录的示例不存在语音识别模型,则 Partition Scheme 选择 "16M Flash (3MB APP/9.9MB FATFS)" 或其他

ESP32-S3-Touch-LCD-1.46 Demo 2.png

LVGL_Arduino

【程序说明】


  • 本示例演示了板载各个设备的功能,屏幕2显示SD Card,Flash Size,背光调节滑动条等参数,屏幕1为音乐播放界面;另外,此示例增加语音识别功能,仅在播放音频前可使用

【硬件连接】


  • 将SD卡插入开发板中
  • 将开发板接入电脑

【代码分析】


  • setup():硬件初始化,配置外设等
    • 硬件初始化:setup() 内部主要执行多个初始化函数,用来配置和初始化与Arduino连接的硬件组件,如LCD显示、SD卡、音频模块、麦克风等。通过这些初始化,确保硬件能够正常工作
    • 图形界面初始化:调用 Lvgl_Init() 来初始化LVGL(Light and Versatile Graphics Library),一个广泛用于嵌入式系统的图形库。Lvgl_Example1() 则是一个示例程序,用来展示如何在显示屏上渲染图形界面
  • loop():进行一定延时防止触发看门狗

【运行效果】


  • LCD屏幕显示
  • LCD屏幕显示参数说明
参数 功能 说明
SD Card 显示 SD 卡的大小 连接SD卡,若识别失败请将SD卡格式化为FAT32格式(首次识别失败请等待一会后复位下再查看)
Flash Size 显示 Flash 大小 当前板载 16MB Flash
Backlight brightness 亮度滑动条 调节屏幕亮度
  • 屏幕1 为播放 SD 卡根目录下的 mp3 音频的 UI 页面
  • 可通过 BOOT 按键控制 UI 界面:单击切换选中项,双击确认选择,长按切换屏幕焦点
  • 本程序默认启用语音识别,唤醒词为 “hi esp”,唤醒后,背光变暗后即可说出指令(背光未变暗则表示未被唤醒,识别要求较为严格,发音需要标准,语速放缓)
  • 以下提供几种格式的MIC测试音频(请注意,每次hi esp唤醒失败的话请重新将音频调至该次唤醒词播放处重新播放)
  • 请不要在使用喇叭播放音频时进行语音识别
  • 测试音频中之所以播放两次唤醒词,是由于当前固件版本首次唤醒需要聚焦设备(比喻),并且当前固件并不允许关闭该功能
// 指令
Turn on the backlight
Turn off the backlight
Backlight is brightest
Backlight is darkest
  • 注意:当前示例仅在播放音频前可使用语音识别功能

切换为中/英文识别模型

环境初始状态默认为英文识别环境,按照以下步骤可切换为中文识别模型或还原为英文识别模型

【切换为中文识别模型】


中文识别环境搭建

  • 下载提供的程序文件 使用中文模型的程序
  • 进入路径 C:\Users\Waveshare\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\ESP_SR\src (其中 Waveshare 为电脑用户名)
  • 使用下载的文件替换该路径下的 esp32-hal-sr.c
  • 下载中文模型 中文模型-唤醒词hi 乐鑫
  • 进入路径 C:\Users\Waveshare\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32s3\esp_sr (其中 Waveshare 为电脑用户名)
  • 使用下载的文件替换该路径下的 srmodels.bin
  • 将程序中的识别指令修改为中文指令(拼音)

ESP32-S3-Touch-LCD-1.85 Program parsing 2.png

【切换为英文识别模型】


   英文识别环境搭建

  • 环境初始状态默认为英文识别环境,若未转为中文,则不进行以下修改
  • 若此前有将其修改为中文识别则,下载提供的程序文件 使用英文模型的程序
  • 进入路径 C:\Users\Waveshare\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\ESP_SR\src (其中 Waveshare 为电脑用户名)
  • 使用下载的文件替换该路径下的 esp32-hal-sr.c
  • 下载英文模型 英文模型-唤醒词hi esp
  • 进入路径 C:\Users\Waveshare\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32s3\esp_sr (其中 Waveshare 为电脑用户名)
  • 使用下载的文件替换该路径下的 srmodels.bin
  • 将程序中的识别指令修改为英文指令(音素)

ESP32-S3-Touch-LCD-1.85 Program parsing 1.png

ESP-IDF开发

本章介绍 ESP-IDF 环境搭建,包括 Visual Studio、Espressif IDF插件的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。 ESP-IDF-flow-01.png

环境搭建

下载和安装 Visual Studio

  • 打开VScode官网的下载页面,选择对应系统和系统位数进行下载
    ESP32-S3-AMOLED-1.91-VScode-01.png
  • 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
    ESP32-S3-AMOLED-1.91-VScode-02.png
    • 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
    • 第三项开启后,选择打开方式时,可以直接选择VSCode
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问ESP-IDF环境搭建参考

安装Espressif IDF插件

  • 国内部分区域安装,一般推荐“在线安装”, 若因网络因素无法在线安装,则使用“离线安装
  • 安装Espressif IDF插件教程,详见:安装Espressif IDF插件教程
  • ESP32-S3-DualEye-LCD-1.28 所需Espressif IDF版本说明
插件名称 插件安装要求 版本号要求
Espressif IDF “离线”安装/“在线”安装 5.4.1

运行第一个 ESP-IDF 程序

如果你刚入门学习ESP32和ESP-IDF,还不知道如何创建、编译、烧录和运行ESP-IDF程序,那么请展开看看,希望可以帮助到你!

新建项目

ESP32-S3-AMOLED-1.91-study-01.png

ESP32-S3-AMOLED-1.91-study-02.png

创建例程

  • 使用快捷键 F1 ,输入esp-idf:show examples projects

ESP32-S3-AMOLED-1.91-study-03.png

  • 选择你当前的IDF版本

ESP32-S3-AMOLED-1.91-study-04.png

  • 以Hello world例程为例

①选择对应例程
②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
③点击创建例程
ESP32-S3-AMOLED-1.91-study-05.png

  • 选择放置例程的路径,要求无例程同名文件夹

ESP32-S3-AMOLED-1.91-study-06.png

修改COM口

  • 此处显示使用对应的COM口,点击可以修改对应COM口
  • 请根据设备对应COM口进行选择(可通过设备管理器查看)
  • 若出现下载失败的情况请点击复位按键1秒以上或进入下载模式,等待 PC 端重新识别到设备后再次下载

ESP32-S3-AMOLED-1.91-study-07.png

修改驱动对象

  • 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3

ESP32-S3-AMOLED-1.91-study-08.png

  • 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可

ESP32-S3-AMOLED-1.91-study-09.png


其余状态栏简介

①.ESP-IDF开发环境版本管理器,当我们的工程需要区分开发环境版本时,可以通过安装不同版本的ESP-IDF来分别管理,当工程使用特定版本时,可以通过使用它来切换
②.设备烧录COM口,选择以将编译好的程序烧录进芯片上
③.set-target 芯片型号选择,选择对应的芯片型号,如:ESP32-P4-Nano需要选择 esp32p4 为目标芯片
④.menuconfig,点击修改sdkconfig配置文件内容,项目配置详细资料
⑤.fullclean 清理按钮,当工程编译报错或其他操作污染编译内容时,通过点击清理全部编译内容
⑥. Build 构建工程,当一个工程满足构建时,通过此按钮进行编译
⑦.当前下载方式,默认为UART
⑧.flash烧录按钮,当一个工程Build构建通过时,选择对应开发板COM口,点击此按钮可以将编译好的固件烧录至芯片
⑨.monitor开启烧录口监控,当一个工程Build-->flash后,可通过点击此按钮查看烧录、调试口输出的l0g,以便观察应用程序是否正常工作
⑩.Debug调试
⑪.Build Flash Monitor 一键按钮,用于连续执行Build-->Flash-->Monitor,常被称作小火苗

ESP32-S3-AMOLED-1.91-study-10.png

编译、烧录、串口监视

  • 点击我们之前介绍的 编译,烧录,打开串口监视器按键

ESP32-S3-AMOLED-1.91-study-11.png

  • 编译可能需要较长时间才能完成,尤其是在第一次编译时

ESP32-S3-AMOLED-1.91-study-12.png

  • 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿
  • 若是新工程首次烧录程序,将需要选择下载方式,选择 UART

ESP32-S3-AMOLED-1.91-study-13.png

  • 后续也可在 下载方式 处进行修改(点击即可弹出选项)

ESP32-S3-AMOLED-1.91-study-14.png

  • 因为板载自动下载电路,无需手动操作即可自动下载
  • 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启

ESP32-S3-AMOLED-1.91-study-15.png


使用IDF 示例程序

下文以使用“ESP32-S3-LCD-1.47-Demo”为例介绍工程的两种打开方式及使用的一般步骤、ESP-IDF工程项目详解,若使用其他工程,操作步骤类推。

软件内部打开

  • 打开 VScode 软件,选择文件夹打开示例

ESP32-S3-AMOLED-1.91-study-16.png

  • 选择提供的 ESP-IDF 下的示例,点击选择文件(位于 示例程序/Demo/ESP-IDF 路径下)

ESP32-S3-AMOLED-1.91-study-17.png


软件外部打开

  • 正确选择工程目录,打开工程,否则会影响后续程序编译烧录

ESP32-S3-AMOLED-1.91-study-18.png

  • 连接设备后,选择好COM口和型号,点击下方编译并烧录即可实现程序控制

ESP32-S3-AMOLED-1.91-study-19.png

ESP-IDF工程项目详解

  • 组件(Component):ESP-IDF中的组件是构建应用的基本模块,每个组件通常是相对独立的代码库或库,能实现特定的功能或服务,可以被应用程序或是其他组件重复使用,类似于Python开发中的库的定义。
    • 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语言基础,引入库是通过CMakeLists.txt进行配置和定义的。
    • CmakeLists.txt的作用:ESP-IDF编译时编译工具CMake会首先通过读取工程目录的顶层CMakeLists.txt的内容来读取构建规则,识别需要编译的内容。当在CMakeLists.txt中引入了需要的组件、程序后,编译工具CMake会根据索引导入每个所需要编译的内容。编译过程如:

ESP32-P4 VSCode ESP-IDF GettingStart 240906 02.png

修改COM口

  • 此处显示使用对应的COM口,点击可以修改对应COM口
  • 请根据设备对应COM口进行选择(可通过设备管理器查看)
  • 若出现下载失败的情况请点击复位按键1秒以上或进入下载模式,等待 PC 端重新识别到设备后再次下载

ESP32-S3-AMOLED-1.91-study-07.png

修改驱动对象

  • 选择我们需要驱动的对象,下图以主芯片为ESP32S3 以例(用户根据手头实物板子的主控芯片对应设置)

ESP32-S3-AMOLED-1.91-study-08.png

  • 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可

ESP32-S3-AMOLED-1.91-study-09.png

其余状态栏简介

①.ESP-IDF开发环境版本管理器,当我们的工程需要区分开发环境版本时,可以通过安装不同版本的ESP-IDF来分别管理,当工程使用特定版本时,可以通过使用它来切换
②.设备烧录COM口,选择以将编译好的程序烧录进芯片上
③.set-target 芯片型号选择,选择对应的芯片型号,如:ESP32-P4-Nano需要选择 esp32p4 为目标芯片
④.menuconfig,点击修改sdkconfig配置文件内容,项目配置详细资料
⑤.fullclean 清理按钮,当工程编译报错或其他操作污染编译内容时,通过点击清理全部编译内容
⑥. Build 构建工程,当一个工程满足构建时,通过此按钮进行编译
⑦.当前下载方式,默认为UART
⑧.flash烧录按钮,当一个工程Build构建通过时,选择对应开发板COM口,点击此按钮可以将编译好的固件烧录至芯片
⑨.monitor开启烧录口监控,当一个工程Build-->flash后,可通过点击此按钮查看烧录、调试口输出的l0g,以便观察应用程序是否正常工作
⑩.Debug调试
⑪.Build Flash Monitor 一键按钮,用于连续执行Build-->Flash-->Monitor,常被称作小火苗

ESP32-S3-AMOLED-1.91-study-10.png

编译、烧录、串口监视

  • 点击我们之前介绍的 编译,烧录,打开串口监视器按键

ESP32-S3-AMOLED-1.91-study-11.png

  • 编译可能需要较长时间才能完成,尤其是在第一次编译时

ESP32-S3-AMOLED-1.91-study-12.png

  • 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿
  • 若是新工程首次烧录程序,将需要选择下载方式,选择 UART

ESP32-S3-AMOLED-1.91-study-13.png

  • 后续也可在 下载方式 处进行修改(点击即可弹出选项)

ESP32-S3-AMOLED-1.91-study-14.png

  • 因为板载自动下载电路,无需手动操作即可自动下载
  • 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启

ESP32-S3-AMOLED-1.91-study-15.png


使用IDF 示例程序

下文以使用“ESP32-S3-LCD-1.47-Demo”为例介绍工程的两种打开方式及使用的一般步骤、ESP-IDF工程项目详解,若使用其他工程,操作步骤类推。

软件内部打开

  • 打开 VScode 软件,选择文件夹打开示例

ESP32-S3-AMOLED-1.91-study-16.png

  • 选择提供的 ESP-IDF 下的示例,点击选择文件(位于 示例程序/Demo/ESP-IDF 路径下)

ESP32-S3-AMOLED-1.91-study-17.png


软件外部打开

  • 正确选择工程目录,打开工程,否则会影响后续程序编译烧录

ESP32-S3-AMOLED-1.91-study-18.png

  • 连接设备后,选择好COM口和型号,点击下方编译并烧录即可实现程序控制

ESP32-S3-AMOLED-1.91-study-19.png

ESP-IDF工程项目详解

  • 组件(Component):ESP-IDF中的组件是构建应用的基本模块,每个组件通常是相对独立的代码库或库,能实现特定的功能或服务,可以被应用程序或是其他组件重复使用,类似于Python开发中的库的定义。
    • 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语言基础,引入库是通过CMakeLists.txt进行配置和定义的。
    • CmakeLists.txt的作用:ESP-IDF编译时编译工具CMake会首先通过读取工程目录的顶层CMakeLists.txt的内容来读取构建规则,识别需要编译的内容。当在CMakeLists.txt中引入了需要的组件、程序后,编译工具CMake会根据索引导入每个所需要编译的内容。编译过程如:

ESP32-P4 VSCode ESP-IDF GettingStart 240906 02.png

示例程序

Demo-flow-01.png

  • EESP32-S3-DualEye-Touch-LCD-1.28 示例程序
示例程序 基础例程说明
01_Text_Number 测试文本与数字显示
02_Shapes_on_Circular 绘制图形
03_Animated_Eye1 仿真眼睛样式
04_SD_gif_show 显示SD卡中gif图片
05_Clock 时钟
06_music_player 测试板载设备功能


01_Text_Number

【程序说明】


  • 本示例演示了在 LCD 双显示屏的文本与数字显示程序,核心实现“双屏同步显示固定文本+动态数字”的功能,循环显示从 00 到 99 的两位数数字,测试LCD屏文本以及数字显示。

【硬件连接】


  • 将开发板接入电脑

【代码分析】


  • Text_Number():主初始化函数,获取两个显示屏的活动屏幕对象并创建ui
    • 分别为两个屏幕调用create_screen_ui()创建ui界面,采用垂直布局:文本在上方,数字在下方
    • lv_timer_create(update_numbers, 1000, NULL);创建1秒间隔的定时器用于数字更新(仅创建一次)
  • update_numbers():定时器回调函数,通过定时器实现每 1000 毫秒(1 秒)调用一次update_numbers函数更新数字并刷新显示
    • (number + 1) % 100;递增数字(0-99循环)
    • lv_label_set_text()更新两个屏幕的数字标签显示

【运行效果】


  • LCD屏幕显示

01 Text Number.jpg

02_Shapes_on_Circular

【程序说明】


  • 本示例实现了在LCD显示屏上依次显示随机颜色的正方形、三角形和圆形的效果,适用于学习 ESP32 与LCD显示屏交互,依次绘制随机颜色的正方形、三角形和圆形位于屏幕中心,每隔 3 秒切换,测试图形绘制稳定性。

【硬件连接】


  • 将开发板接入电脑

【代码分析】


  • Shapes_on_Circular():主初始化函数,初始化随机数生成器,创建初始形状并启动定时器,每 3 秒切换一次形状
  • random_color():生成随机 RGB 颜色,为形状提供多样化的显示效果
    • 使用rand() % 256生成0-255范围内的RGB分量
  • create_base_shape():通用的形状创建函数,通过调整圆角程度可创建正方形和圆形
    • 创建LVGL对象并设置指定尺寸,移除默认样式,设置背景颜色、不透明度,去除边框
    • 通过radius_val参数控制圆角程度(0=直角,LV_RADIUS_CIRCLE=圆形)

【运行效果】


  • LCD屏幕显示

02 Shapes on Circular Display.jpg

03_Animated_Eye1

【程序说明】


  • 本示例是基于LVGL图形库 的双屏同步动态眼睛动画程序,实现“拟人化眼睛”的实时渲染与运动逻辑——支持两个LCD屏幕同步显示具有真实感的眼睛,且瞳孔会按随机目标平滑移动,模拟眼睛“自然扫视”的效果。

【硬件连接】


  • 将开发板接入电脑

【代码分析】


  • Animated_Eye1():程序入口,初始化和启动眼睛动画,通过创建定时器更新眼睛的动画效果。
    • 使用固定随机种子srand(12345)确保随机行为可重复
    • 创建50毫秒间隔的动画定时器lv_timer_create(eye_anim_timer, 50, NULL)
  • draw_eye():绘制眼睛的核心,按层次绘制眼睛的各个部分(从外到内),使眼睛具有真实感
    • 计算巩膜(眼白)固定中心坐标和半径(应用SCALE_FACTOR=1.5缩放)
    • 根据瞳孔位置计算虹膜实际坐标,限制在MAX_OFFSET_RATIO=0.3范围内
    • 计算瞳孔偏移:沿虹膜移动方向额外偏移PUPIL_OFFSET=6像素
    • 分层绘制:巩膜,虹膜,瞳孔,高光
  • eye_anim_timer():定时器回调函数,负责 “更新目标位置→计算瞳孔新位置→双屏同步→重绘眼睛”,实现动画效果

【运行效果】


  • LCD屏幕显示

03 Animated Eye1.jpg

04_SD_gif_show

【程序说明】


  • 本示例实现了通过检索SD卡根目录下的.gif图片,在两个LCD显示屏上同步播放动画 GIF 的功能,可通过boot按钮控制gif图片切换,测试SD卡的读取和LCD屏幕图片显示功能。

【硬件连接】


  • 将本工程目录下的.gif图片拷贝到SD卡的根目录(可根据所需更改代码与图片的路径,名称(注意:gif帧率需较低不然会卡卡的))
  • 注意:连接SD卡,若识别失败请将SD卡格式化为FAT32格式(首次识别失败请等待一会后复位下再查看)
  • 将开发板接入电脑

【代码分析】


  • Lvgl_Eyes():主初始化函数,创建双屏GIF眼睛显示系统
    • 初始化FAT文件系统lv_fs_fatfs_init()用于SD卡访问
    • 调用find_gif_files()扫描SD卡根目录下的GIF文件
    • 在两个屏幕上分别创建GIF显示对象并调用load_current_gif()加载并播放第一个GIF文件
  • eyes_next_gif():切换到下一个 gif图片。
    • 循环递增current_gif_index(到达末尾后回到第一个)

【运行效果】


  • LCD屏幕显示

04 SD gif show.jpg

05_clock

【程序说明】


  • 本示例为基于 LVGL 框架实现了一个在两个显示屏上同步显示的时钟功能,包含模拟时钟(带指针和刻度)和数字时间显示

【硬件连接】


  • 将开发板接入电脑

【代码分析】


  • Clock():主程序入口,初始化两个LCD显示屏的时钟,设置初始状态,并启动定时器实现动态更新。
    • 分别调用create_clock_elements()在两个屏幕创建时钟画布和时间标签
    • 获取当前时间并计算初始指针角度
  • get_current_time():时间获取与处理,从系统获取当前时间
  • draw_clock_ticks():时钟刻度绘制,在时钟画布上绘制 12 个刻度,其中 3、6、9、12 点为更长更宽的主刻度,其余为次要刻度
  • draw_clock():完整时钟绘制,整合刻度和指针绘制,生成完整的模拟时钟画面
    • 分别调用draw_hand()绘制三根指针

【运行效果】


  • LCD屏幕显示

05 Clock.jpg

06_music_player

【程序说明】


  • 本示例演示了板载各个设备的功能,屏幕2显示SD Card,Flash Size 等参数,屏幕1为音乐播放界面;另外,此示例增加语音识别功能。

【硬件连接】


  • 将SD卡插入开发板中
  • 将开发板接入电脑

【代码分析】


  • Driver_Init():初始化硬件、驱动和系统所需的资源,并创建一个任务来循环执行硬件驱动
    • 硬件初始化:Driver_Init()负责初始化多个硬件模块,如I2C总线、传感器等
    • 模块化设计:初始化函数将各硬件初始化分散到不同的模块,易于维护和扩展。如果有新硬件需要支持,只需在这里添加初始化代码即可
  • Lvgl_Example1():为屏幕显示UI

【运行效果】


  • LCD屏幕显示
  • LCD屏幕显示参数说明
参数 功能 说明
SD Card 显示 SD 卡的大小 连接SD卡,若识别失败请将SD卡格式化为FAT32格式(首次识别失败请等待一会后复位下再查看)
Flash Size 显示 Flash 大小 当前板载 16MB Flash
Battery Voltage 电池电压 连接电池时可检测到电池电压
Wireless scan 显示扫描到的WIFI个数 扫描结束会在末尾显示 ..OK
  • 页面 2 为播放 SD 卡根目录下的 mp3 音频的 UI 页面
  • 本程序默认启用语音识别,唤醒词为 “hi esp”,唤醒后,背光变暗后即可说出指令(背光未变暗则表示未被唤醒,识别要求较为严格,发音需要标准,语速放缓)
  • 以下提供几种格式的MIC测试音频(请注意,每次hi esp唤醒失败的话请重新将音频调至该次唤醒词播放处重新播放)
  • 请不要在使用喇叭播放音频时进行语音识别
  • 测试音频中之所以播放两次唤醒词,是由于当前固件版本首次唤醒需要聚焦设备(比喻),并且当前固件并不允许关闭该功能
// 指令
Turn on the backlight
Turn off the backlight
Backlight is brightest
Backlight is darkest
  • 注意:当前示例仅在播放音频前可使用语音识别功能

ESP32-S3-DualEye-Touch-LCD-1.28-1.jpg

切换为中/英文识别模型

环境初始状态默认为英文识别环境,按照以下步骤可切换为中文识别模型或英文识别模型

【切换为中/英文识别模型】


  • 若工程中存在以下两个文件,则删除这两个文件

ESP32-S3-Touch-LCD-1.85-demo-04.png

  • 进入文件sdkconfig.defaults,找到此处。
    • 使用 "#" 注释处则切换为英文识别模型
    • 使用 "#" 注释处则切换为中文识别模型

ESP32-S3-Touch-LCD-1.85-demo-05.png

生成语音控制指令


环境准备

  • 检查电脑是否有Python环境
  • 打开命令行:win+r ->输入cmd

①.输入 python --version 出现python版本号,则表示已安装
②.输入 where python 查看python安装位置
Python-install-04.png
C盘下的Python环境为安装VS Code时自动安装的Python环境;
E盘下是以下步骤用到的python环境

若没有安装环境请查看python环境安装教程,已安装请继续
  • 命令行输入 pip install g2p_en 安装 g2p_en 包
  • 安装资源包放在对应用户的 C:\Users\用户名\AppData\Roaming 路径下,双击解压文件
  • 命令行输入 pip install pypinyin 安装pypinyin库

生成中文拼音

  • 下载 中文指令生成文件
  • 命令行切换路径至中文指令生成文件夹下(路径因人而异,以下仅参考)
cd /d E:\download\Generate_Chinese_command
  • 命令行执行 multinet_pinyin.py 生成中文拼音
python multinet_pinyin.py "要转为拼音的中文"
例:python multinet_pinyin.py "你好微雪电子"

ESP32-S3-Touch-LCD-1.85-demo-02.png

生成英文音素

  • 下载 英文指令生成文件
  • 命令行切换路径至英文指令生成文件夹下(路径因人而异,以下仅参考)
cd /d E:\download\Generate_English_command
  • 命令行执行 gen_sr_commands.py 生成音素指令
python gen_sr_commands.py "要转为音素的英文"
例:python gen_sr_commands.py "hello waveshare"

ESP32-S3-Touch-LCD-1.85-demo-03.png

指令修改

Arduino下

ESP32-S3-Touch-LCD-1.85-demo-06.png

ESP-IDF下

  • 中文指令

ESP32-S3-Touch-LCD-1.85-demo-10.png

  • 英文指令

ESP32-S3-Touch-LCD-1.85-demo-09.png

Flash固件的烧录与擦除


  • 当前示例程序有提供测试固件,可通过直接烧录测试固件来测试板载设备功能正常与否
  • bin文件路径:
    ..\ESP32-S3-DualEye-LCD-1.28-Demo\Firmware

资料

原理图

工程图纸

ESP32-S3-DualEye-LCD-1.28 结构文件

示例程序

数据手册

ESP32-S3

软件工具

Arduino

VScode

固件烧录工具

其他资料链接

FAQ


  • 点击复位按键1秒以上,等待 PC 端重新识别到设备后再次下载
  • 可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。
  • 按住BOOT按键,重新连接USB线,USB线连好后再松开 BOOT 按键,此时模块可进入下载模式,可解决大部分无法下载的问题。


这种情况可能是由于 Flash 空白导致 USB 口不稳定,可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式烧录固件(程序)即可解决该情况。


  • 首次编译很慢属于正常情况,耐心等待即可


  • 部分AppData文件夹是默认隐藏的,可以设置为显示。
  • 英文系统:资源管理器->View->勾选“Hidden items”
  • 中文系统:文件资源管理器->查看->显示->勾选“隐藏的项目”


  • Windows系统:

①通过设备管理器查看: 按下Windows + R键打开“运行”对话框; 输入devmgmt.msc并按回车键打开设备管理器; 展开“端口(COM和LPT)”部分,这里会列出所有的COM端口及其当前状态。
②使用命令提示符查看: 打开命令提示符(CMD); 输入mode命令,这将显示所有COM端口的状态信息。
③查看硬件连接: 如果你已经连接了外部设备到COM口,通常设备会占用一个端口号,可以通过查看连接的硬件来确定使用的是哪个端口。

  • Linux系统:

①使用dmesg命令查看: 打开终端。
②使用ls命令查看: 输入ls /dev/ttyS*或ls /dev/ttyUSB*来列出所有的串口设备。
③使用setserial命令查看: 输入setserial -g /dev/ttyS*来查看所有串口设备的配置信息。


  • 此情况为没有安装SD卡或SD卡无法被识别,若出现该情况,请等待一段时间后复位设备,仍不可解决请将SD卡格式化为FAT32格式,若依旧失败请更换其他SD卡



与运行的示例相关,不同程序刷新帧率不同。



可以同时使用,不过由于音频占用内存较大,在使用音频功能时不能同时开启


MX1.25接口 3.7V锂电池


使用我们对应接口和输出电压的就可以,容量看客户需求


  • 查看原理图,针对不同开发板的Type-C接口,对应代码处理输出不同:
    • USB直出的开发板,支持printf函数打印输出,若想支持Serial函数打印输出则需要使能USB CDC On Boot功能或者HWCDC声明
    • UART转USB的开发板,支持printf函数和Serial函数打印输出,无需使能USB CDC On Boot




可以的,只是用不了有关SD卡部分的功能,其他没有影响


此类产品的屏幕与背板采用一体式贴合设计,为确保正常使用,建议避免自行拆卸或撬开胶层。若因拆解导致屏幕受损,将无法进行维修


技术支持

联系人:赵工
EMAIL:3005223819@qq.com (邮箱不常用,推荐使用QQ或微信沟通)
QQ:3005223819
微信:扫下方二维码添加
Zyj-wx.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证