ESP32-S3-Touch-LCD-1.28 V2
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品简介
ESP32-S3-Touch-LCD-1.28(以下统称开发板) 是一款微雪 (Waveshare) 设计的低成本,高性能的微控制器开发板。其中板载了 1.28 英寸电容触摸 LCD 屏、锂电池充电芯片、六轴传感器(三轴加速度计与三轴陀螺仪)等外设,采用的 ESP32-S3R2 是集成了低功耗 Wi-Fi 和 BLE 5.0 的系统级芯片(SoC),此外还具有外部 16MB Flash 和 2MB PSRAM。Soc内部的硬件加密加速器、RNG、HMAC 和数字签名 (Digital Signature) 模块,可以满足物联网的安全要求。多种低功耗工作状态满足在物联网 (IoT)、移动设备、可穿戴电子设备、智能家居等应用场景的功耗需求。
产品特性
- 搭载高性能 Xtensa® 32 位 LX7 双核处理器,主频高达 240 MHz
- 支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth® 5 (LE),板载天线
- 内置 512KB 的 SRAM 和 384KB ROM,叠封 2MB PSRAM 和外接 16MB Flash
- 采用 Type-C 接口,紧跟时代潮流,无需纠结正反插
- 板载 1.28 英寸电容触摸 LCD 屏,240×240 分辨率,65K 彩色
- 板载 QMI8658 六轴惯性测量单元 (3 轴加速度、3 轴陀螺仪),可检测运动姿态
- 板载 3.7V 锂电池充放电接口和引出 6 个 GPIO 的 SH1.0 连接器
- 支持灵活时钟,模块电源单独设置等精准控制,实现多场景低功耗模式
- 集成 USB 串口全速控制器,GPIO 可灵活配置外设功能
产品参数
LCD参数 | |||
触摸芯片 | CST816S | 触摸接口 | I2C |
显示芯片 | 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 |
硬件说明
接口说明
- Type-C 接口 : 开发板使用CH343P芯片进行USB转UART,连接ESP32-S3的UART_TXD(GPIO43)和UART_RXD(GPIO44),用于固件烧录和日志打印。搭配自动下载电路,接上Type-C线缆后可直接下载固件。
- SH1.0 连接器 : 开发板引出6个GPIO用于外部连接,GPIO可配置成I2C、SPI等外设功能,VSYS可直接输入5V为开发板供电。
- LCD 接口 : 开发板板载4线 SPI 通信的 1.28 寸屏幕,SPI速率可提升至80MHz,触摸使用 I2C 通信(开发板使用 GPIO2 控制背光亮度,另外引出两个 MOS 管控制开关触点在电池座子周边,分别连接GPIO4,GPIO5,可自行焊接小电流设备如震动电机等,详情请查阅原理图)
- I2C 接口 : ESP32-S3提供多路硬件I2C,目前使用GPIO6(SDA)和GPIO7(SCL)引脚做I2C总线。挂载板上QMI8658六轴惯性测量单元和LCD触摸控制芯片,详情请查阅原理图
- MX1.25连接器 : 开发板的 GPIO1 用于测量电池电压引脚,电池电压使用 200K 和 100K 串联分压连接到 GPIO1, ESP32-S3 系列有 2 路 12Bit SAR ADC 测量单元,源码中转换成电压公式是 3.3 / (1<<12) * 3 * AD_Value
ESP32-S3R2 | LCD | SH1.0 | MX1.25 | QMI8658 | other |
GPIO0 | BOOT0 | ||||
GPIO1 | ADC | ||||
GPIO2 | LCD_BL | ||||
GPIO3 | INT2 | ||||
GPIO4 | INT1 | MOSFET1_CS | |||
GPIO5 | TP_INT | MOSFET2_CS | |||
GPIO6 | TP_SDA | SDA | |||
GPIO7 | TP_SCL | SCL | |||
GPIO8 | LCD_DC | ||||
GPIO9 | LCD_CS | ||||
GPIO10 | LCD_CLK | ||||
GPIO11 | LCD_MOSI | ||||
GPIO12 | LCD_MISO | ||||
GPIO13 | TP_RST | ||||
GPIO14 | LCD_RST | ||||
GPIO15 | GPIO15 | ||||
GPIO16 | GPIO16 | ||||
GPIO17 | GPIO17 | ||||
GPIO18 | GPIO18 | ||||
GPIO19 | |||||
GPIO20 | |||||
GPIO21 | GPIO21 | ||||
GPIO33 | GPIO33 |
产品尺寸
环境说明
Arduino开发
Arduino 开发环境是一个为 Arduino 硬件平台量身打造的集成开发环境。它具备直观的图形界面,即使是编程新手也能轻松上手,其使用的编程语言类似 C/C++ 但语法更为简化。Arduino 开发板有多种型号,可满足不同项目需求,且能与各种传感器、执行器和扩展模块便捷连接。同时,Arduino 拥有庞大的全球用户社区,提供了海量的开源代码、项目示例和教程,还有丰富的库资源,封装了复杂功能,让开发者能快速实现各种功能,并且具有跨平台性,可在 Windows、macOS 和 Linux 等多个操作系统上运行。
MicroPython开发
MicroPython 是在微控制器上运行的 Python 实现。它充分发挥了 Python 简洁易读的语法优势,开发效率高,用少量代码就能实现复杂功能,如在 ESP8266 和 ESP32 等芯片上可轻松实现物联网应用。通常使用文本编辑器配合特定插件进行开发,插件提供代码高亮、自动补全、远程调试等功能。MicroPython 为学生和初学者提供了很好的入门途径,让他们在熟悉的语言环境中学习嵌入式开发。
准备事项
- Windows 10 以上电脑
- ESP32-S3-Touch-LCD-1.28开发板及其配件
- USB 读卡器以及 SD 卡
注意事项
- 圆形触摸屏的边缘,触摸灵敏和准确度会有所下降,这是正常的,圆形结构的触摸屏都会有这种情况
- 开发板使用时注意陶瓷天线区域,避免PCB板,金属,塑料件盖住陶瓷天线
- 板载高效充放电管理芯片 ETA6096 和 MX1.25 电池接口,目前设置充电电流为 1A,用户可自行更换 R15 电阻更改充电电流,接入 3.7V 单节锂电池,详情请查阅原理图,接入容量合适的 3.7V 单节锂电池
- 环境搭建时请注意使用提供的库文件与特定的ESP32固件版本
尊敬的用户:
在您开始操作之前,我们建议您先浏览目录,以便快速了解文档结构。同时,为了确保您能够顺利进行操作,我们建议您仔细阅读FAQ(常见问题解答),以便对可能遇到的问题有所准备。
为了方便您的使用,文档中所需的所有资料均已以超链接形式提供,您可以直接点击下载。此外,所有资料的汇总链接也已放置在文档末尾,供您参考。
Arduino开发
环境搭建
本节涵盖 Arduino 环境搭建步骤,包括下载安装 Arduino、安装 ESP32 开发板及库,还提供更多学习链接,为用户深入学习和使用 Arduino 提供了全面的指导。
下载和安装Arduino
- 打开官网软件下载页面,选择对应的系统和系统位数下载
- 可以选择直接下载,也可以选择捐赠并下载
- 运行安装程序,全部默认安装即可
安装ESP32开发板
本节详细介绍了 ESP32 开发板的两种安装方式:在线安装和离线安装。用户可根据自身的网络环境、安全需求和开发场景来选择合适的安装方法。
安装说明
- 安装版本
- 2.0.12
安装步骤
离线安装
- 下载离线包esp32_packages2.0.12_arduinome.exe 后双击安装,安装路径如下
C:\Users\{用户名}\AppData\Local\Arduino15\Packages
若之前在线安装失败,请删除掉此路径下的 esp32 文件夹 - 重启 Arduino IDE,离线包安装完成
在线安装
- 在 File->Preferences 下 Settings 界面的 Additional boards manager URLs 处填写下面链接后保存
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- 在 Board Manager 中搜索 esp32 ,选择2.0.12版本进行安装,下载安装完成后重启 Arduino IDE 生效
安装库
本节对示例程序中所用到的库文件进行了简要说明,并提供了库安装的详细步骤。
库文件说明
- TFT_eSPI_Setups 库
- 设置显示屏分辨率与颜色深度,满足不同显示需求。
- 配置通信接口和引脚连接,适配多种硬件。
- 初始化显示模式和效果,提升视觉体验。
- TFT_eSPI 库
- 能精确设置显示屏分辨率,让图像清晰呈现。调整颜色深度,丰富色彩表现。
- 方便配置通信接口和引脚连接,确保稳定数据传输。
- 可初始化显示模式,如横屏竖屏切换。优化显示效果,如调节亮度对比度。
- LVGL库
- 可设置不同的显示分辨率,适应各类屏幕尺寸。调整颜色模式,呈现丰富视觉效果。
- 能够适配多种通信接口,方便与不同硬件连接。灵活配置引脚,实现高效交互。
- 可初始化多种显示模式,满足不同应用场景需求。优化显示效果,如增强对比度、调整亮度等,提升用户体验。
库安装步骤
- TFT_SPI,lvgl 库安装后需要配置文件,建议直接将Esp32-s3-touch-lcd-lib中的 TFT_eSPI_Setups,TFT_eSPI,lvgl 文件夹复制到库文件目录下,库文件路径如下
C:\Users\{用户名}\Documents\Arduino\libraries
注意:在库安装环节,若 Arduino 目录下无 “libraries” 文件夹,需新建该文件夹并确保命名正确,后续库文件将存于此。
Demo功能测试
本节详述了 Arduino 例程和 Demo 的功能测试步骤,对各示例程序先进行功能阐释,强调测试前了解功能特性的重要性,同时提供了测试结果。
Arduino 例程
- 选择例程,以获取芯片 ID 的例程为例进行说明
- 选择 ESP32S3 Dev Module 作为我们的开发板
- 选择端口号时,此处选定 ESP32-S3 USB 口对应的 COM12 端口
需注意,每个人的端口号各不相同,应选择与自己设备对应的正确端口号 - 点击下载按键,此时系统会自动进行编译并下载操作
若下载失败,请按住 boot 键,对设备重新上电后松开 boot 键,随后再次进行下载 - 下载完成后打开串口监视器,通过串口监视器能够看到循环输出的芯片 ID
- 注意:此示例不能点亮LCD屏幕
esp32-s3-touch-lcd-1.28-demo
esp32-s3-touch-lcd-1.28-demo 示例,用于测试屏幕、六轴传感器、BAT、触摸屏的使用
- 以下是该例程效果:
上电后,屏幕先间隔2秒显示白,红,绿,蓝四种颜色,检查屏幕有无漏光和黑点,若屏幕太快未看清,请按 RESET 按键重新复位开始 a.接着进入传感器测试环节,颜色显示完毕后,将会在屏幕上显示传感器数据,ACC_X、ACC_Y 和 ACC_Z 数值随着设备角度偏转会随之变化,GYR_X ,GYR_Y ,GYR_Z 数值会随着设备移动加速度的变化随之变化 b.此时接上3.7V锂电池,正常情况下,BAT(V)数值会降低 c.检查传感器后,长按红色区域“LongPress Quit”进入触摸测试环节,在 Touch test 的白色区域触摸打点程序
Arduino_LVGL
Arduino_LVGL 示例,用于显示 LVGL benchmark,music 等,LVGL 的具体开发请参考LVGL开发文档
- LVGL库中用于显示刷新的回调函数,负责将LVGL的绘图缓冲区的内容刷新到TFT LCD上
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p ) 参数: lv_disp_drv_t *disp_drv:LVGL: 提供的显示驱动结构体指针,包含了与显示相关的信息和函数指针。在这个函数中,用于向 LVGL 通知刷新完成 const lv_area_t *area:LVGL : 定义的区域结构体指针,表示需要刷新的区域。这个区域是相对于整个显示屏幕的一个矩形区域 lv_color_t *color_p:LVGL : 定义的颜色结构体指针,表示要在刷新区域内显示的颜色数据。在这个函数中,通过将这些颜色数据写入 TFT 缓冲区,完成绘制
- 定时器的回调函数,通过调用 LVGL 函数 lv_tick_inc 来通知 LVGL 过去的时间,以便 LVGL 能够更新其内部的时间状态,处理与时间相关的任务,例如动画、定时器等。例子中,它每隔 EXAMPLE_LVGL_TICK_PERIOD_MS 毫秒就调用一次
void example_increase_lvgl_tick(void *arg)
- 定时器的回调函数,其中计数器 count,每次调用就将计数器加一,在计数达到一定值时触发一个操作,这里是模拟在 30 次定时器触发后执行重启操作,具体的行为可以根据需要进行调整
void example_increase_reboot(void *arg)
- LVGL库中的输入设备读取回调函数,用于处理触摸屏的输入事件
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data ) 参数: lv_indev_drv_t *indev_drv: LVGL 中的输入设备驱动结构体指针。该结构体包含了有关输入设备的信息和回调函数 lv_indev_data_t *data : LVGL 中的输入设备数据结构体指针。该结构体用于存储输入设备的状态和数据,包括当前的触摸状态(按下或释放)以及触摸点的坐标
- 若屏幕点亮失败。请查看 板载参数设置是否正确
- 若屏幕点亮失败。请查看 ESP32 固件版本是否处于 2.0.12 版本
Arduino_Chinese_Font
- Arduino_Chinese_Font 示例,用于显示 LVGL 内置的 1000 个常用中文字体
- 若屏幕点亮失败。请查看 板载参数设置是否正确
- 若屏幕点亮失败。请查看 ESP32 固件版本是否处于 2.0.12 版本
Arduino_Chinese_7500_Char
- Arduino_Chinese_7500_Char 示例,用于显示 LVGL 的 7500 个中文字体,字体文件较大,下载固件时间比较长
- 若屏幕点亮失败。请查看 板载参数设置是否正确
- 若屏幕点亮失败。请查看 ESP32 固件版本是否处于 2.0.12 版本
MicroPython开发
环境搭建
本节围绕 MicroPython 开发环境搭建展开,主要涉及烧录固件以及安装 Thonny。对于安装 Thonny 部分,详细阐述了其安装步骤与使用说明,为开发者构建 MicroPython 开发环境提供全面且清晰的指导。
烧录固件
目前开发板使用定制的固件进行开发,打开flash_download_tool_3.9.5下载固件工具,固件在示例程序中,固件制作来自链接,固件合并成单个文件,注意下载地址是0x0位置
- ESP32-S3-Touch-LCD-1.28连接电脑后,长按BOOT按键,单击RESET按键后松开BOOT按键,使其进入Download Mode
- 选择芯片:ESP32-S3,下载模式:USB
- 选择下载文件S3-Touch-LCD-1.28-MPY.bin,下载地址是0x0位置
- COM选择ESP32-S3-Touch-LCD-1.28的COM,点击START进行烧录,等待烧录完成
安装Thonny
Thonny安装步骤
- 打开Thonny官网
- 选择对应的系统和版本,以windows64位为例,鼠标要移动到windows处,才会显示对应的信息,点击下载安装
- 其余默认安装即可
Thonny使用说明
- 下载安装最新 Thonny IDE后,打开Thonny IDE -> Configure interpreter...,如下图所示
- 选择ESP32与选择对应的COM口
- 点击该按钮,可看到shell中输出语句,则说明开发板固件成功使用
- 如何找到您想要的示例程序,如果最开始没有files这一栏,我们可以在view里面找到。
Demo功能测试
本节详述了Demo 的功能测试步骤,对各示例程序先进行功能阐释,强调测试前了解功能特性的重要性,同时提供了测试结果。
运行例程
- 我们需要下载MPY下的所有文件,选择文件,鼠标右键,找到"upload to/",就可以下载了
- 以下是全部下载完成的界面
- 选择.py后缀的文件,点击绿色按钮烧录运行(运行图置于后文。其中,bluenarble.py、cst816.py、cst816_example.py 这几个文件较为特别。请将下面几点全部看完之后,再尝试自行烧录。)
- 运行另一份文件时要先点击红色stop按钮,这样另一份文件才能正常运行
- bluenarble.py存放的是图片,cst816.py存的是触控板实现操作的函数,运行无现象
- cst816_example.py运行之后,触摸屏幕,会打印相应坐标
运行图
- 从左至右依次为:alien.py,bitarray.py,hello.py
- 从左至右依次为:hershey.py,jpg.py,noto_fonts.py
- 从左至右依次为:pbitmap.py,rotation.py,scroll.py
资料
文档
程序
软件
数据手册
FAQ
GC9A01A
长按boot键后连接设备后 再松开boot键
{{{5}}}