ESP32+TFT 手把手教你学会黑客帝国的数字特效

嗨,各位小伙伴!今天,我们将带你探索如何在esp32开发板上制作炫酷的特效,别担心,不需要编程基础。我们将一步步学习如何使用tft屏幕以及espi库。跟着我,轻松入门,一起来搞点有趣的事情吧!
小贴士:伊娃老师的线上工作坊开课啦,要报名的快点看文章最后面!等你报名哟!
完整代码
#include tft_espi tft; //创建对象uint16_t evacolor = tft.color565(0, 0, 0); //rgb/*int dropy = 0; //文字的yint dropx = random(0, tft.width()); //文字的x ,random(最小值,最大值),从最小值跟最大值取一个随机数char randomc = char(random(32, 126)); //随机打印ascii 32-126可显示的字符内容int dropspeed = random(1, 5); //随机速度1-5*/const int maxdrops = 300; // 最大雨滴数量int dropx[maxdrops]; // 雨滴的x坐标int dropy[maxdrops]; // 雨滴的y坐标char randomc[maxdrops]; // 雨滴显示的字符int dropspeed[maxdrops]; // 雨滴的下落速度void setup() { //开机执行一次的代码,一般会放初始化的设定值 // put your setup code here, to run once: tft.init(); //初始化屏幕 tft.setrotation(0); //屏幕旋转方向 tft.fillscreen(evacolor); //屏幕底色 tft.settextsize(1); //文本大小 tft.settextcolor(tft_darkgreen); //文字深绿色 // tft.setcursor(10,10);//设置打印文字位置 // tft.println(test eva);//打印文字 randomseed(analogread(0)); // 使用模拟引脚0的值作为随机种子 for (int i = 0; i tft.height()) { //判断y的位置,如果到底就回到顶点,实现循环掉落 dropy = 0; dropx = random(0, tft.width()); randomc = char(random(32, 126)); }*/ for (int i = 0; i tft.height()) { //判断y的位置,如果到底就回到顶点,实现循环掉落 dropy[i] = -random(0, tft.height()); dropx[i] = random(0, tft.width()); randomc[i] = char(random(32, 126)); } } delay(100); //延迟100毫秒,0.1秒} 作者:伊娃老师来了 https://www.bilibili.com/read/cv24030296/?spm_id_from=333.999.0.0 出处:bilibili  
步骤 1: 创建新的arduino项目 首先,打开arduino ide,点击项目,然后选择导入库。在搜索框中输入tft espi,选择并导入这个库。没接触过库?别担心,之前的教程有介绍。
步骤 2: 引入tft库
在你的代码中加入以下一行:
#include
步骤 3: 屏幕控制
tft库提供了一堆有用的函数,比如:
tft.init() - 初始化屏幕
tft.setrotation(0) - 设置屏幕旋转
tft.fillscreen(tft_black) - 设置背景颜色为黑色
tft.settextsize(2) - 设置文本大小
tft.settextcolor(tft_green) - 设置文本颜色
想要更多颜色?不妨查查tft库文档或arduino库中的tft espi。它预定义了一些常用颜色,用名字直接引用。不过,要是记不住这些名字,也可以自己创建颜色变量,用tft.color565(r, g, b)方式调用。
步骤 4: 数学与逻辑
做任何项目,都要先把核心功能搞定,然后再慢慢添加特效,避免出现问题。本次特效,核心是文本显示,然后让文本垂直下落,再加入随机性。最后,加点速度随机化。
步骤 5: 文本下落
显示文本其实是把文本从屏幕顶部向底部逐渐打印。每次打印前,先清空屏幕,这样文本下落时不会留下痕迹。
用tft.fillscreen(tft_black)把屏幕弄成黑色,然后用循环不停更新文本的y坐标。当y坐标超出屏幕底部,重新设置到顶部,实现循环效果。
步骤 6: 随机下落
搞点创意,让文本从随机位置开始下落。使用random()函数生成随机的x坐标。不要忘了用randomseed(analogread(0))设置随机数生成器的种子,确保每次运行都有不同的随机性。
步骤 7: 组合多个效果
为了更多特效,不用复制黏贴相同的代码,用数组列表管理它们。通过循环,为每个特效定义不同的参数,一次性更新它们。需要多个特效?只需扩展数组的长度,再多次粘贴代码。
下一期教程中,我们将深入研究更多编程概念和技巧,希望你会继续学习。喜欢这篇文章吗?记得点赞,分享给其他小伙伴。
如果你想跟着伊娃老师一起玩esp32,千万不要错过伊娃老师的线上工作坊哦!微信扫码报名!


NAND flash文件系统JFFS和YAFFS比较
国内陆芯划片机:晶圆加工第七篇—如何对半导体芯片进行测试
创想三维光固化3D打印机 让你在家实现手办自由
小米即将发布的小米8青春版确认用渐变色
嵌入式工程师如何玩转GitHub
ESP32+TFT 手把手教你学会黑客帝国的数字特效
葡萄牙光伏发电量成功突破了1GW大关
IBM用人工智能研发香水 AI真的能有创造力?
基于使用Atmega328P和ULN2003步进驱动器制造绘图仪机器人
如何用R处理进行数据清洗
合理运用智能型断路器,让家庭用电更加安全可靠
工业互联网将如何为制造业转型升级赋能
新型隔离式ADC架构在电力监测方面的应用
优步科技即将发布的重要技术Uber Elevate在巴基斯坦具有发展潜力
康普开发简化的光纤平台帮助数据中心进行多次网络升级
华硕ROGSTRIXGTX1660TiO6GGAMING高清拆解图赏
压敏电阻有没有正负极 如何判断压敏电阻器的好坏?
传感器M12分配器的特点、优势及应用
NVIDIA AI平台为大型语言模型带来巨大收益
半导体碳化硅(SiC)行业研究