Satura rādītājs:

Arduino TFT saskarnes pamati: 10 soļi (ar attēliem)
Arduino TFT saskarnes pamati: 10 soļi (ar attēliem)

Video: Arduino TFT saskarnes pamati: 10 soļi (ar attēliem)

Video: Arduino TFT saskarnes pamati: 10 soļi (ar attēliem)
Video: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, Novembris
Anonim
Arduino TFT saskarnes pamati
Arduino TFT saskarnes pamati

TFT skārienekrāni ir pārsteidzošs grafiskais interfeiss, ko var izmantot ar tādiem mikrokontrolleriem kā Atmel, PIC, STM, jo tam ir plašs krāsu diapazons, laba grafiskā spēja un laba pikseļu kartēšana.

Šodien mēs apmeklēsim 2,4 collu TFT LCD ekrāna saskarni ar Arduino.

Šis vairogs ir paredzēts Arduino UNO, bet es iemācīšu to izmantot kopā ar Arduino Mega ļoti loģiska iemesla dēļ - "Programmas atmiņa".

Izmantojot šo krāsaino TFT LCD ekrānu, krāsainajā TFT LCD var parādīt rakstzīmes, virknes, pogu saskarni, bitkartes attēlus utt.

1. darbība. Prasības aparatūrai un programmatūrai

Prasības aparatūrai un programmatūrai
Prasības aparatūrai un programmatūrai
Prasības aparatūrai un programmatūrai
Prasības aparatūrai un programmatūrai

Lai izveidotu vairoga saskarni ar Arduino mega, mums ir nepieciešams šāds.

Aparatūra:

• Arduino mega

• TFT 2,4/2,8/3,2 collu LCD

• USB kabelis

PROGRAMMATŪRA

• Arduino IDE

• UTFT bibliotēka / spfd5408 bibliotēka

Vairogs sākotnēji ir paredzēts Arduino UNO dēļiem, kurus var izmantot kopā ar Arduino mega.

Lietojot to kopā ar Arduino UNO, ir divas galvenās problēmas: "Atmiņas atmiņa" un tapas izmantošana.

Ir grūti izmantot neizmantotās tapas, kas pieejamas vietnē UNO, bet tas ir labāk ar Arduino MEGA, jo mums ir atlicis vairāk I/O tapas.

Nākamajā solī es parādīšu, kā rediģēt UTFT bibliotēku, lai izmantotu TFT vairogu

2. darbība. UTFT Lib pielāgošana

UTFT Lib pielāgošana
UTFT Lib pielāgošana

Šī bibliotēka ir manas ITDB02_Graph, ITDB02_Graph16 un RGB_GLCD bibliotēku turpinājums Arduino un chipKit. Kad atbalstīto displeja moduļu un kontrolieru skaits sāka palielināties, es jutu, ka ir pienācis laiks izveidot vienu universālu bibliotēku, jo to būs daudz vieglāk uzturēt nākotnē.

Arduino MEGA ir 256 kb programmas atmiņa. Turklāt ir 54 tapas.

Lielāko daļu no tiem var izmantot bez maksas, un tikai 5 analogie ir ņemti no 16.

Šī bibliotēka atbalsta vairākus 8 bitu, 16 bitu un sērijas grafikas displejus, un tā darbosies gan ar Arduino, gan mikroshēmu plāksnēm, gan ar atlasītajiem TI LaunchPads.

PIEZĪME. Bibliotēkas lieluma dēļ neiesaku to izmantot ATmega328 (Arduino Uno) un ATmega32U4 (Arduino Leonardo), jo tiem ir tikai 32 KB zibatmiņas. Tas darbosies, taču jūsu lietojumprogrammai pieejamā zibatmiņa būs ievērojami ierobežota

Soļi

  • Lejupielādējiet UTFT bibliotēku
  • Izsaiņojiet bibliotēku
  • Atveriet UTFT / hardware / avr Arduino gadījumā vai atkarībā no izmantotā mikrokontrollera
  • Atveriet HW_AVR_defines, izmantojot Notepad
  • Noņemiet 7. komentāru rindu, lai MEGA iespējotu UNO vairogu
  • Saglabājiet failu un pievienojiet šo bibliotēku Arduino IDE

Tagad mēs esam pabeiguši šo soli! Nākamajā solī es parādīšu, kā izmantot bibliotēku un definēt Arduino Mega tapas.

3. darbība: TFT vairoga inicializēšana

TFT vairoga inicializēšana
TFT vairoga inicializēšana

Pēc bibliotēkas rediģēšanas pievienojiet to Arduino direktorijai.

Tālāk es jums parādīšu, kā definēt pareizo TFT moduli

mums vajadzētu atrast tā moduļa nosaukumu bibliotēkā.

  • atveriet bibliotēkas failu
  • dodieties uz dokumentāciju

Šos failus varat redzēt dokumentācijā

• UTFT:

Šis fails parāda visas šajā bibliotēkā iekļautās funkcijas un komandas.

• UTFT_Prasība

Šajā failā ir informācija par moduļiem un to, kā tas ir saistīts ar bibliotēku, piemēram, tapu konfigurācijas

• UTFT_Supported_display_modules _ & _ kontrolieris

Šis ir mūsu mērķis, šim failam ir to bibliotēku atbalstīto moduļu un vairogu nosaukumi, tajā varat redzēt UTFT moduļu nosaukumu un moduļu nosaukumu sarakstu, kas jāizmanto, lai definētu savu moduli.

TFT definēšanas soļi:

No bibliotēkas atveriet kontroliera failu UTFT_Supported_display_modules _ & _

  • No bibliotēkas atveriet kontroliera failu UTFT_Supported_display_modules _ & _
  • Atrodiet UTFT modeļus jūsu esošajiem moduļiem (vairogam).
  • Tagad, lai definētu UTFT funkciju Arduino IDE, mēs izmantojam komandu:

UTFT nosaukums (modulis, Rs, Wr, Cs, Rst);

No bibliotēkas atveriet failu UTFT_Requirement

No dokumenta mēs zinām, ka tapas atrodas uz A5, A4, A3 un A2 tapām.

mēs izmantojam komandu:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # ņemiet vērā, ka Arduino Mega 19., 18., 17., 16. tapas

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # ņemiet vērā, ka A5, A4, A3, A2 tapas Arduino UNO

Un darīts! Tagad varat izmantot Arduino IDE bibliotēkas piemērus ar šādām izmaiņām.

4. solis: pamata Hello World

Pamata Hello World
Pamata Hello World

#include // Paziņojiet, kurus fontus izmantosim

extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Atcerieties mainīt modeļa parametru atbilstoši jūsu displeja modulim! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // zaļš myGLCD.print ("HELLO WORLD", 45, 100); while (true) {}; }

5. darbība: UTFT fonti

UTFT fonti
UTFT fonti

#include // Paziņojiet, kurus fontus izmantosim

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Iestatiet tapas pareizajam jūsu attīstības vairogam // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standarta Arduino Uno/2009 vairogs:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT vairogs:, A5, A4, A3, A2 // Arduino Mega: // ----- -------------- // Standarta Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield Arduino Mega:, 38, 39, 40, 41 // // Atcerieties mainīt modeļa parametru, lai tas atbilstu jūsu displeja modulim! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {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:;? ", CENTRS, 16); myGLCD.print ("@ ABCDEFGHIJKLMNO ", CENTRS, 32); myGLCD.print (" PQRSTUVWXYZ ^_ ", CENTER, 48); myGLCD.print (" `abcdefghijklmno", CENTER, 64); myGLCD.print ("pqrs }www ~ ", CENTRS, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "#$%& '()*+, -./0123456789:;?", CENTRS, 120); myGLCD.print ("@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^_", CENTRS, 132.); myGLCD.print ("" abcdefghijklmnopqrstuvwxyz {|} ~ ", CENTRS, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTRS, 190); kamēr (1) {}; }

6. darbība: UTFT formas, līnijas un raksts

UTFT formas, līnijas un raksts
UTFT formas, līnijas un raksts

#include "UTFT.h" // Deklarējiet, kādus fontus mēs izmantosim ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standarta Arduino Uno/ 2009 vairogs:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT vairogs:, A5, A4, A3, A2 // Arduino Mega: // ------------------- // Standarta Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD vairogs Arduino Mega:, 38, 39, 40, 41 // // Atcerieties mainīt modeļa parametru atbilstoši jūsu displeja modulim! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Iestatiet LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

tukša cilpa ()

{int buf [318]; int x, x2; int y, y2; int r; // Notīriet ekrānu un uzzīmējiet rāmi 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 (" * Universāla krāsu TFT displeja bibliotēka *", CENTRS, 1); myGLCD.setBackColor (64, 64, 64); myGLCD.setColor (255, 255, 0); myGLCD.print ("", CENTRS, 227); myGLCD.setColor (0, 0, 255); myGLCD.drawRect (0, 14, 319, 225); // Zīmēt krustiņus myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); par (int i = 9; i <310; i+= 10) myGLCD.drawLine (i, 117, i, 121); par (int i = 19; i <220; i+= 10) myGLCD.drawLine (157, i, 161, i); // Zīmējiet sin-, cos- un iedeguma līnijas myGLCD.setColor (0, 255, 255); myGLCD.print ("Grēks", 5, 15); par (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); par (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); par (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i*1.13)*3.14)/180))); } kavēšanās (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); // Uzzīmējiet kustīgu sinusa viļņu x = 1; par (int i = 1; i319) {ja ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); cits myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119+(grēks ((((i*1,1))*3,14) / 180)*(90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Uzzīmējiet dažus aizpildītus taisnstūrus (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255)); pārtraukums; 2. gadījums: myGLCD.setColor (255, 0, 0); pārtraukums; 3. gadījums: myGLCD.setColor (0, 255, 0); pārtraukums; 4. gadījums: myGLCD.setColor (0, 0, 255); pārtraukums; 5. gadījums: myGLCD.setColor (255, 255, 0); pārtraukums; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Uzzīmējiet dažus aizpildītus, noapaļotus taisnstūrus (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pārtraukums; 2. gadījums: myGLCD.setColor (255, 0, 0); pārtraukums; 3. gadījums: myGLCD.setColor (0, 255, 0); pārtraukums; 4. gadījums: myGLCD.setColor (0, 0, 255); pārtraukums; 5. gadījums: myGLCD.setColor (255, 255, 0); pārtraukums; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Uzzīmējiet dažus aizpildītus apļus (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255)); pārtraukums; 2. gadījums: myGLCD.setColor (255, 0, 0); pārtraukums; 3. gadījums: myGLCD.setColor (0, 255, 0); pārtraukums; 4. gadījums: myGLCD.setColor (0, 0, 255); pārtraukums; 5. gadījums: myGLCD.setColor (255, 255, 0); pārtraukums; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Zīmējiet dažas līnijas modelī myGLCD.setColor (255, 0, 0); par (int i = 15; i <224; i+= 5) {myGLCD.drawLine (1, i, (i*1,44) -10, 224); } myGLCD.setColor (255, 0, 0); par (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i*1,44) -11, 15); } myGLCD.setColor (0, 255, 255); par (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i*1,44), 15); } myGLCD.setColor (0, 255, 255); par (int i = 15; i <224; i+= 5) {myGLCD.drawLine (318, i, 330- (i*1,44), 224); } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Uzzīmējiet nejaušus apļus (int i = 0; i <100; i ++) {myGLCD.setColor (nejauši (255), nejauši (255), nejauši (255))); x = 32+nejaušs (256); y = 45+nejaušs (146); r = nejaušs (30); myGLCD.drawCircle (x, y, r); } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Uzzīmējiet dažus izlases taisnstūrus (int i = 0; i <100; i ++) {myGLCD.setColor (nejauši (255), nejauši (255), nejauši (255))); x = 2+nejaušs (316); y = 16+nejaušs (207); x2 = 2+nejaušs (316); y2 = 16+nejaušs (207); myGLCD.drawRect (x, y, x2, y2); } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Uzzīmējiet nejauši noapaļotus taisnstūrus (int i = 0; i <100; i ++) {myGLCD.setColor (nejauši (255), nejauši (255), nejauši (255)); x = 2+nejaušs (316); y = 16+nejaušs (207); x2 = 2+nejaušs (316); y2 = 16+nejaušs (207); myGLCD.drawRoundRect (x, y, x2, y2); } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); par (int i = 0; i <100; i ++) {myGLCD.setColor (nejauši (255), nejauši (255), nejauši (255)); x = 2+nejaušs (316); y = 16+nejaušs (209); x2 = 2+nejaušs (316); y2 = 16+nejaušs (209); myGLCD.drawLine (x, y, x2, y2); } kavēšanās (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); par (int i = 0; i <10000; i ++) {myGLCD.setColor (nejauši (255), nejauši (255), nejauši (255)); myGLCD.drawPixel (2+izlases (316), 16+izlases (209)); } kavēšanās (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 ("Tas tā!", CENTRS, 93); myGLCD.print ("Restarting in a", CENTER, 119); myGLCD.print ("dažas sekundes…", CENTRS, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Izpildlaiks: (ms)", CENTRS, 210); myGLCD.printNumI (milis (), CENTRS, 225); kavēšanās (10000); }

7. darbība: UTFT bitkarte

UTFT bitkarte
UTFT bitkarte

#iekļaut

#include // Deklarējiet, kādus fontus mēs izmantosim, izmantojot extern uint8_t SmallFont ; // Iestatiet tapas uz pareizo attīstības vairoga // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standarta Arduino Uno/ 2009 vairogs:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT vairogs:, A5, A4, A3, A2 // Arduino Mega: // ------------------- // Standarta Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD vairogs Arduino Mega:, 38, 39, 40, 41 // // Atcerieties mainīt modeļa parametru atbilstoši jūsu displeja modulim! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); ārēja neparakstīta int informācija [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 ("*** A 10x7 režģis no 32x32 ikonas ***", CENTRS, 228); par (int x = 0; x <10; x ++) par (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); kavēšanās (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Divas dažādas ikonas skalā no 1 līdz 4", CENTRS, 228); int x = 0; par (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, ikona, s); x+= (s*32); } kavēšanās (5000); }

8. solis: pogu saskarne

Pogas saskarne
Pogas saskarne

#include #include // Inicializēt displeju // ------------------ // Iestatiet tapas uz pareiziem, lai tie atbilstu jūsu attīstības padomei // ------- -------------------------------------------------- - // Standarta Arduino Uno/2009 Shield:, 19, 18, 17, 16 // Standarta Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT testa dēlis:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD vairogs Arduino Termiņš:, 22, 23, 31, 33 // // Atcerieties mainiet modeļa parametru, lai tas atbilstu jūsu displeja modulim! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Skārienekrāna inicializēšana // ---------------------- // Piespraudes iestatiet pareizi tie, kas paredzēti jūsu attīstības padomei // ------------------------------------------- ---------------- // Standarta Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Standarta Arduino Mega/Due shield: 6, 5, 4, 3, 2 // CTE TFT LCD/SD vairogs Arduino dēļ: 6, 5, 4, 3, 2 // Teensy 3.x TFT testa dēlis: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD vairogs Arduino termiņam: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Paziņojiet, kurus fontus izmantosim, izmantojot extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************* ** Pielāgotās funkcijas ** ********* ****************/void drawButtons () {// Zīmējiet augšējo pogu rindu (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); } // Uzzīmējiet pogu (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 255) centrālo pogu rindu; 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); ja (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // Uzzīmējiet apakšējo pogu pogu myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Skaidrs", 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) {par (x = 0; x

9. solis: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include // ==== Objektu izveide UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parametri jāpielāgo jūsu Display/Schield modelim UTouch myTouch (6, 5, 4, 3, 2); // ==== Fontu definēšana extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Putnu Bitmapint x, y; // Mainīgie lielumi koordinātām, kurās ir nospiests displejs // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; pludiņa kritumsRate = 0; int rezultāts = 0; int lastSpeedUpScore = 0; int highScore; Būla ekrāns Pressed = false; Būla spēleStarted = false; void setup () {// Uzsākt displeja myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); augstākais rādītājs = EEPROM.lasījums (0); // Lasīt augstāko punktu skaitu no EEPROM initiateGame (); // Spēles uzsākšana} void loop () {xP = xP-moveRate; // xP - x polāru koordināta; diapazons: 319 - (-51) drawPilars (xP, yP); // Zīmē pīlārus // yB - y koordinātu putnam, kas ir atkarīgs no krišanas ātruma mainīgā lieluma yB+= fallRateInt; kritumsRate = kritumsRate+0,4; // Katrs ievads kritiena ātruma pieaugums, lai mēs varētu paātrinājuma/ gravitācijas krituma ietekmiRateInt = int (fallRate); // Pārbauda sadursmi, ja (yB> = 180 || yB <= 0) {// augšējā un apakšējā spēleOver (); } if ((xP = 5) && (yB <= yP-2)) {// augšējā pīlāra spēleOver (); } if ((xP = 5) && (yB> = yP+60)) {// apakšējā pīlāra spēleOver (); } // Zīmē putnu drawBird (yB); // Kad pīlārs ir izgājis cauri ekrānam, ja (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); } cits ja (x augstākais rādītājs) {augstākais rādītājs = rezultāts; EEPROM.write (0, augstākais rādītājs); } // Atiestata mainīgos uz sākuma pozīcijas vērtībām xP = 319; yB = 50; kritumsRate = 0; rezultāts = 0; lastSpeedUpScore = 0; MovingRate = 3; gameStarted = nepatiess; // Restartējiet spēli initiateGame (); }

10. solis: projekta darbs

Avota kodu varat atrast manā Github krātuvē.

Saite:

Palieciet īkšķi, ja tas jums patiešām palīdzēja, un sekojiet manam kanālam interesantiem projektiem:)

Ja vēlaties, kopīgojiet šo videoklipu.

Priecājamies, ka abonējat:

Paldies, ka izlasījāt!

Ieteicams: