当前位置: 首页 > web >正文

基于 ESP32 和 GC9D01 0.71寸TFT屏幕的逼真眼睛与写轮眼动态显示

近期,我利用 ESP32 和 GC9D01 0.71’'TFT 进行了一次有趣的显示项目开发,成功实现了在该小尺寸屏幕上绘制逼真眼睛和写轮眼的效果。

硬件准备

  • 主控板 :ESP32,具备强大的处理能力和丰富的接口资源,能够高效地处理图像数据并与 TFT 屏幕通信。
  • 显示屏 :GC9D01 0.71’'TFT,小巧玲珑但显示效果出色,色彩鲜艳且响应速度快,非常适合进行各种图形绘制和动画展示。

软件环境

  • 开发 IDE :Arduino,其简洁易用的界面和丰富的库支持,方便快速编写和上传代码到 ESP32 进行调试和运行。

软件准备

  • 在 Arduino 的 “TFT_eSPI” 库中,根据实际硬件连接情况,修改 “User_Setup.h” 文件中的引脚定义,具体如下:
#define TFT_MOSI 15 // 在一些显示驱动板上,可能被标记为 "SDA" 等
#define TFT_SCLK 14
#define TFT_CS   5  // 芯片选择控制引脚
#define TFT_DC   27  // 数据命令控制引脚
#define TFT_RST  33  // 复位引脚(也可连接到 Arduino 的复位引脚)
#define TFT_BL   22  // LED 背光引脚

同时还需要配置下屏幕的分辨率,对于GC9D01 0.71’'TFT分辨率是160*160。

#define TFT_WIDTH  160
#define TFT_HEIGHT 160

当前发现最新的包TFT_eSPI暂时还没有适配GC9D01驱动,如果发现使用的包确实没针对GC9D01驱动的适配,需要单独手动适配下。
确认路径:Arduino\libraries\TFT_eSPI\User_Setup.h

// Only define one driver, the other ones must be commented out
// #define ILI9341_DRIVER
//#define ILI9341_2_DRIVER
//#define ST7735_DRIVER
//#define ILI9163_DRIVER
//#define S6D02A1_DRIVER
//#define RPI_ILI9486_DRIVER
//#define HX8357D_DRIVER
//#define ILI9481_DRIVER
//#define ILI9486_DRIVER
//#define ILI9488_DRIVER
//#define ST7789_DRIVER
//#define ST7789_2_DRIVER
//#define R61581_DRIVER
//#define RM68140_DRIVER
//#define ST7796_DRIVER
//#define SSD1351_DRIVER
//#define SSD1963_480_DRIVER
//#define SSD1963_800_DRIVER
//#define SSD1963_800ALT_DRIVER
//#define ILI9225_DRIVER
// #define GC9A01_DRIVER
#define GC9D01_DRIVER  // (GC9D01驱动,如果没有则需要手动适配 )

适配所需文件:见上传资源
适配路径:Arduino\libraries\TFT_eSPI\TFT_Drivers

源码实现

绑定资源中包含绘制逼真眼睛和写轮眼代码以及;TFT_eSPI\TFT_Drivers中GC9D01驱动的适配。
眼睛转动+写轮眼.zip
提取码: 5fw9

实验展示【动图非静止画面】

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

通过上述硬件连接和代码实现,当程序运行后,在 GC9D01 0.71’'TFT 屏幕上成功展示了逼真眼睛和写轮眼的效果。眼睛的色彩鲜艳、层次分明,写轮眼的勾玉图案清晰可见,展现了 ESP32 和 GC9D01 TFT 在图形绘制方面的强大能力,为小型显示设备上的创意图形展示提供了良好的范例。
参考ESP32C3+GC9D01

http://www.xdnf.cn/news/3851.html

相关文章:

  • Spring Boot Jpa封装快速构建Specification、OrderBy、Pageable的查询条件
  • 【Python】一直没搞懂生成器是什么。。
  • 【25软考网工】第五章(5)ICMP和ICMPv6、NDP、IP组播技术和MPLS
  • JavaScript基础-分支流程控制
  • strstr()和strpbrk()函数的区别
  • 学习黑客开源情报
  • Go语言接口实现面对对象的三大特征
  • 基于大模型的隐睾(睾丸可触及)预测及临床干预策略研究报告
  • spring中的@Profile注解详解
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】2.3 窗口函数与高级聚合(ROW_NUMBER()/RANK()/SUM() OVER())
  • 民法学学习笔记(个人向) Part.3
  • Python 库 petrel_client.client 浅入浅出
  • 【CISCO】什么是静态路由(Static Route)?ip route 192.0.1.0 255.255.255.0 200.0.0.1
  • 一周学会Pandas2 Python数据处理与分析-Pandas2复杂数据查询操作
  • 【前端】【面试】在 Nuxt.js SSR/SSG 应用开发的 SEO 优化方面,你采取了哪些具体措施来提高页面在搜索引擎中的排名?
  • NPP库中libnppist模块介绍
  • 利用flask设计接口
  • 学习黑客 week1周测 复盘
  • AIDC智算中心建设:计算力核心技术解析
  • 0.0973585?探究ts_rank的score为什么这么低
  • Spring AI 实战:第十章、Spring AI RAG之博学多才
  • 构建“设备数据抽取 + 可视化”华为云rest、soap、roma和自定义的这些连接器类型和作用说明
  • 【人工智能学习笔记 二】 MCP 和 Function Calling的区别与联系
  • OpenCV入门指南:从环境搭建到第一个图像处理程序
  • ios systeam introduction
  • 机器学习和深度学习的对比
  • 科普简洁版:同态加密——密码学的未来瑰宝
  • 五一作业-day01
  • STM32Cube-FreeRTOS任务管理工具函数-笔记
  • 【QT】QT中的网络编程(TCP 和 UDP通信)