Základy rozhrania TFT Arduino: 10 krokov (s obrázkami)
Základy rozhrania TFT Arduino: 10 krokov (s obrázkami)

Video: Základy rozhrania TFT Arduino: 10 krokov (s obrázkami)

Video: Základy rozhrania TFT Arduino: 10 krokov (s obrázkami)
Video: Octopus Max EZ V1.0 - Basics 2025, Január
Anonim
Základy rozhrania TFT Arduino
Základy rozhrania TFT Arduino

Dotykové obrazovky TFT sú úžasné grafické rozhranie, ktoré je možné použiť s mikrokontrolérmi, ako sú Atmel, PIC, STM, pretože má široký farebný rozsah a dobré grafické schopnosti a dobré mapovanie pixelov.

Dnes ideme na Rozhranie 2,4 palcový TFT LCD štít s Arduino.

Tento štít je pre Arduino UNO, ale naučím ho používať s Arduino Mega z veľmi logického dôvodu, „programovej pamäte“.

Použitím tohto farebného TFT LCD štítu môžeme na farebnom TFT LCD displeji zobrazovať znaky, reťazce, rozhrania tlačidiel, bitmapové obrázky atď.

Krok 1: Požiadavky na hardvér a softvér

Požiadavky na hardvér a softvér
Požiadavky na hardvér a softvér
Požiadavky na hardvér a softvér
Požiadavky na hardvér a softvér

Na vytvorenie rozhrania štítu s mega Arduino potrebujeme nasledujúce.

HARDWARE:

• Arduino mega

• TFT 2,4/2,8/3,2 palcový LCD

• USB kábel

SOFTVÉR

• Arduino IDE

• Knižnica UTFT / knižnica spfd5408

Shield je pôvodne vyrobený pre dosky Arduino UNO, ktoré je možné použiť s Arduino mega.

Pri použití s Arduino UNO existujú dva hlavné problémy: „Pamäť pamäte“a využitie pinov.

Je ťažké použiť nepoužité piny, ktoré sú k dispozícii na UNO, zatiaľ čo je to lepšie s Arduino MEGA, pretože nám zostáva viac I/O pinov.

V nasledujúcom kroku ukážem, ako upraviť knižnicu UTFT tak, aby používala štít TFT

Krok 2: Vyladenie UTFT Lib

Vyladenie UTFT Lib
Vyladenie UTFT Lib

Táto knižnica je pokračovaním mojich knižníc ITDB02_Graph, ITDB02_Graph16 a RGB_GLCD pre Arduino a chipKit. Ako sa počet podporovaných zobrazovacích modulov a radičov začal zvyšovať, cítil som, že je načase vytvoriť jednu univerzálnu knižnicu, pretože údržba bude v budúcnosti oveľa jednoduchšia.

Arduino MEGA má 256 kB programovej pamäte. Okrem toho je tu 54 pinov.

Väčšina z nich je voľne použiteľná a iba 5 analógových je zo 16.

Táto knižnica podporuje množstvo 8bitových, 16bitových a sériových grafických displejov a bude fungovať s doskami Arduino, chipKit a vybranými TI LaunchPads.

POZNÁMKA: Vzhľadom na veľkosť knižnice neodporúčam používať ju na ATmega328 (Arduino Uno) a ATmega32U4 (Arduino Leonardo), pretože majú iba 32 kB flash pamäte. Bude to fungovať, ale v dostupnej flash pamäti pre vašu aplikáciu budete výrazne obmedzení

Kroky

  • Stiahnite si knižnicu UTFT
  • Rozbaľte knižnicu
  • V prípade Arduina alebo v závislosti od použitého mikrokontroléra otvorte UTFT / hardware / avr
  • Otvorte HW_AVR_defines pomocou programu Poznámkový blok
  • Odkomentujte riadok 7 a povoľte štít UNO pre MEGA
  • Uložte súbor a pridajte túto knižnicu do Arduino IDE

Teraz sme s týmto krokom hotoví! V nasledujúcom kroku ukážem používanie knižnice a definovanie pinov pre Arduino Mega.

Krok 3: Inicializácia štítu TFT

Inicializácia štítu TFT
Inicializácia štítu TFT

Po úprave knižnice ju pridajte do adresára Arduino.

Ďalej vám ukážem, ako definovať správny modul TFT, ktorý máte

názov jeho modulu by sme mali nájsť v knižnici.

  • otvorte súbor knižnice
  • prejdite na dokumentáciu

Tieto súbory môžete vidieť v dokumentácii

• UTFT:

Tento súbor zobrazuje všetky funkcie a príkazy zahrnuté v tejto knižnici.

• UTFT_Requirement

Tento súbor obsahuje informácie o moduloch a tom, ako súvisí s knižnicou, napríklad konfigurácie pinov

• UTFT_Supported_display_modules _ & _ controller

Toto je náš cieľ, tento súbor má názvy modulov a štítov, ktoré táto knižnica podporuje, môžete v ňom vidieť zoznam názvov modulov a názvov modulov pre UTFT, ktoré by ste mali použiť na definovanie modulu.

Kroky na definovanie TFT:

V knižnici otvorte súbor ovládača UTFT_Supported_display_modules _ & _

  • V knižnici otvorte súbor ovládača UTFT_Supported_display_modules _ & _
  • Nájdite modely pre UTFT pre moduly (štít), ktoré máte.
  • Teraz, aby sme definovali funkciu UTFT na IDE Arduino, použijeme príkaz:

Názov UTFT (modul, Rs, Wr, Cs, Rst);

Otvorte súbor UTFT_Requirement z knižnice

Z dokumentu vieme, že kolíky sú umiestnené na kolíkoch A5, A4, A3 a A2.

používame príkaz:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # všimnite si, že kolíky 19, 18, 17, 16 v Arduino Mega

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # všimnite si, že kolíky A5, A4, A3, A2 v Arduino UNO

A hotovo! Teraz môžete použiť príklady knižnice v Arduino IDE s nasledujúcimi zmenami.

Krok 4: Základný Hello World

Základný Hello World
Základný Hello World

#include // Deklarujte, ktoré písma budeme používať

externý uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Nezabudnite zmeniť parameter modelu tak, aby vyhovoval vášmu zobrazovaciemu modulu! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // zelený myGLCD.print ("AHOJ SVET", 45, 100); while (true) {}; }

Krok 5: Písma UTFT

Písma UTFT
Písma UTFT

#include // Deklarujte, ktoré písma budeme používať

extern uint8_t SmallFont ; externý uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Nastavte kolíky na správne pre svoj vývojový štít // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Štandardný štít Arduino Uno/2009:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT štít:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Štandardný Arduino Mega/Due štít:, 38, 39, 40, 41 // CTE TFT LCD/SD štít pre Arduino Mega:, 38, 39, 40, 41 // // Nezabudnite zmeniť parameter modelu tak, aby vyhovoval vášmu zobrazovaciemu modulu! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); neplatné nastavenie () {myGLCD. InitLCD () myGLCD.clrScr (); } void loop () {myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("! \"#$%& '()*+, -./", CENTER, 0); myGLCD.print (" 0123456789:;? ", CENTER, 16); myGLCD.print ("@ ABCDEFGHIJKLMNO ", CENTER, 32); myGLCD.print (" PQRSTUVWXYZ ^_ ", CENTER, 48); myGLCD.print (" `abcdefghijklmno", CENTER, 64); myGLCD.print ("pqrstuvwxy ~ ", CENTER, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "#$%& '()*+, -./0123456789:;?", CENTER, 120); myGLCD.print ("@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^_", CENTRUM, 132); myGLCD.print ("" abcdefghijklmnopqrstuvwxyz {|} ~ ", CENTER, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTRUM, 190); while (1) {}; }

Krok 6: Tvary, čiary a vzory UTFT

Tvary, čiary a vzory UTFT
Tvary, čiary a vzory UTFT

#include "UTFT.h" // Deklarujte, ktoré fonty budeme používaťextern uint8_t SmallFont ; // Nastavte kolíky na správne pre svoj vývojový štít // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Štandardný Arduino Uno/ 2009 štít:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT štít:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Štandardné Arduino Mega/Due štít:, 38, 39, 40, 41 // Štít CTE TFT LCD/SD pre Arduino Mega:, 38, 39, 40, 41 // // Nezabudnite zmeniť parameter modelu tak, aby vyhovoval vášmu zobrazovaciemu modulu! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Nastavenie LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

prázdna slučka ()

{int buf [318]; int x, x2; int y, y2; int r; // Vymažte obrazovku a nakreslite rámček myGLCD.clrScr (); myGLCD.setColor (255, 0, 0); myGLCD.fillRect (0, 0, 319, 13); myGLCD.setColor (64, 64, 64); myGLCD.fillRect (0, 226, 319, 239); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (255, 0, 0); myGLCD.print (" * Univerzálna farebná knižnica displeja TFT *", CENTER, 1); myGLCD.setBackColor (64, 64, 64); myGLCD.setColor (255, 255, 0); myGLCD.print ("", CENTER, 227); myGLCD.setColor (0, 0, 255); myGLCD.drawRect (0, 14, 319, 225); // Nakreslite nitkový kríž myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); pre (int i = 9; i <310; i+= 10) myGLCD.drawLine (i, 117, i, 121); for (int i = 19; i <220; i+= 10) myGLCD.drawLine (157, i, 161, i); // Draw sin-, cos- and tan-lines myGLCD.setColor (0, 255, 255); myGLCD.print ("Sin", 5, 15); pre (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (sin ((((i*1,13)*3,14)/180)*95)); } myGLCD.setColor (255, 0, 0); myGLCD.print ("Cos", 5, 27); pre (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (cos ((((i*1,13)*3,14)/180)*95)); } myGLCD.setColor (255, 255, 0); myGLCD.print ("Tan", 5, 39); pre (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan ((((i*1,13)*3,14)/180))); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); // Nakreslite pohyblivú sinusovú vlnu x = 1; pre (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); else myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119+(sin ((((i*1,1)*3,14) / 180)*(90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslite niektoré vyplnené obdĺžniky pre (int i = 1; i <6; i ++) {switch (i) {prípad 1: myGLCD.setColor (255, 0, 255); prestávka; prípad 2: myGLCD.setColor (255, 0, 0); prestávka; prípad 3: myGLCD.setColor (0, 255, 0); prestávka; prípad 4: myGLCD.setColor (0, 0, 255); prestávka; prípad 5: myGLCD.setColor (255, 255, 0); prestávka; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslite vyplnené, zaoblené obdĺžniky pre (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); prestávka; prípad 2: myGLCD.setColor (255, 0, 0); prestávka; prípad 3: myGLCD.setColor (0, 255, 0); prestávka; prípad 4: myGLCD.setColor (0, 0, 255); prestávka; prípad 5: myGLCD.setColor (255, 255, 0); prestávka; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslite nejaké vyplnené kruhy pre (int i = 1; i <6; i ++) {switch (i) {prípad 1: myGLCD.setColor (255, 0, 255); prestávka; prípad 2: myGLCD.setColor (255, 0, 0); prestávka; prípad 3: myGLCD.setColor (0, 255, 0); prestávka; prípad 4: myGLCD.setColor (0, 0, 255); prestávka; prípad 5: myGLCD.setColor (255, 255, 0); prestávka; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslite niekoľko čiar do vzoru myGLCD.setColor (255, 0, 0); pre (int i = 15; i <224; i+= 5) {myGLCD.drawLine (1, i, (i*1,44) -10, 224); } myGLCD.setColor (255, 0, 0); pre (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i*1,44) -11, 15); } myGLCD.setColor (0, 255, 255); pre (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i*1,44), 15); } myGLCD.setColor (0, 255, 255); pre (int i = 15; i <224; i+= 5) {myGLCD.drawLine (318, i, 330- (i*1,44), 224); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslite niekoľko náhodných kruhov pre (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32+náhodný (256); y = 45+náhodný (146); r = náhodný (30); myGLCD.drawCircle (x, y, r); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslite niekoľko náhodných obdĺžnikov pre (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 2+náhodný (316); y = 16+náhodný (207); x2 = 2+náhodný (316); y2 = 16+náhodný (207); myGLCD.drawRect (x, y, x2, y2); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslite niekoľko náhodných zaoblených obdĺžnikov pre (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2+náhodný (316); y = 16+náhodný (207); x2 = 2+náhodný (316); y2 = 16+náhodný (207); myGLCD.drawRoundRect (x, y, x2, y2); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); pre (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2+náhodný (316); y = 16+náhodný (209); x2 = 2+náhodný (316); y2 = 16+náhodný (209); myGLCD.drawLine (x, y, x2, y2); } oneskorenie (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); pre (int i = 0; i <10 000; i ++) {myGLCD.setColor (random (255), random (255), random (255)); myGLCD.drawPixel (2+náhodné (316), 16+náhodné (209)); } oneskorenie (2000); myGLCD.fillScr (0, 0, 255); myGLCD.setColor (255, 0, 0); myGLCD.fillRoundRect (80, 70, 239, 169); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (255, 0, 0); myGLCD.print („To je ono!“, CENTER, 93); myGLCD.print („Reštartovanie v“, CENTER, 119); myGLCD.print („niekoľko sekúnd …“, CENTER, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Runtime: (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); oneskorenie (10 000); }

Krok 7: Bitová mapa UTFT

Bitová mapa UTFT
Bitová mapa UTFT

#zahrnúť

#include // Deklarujte, ktoré písma budeme používať extern uint8_t SmallFont ; // Nastavte kolíky na správne pre svoj vývojový štít // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Štandardný Arduino Uno/ 2009 štít:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT štít:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Štandardné Arduino Mega/Due štít:, 38, 39, 40, 41 // Štít CTE TFT LCD/SD pre Arduino Mega:, 38, 39, 40, 41 // // Nezabudnite zmeniť parameter modelu tak, aby vyhovoval vášmu zobrazovaciemu modulu! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); externé nepodpísané int informácie [0x400]; externá nepodpísaná ikona int [0x400]; externý nepodpísaný int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** Mriežka 10 x 7 ikony 32 x 32 ***", CENTER, 228); pre (int x = 0; x <10; x ++) pre (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); oneskorenie (5 000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print („Dve rôzne ikony v mierke 1 až 4“, CENTER, 228); int x = 0; pre (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, ikona, s); x+= (s*32); } oneskorenie (5 000); }

Krok 8: Rozhranie tlačidiel

Rozhranie tlačidiel
Rozhranie tlačidiel

#include #include // Inicializácia displeja // ------------------ // Nastavte kolíky na správne pre vývojovú dosku // ------- ---------------------------------------------------------- - // Štandardný štít Arduino Uno/2009:, 19, 18, 17, 16 // Štandardný štít Arduino Mega/Due:, 38, 39, 40, 41 // Štít CTE TFT LCD/SD pre Arduino Termín:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD Shield for Arduino Due:, 22, 23, 31, 33 // // Nezabudnite zmeňte parameter modelu tak, aby vyhovoval vášmu zobrazovaciemu modulu! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Inicializácia dotykovej obrazovky // ---------------------- // Nastavte kolíky na správne tie pre vašu vývojovú dosku // ------------------------------------------- ---------------- // Štandardný štít Arduino Uno/2009: 15, 10, 14, 9, 8 // Štandardný štít Arduino Mega/Due: 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield for Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield pre Arduino Termín: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Deklarujte, ktoré písma budeme používať extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************* ** Vlastné funkcie ** ********* ****************/void drawButtons () {// Nakreslite horný rad tlačidiel pre (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+ (x*60), 10, 60+ (x*60), 60); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10+ (x*60), 10, 60+ (x*60), 60); myGLCD.printNumI (x+1, 27+ (x*60), 27); } // Nakreslite stredný rad tlačidiel pre (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+ (x*60), 70, 60+ (x*60), 120); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10+ (x*60), 70, 60+ (x*60), 120); ak (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // Nakreslite dolný rad tlačidiel myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Clear", 40, 147); myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (160, 130, 300, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (160, 130, 300, 180); myGLCD.print ("Enter", 190, 147); myGLCD.setBackColor (0, 0, 0); } void updateStr (int val) {if (stCurrentLen = 10) && (y = 10) && (x = 70) && (x = 130) && (x = 190) && (x = 250) && (x = 70) && (y = 10) && (x = 70) && (x = 130) && (x = 190) && (x = 250) && (x = 130) && (y = 10) && (x = 160) && (x0) {pre (x = 0; x

Krok 9: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include // ==== Vytváranie objektov UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parametre by mali byť prispôsobené vášmu modelu Display/Schield UTouch myTouch (6, 5, 4, 3, 2); // ==== Definovanie písem externe uint8_t SmallFont ; externý uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bird Bitmapint x, y; // Premenné pre súradnice, kde bol stlačený displej // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int skóre = 0; int lastSpeedUpScore = 0; int najvyššie skóre; boolean screenPressed = false; boolean gameStarted = false; void setup () {// Spustenie zobrazenia myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); najvyššie skóre = EEPROM.read (0); // Prečítajte si najvyššie skóre z EEPROM initiateGame (); // Spustenie hry} void loop () {xP = xP-movingRate; // xP - x súradnica pilarov; rozsah: 319 - (-51) drawPilars (xP, yP); // Nakreslí piliere // yB - y súradnica vtáka, ktorá závisí od hodnoty premennej klesajúcej rýchlosti yB+= fallRateInt; fallRate = fallRate+0,4; // Každou inetráciou sa rýchlosť pádu zvyšuje, aby sme mohli ovplyvniť zrýchlenie/ gravitáciu fallRateInt = int (fallRate); // Kontroluje kolíziu, ak (yB> = 180 || yB <= 0) {// horná a dolná časť gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// horný pilier gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// nižší pilier gameOver (); } // Nakreslí vták drawBird (yB); // Potom, čo stĺp prejde obrazovkou, ak (xPRESET = 250) && (x = 0) && (y = 0) && (x = 30) && (y = 270) {myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, 0, x, y-1); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, 0, x-1, y); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, y+81, x, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, y+80, x-1, 204); } else if (x najvyššie skóre) {najvyššie skóre = skóre; EEPROM.write (0, najvyššie skóre); } // Resetuje premenné na počiatočné hodnoty polohy xP = 319; yB = 50; fallRate = 0; skóre = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Reštartujte hru initiateGame (); }

Krok 10: Práca na projekte

Zdrojový kód nájdete v mojom úložisku Github.

Odkaz:

Dajte palec hore, ak vám to skutočne pomohlo, a sledujte môj kanál pre zaujímavé projekty:)

Ak chcete, zdieľajte toto video.

Sme radi, že ste sa prihlásili na odber:

Vďaka za prečítanie!