基于 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.mzph.cn/news/904144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode58_最后一个单词的长度

LeetCode58_最后一个单词的长度 标签:#字符串Ⅰ. 题目Ⅱ. 示例 0. 个人方法 标签:#字符串 Ⅰ. 题目 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、…

论文阅读:MAXIM Multi-Axis MLP for Image Processing

这是 2022 CVPR 上的一篇文章,介绍了用 MLP 做 low-level 图像处理的工作 Abstract 近年来,Transformer 和多层感知机(MLP)模型的发展为计算机视觉任务提供了新的网络架构设计。尽管这些模型在图像识别等许多视觉任务中已被证明…

PostgreSQL初试

文章目录 1 PostgreSQL 简介2 PostgreSQL 与 MySQL 的区别3 PostgreSQL 的安装1_Linux部署2_容器化部署 4 PostgreSQL的配置1_远程连接配置2_配置数据库的日志3_设置数据库密码 5 PostgreSQL 基本操作1_用户操作2_权限操作3_创建一个自己的用户4_差异补充 6 安装图形化界面1_使…

Fortran语言,do-end do循环,相互包含测试,自动性能优化

1)上代码 !$omp parallel private(n, j, dx, dy, dz, r, a)do n 1, nsteps!$omp dodo i 0, nparticles - 1x_tmp(i) x(i) vx(i) * dty_tmp(i) y(i) vy(i) * dtz_tmp(i) z(i) vz(i) * dtdo j 0, nparticles - 1dx x(j) - x(i)dy y(j) - y(i)dz z(j) - z(…

Cona编译问题

问题描述 Clion 使用conan插件配置了C工程,然后想通过命令行进行编译执行。 出现以下错误 CMake Error at /usr/local/Cellar/cmake/3.30.1/share/cmake/Modules/CMakeDetermineSystem.cmake:152 (message):Could not find toolchain file: conan_toolchain.cmake…

Qt实现 hello world + 内存泄漏(5)

文章目录 实现hello world的两种方式通过图形化的方式通过纯代码的方式1. 新老头文件的说明2.堆或栈上创建对象的选择3.QString的说明 内存泄漏问题 实现hello world的两种方式 通过图形化的方式 通过图形化的方式,在界面上创建出一个控件,显示出hello …

【翻译、转载】【译文】模型上下文协议(Model Context Protocol, MCP)简介

原文地址: https://michaelwapp.medium.com/model-context-protocol-mcp-an-introduction-guide-25736f3dd672 在人工智能和 AI 驱动应用日新月异的格局中,一种与大型语言模型(LLM)交互的新方式正在兴起。随着 AI 智能体&#x…

[方法论]软件工程中的软件架构设计:从理论到实践的深度解析

文章目录 软件架构设计:从理论到实践的深度解析引言一、软件架构设计的核心目标体系1.1 质量属性矩阵1.2 架构权衡艺术 二、架构设计方法论演进2.1 传统设计范式2.2 现代架构方法论2.3 设计模式演化路径 三、主流架构风格全景图3.1 单体架构(Monolithic&…

【win11 】win11 键盘测试

我的键盘是支持mac和win的,fn tab 就能切换,有可能是用错了模式,导致 我alt a 就会弹出 win11的 wifi 等菜单控制 键盘测试网站 https://keyboard.bmcx.com/ 识别到我按下的是alt

Linux环境部署iview-admin项目

环境:阿里云服务 系统:CentOS7.X系统 1、下载源码安装包 wget https://nodejs.org/dist/v14.17.3/node-v14.17.3-linux-x64.tar.xz2、解压并放入指定目录 tar -xf node-v14.17.3-linux-x64.tar.xz && mv node-v14.17.3-linux-x64 /usr/local/no…

VSCode常用插件推荐

文章目录 VSCode常用插件推荐1 Git相关插件2 代码格式3 AI工具4 语言插件通用工具参考 VSCode常用插件推荐 1 Git相关插件 2 代码格式 3 AI工具 4 语言插件 通用工具 参考 50 个 VSCode 必装插件推荐 https://mp.weixin.qq.com/s/b_OKvg3hdavtnv7pbWcKWg

【Unity】使用XLua进行热修复

准备工作: (1)将XLua的Tool拖入Asset (2)配置热修复 (3)运行Genrate Code (4)运行Hotfix Inject In Editor 编写脚本(注意类上带有[Hotfix]) [Hot…

javaEE——单例模式

目录 前言1.概念2. 实现3. 比较和改进总结 前言 本篇文章来介绍单例模式,并讲述在保证线程安全的前提下,单例模式的写法。 1.概念 单例模式是一种设计模式,可以说是写代码的一种模板,如果在一些固定的场景下按照设计模式进行写…

TS 对象类型

给对象添加类型注解 ![在这里插入图片描述(https://i-blog.csdnimg.cn/direct/6c413992c11142d88106633ec442b905.png) 格式:数据类型名:类型别名 注意:对象类型限制使用分号,如果对象中存在方法就写成:方法(&#x…

C++类_虚基类

在 C 里,虚基类是用来解决菱形继承问题的。菱形继承问题是指当一个派生类从两个或更多基类派生,而这些基类又从同一个基类派生时,派生类会包含多份间接基类的数据副本,这可能会引发数据冗余和二义性问题。虚基类可以保证在派生类中…

详细案例,集成算法

以下是一个使用 随机森林(RF) 和 XGBoost 解决结构化数据分类问题的完整案例(以泰坦尼克号生存预测为例),包含数据处理、建模和结果分析: 案例:泰坦尼克号乘客生存预测 目标:根据乘客…

《C#数据结构与算法》—201线性表

线性表的实现方式 顺序表 线性表的顺序存储是指在内存中用一块地址连续的空间依次存放线性表的数据元素,用这种方式存储的线性表叫顺序表。 特点:表中相邻的数据元素在内存中存储位置也相邻。 顺序表接口实现: 方法名参数返回值描述GetLen…

深入解析C++11委托构造函数:消除冗余初始化的利器

一、传统构造函数的痛点 在C11之前,当多个构造函数需要执行相同的初始化逻辑时,开发者往往面临两难选择: class DataProcessor {std::string dataPath;bool verbose;int bufferSize; public:// 基础版本DataProcessor(const std::string&am…

LeetCode 热题 100 189. 轮转数组

LeetCode 热题 100 | 189. 轮转数组 大家好,今天我们来解决一道经典的算法题——轮转数组。这道题在LeetCode上被标记为中等难度,要求我们将数组中的元素向右轮转 k 个位置。下面我将详细讲解解题思路,并附上Python代码实现。 问题描述 给定…

GAEA商业前景和生态系统扩展

GAEA情感坐标系不仅增强了AI对人类情感的理解,也为Web3生态注入了新的活力。通过去中心化的数据存储和共享,GAEA构建了一个开放透明的数据市场,为AI训练提供了优质的数据源。同时,贡献数据的用户将获得灵魂积分(SOUL P…