ESP32-S3-LCD-1.28 是一款微雪 (Waveshare) 设计的低成本,高性能的微控制器开发板。其中板载了 1.28 英寸 LCD 屏、锂电池充电芯片、六轴传感器(三轴加速度计与三轴陀螺仪)等外设,采用的 ESP32-S3R2 是集成了低功耗 Wi-Fi 和 BLE5.0 的系统级芯片(SoC),此外还具有外部 16MB Flash 和 2MB PSRAM。Soc内部的硬件加密加速器、RNG、HMAC 和数字签名 (Digital Signature) 模块,可以满足物联网的安全要求。多种低功耗工作状态满足在物联网 (IoT)、移动设备、可穿戴电子设备、智能家居等应用场景的功耗需求。
1、ESP32-S3R2 2、W25Q128JVSIQ 3、QMI8658 4、ME6217C33M5G 5、CH343P 6、ETA6096 |
8、BOOT 按键 9、RESET 按键 10、MX1.25 电池接口 11、USB Type-C 接口 12、2.4GHz 陶瓷天线 |
ESP32-S3R2 | LCD | MX1.25 | QMI8658 | other |
GPIO0 | BOOT0 | |||
GPIO1 | ADC | |||
GPIO5 | TP_INT | |||
GPIO6 | SDA | |||
GPIO7 | SCL | |||
GPIO8 | LCD_DC | |||
GPIO9 | LCD_CS | |||
GPIO10 | LCD_CLK | |||
GPIO11 | LCD_MOSI | |||
GPIO12 | LCD_RST | |||
GPIO40 | LCD_BL | |||
GPIO47 | INT1 | |||
GPIO48 | INT2 |
LCD参数 | |||
显示芯片 | GC9A01A | 显示接口 | SPI |
分辨率 | 240(H)RGB x 240(V) | 显示尺寸 | Φ32.4mm |
显示面板 | IPS | 像素大小 | 0.135(H)x0.135(V)mm |
IMU参数 | |||
传感器名称 | QMI8658 | ||
加速度计特性 | 分辨率:16 位 量程 (可选):±2、±4、±8、±16g | ||
陀螺仪特性 | 分辨率:16 位 量程 (可选):±16、±32、±64、±128、±256、±512、 ±1024、±2048°/sec |
ESP32-S3-LCD-1.28 目前提供 Arduino IDE 和 MicroPython 两种开发工具和框架,提供了灵活的开发选择,你可以根据项目需求和个人习惯选择适合的开发工具。
Arduino IDEArduino IDE是一款便捷灵活、方便上手的开源电子原型平台。不需要太多基础,简单学习后,你也可以快速地进行开发。同时,Arduino 拥有庞大的全球用户社区,提供了海量的开源代码、项目示例和教程,还有丰富的库资源,封装了复杂功能,让开发者能快速实现各种功能。 | |
MicroPythonMicroPython是Python 3编程语言的完全实现,它可直接运行在 ESP32、Raspberry Pi Pico 等嵌入式硬件上。你可以通过REPL直接在板子上运行Python脚本,非常适合快速原型设计。 |
Arduino 和 MicroPython因其简单易学、上手快,非常适合初学者和非专业人士。
本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。
板名称 | 板安装要求 | 版本号要求 |
---|---|---|
esp32 by Espressif Systems | “离线”安装/“在线”安装 | 2.0.12 |
库名称 | 说明 | 版本 | 库安装要求 |
---|---|---|---|
LVGL | 图形库 | v8.3.10 | “离线”安装 |
TFT_eSPI | LCD库 | v2.5.34 | “离线”安装 |
TFT_eSPI_Setups | 自定义库 | -- | “离线”安装 |
File
-> New Sketch
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,点击保存
①. 点击选择下拉框选项“Select Other Board and Port”;
②. 搜索需要的开发板型号“esp32s3 dev module”并选择;
③. 选择COM口;
④. 保存选择。
①. 编译程序;②. 编译并下载程序;③. 下载成功。
示例程序 | 基础例程说明 | 依赖库 |
---|---|---|
ESP32-S3-LCD-1.28-Test | 测试板载设备功能 | --- |
LVGL_Arduino | 显示 LVGL benchmark,music 等 | LVGL,TFT_eSPI ,TFT_eSPI_Setups |
LVGL_Chinese_Font | 显示 LVGL 内置的 1000 个常用中文字体 | LVGL,TFT_eSPI ,TFT_eSPI_Setups |
LVGL_Chinese_7500_Char | 显示 LVGL内置的 7500 个中文字体 | LVGL,TFT_eSPI ,TFT_eSPI_Setups |
【程序说明】
【硬件连接】
【代码分析】
Paint_Clear(WHITE)
清除图像缓存,然后重新绘制图形并显示传感器数据和 ADC 转换后的电压值【运行效果】
【程序说明】
【硬件连接】
【代码分析】
w
和高度 h
,通过获取传入的显示区域的坐标差值并加 1 得到 tft.startWrite()
开始向 TFT 显示屏写入数据,然后使用 tft.setAddrWindow
设置 TFT 显示屏的显示区域为传入的 area
指定的区域 tft.pushColors
将颜色数据(指向 color_p
的颜色数据转换为 uint16_t
类型)推送到 TFT 显示屏上进行显示,其中参数 w * h
表示要推送的像素数量,true
表示在推送完成后进行数据传输的结束操作 lv_disp_flush_ready(disp_drv)
通知 LVGL 刷新完成,以便 LVGL 可以进行后续的操作my_disp_flush
函数注册为 LVGL 的刷新回调函数test1_240_240_4
example_increase_reboot
函数【运行效果】
【程序说明】
【硬件连接】
【代码分析】
tft.startWrite()
、tft.setAddrWindow()
和tft.pushColors()
来将 LVGL 中的颜色数据color_p写入到 TFT 显示屏的特定区域lv_disp_flush_ready()
通知 LVGL 刷新完成【运行效果】
【程序说明】
【硬件连接】
【代码分析】
tft
和触摸传感器touch
,包括设置显示屏的旋转方向和可能的触摸校准数据draw_buf
和显示驱动disp_drv
,设置显示分辨率、刷新回调函数等,并将显示驱动注册到 LVGLindev_drv
,设置为指针类型并指定触摸读取回调函数,然后注册输入设备驱动label
,设置文本字体、文本内容(支持颜色重绘),并将其居中显示在屏幕上lv_timer_handler()
函数,让 LVGL 图形库处理其内部的定时任务和事件delay(5)
函数引入一个小的延迟,避免程序过度占用 CPU 资源【运行效果】
本节围绕 MicroPython 开发环境搭建展开,主要涉及烧录固件以及安装和 Thonny。对于安装 Thonny 部分,详细阐述了其安装步骤与使用说明,为开发者构建 MicroPython 开发环境提供全面且清晰的指导。
...\ESP32-S3-LCD-1.28-Demo\Firmware\MicroPython-bin
示例程序 | 基础例程说明 |
---|---|
alien.py | 随机显示 “alien.jpg” 图像 |
bitarray.py | 创建并展示多个随机位置的 “吃豆人” 精灵动画 |
hello.py | 随机显示不同颜色的 “Hello!” 文本,并且可以通过循环切换不同的旋转角度 |
hershey.py | 循环展示不同的问候语 |
jpg.py | 轮流显示两张 JPEG 图片 |
noto_fonts.py | 展示三种不同字体的名称 |
pbitmap.py | 显示一个预编译的位图图像 |
rotation.py | 循环展示不同旋转值下的文本显示效果 |
scroll.py | 在显示屏上实现字符的平滑滚动显示 |
【程序说明】
【硬件连接】
【代码分析】
spi_interface
:建立与显示屏的 SPI 通信width
和height
:设置显示屏分辨率reset_pin
:连接显示屏的各种控制引脚rotation
:设置初始旋转角度【运行效果】
【程序说明】
【硬件连接】
【代码分析】
SPRITE_STEPS
范围内循环,对应精灵的不同动画帧或状态tft.map_bitarray_to_rgb565
函数根据精灵的当前步数从SPRITE_BITMAPS
中选取位图数据,将其转换为 RGB565 格式的缓冲区sprite
。同时,指定了精灵的宽度以及前景色和背景色tft.blit_buffer
函数将转换后的缓冲区绘制到显示屏上特定的位置,该位置由精灵的当前坐标确定,并指定了精灵的宽度和高度【运行效果】
【程序说明】
【硬件连接】
【代码分析】
tft.text
函数在随机位置以随机颜色显示文本【运行效果】
【程序说明】
【硬件连接】
【代码分析】
【运行效果】
【程序说明】
【硬件连接】
【代码分析】
tft.jpg
函数在特定位置以较慢方式显示图片,然后等待 5 秒【运行效果】
【程序说明】
【硬件连接】
【代码分析】
【运行效果】
【程序说明】
【硬件连接】
【代码分析】
tft.pbitmap
显示预编译位图模块中的图像【运行效果】
【程序说明】
【硬件连接】
【代码分析】
【运行效果】
【程序说明】
【硬件连接】
【代码分析】
【运行效果】
...\ESP32-S3-LCD-1.28-Demo\Firmware\factory-bin
这种情况可能是由于 Flash 空白导致 USB 口不稳定,可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式烧录固件(程序)即可解决该情况。
①通过设备管理器查看: 按下Windows + R键打开“运行”对话框; 输入devmgmt.msc并按回车键打开设备管理器; 展开“端口(COM和LPT)”部分,这里会列出所有的COM端口及其当前状态。
②使用命令提示符查看: 打开命令提示符(CMD); 输入mode命令,这将显示所有COM端口的状态信息。
③查看硬件连接: 如果你已经连接了外部设备到COM口,通常设备会占用一个端口号,可以通过查看连接的硬件来确定使用的是哪个端口。
①使用dmesg命令查看: 打开终端。
②使用ls命令查看: 输入ls /dev/ttyS*或ls /dev/ttyUSB*来列出所有的串口设备。
③使用setserial命令查看: 输入setserial -g /dev/ttyS*来查看所有串口设备的配置信息。
GC9A01A
MX1.25 2P 连接器,可用于接入 3.7V电池,支持充放电
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841