Cuprins:
- Pasul 1: Cerințe hardware și software
- Pasul 2: Modificarea UTFT Lib
- Pasul 3: Inițializarea scutului TFT
- Pasul 4: Hello World de bază
- Pasul 5: Fonturi UTFT
- Pasul 6: Forme, linii și model UTFT
- Pasul 7: UTFT Bitmap
- Pasul 8: interfața butoanelor
- Pasul 9: Flappy Bird
- Pasul 10: Lucrarea proiectului
Video: Noțiuni de bază despre interfața Arduino TFT: 10 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Ecranele tactile TFT sunt interfața grafică uimitoare care poate fi utilizată cu microcontrolere precum Atmel, PIC, STM, deoarece are o gamă largă de culori, o capacitate grafică bună și o bună mapare a pixelilor.
Astăzi mergem la interfață Shield LCD TFT de 2,4 inci cu Arduino.
Acest scut este pentru Arduino UNO, dar voi învăța cum să-l folosesc cu Arduino Mega dintr-un motiv foarte logic, „Memoria programului”.
Prin utilizarea acestui ecran TFT LCD color putem afișa caractere, șiruri, interfață buton, imagini bitmap, etc. pe ecranul TFT LCD color.
Pasul 1: Cerințe hardware și software
Pentru a face interfața scut cu mega Arduino, avem nevoie de următoarele.
HARDWARE:
• Arduino mega
• LCD TFT de 2,4 / 2,8 / 3,2 inci
• Cablu USB
SOFTWARE
• IDE Arduino
• Biblioteca UTFT / Biblioteca spfd5408
Shield-ul este creat inițial pentru plăcile Arduino UNO, care pot fi utilizate cu mega Arduino.
Există două probleme principale în timpul utilizării acestuia cu Arduino UNO: „Memorie de stocare” și utilizarea pinilor.
Este dificil să utilizați pinii neutilizați, care sunt disponibili pe UNO, în timp ce este mai bine cu Arduino MEGA, deoarece ne-au rămas mai mulți pin I / O.
În pasul următor, voi arăta cum să editați biblioteca UTFT pentru a utiliza scutul TFT
Pasul 2: Modificarea UTFT Lib
Această bibliotecă este continuarea bibliotecilor mele ITDB02_Graph, ITDB02_Graph16 și RGB_GLCD pentru Arduino și chipKit. Pe măsură ce numărul de module de afișare și controlere acceptate a început să crească, am simțit că este timpul să fac o singură bibliotecă universală, deoarece va fi mult mai ușor de întreținut în viitor.
Arduino MEGA are 256 kb memorie de program. În plus, există 54 de pini.
Majoritatea sunt liberi de utilizat, iar analogul doar 5 este preluat din 16.
Această bibliotecă acceptă un număr de afișaje grafice de 8 biți, 16 biți și seriale și va funcționa atât cu plăci Arduino, chipKit, cât și cu selecții TI LaunchPad.
NOTĂ: Datorită dimensiunii bibliotecii, nu vă recomand să o utilizați pe ATmega328 (Arduino Uno) și ATmega32U4 (Arduino Leonardo) deoarece au doar 32KB de memorie flash. Va funcționa, dar veți fi extrem de limitat în memoria flash disponibilă pentru aplicația dvs
Pași
- Descărcați Biblioteca UTFT
- Dezarhivați biblioteca
- Deschideți UTFT / hardware / avr în cazul Arduino sau în funcție de microcontrolerul utilizat
- Deschideți HW_AVR_defines utilizând Notepad
- Decomentați linia 7 pentru a activa scutul UNO pentru MEGA
- Salvați fișierul și adăugați această bibliotecă la Arduino IDE
Acum am terminat cu acest pas! În pasul următor, voi arăta să folosesc biblioteca și să definesc pinii pentru Arduino Mega.
Pasul 3: Inițializarea scutului TFT
După editarea bibliotecii, adăugați-o în directorul Arduino.
În continuare, vă voi arăta cum să definiți modulul TFT potrivit pe care îl aveți
ar trebui să găsim numele modulului său în bibliotecă.
- deschideți fișierul bibliotecă
- accesați documentația
Puteți vedea aceste fișiere în Documentație
• UTFT:
Acest fișier arată toate funcțiile și comenzile incluse în această bibliotecă.
• UTFT_Requirement
Acest fișier conține informații despre module și despre modul în care este legat de bibliotecă, cum ar fi configurațiile pinilor
• UTFT_Supported_display_modules _ & _ controller
Aceasta este ținta noastră, acest fișier are numele modulelor și scuturilor care sunt acceptate de această bibliotecă, puteți vedea în ea o listă de nume de module și nume de module pentru UTFT pe care ar trebui să le utilizați pentru a defini modulul dumneavoastră.
Pași pentru definirea TFT:
Deschideți fișierul controler UTFT_Supported_display_modules _ & _ din bibliotecă
- Deschideți fișierul controler UTFT_Supported_display_modules _ & _ din bibliotecă
- Găsiți modelele pentru UTFT pentru modulele (scutul) pe care le aveți.
- Acum, pentru a defini o funcție UTFT pe Arduino IDE, folosim comanda:
Numele UTFT (modul, Rs, Wr, Cs, Rst);
Deschideți fișierul UTFT_Requirement din bibliotecă
Din document, știm că pinii sunt localizați pe pinii A5, A4, A3 și A2.
folosim comanda:
UTFT myGLCD (ITDB28, 19, 18, 17, 16); # rețineți că pinii 19, 18, 17, 16 din Arduino Mega
UTFT myGLCD (ITDB28, A5, A4, A3, A2); # rețineți că pinii A5, A4, A3, A2 din Arduino UNO
Și gata! Acum puteți utiliza exemplele de bibliotecă de pe IDE-ul Arduino cu următoarele modificări.
Pasul 4: Hello World de bază
#include // Declară ce fonturi vom folosi
extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Nu uitați să modificați parametrul modelului pentru a se potrivi modulului dvs. de afișare! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // verde myGLCD.print ("HELLO WORLD", 45, 100); while (adevărat) {}; }
Pasul 5: Fonturi UTFT
#include // Declară ce fonturi vom folosi
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Setați pinii la cei corecți pentru scutul dvs. de dezvoltare // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standard Arduino Uno / 2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield pentru Arduino Mega:, 38, 39, 40, 41 // // Nu uitați să modificați parametrul modelului pentru a se potrivi modulului dvs. de afișare! 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:;? ", CENTER, 16); myGLCD.print (" @ ABCDEFGHIJKLMNO ", CENTER, 32); myGLCD.print (" PQRSTUVWXYZ ^ _ ", CENTER, 48); myGLCD.print (" `abcdefghijklmno", CENTER, 64); myGLCD.print ("pqrstuvwxyz {|} ~ ", CENTER, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "# $% & '() * +, -. / 0123456789:;?", CENTER, 120); myGLCD.print ("@ ABCDEFGHIJKLMNOPQRSTUVWXYZ ^ _", CENTRE, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ~ ", CENTER, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTRE, 190); while (1) {}; }
Pasul 6: Forme, linii și model UTFT
#includeți "UTFT.h" // Declarați ce fonturi vom folosiextern uint8_t SmallFont ; // Setați pinii la cei corecți pentru scutul dvs. de dezvoltare // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standard Arduino Uno / 2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield pentru Arduino Mega:, 38, 39, 40, 41 // // Nu uitați să modificați parametrul modelului pentru a se potrivi cu modulul dvs. de afișare! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Configurați ecranul LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }
bucla nulă ()
{int buf [318]; int x, x2; int y, y2; int r; // Ștergeți ecranul și desenați cadrul 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 ("* Biblioteca universală de afișare color TFT *", CENTER, 1); myGLCD.setBackColor (64, 64, 64); myGLCD.setColor (255, 255, 0); myGLCD.print ("", CENTRE, 227); myGLCD.setColor (0, 0, 255); myGLCD.drawRect (0, 14, 319, 225); // Desenați reteta myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); pentru (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); // Desenați linii de sin-, cos și bronz myGLCD.setColor (0, 255, 255); myGLCD.print ("Sin", 5, 15); for (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); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i * 1.13) * 3.14) / 180))); } întârziere (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); // Desenați o undă sinusoidală în mișcare x = 1; for (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); altfel 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; } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva dreptunghiuri umplute pentru (int i = 1; i <6; i ++) {switch (i) {caz 1: myGLCD.setColor (255, 0, 255); pauză; cazul 2: myGLCD.setColor (255, 0, 0); pauză; caz 3: myGLCD.setColor (0, 255, 0); pauză; cazul 4: myGLCD.setColor (0, 0, 255); pauză; cazul 5: myGLCD.setColor (255, 255, 0); pauză; } myGLCD.fillRect (70+ (i * 20), 30+ (i * 20), 130+ (i * 20), 90+ (i * 20)); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva dreptunghiuri rotunjite umplute pentru (int i = 1; i <6; i ++) {comutator (i) {caz 1: myGLCD.setColor (255, 0, 255); pauză; cazul 2: myGLCD.setColor (255, 0, 0); pauză; caz 3: myGLCD.setColor (0, 255, 0); pauză; cazul 4: myGLCD.setColor (0, 0, 255); pauză; cazul 5: myGLCD.setColor (255, 255, 0); pauză; } myGLCD.fillRoundRect (190- (i * 20), 30+ (i * 20), 250- (i * 20), 90+ (i * 20)); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva cercuri umplute pentru (int i = 1; i <6; i ++) {switch (i) {caz 1: myGLCD.setColor (255, 0, 255); pauză; cazul 2: myGLCD.setColor (255, 0, 0); pauză; caz 3: myGLCD.setColor (0, 255, 0); pauză; cazul 4: myGLCD.setColor (0, 0, 255); pauză; cazul 5: myGLCD.setColor (255, 255, 0); pauză; } myGLCD.fillCircle (100+ (i * 20), 60+ (i * 20), 30); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva linii într-un model myGLCD.setColor (255, 0, 0); for (int i = 15; i <224; i + = 5) {myGLCD.drawLine (1, i, (i * 1.44) -10, 224); } myGLCD.setColor (255, 0, 0); for (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i * 1.44) -11, 15); } myGLCD.setColor (0, 255, 255); for (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i * 1.44), 15); } myGLCD.setColor (0, 255, 255); for (int i = 15; i <224; i + = 5) {myGLCD.drawLine (318, i, 330- (i * 1.44), 224); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva cercuri aleatorii pentru (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32 + aleatoriu (256); y = 45 + aleatoriu (146); r = aleatoriu (30); myGLCD.drawCircle (x, y, r); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva dreptunghiuri aleatorii pentru (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 2 + aleatoriu (316); y = 16 + aleatoriu (207); x2 = 2 + aleatoriu (316); y2 = 16 + aleatoriu (207); myGLCD.drawRect (x, y, x2, y2); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva dreptunghiuri rotunjite aleatorii pentru (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + aleatoriu (316); y = 16 + aleatoriu (207); x2 = 2 + aleatoriu (316); y2 = 16 + aleatoriu (207); myGLCD.drawRoundRect (x, y, x2, y2); } întârziere (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 + aleatoriu (316); y = 16 + aleatoriu (209); x2 = 2 + aleatoriu (316); y2 = 16 + aleatoriu (209); myGLCD.drawLine (x, y, x2, y2); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <10000; i ++) {myGLCD.setColor (random (255), random (255), random (255)); myGLCD.drawPixel (2 + random (316), 16 + random (209)); } întârziere (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 ("Gata!", CENTRE, 93); myGLCD.print ("Repornirea într-un", CENTER, 119); myGLCD.print („câteva secunde …”, CENTRE, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Runtime: (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTRE, 225); întârziere (10000); }
Pasul 7: UTFT Bitmap
#include
#include // Declarați ce fonturi vom folosi extern uint8_t SmallFont ; // Setați pinii pe cei corecți pentru scutul dvs. de dezvoltare // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standard Arduino Uno / 2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield pentru Arduino Mega:, 38, 39, 40, 41 // // Nu uitați să modificați parametrii modelului pentru a se potrivi cu modulul dvs. de afișare! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); extern nesemnat int info [0x400]; pictogramă externă nesemnată int [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 („*** O grilă de 10 pe 7 a unei pictograme de 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); întârziere (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print („Două pictograme diferite la scara 1 la 4”, CENTRE, 228); int x = 0; for (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s * 32), 32, 32, pictogramă, s); x + = (s * 32); } întârziere (5000); }
Pasul 8: interfața butoanelor
#include #include // Inițializați afișajul // ------------------ // Setați pinii la cei corecți pentru placa dvs. de dezvoltare // ------- -------------------------------------------------- - // Standard Arduino Uno / 2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield pentru Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD / SD Shield pentru Arduino Due:, 22, 23, 31, 33 // // Nu uitați să modificați parametrul modelului pentru a se potrivi cu modulul dvs. de afișare! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Inițializați ecranul tactil // ---------------------- // Setați pinii corect cele pentru placa dvs. de dezvoltare // ------------------------------------------- ---------------- // Standard Arduino Uno / 2009 Shield: 15, 10, 14, 9, 8 // Standard Arduino Mega / Due shield: 6, 5, 4, 3, 2 // CTE TFT LCD / SD Shield pentru Arduino Due: 6, 5, 4, 3, 2 // Placă de testare TFT Teensy 3.x: 26, 31, 27, 28, 29 // ElecHouse TFT LCD / SD Shield pentru Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Declarați ce fonturi vom folosi extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = ""; / ************************* ** Funcții personalizate ** ********* **************** / void drawButtons () {// Desenați rândul superior al butoanelor pentru (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); } // Desenați rândul central de butoane pentru (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); // Desenați rândul inferior de butoane 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) {pentru (x = 0; x
Pasul 9: Flappy Bird
#include #include #include // ==== Crearea obiectelor UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parametrii ar trebui să fie ajustați la modelul dvs. Display / Schield UTouch myTouch (6, 5, 4, 3, 2); // ==== Definirea fonturilor extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bird Bitmapint x, y; // Variabile pentru coordonatele unde a fost apăsat afișajul // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int FallRateInt = 0; float fallRate = 0; int scor = 0; int lastSpeedUpScore = 0; int cel mai înalt scor; ecran boolean Presat = fals; boolean gameStarted = false; void setup () {// Inițiază afișarea myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); maximumScore = EEPROM.read (0); // Citiți cel mai mare scor din EEPROM initiateGame (); // Inițiați jocul} void loop () {xP = xP-movingRate; // xP - coordonata x a stâlpilor; interval: 319 - (-51) drawPilars (xP, yP); // Desenează stâlpii // yB - coordonata y a păsării, care depinde de valoarea variabilei Falling Rate yB + = FallRateInt; FallRate = FallRate + 0,4; // Fiecare intrare crește rata de cădere, astfel încât să putem efectul accelerației / gravitației fallRateInt = int (fallRate); // Verifică coliziunea dacă (yB> = 180 || yB <= 0) {// gameOver sus și jos (); } if ((xP = 5) && (yB <= yP-2)) {// stâlp superior gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// jos pilon jocOver (); } // Desenează pasărea drawBird (yB); // După ce stâlpul a trecut prin ecran dacă (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 scorul cel mai înalt) {scorul cel mai înalt = scor; EEPROM.write (0, cel mai înalt scor); } // Resetează variabilele pentru a începe valorile poziției xP = 319; yB = 50; FallRate = 0; scor = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Reporniți jocul initiateGame (); }
Pasul 10: Lucrarea proiectului
Puteți găsi codul sursă în depozitul meu Github.
Link:
Dă un deget mare dacă te-a ajutat cu adevărat și urmărește canalul meu pentru proiecte interesante:)
Distribuiți acest videoclip dacă doriți.
Mă bucur că v-ați abonat:
Mulțumesc pentru lectură!
Recomandat:
Noțiuni introductive despre interfața senzorului I2C ?? - Interfață MMA8451 folosind ESP32s: 8 pași
Noțiuni introductive despre interfața senzorului I2C ?? - Interfața MMA8451 folosind ESP32s: În acest tutorial, veți afla totul despre cum să porniți, să conectați și să obțineți dispozitivul I2C (accelerometru) care funcționează cu controlerul (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Buton de interfață - Noțiuni de bază Arduino: 3 pași
Buton de interfață - Noțiuni de bază Arduino: butonul este o componentă care conectează două puncte dintr-un circuit atunci când îl apăsați. Când butonul este deschis (neaprins) nu există nicio conexiune între cele două picioare ale butonului, astfel încât pinul este conectat la 5 volți (prin rezoluția de tragere
Noțiuni de bază despre IoT: conectarea IoT-ului dvs. la cloud utilizând sistemul de operare Mongoose: 5 pași
Noțiuni de bază despre IoT: conectarea IoT-ului dvs. la cloud folosind sistemul de operare Mongoose: dacă sunteți o persoană care se ocupă de bricolaj și electronică, cel mai adesea, veți întâlni termenul de Internet al obiectelor, de obicei abreviat ca IoT, și că se referă la un set de dispozitive care se pot conecta la internet! A fi o astfel de persoană
Noțiuni de bază despre Arduino Esplora: 4 pași
Noțiuni de bază despre Arduino Esplora: Oh! Nu te-am văzut acolo! Trebuie să doriți să învățați elementele de bază ale tabloului Esplora. Ei bine, intră, intră. Acest tutorial te va învăța despre câteva trucuri îngrijite pe care le poți face cu Esplora ta
Noțiuni de bază despre automatizarea casei: 6 pași (cu imagini)
Noțiuni de bază despre automatizarea casei: Bună ziua tuturor. Această instrucțiune vă va ghida să înțelegeți noțiunile de bază ale Home Automation. Deoarece acesta este de nivel de bază, vom folosi doar Arduino și câteva alte componente