那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ESP32+TFT 手把手教你學(xué)會黑客帝國的數(shù)字特效

伊娃老師來了 ? 來源:伊娃來了 ? 作者:伊娃來了 ? 2023-11-09 08:43 ? 次閱讀

嗨,各位小伙伴!今天,我們將帶你探索如何在ESP32開發(fā)板上制作炫酷的特效,別擔(dān)心,不需要編程基礎(chǔ)。我們將一步步學(xué)習(xí)如何使用TFT屏幕以及ESPI庫。跟著我,輕松入門,一起來搞點(diǎn)有趣的事情吧!

小貼士:伊娃老師的線上工作坊開課啦,要報名的快點(diǎn)看文章最后面!等你報名喲!

完整代碼

#include TFT_eSPI tft;  //創(chuàng)建對象
uint16_t evacolor = tft.color565(0, 0, 0);  //rgb/*int dropY = 0;                              //文字的Yint dropX = random(0, tft.width());         //文字的X ,random(最小值,最大值),從最小值跟最大值取一個隨機(jī)數(shù)char randomC = char(random(32, 126));       //隨機(jī)打印ASCII 32-126可顯示的字符內(nèi)容int dropSpeed = random(1, 5);               //隨機(jī)速度1-5*/
const int maxDrops = 300;  // 最大雨滴數(shù)量int dropX[maxDrops];      // 雨滴的X坐標(biāo)int dropY[maxDrops];      // 雨滴的Y坐標(biāo)char randomC[maxDrops];   // 雨滴顯示的字符int dropSpeed[maxDrops];  // 雨滴的下落速度


void setup() {  //開機(jī)執(zhí)行一次的代碼,一般會放初始化的設(shè)定值  // put your setup code here, to run once:  tft.init();                       //初始化屏幕  tft.setRotation(0);               //屏幕旋轉(zhuǎn)方向  tft.fillScreen(evacolor);         //屏幕底色  tft.setTextSize(1);               //文本大小  tft.setTextColor(TFT_DARKGREEN);  //文字深綠色                                    //  tft.setCursor(10,10);//設(shè)置打印文字位置                                    //  tft.println("TEST EVA");//打印文字  randomSeed(analogRead(0));        // 使用模擬引腳0的值作為隨機(jī)種子
  for (int i = 0; i < maxDrops; i++) {  //如果你將 for 循環(huán)放在 setup() 函數(shù)之外,即全局作用域中,會導(dǎo)致編譯錯誤。    dropX[i] = random(0, tft.width());    dropY[i] = -random(0, tft.height());    randomC[i] = char(random(32, 126));    dropSpeed[i] = random(1, 5);  }}
//顯示文字、文字掉落、隨機(jī)循環(huán)掉落、隨機(jī)文字、隨機(jī)速度//多個文字,同樣功能
void loop() {  //執(zhí)行完setup之后,循環(huán)執(zhí)行l(wèi)oop中的指令  // put your main code here, to run repeatedly:

  tft.fillScreen(evacolor);
  /*  tft.setCursor(dropX, dropY);  //設(shè)定從坐標(biāo)x:10開始,坐標(biāo)y:dropY打印  tft.println(randomC);         //打印randomC  dropY = dropY + dropSpeed;    //dropY增加dropSpeed  if (dropY > tft.height()) {  //判斷Y的位置,如果到底就回到頂點(diǎn),實(shí)現(xiàn)循環(huán)掉落    dropY = 0;    dropX = random(0, tft.width());    randomC = char(random(32, 126));  }*/
  for (int i = 0; i < maxDrops; i++) {    tft.setCursor(dropX[i], dropY[i]);   //設(shè)定從坐標(biāo)x:10開始,坐標(biāo)y:dropY打印    tft.println(randomC[i]);             //打印randomC    dropY[i] = dropY[i] + dropSpeed[i];  //dropY增加dropSpeed    if (dropY[i] > tft.height()) {       //判斷Y的位置,如果到底就回到頂點(diǎn),實(shí)現(xiàn)循環(huán)掉落      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: 創(chuàng)建新的Arduino項(xiàng)目 首先,打開Arduino IDE,點(diǎn)擊"項(xiàng)目",然后選擇"導(dǎo)入庫"。在搜索框中輸入"TFT ESPI",選擇并導(dǎo)入這個庫。沒接觸過庫?別擔(dān)心,之前的教程有介紹。

步驟 2: 引入TFT庫

在你的代碼中加入以下一行:

#include 

10e8b594-7e99-11ee-b3e3-92fbcf53809c.png

步驟 3: 屏幕控制

TFT庫提供了一堆有用的函數(shù),比如:

TFT.init() - 初始化屏幕

TFT.setRotation(0) - 設(shè)置屏幕旋轉(zhuǎn)

TFT.fillScreen(TFT_BLACK) - 設(shè)置背景顏色為黑色

TFT.setTextSize(2) - 設(shè)置文本大小

TFT.setTextColor(TFT_GREEN) - 設(shè)置文本顏色

想要更多顏色?不妨查查TFT庫文檔或Arduino庫中的TFT ESPI。它預(yù)定義了一些常用顏色,用名字直接引用。不過,要是記不住這些名字,也可以自己創(chuàng)建顏色變量,用TFT.color565(r, g, b)方式調(diào)用。

110214bc-7e99-11ee-b3e3-92fbcf53809c.png

步驟 4: 數(shù)學(xué)與邏輯

做任何項(xiàng)目,都要先把核心功能搞定,然后再慢慢添加特效,避免出現(xiàn)問題。本次特效,核心是文本顯示,然后讓文本垂直下落,再加入隨機(jī)性。最后,加點(diǎn)速度隨機(jī)化。

1126ac46-7e99-11ee-b3e3-92fbcf53809c.png

步驟 5: 文本下落

顯示文本其實(shí)是把文本從屏幕頂部向底部逐漸打印。每次打印前,先清空屏幕,這樣文本下落時不會留下痕跡。

用TFT.fillScreen(TFT_BLACK)把屏幕弄成黑色,然后用循環(huán)不停更新文本的Y坐標(biāo)。當(dāng)Y坐標(biāo)超出屏幕底部,重新設(shè)置到頂部,實(shí)現(xiàn)循環(huán)效果。

115935e4-7e99-11ee-b3e3-92fbcf53809c.png

步驟 6: 隨機(jī)下落

搞點(diǎn)創(chuàng)意,讓文本從隨機(jī)位置開始下落。使用random()函數(shù)生成隨機(jī)的X坐標(biāo)。不要忘了用randomSeed(analogRead(0))設(shè)置隨機(jī)數(shù)生成器的種子,確保每次運(yùn)行都有不同的隨機(jī)性。

11838a56-7e99-11ee-b3e3-92fbcf53809c.png

步驟 7: 組合多個效果

為了更多特效,不用復(fù)制黏貼相同的代碼,用數(shù)組列表管理它們。通過循環(huán),為每個特效定義不同的參數(shù),一次性更新它們。需要多個特效?只需擴(kuò)展數(shù)組的長度,再多次粘貼代碼。

11af7d8c-7e99-11ee-b3e3-92fbcf53809c.png

下一期教程中,我們將深入研究更多編程概念和技巧,希望你會繼續(xù)學(xué)習(xí)。喜歡這篇文章嗎?記得點(diǎn)贊,分享給其他小伙伴。

如果你想跟著伊娃老師一起玩ESP32,千萬不要錯過伊娃老師的線上工作坊哦!微信掃碼報名!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • TFT
    TFT
    +關(guān)注

    關(guān)注

    10

    文章

    386

    瀏覽量

    111299
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    978

    瀏覽量

    17523
收藏 人收藏

    評論

    相關(guān)推薦

    手把手教你學(xué)會ARM(ARM精講視頻)

    手把手教你學(xué)會ARM(ARM精講視頻)視頻下載鏈接:https://pan.baidu.com/s/1SzMYm_MPF5aiuAfdYqphAQ 提取碼:xw03
    發(fā)表于 11-29 14:24

    手把手教你構(gòu)建一個完整的工程

    手把手教你構(gòu)建一個完整的工程
    發(fā)表于 08-03 09:54 ?33次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>構(gòu)建一個完整的工程

    手把手教你寫批處理-批處理的介紹

    手把手教你寫批處理-批處理的介紹
    發(fā)表于 10-25 15:02 ?69次下載

    美女手把手教你如何裝機(jī)(中)

    美女手把手教你如何裝機(jī)(中) 再來是硬碟的部份,這款機(jī)殼還不錯,可以旋轉(zhuǎn)支架~
    發(fā)表于 01-27 11:14 ?1479次閱讀

    美女手把手教你如何裝機(jī)(下)

    美女手把手教你如何裝機(jī)(下) 接著下來就是今天的重頭戲,開核蘿!~
    發(fā)表于 01-27 11:16 ?2933次閱讀

    手把手教你安裝Quartus II

    本章手把手把教你如何安裝 Quartus II 軟件 ,并將它激活 。此外 還有USB -Blaster下載器的驅(qū)動安裝步驟 。
    發(fā)表于 09-18 14:55 ?9次下載

    手把手教你在家搭建監(jiān)控系統(tǒng)

    手把手教你在家搭建監(jiān)控系統(tǒng)
    發(fā)表于 01-17 19:47 ?25次下載

    手把手教你如何開始DSP編程

    手把手教你如何開始DSP編程。
    發(fā)表于 04-09 11:54 ?12次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何開始DSP編程

    手把手教你學(xué)LabVIEW視覺設(shè)計(jì)

    手把手教你學(xué)LabVIEW視覺設(shè)計(jì)手把手教你學(xué)LabVIEW視覺設(shè)計(jì)手把手教你學(xué)LabVIEW視
    發(fā)表于 03-06 01:41 ?3180次閱讀

    手把手教你學(xué)會AVR單片機(jī)pdf.01

    手把手教你學(xué)會AVR單片機(jī)pdf.01
    發(fā)表于 09-30 17:33 ?0次下載

    手把手教你學(xué)會AVR單片機(jī)pdf.02

    手把手教你學(xué)會AVR單片機(jī)pdf.02
    發(fā)表于 09-30 17:34 ?0次下載

    手把手教你學(xué)會AVR單片機(jī)pdf.03

    手把手教你學(xué)會AVR單片機(jī)pdf.03
    發(fā)表于 09-30 17:36 ?0次下載

    手把手教你學(xué)會AVR單片機(jī)pdf.04

    手把手教你學(xué)會AVR單片機(jī)pdf.04
    發(fā)表于 09-30 17:37 ?0次下載

    手把手教你學(xué)會AVR單片機(jī)pdf.05

    手把手教你學(xué)會AVR單片機(jī)pdf.05
    發(fā)表于 09-30 18:19 ?0次下載

    手把手教你學(xué)FPGA仿真

    電子發(fā)燒友網(wǎng)站提供《手把手教你學(xué)FPGA仿真.pdf》資料免費(fèi)下載
    發(fā)表于 10-19 09:17 ?2次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>學(xué)FPGA仿真
    百家乐缆法排行榜| 棋牌评测网| 半圆百家乐官网桌布| 澳门百家乐打法百家乐破解方法| 皇冠现金开户| 百家乐怎么玩啊| 百家乐作弊| 博乐百家乐游戏| 舞钢市| 百家乐赢钱心得| 囊谦县| 百家乐和的几率| 博E百百家乐官网娱乐城| 百家乐游戏接口| 真人百家乐官网是啥游戏| 百家乐最新破| 哪个百家乐官网玩法平台信誉好| 芝加哥百家乐的玩法技巧和规则| 百家乐官网论坛博彩啦| 大发888娱乐场下载英皇国际| 网上百家乐官网是真是假天涯论坛| 大发888官网首页| 米其林百家乐官网的玩法技巧和规则 | 百家乐高科技| 真人百家乐官网免费开户送钱| 百家乐娱乐城博彩通博彩网| 百家乐官网实时赌博| 大发888游戏大厅下载| 百家乐官网用品| 冀州市| 百家乐赚水方| 云鼎百家乐官网的玩法技巧和规则 | 定做百家乐官网桌子| 大发888客户端软件| 百家乐榄梯打法| 百家乐官网实战玩法| 网络百家乐的玩法技巧和规则 | 百家乐注码调整| 百家乐官网投注技巧球讯网 | 澳门百家乐官网赌钱| 真人百家乐攻略|