Obsah:

Základy rozhraní Arduino TFT: 10 kroků (s obrázky)
Základy rozhraní Arduino TFT: 10 kroků (s obrázky)

Video: Základy rozhraní Arduino TFT: 10 kroků (s obrázky)

Video: Základy rozhraní Arduino TFT: 10 kroků (s obrázky)
Video: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, Listopad
Anonim
Základy rozhraní TFT pro Arduino
Základy rozhraní TFT pro Arduino

Dotykové obrazovky TFT jsou úžasné grafické rozhraní, které lze použít s mikrokontroléry, jako jsou Atmel, PIC, STM, protože má široký barevný rozsah a dobrou grafickou schopnost a dobré mapování pixelů.

Dnes jdeme na Rozhraní 2,4 palcový TFT LCD štít s Arduino.

Tento štít je pro Arduino UNO, ale naučím ho používat s Arduino Mega z velmi logického důvodu, „paměti programu“.

Použitím tohoto barevného TFT LCD štítu můžeme na barevném TFT LCD ukazovat znaky, řetězce, rozhraní tlačítek, bitmapové obrázky atd.

Krok 1: Hardwarové a softwarové požadavky

Hardwarové a softwarové požadavky
Hardwarové a softwarové požadavky
Hardwarové a softwarové požadavky
Hardwarové a softwarové požadavky

K vytvoření rozhraní štítu s Arduino mega potřebujeme následující.

HARDWARE:

• Arduino mega

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

• USB kabel

SOFTWARE

• Arduino IDE

• Knihovna UTFT / knihovna spfd5408

Shield je původně vyroben pro desky Arduino UNO, které lze použít s Arduino mega.

Při používání s Arduino UNO existují dva hlavní problémy: „Paměť úložiště“a využití pinů.

Je obtížné použít nepoužité piny, které jsou k dispozici na UNO, zatímco s Arduino MEGA je to lepší, protože zbývá více I/O pinů.

V dalším kroku ukážu, jak upravit knihovnu UTFT tak, aby používala štít TFT

Krok 2: Vylepšení UTFT Lib

Vylepšení UTFT Lib
Vylepšení UTFT Lib

Tato knihovna je pokračováním mých knihoven ITDB02_Graph, ITDB02_Graph16 a RGB_GLCD pro Arduino a chipKit. Jak se počet podporovaných zobrazovacích modulů a ovladačů začal zvyšovat, cítil jsem, že je na čase vytvořit jedinou univerzální knihovnu, protože její údržba bude v budoucnu mnohem snazší.

Arduino MEGA má 256 kB programové paměti. Kromě toho existuje 54 pinů.

Většina z nich je volně použitelná a analogových 5 je převzato z 16.

Tato knihovna podporuje řadu 8bitových, 16bitových a sériových grafických displejů a bude fungovat s deskami Arduino, chipKit a vybranými TI LaunchPady.

POZNÁMKA: Vzhledem k velikosti knihovny ji nedoporučuji používat na ATmega328 (Arduino Uno) a ATmega32U4 (Arduino Leonardo), protože mají pouze 32 kB flash paměti. Bude to fungovat, ale v dostupné paměti flash pro vaši aplikaci budete výrazně omezeni

Kroky

  • Stáhněte si knihovnu UTFT
  • Rozbalte knihovnu
  • Otevřete UTFT / hardware / avr v případě Arduina nebo v závislosti na použitém mikrokontroléru
  • Otevřete HW_AVR_defines pomocí programu Poznámkový blok
  • Odkomentujte řádek 7 a povolte UNO štít pro MEGA
  • Uložte soubor a přidejte tuto knihovnu do Arduino IDE

Nyní jsme s tímto krokem hotovi! V dalším kroku ukážu použití knihovny a definování pinů pro Arduino Mega.

Krok 3: Inicializace štítu TFT

Inicializace štítu TFT
Inicializace štítu TFT

Po úpravě knihovny ji přidejte do adresáře Arduino.

Dále vám ukážu, jak definovat správný modul TFT, který máte

název jeho modulu bychom měli najít v knihovně.

  • otevřete soubor knihovny
  • přejděte k dokumentaci

Tyto soubory můžete vidět v dokumentaci

• UTFT:

Tento soubor ukazuje všechny funkce a příkazy obsažené v této knihovně.

• UTFT_Requirement

Tento soubor obsahuje informace o modulech a tom, jak souvisí s knihovnou, například konfigurace pinů

• Ovladač UTFT_Supported_display_modules _ & _

Toto je náš cíl, tento soubor má názvy modulů a štítů, které tato knihovna podporuje, můžete v něm vidět seznam názvů modulů a názvů modulů pro UTFT, které byste měli použít k definování modulu.

Kroky k definování TFT:

Otevřete soubor řadiče UTFT_Supported_display_modules _ & _ z knihovny

  • Otevřete soubor řadiče UTFT_Supported_display_modules _ & _ z knihovny
  • Najděte modely pro UTFT pro moduly (štít), které máte.
  • Nyní k definování funkce UTFT na Arduino IDE použijeme příkaz:

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

Otevřete soubor UTFT_Requirement z knihovny

Z dokumentu víme, že piny jsou umístěny na pinech A5, A4, A3 a A2.

používáme příkaz:

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

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

A hotovo! Nyní můžete použít příklady knihoven v Arduino IDE s následujícími změnami.

Krok 4: Základní Hello World

Základní Hello World
Základní Hello World

#include // Deklarujte, která písma budeme používat

extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Nezapomeňte změnit parametr modelu tak, aby vyhovoval vašemu zobrazovacímu modulu! UTFT myGLCD (ITDB28, A5, A4, A3, A2); neplatné nastavení () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // zelená myGLCD.print ("HELLO WORLD", 45, 100); while (true) {}; }

Krok 5: Písma UTFT

Písma UTFT
Písma UTFT

#include // Deklarujte, která písma budeme používat

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Nastavte piny na správné pro svůj vývojový štít // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standardní Arduino Uno/2009 štít:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT štít:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standardní Arduino Mega/Due štít:, 38, 39, 40, 41 // CTE TFT LCD/SD štít pro Arduino Mega:, 38, 39, 40, 41 // // Nezapomeňte změnit parametr modelu tak, aby vyhovoval vašemu zobrazovacímu modulu! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); neplatné nastavení () {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, čáry a vzory UTFT

Tvary, čáry a vzory UTFT
Tvary, čáry a vzory UTFT

#include "UTFT.h" // Deklarujte, která písma budeme používat extern uint8_t SmallFont ; // Nastavte piny na správné pro svůj vývojový štít // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standardní Arduino Uno/ 2009 štít:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT štít:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standardní Arduino Mega/Due štít:, 38, 39, 40, 41 // CTE TFT LCD/SD štít pro Arduino Mega:, 38, 39, 40, 41 // // Nezapomeňte změnit parametr modelu tak, aby vyhovoval vašemu zobrazovacímu modulu! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); neplatné nastavení () {randomSeed (analogRead (0)); // Nastavení LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

prázdná smyčka ()

{int buf [318]; int x, x2; int y, y2; int r; // Vymažte obrazovku a nakreslete rámeč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ální barevná knihovna TFT displeje *", 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); // Nakreslete nitkový kříž myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); pro (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); pro (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); for (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); pro (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan ((((i*1,13)*3,14)/180))); } zpoždění (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); // Nakreslete pohybující se sinusovou vlnu x = 1; pro (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; } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslete nějaké vyplněné obdélníky pro (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); přestávka; případ 2: myGLCD.setColor (255, 0, 0); přestávka; případ 3: myGLCD.setColor (0, 255, 0); přestávka; případ 4: myGLCD.setColor (0, 0, 255); přestávka; případ 5: myGLCD.setColor (255, 255, 0); přestávka; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslete nějaké vyplněné, zaoblené obdélníky pro (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); přestávka; případ 2: myGLCD.setColor (255, 0, 0); přestávka; případ 3: myGLCD.setColor (0, 255, 0); přestávka; případ 4: myGLCD.setColor (0, 0, 255); přestávka; případ 5: myGLCD.setColor (255, 255, 0); přestávka; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslete nějaké vyplněné kruhy pro (int i = 1; i <6; i ++) {switch (i) {případ 1: myGLCD.setColor (255, 0, 255); přestávka; případ 2: myGLCD.setColor (255, 0, 0); přestávka; případ 3: myGLCD.setColor (0, 255, 0); přestávka; případ 4: myGLCD.setColor (0, 0, 255); přestávka; případ 5: myGLCD.setColor (255, 255, 0); přestávka; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslete několik čar do vzoru myGLCD.setColor (255, 0, 0); pro (int i = 15; i <224; i+= 5) {myGLCD.drawLine (1, i, (i*1,44) -10, 224); } myGLCD.setColor (255, 0, 0); pro (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i*1,44) -11, 15); } myGLCD.setColor (0, 255, 255); pro (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i*1,44), 15); } myGLCD.setColor (0, 255, 255); pro (int i = 15; i <224; i+= 5) {myGLCD.drawLine (318, i, 330- (i*1,44), 224); } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslete nějaké náhodné kruhy pro (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); } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslete nějaké náhodné obdélníky pro (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); } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Nakreslete nějaké náhodné zaoblené obdélníky pro (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); } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (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); } zpoždění (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (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)); } zpoždění (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 („Restartování v“, CENTER, 119); myGLCD.print („několik sekund…“, CENTER, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Runtime: (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); zpoždění (10 000); }

Krok 7: Bitmapa UTFT

Bitová mapa UTFT
Bitová mapa UTFT

#zahrnout

#include // Deklarujte, která písma budeme používat extern uint8_t SmallFont ; // Nastavte piny na správné pro svůj vývojový štít // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standardní Arduino Uno/ 2009 štít:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT štít:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standardní Arduino Mega/Due štít:, 38, 39, 40, 41 // CTE TFT LCD/SD štít pro Arduino Mega:, 38, 39, 40, 41 // // Nezapomeňte změnit parametr modelu tak, aby vyhovoval vašemu zobrazovacímu modulu! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); externí nepodepsané int informace [0x400]; extern unsigned int ikona [0x400]; extern unsigned int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** Mřížka 10 x 7 ikony 32x32 ***", CENTER, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); zpoždění (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print („Dvě různé ikony v měřítku 1 až 4“, CENTER, 228); int x = 0; pro (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, ikona, s); x+= (s*32); } zpoždění (5 000); }

Krok 8: Rozhraní tlačítek

Rozhraní tlačítek
Rozhraní tlačítek

#include #include // Inicializace displeje // ------------------ // Nastavte kolíky na správné pro vývojovou desku // ------- ---------------------------------------------------------- - // Standardní Arduino Uno/2009 štít:, 19, 18, 17, 16 // Standardní Arduino Mega/Due štít:, 38, 39, 40, 41 // CTE TFT LCD/SD štít pro 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 // // Nezapomeňte změňte parametr modelu tak, aby vyhovoval vašemu zobrazovacímu modulu! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Inicializace dotykové obrazovky // ---------------------- // Nastavte kolíky na správné jedny pro vaši vývojovou desku // ------------------------------------------- ---------------- // Standardní Arduino Uno/2009 štít: 15, 10, 14, 9, 8 // Standardní Arduino Mega/Due štít: 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 pro Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Deklarujte, která písma budeme používat extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************* ** Vlastní funkce ** ********* ****************/void drawButtons () {// Nakreslete horní řadu tlačítek pro (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); } // Nakreslete středovou řadu tlačítek pro (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); if (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // Nakreslete spodní řadu tlačítek 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) {pro (x = 0; x

Krok 9: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include // ==== Vytváření objektů UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parametry by měly být přizpůsobeny vašemu modelu Display/Schield UTouch myTouch (6, 5, 4, 3, 2); // ==== Definování písem extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bird Bitmapint x, y; // Proměnné pro souřadnice, kde bylo stisknuto zobrazení // 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 nejvyšší skóre; boolean screenPressed = false; boolean gameStarted = false; void setup () {// Zahájit zobrazení myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); nejvyšší skóre = EEPROM.read (0); // Přečíst nejvyšší skóre z EEPROM initiateGame (); // Zahájení hry} void loop () {xP = xP-movingRate; // xP - x souřadnice pilířů; rozsah: 319 - (-51) drawPilars (xP, yP); // Nakreslí pilíře // yB - y souřadnice ptáka, která závisí na hodnotě proměnné klesající rychlosti yB+= fallRateInt; fallRate = fallRate+0,4; // Každou inetrací se rychlost pádu zvyšuje, abychom mohli efekt akcelerace/ gravitace fallRateInt = int (fallRate); // Kontroluje kolizi, pokud (yB> = 180 || yB <= 0) {// horní a dolní část gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// horní pilíř gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// nižší pilíř gameOver (); } // Nakreslí ptáka drawBird (yB); // Poté, co pilíř prošel obrazovkou, pokud (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 nejvyšší skóre) {nejvyšší skóre = skóre; EEPROM.write (0, nejvyšší skóre); } // Resetuje proměnné na počáteční hodnoty polohy xP = 319; yB = 50; fallRate = 0; skóre = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Restartujte hru initiateGame (); }

Krok 10: Práce na projektu

Zdrojový kód najdete v mém úložišti Github.

Odkaz:

Dejte palec nahoru, pokud vám to opravdu pomohlo, a sledujte můj kanál pro zajímavé projekty:)

Pokud chcete, sdílejte toto video.

Jsme rádi, že jste se přihlásili k odběru:

Děkuji za přečtení!

Doporučuje: