Taula de continguts:
- Pas 1: Requisits de maquinari i programari
- Pas 2: ajustar UTFT Lib
- Pas 3: inicialització de l’escut TFT
- Pas 4: Hello World bàsic
- Pas 5: tipus de lletra UTFT
- Pas 6: formes, línies i patrons UTFT
- Pas 7: mapa de bits UTFT
- Pas 8: Interfície de botons
- Pas 9: Flappy Bird
- Pas 10: Funcionament del projecte
Vídeo: Fonaments bàsics de la interfície TFT Arduino: 10 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Les pantalles tàctils TFT són la increïble interfície gràfica que es pot utilitzar amb microcontroladors com Atmel, PIC, STM, ja que té una àmplia gamma de colors, una bona capacitat gràfica i una bona assignació de píxels.
Avui anem a la interfície TFT LCD Shield de 2,4 polzades amb Arduino.
Aquest escut és per a Arduino UNO, però us ensenyaré a fer-lo servir amb Arduino Mega per una raó molt lògica, la "Memòria del programa".
En utilitzar aquest escut TFT LCD en color podem mostrar personatges, cadenes, interfície de botons, imatges de mapa de bits, etc. a la pantalla TFT LCD en color.
Pas 1: Requisits de maquinari i programari
Per fer la interfície d’escut amb el mega Arduino, necessitem el següent.
HARDWARE:
• Arduino mega
• LCD TFT de 2,4 / 2,8 / 3,2 polzades
• Cable USB
PROGRAMARI
• IDE Arduino
• Biblioteca UTFT / Biblioteca spfd5408
El Shield es fabricava originalment per a les plaques Arduino UNO, que es poden utilitzar amb Arduino mega.
Hi ha dos problemes principals en utilitzar-lo amb Arduino UNO: "Memòria d'emmagatzematge" i ús de pins.
És difícil utilitzar els pins no utilitzats que estan disponibles a UNO, mentre que és millor amb Arduino MEGA, ja que ens queden més pins d'E / S.
Al següent pas, mostraré com editar la biblioteca UTFT per utilitzar l'escut TFT
Pas 2: ajustar UTFT Lib
Aquesta biblioteca és la continuació de les meves biblioteques ITDB02_Graph, ITDB02_Graph16 i RGB_GLCD per a Arduino i chipKit. A mesura que el nombre de controladors i mòduls de visualització compatibles començava a augmentar, sentia que era el moment de fer una única biblioteca universal, ja que serà molt més fàcil de mantenir en el futur.
Arduino MEGA té 256 kb de memòria de programa. A més, hi ha 54 pins.
La majoria d’ells són d’ús lliure, i l’analògic només 5 es pren de 16.
Aquesta biblioteca admet diverses pantalles gràfiques de 8 bits, 16 bits i sèries i funcionarà tant amb Arduino, com amb les plaques chipKit i amb alguns TI LaunchPads.
NOTA: A causa de la mida de la biblioteca, no recomano utilitzar-la a ATmega328 (Arduino Uno) i ATmega32U4 (Arduino Leonardo), ja que només tenen 32 KB de memòria flash. Funcionarà, però quedarà molt limitat en la memòria flash disponible per a la seva aplicació
Passos
- Descarregueu la biblioteca UTFT
- Descomprimiu la biblioteca
- Obriu UTFT / hardware / avr en cas d'Arduino o en funció del microcontrolador utilitzat
- Obriu HW_AVR_defines mitjançant el bloc de notes
- Descomenteu la línia 7 per habilitar l'escut UNO per a MEGA
- Deseu el fitxer i afegiu aquesta biblioteca a Arduino IDE
Ara hem acabat amb aquest pas! Al següent pas, mostraré utilitzar la biblioteca i definir els pins per a Arduino Mega.
Pas 3: inicialització de l’escut TFT
Després d'editar la biblioteca, afegiu-la al directori Arduino.
A continuació, us mostraré com definir el mòdul TFT adequat que teniu
hauríem de trobar el nom del mòdul a la biblioteca.
- obriu el fitxer de la biblioteca
- aneu a la documentació
Podeu veure aquests fitxers a la documentació
• UTFT:
Aquest fitxer mostra totes les funcions i ordres incloses en aquesta biblioteca.
• UTFT_Requisit
Aquest fitxer conté informació sobre els mòduls i la seva relació amb la biblioteca, com ara les configuracions de pins
• Controlador UTFT_Supported_display_modules _ & _
Aquest és el nostre objectiu, aquest fitxer té els noms dels mòduls i escuts que són compatibles amb aquesta biblioteca; hi podeu veure una llista de noms de mòduls i noms de mòduls per a l'UTFT que hauríeu d'utilitzar per definir el vostre mòdul.
Passos per definir el TFT:
Obriu el fitxer del controlador UTFT_Supported_display_modules _ & _ de la biblioteca
- Obriu el fitxer del controlador UTFT_Supported_display_modules _ & _ de la biblioteca
- Cerqueu els models per a UTFT per als mòduls (blindatge) que teniu.
- Ara per definir una funció UTFT a l'IDE Arduino, fem servir l'ordre:
Nom UTFT (mòdul, Rs, Wr, Cs, Rst);
Obriu el fitxer UTFT_Requirement de la biblioteca
Pel document, sabem que els pins es troben als pins A5, A4, A3 i A2.
fem servir l'ordre:
UTFT myGLCD (ITDB28, 19, 18, 17, 16); # tingueu en compte que els pins 19, 18, 17, 16 de l'Arduino Mega
UTFT myGLCD (ITDB28, A5, A4, A3, A2); # Tingueu en compte que els pins A5, A4, A3, A2 a Arduino UNO
I fet! Ara podeu utilitzar els exemples de biblioteca de l’IDE Arduino amb els canvis següents.
Pas 4: Hello World bàsic
#include // Declareu quins tipus de lletra utilitzarem
extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Recordeu de canviar el paràmetre del model per adaptar-lo al vostre mòdul de visualització. UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // green myGLCD.print ("HOLA MÓN", 45, 100); while (true) {}; }
Pas 5: tipus de lletra UTFT
#include // Declareu quins tipus de lletra utilitzarem
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Estableix els pins als correctes per al teu escut de desenvolupament // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Escut estàndard Arduino Uno / 2009:, A5, A4, A3, A2 // DisplayModule Escut TFT Arduino Uno:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Estàndard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield per Arduino Mega:, 38, 39, 40, 41 // // Recordeu-vos de canviar el paràmetre del model per adaptar-lo al vostre mòdul de visualització. 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 ("! \" # $% & '() * +, -. / ", CENTRE, 0); myGLCD.print (" 0123456789:;? ", CENTRE, 16); myGLCD.print (" @ ABCDEFGHIJKLMNO ", CENTRE, 32); myGLCD.print (" PQRSTUVWXYZ ^ _ ", CENTRE, 48); myGLCD.print (" `abcdefghijklmno", CENTRE, 64); myGLCD.print ("pqrstuvwxyz {|} ~ ", CENTRE, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "# $% & '() * +, -. / 0123456789:;?", CENTRE, 120); myGLCD.print ("@ ABCDEFGHIJKLMNOPQRSTUVWXYZ ^ _", CENTRE, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ~ ", CENTRE, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTRE, 190); mentre que (1) {}; }
Pas 6: formes, línies i patrons UTFT
#include "UTFT.h" // Declareu quins tipus de lletra utilitzarem extern uint8_t SmallFont ; // Establiu els pins als correctes per al vostre escut de desenvolupament // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Estàndard Arduino Uno / 2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Arduino estàndard Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield per Arduino Mega:, 38, 39, 40, 41 // // Recordeu-vos de canviar el paràmetre del model per adaptar-lo al vostre mòdul de visualització. UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Configureu la pantalla LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }
bucle buit ()
{int buf [318]; int x, x2; int y, y2; int r; // Esborreu la pantalla i dibuixeu el marc 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 pantalla TFT en color *", CENTRE, 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); // Dibuixa mirades myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); per a (int i = 9; i <310; i + = 10) myGLCD.drawLine (i, 117, i, 121); per a (int i = 19; i <220; i + = 10) myGLCD.drawLine (157, i, 161, i); // Dibuixeu línies de sin, cos i marró 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); per a (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i * 1.13) * 3.14) / 180))); } demora (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); // Dibuixeu una ona sinusoïdal en moviment x = 1; per a (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); altrament 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; } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns rectangles emplenats per a (int i = 1; i <6; i ++) {switch (i) {cas 1: myGLCD.setColor (255, 0, 255); trencar; cas 2: myGLCD.setColor (255, 0, 0); trencar; cas 3: myGLCD.setColor (0, 255, 0); trencar; cas 4: myGLCD.setColor (0, 0, 255); trencar; cas 5: myGLCD.setColor (255, 255, 0); trencar; } myGLCD.fillRect (70+ (i * 20), 30+ (i * 20), 130+ (i * 20), 90+ (i * 20)); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns rectangles omplerts i arrodonits per a (int i = 1; i <6; i ++) {commutador (i) {cas 1: myGLCD.setColor (255, 0, 255); trencar; cas 2: myGLCD.setColor (255, 0, 0); trencar; cas 3: myGLCD.setColor (0, 255, 0); trencar; cas 4: myGLCD.setColor (0, 0, 255); trencar; cas 5: myGLCD.setColor (255, 255, 0); trencar; } myGLCD.fillRoundRect (190- (i * 20), 30+ (i * 20), 250- (i * 20), 90+ (i * 20)); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns cercles omplerts per (int i = 1; i <6; i ++) {switch (i) {cas 1: myGLCD.setColor (255, 0, 255); trencar; cas 2: myGLCD.setColor (255, 0, 0); trencar; cas 3: myGLCD.setColor (0, 255, 0); trencar; cas 4: myGLCD.setColor (0, 0, 255); trencar; cas 5: myGLCD.setColor (255, 255, 0); trencar; } myGLCD.fillCircle (100+ (i * 20), 60+ (i * 20), 30); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixeu algunes línies en un patró 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); per a (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i * 1,44) -11, 15); } myGLCD.setColor (0, 255, 255); per a (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i * 1.44), 15); } myGLCD.setColor (0, 255, 255); per a (int i = 15; i <224; i + = 5) {myGLCD.drawLine (318, i, 330- (i * 1.44), 224); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns cercles aleatoris per a (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32 + aleatori (256); y = 45 + aleatori (146); r = aleatori (30); myGLCD.drawCircle (x, y, r); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns rectangles aleatoris per a (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 2 + aleatori (316); y = 16 + aleatori (207); x2 = 2 + aleatori (316); y2 = 16 + aleatori (207); myGLCD.drawRect (x, y, x2, y2); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixeu alguns rectangles arrodonits aleatoris per a (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + aleatori (316); y = 16 + aleatori (207); x2 = 2 + aleatori (316); y2 = 16 + aleatori (207); myGLCD.drawRoundRect (x, y, x2, y2); } demora (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 + aleatori (316); y = 16 + aleatori (209); x2 = 2 + aleatori (316); y2 = 16 + aleatori (209); myGLCD.drawLine (x, y, x2, y2); } demora (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)); } demora (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 ("Això és tot!", CENTRE, 93); myGLCD.print ("Reinici en un", CENTRE, 119); myGLCD.print ("pocs segons …", CENTRE, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Temps d'execució: (msecs)", CENTRE, 210); myGLCD.printNumI (millis (), CENTRE, 225); retard (10000); }
Pas 7: mapa de bits UTFT
#incloure
#include // Declara quins tipus de lletra utilitzarem extern uint8_t SmallFont ; // Estableix els pins als correctes per al teu escut de desenvolupament // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Escut Arduino Uno / 2009 estàndard:, A5, A4, A3, A2 // Escut TFT DisplayModule Arduino Uno:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Estàndard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield per Arduino Mega:, 38, 39, 40, 41 // // Recordeu-vos de canviar el paràmetre del model per adaptar-lo al vostre mòdul de visualització. UTFT myGLCD (ITDB32S, A5, A4, A3, A2); informació int sense signatura externa [0x400]; icona int sense signe extern [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 ("*** Una graella de 10 per 7 d'una icona de 32x32 ***", CENTRE, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x * 32, y * 32, 32, 32, info); retard (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Dues icones diferents a escala 1 a 4", CENTRE, 228); int x = 0; for (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s * 32), 32, 32, icon, s); x + = (s * 32); } retard (5000); }
Pas 8: Interfície de botons
#include #include // Inicialitza la visualització // ------------------ // Estableix els pins als correctes per al tauler de desenvolupament // ------- -------------------------------------------------- - // Estàndard Arduino Uno / 2009 Shield:, 19, 18, 17, 16 // Estàndard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield per Arduino Due:, 25, 26, 27, 28 // Taens de prova TFT Teensy 3.x:, 23, 22, 3, 4 // Escut TFT LCD / SD ElecHouse per Arduino Due:, 22, 23, 31, 33 // // Recorda canvieu el paràmetre del model per adaptar-lo al vostre mòdul de visualització. UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Inicialitzar la pantalla tàctil // ---------------------- // Estableix els pins al correcte per al vostre tauler de desenvolupament // ------------------------------------------- ---------------- // Estàndard Arduino Uno / 2009 Shield: 15, 10, 14, 9, 8 // Estàndard Arduino Mega / Due shield: 6, 5, 4, 3, 2 // CTE TFT LCD / SD Shield per Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD / SD Shield per Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Declareu quins tipus de lletra utilitzarem extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = ""; / ************************** ** Funcions personalitzades ** ********* **************** / void drawButtons () {// Dibuixa la fila superior de botons de (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); } // Dibuixeu la fila central de botons per a (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); // Dibuixa la fila inferior de botons myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Esborra", 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 ("Retorn", 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) {for (x = 0; x
Pas 9: Flappy Bird
#include #include #include // ==== Creació d'objectes UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Els paràmetres s’han d’ajustar al model de pantalla / model d’escut UTouch myTouch (6, 5, 4, 3, 2); // ==== Definició de tipus de lletra extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bitmapint Bird x, y; // Variables de les coordenades on s'ha premut la pantalla // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int FallRateInt = 0; float fallRate = 0; puntuació int = 0; int lastSpeedUpScore = 0; int scoreScore més alt; pantalla booleana Pressed = false; boolean gameStarted = false; void setup () {// Inicia la visualització myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); puntuació més alta = EEPROM.read (0); // Llegiu la puntuació més alta de l'EEPROM initiateGame (); // Inicieu el joc} void loop () {xP = xP-movingRate; // xP - coordenada x dels pilars; interval: 319 - (-51) drawPilars (xP, yP); // Dibuixa els pilars // yB - coordenada y de l’ocell que depèn del valor de la variable caigudaRata yB + = caigudaRataInt; caiguda = caiguda + 0,4; // Cada inetració augmenta la taxa de caiguda de manera que podem obtenir l’efecte de l’acceleració / gravetat fallRateInt = int (fallRate); // Comprova si hi ha col·lisió si (yB> = 180 || yB <= 0) {// joc superior i inferior (); } if ((xP = 5) && (yB <= yP-2)) {// pilar superior gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// pilar inferior jocOver (); } // Dibuixa l’ocell drawBird (yB); // Després que el pilar hagi passat per la pantalla si (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 ScoreScore més alt) {ScoreScore més alt=puntuació; EEPROM.write (0, puntuació més alta); } // Restableix les variables per iniciar els valors de posició xP = 319; yB = 50; caiguda = 0; puntuació = 0; lastSpeedUpScore = 0; RateRating = 3; gameStarted = fals; // Reinicieu el joc initiateGame (); }
Pas 10: Funcionament del projecte
Podeu trobar el codi font al meu dipòsit de Github.
Enllaç:
Doneu un cop de polze si realment us ha ajudat i seguiu el meu canal per a projectes interessants:)
Comparteix aquest vídeo si vols.
Feliç d’haver-vos subscrit:
Gràcies per llegir!
Recomanat:
Components de muntatge superficial de soldadura - Fonaments bàsics de soldadura: 9 passos (amb imatges)
Components de muntatge superficial de soldadura | Conceptes bàsics de soldadura: fins ara, a la meva sèrie Conceptes bàsics de soldadura, he comentat prou aspectes bàsics sobre la soldadura perquè pugueu començar a practicar. En aquest instructiu, el que parlaré és una mica més avançat, però és un dels fonaments bàsics per soldar la composició de muntatge superficial
Components de soldadura a través del forat - Fonaments bàsics de soldadura: 8 passos (amb imatges)
Components de soldadura a través del forat | Fonaments bàsics de soldadura: en aquest instructiu tractaré alguns aspectes bàsics sobre la soldadura de components de forats passants a plaques de circuits. Suposaré que ja heu comprovat els primers 2 instructibles de la meva sèrie Fonaments de soldadura. Si no heu comprovat el meu In
Desoldar - Fonaments bàsics de soldadura: 8 passos (amb imatges)
Desoldar | Fonaments bàsics de soldadura: de vegades, quan esteu soldant, només heu d’eliminar algunes parts. Vaig a mostrar uns quants mètodes per eliminar les peces que es solden a una placa de circuit. Per a cadascun d'aquests mètodes, la peça que intenteu eliminar s'escalfarà, així que aneu amb compte. Si
Ús de Perfboard - Fonaments bàsics de soldadura: 14 passos (amb imatges)
Ús de Perfboard | Fonaments bàsics de soldadura: si esteu construint un circuit però no teniu cap placa de circuit dissenyada, fer servir perfboard és una bona opció. Els perfboards també s’anomenen plaques de circuit perforades, plaques de prototipatge i PCB de punts. Bàsicament és un munt de coixinets de coure en circuit
Fonaments bàsics d’Arduino Esplora: 4 passos
Fonaments bàsics d’Arduino Esplora: Oh! No t’he vist allà! Heu de voler aprendre els conceptes bàsics de la gran taula Esplora. Bé, entra, entra. Aquest tutorial t'ensenyarà uns quants trucs que pots fer amb la teva Esplora