Inhoudsopgave:
- Stap 1: Harware- en softwarevereisten
- Stap 2: Tweaken UTFT Lib
- Stap 3: Het TFT-schild initialiseren
- Stap 4: Basis Hallo Wereld
- Stap 5: UTFT-lettertypen
- Stap 6: UTFT-vormen, lijnen en patronen
- Stap 7: UTFT-bitmap
- Stap 8: Knopinterface
- Stap 9: Flappy Bird
- Stap 10: Werking van het project
Video: Basisprincipes van Arduino TFT-interfaces: 10 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
TFT-touchscreens zijn de verbazingwekkende grafische interface die kan worden gebruikt met microcontrollers zoals Atmel, PIC, STM, omdat het een breed kleurenbereik heeft, en goede grafische mogelijkheden en een goede toewijzing van pixels.
Vandaag gaan we 2,4 inch TFT LCD-schild interfacen met Arduino.
Dit schild is voor Arduino UNO, maar ik zal leren om het te gebruiken met Arduino Mega om een heel logische reden, het "Program Memory".
Door dit TFT LCD-kleurenscherm te gebruiken, kunnen we karakters, strings, knopinterfaces, bitmapafbeeldingen, enz. op het TFT LCD-kleurenscherm weergeven.
Stap 1: Harware- en softwarevereisten
Om de schildinterface met de Arduino mega te maken, hebben we het volgende nodig.
HARDWARE:
• Arduino-mega
• TFT 2,4/2,8/3.2 inch LCD-scherm
• USB-kabel
SOFTWARE
• Arduino IDE
• UTFT-bibliotheek / spfd5408-bibliotheek
De Shield is oorspronkelijk gemaakt voor de Arduino UNO-boards, die kunnen worden gebruikt met Arduino mega.
Er zijn twee hoofdproblemen bij het gebruik met de Arduino UNO: "Opslaggeheugen" en het gebruik van pinnen.
Het is moeilijk om de ongebruikte pinnen te gebruiken die beschikbaar zijn op UNO, terwijl het beter is met Arduino MEGA omdat we meer I/O-pinnen over hebben.
In de volgende stap laat ik zien hoe je de UTFT-bibliotheek kunt bewerken om het TFT-schild te gebruiken
Stap 2: Tweaken UTFT Lib
Deze bibliotheek is de voortzetting van mijn ITDB02_Graph-, ITDB02_Graph16- en RGB_GLCD-bibliotheken voor Arduino en chipKit. Toen het aantal ondersteunde displaymodules en controllers begon toe te nemen, vond ik dat het tijd was om een enkele, universele bibliotheek te maken, omdat deze in de toekomst veel gemakkelijker te onderhouden zal zijn.
Arduino MEGA heeft 256kb programmageheugen. Daarnaast zijn er 54 pinnen.
De meeste zijn gratis te gebruiken en de analoge slechts 5 zijn afkomstig van 16.
Deze bibliotheek ondersteunt een aantal 8-bits, 16-bits en seriële grafische displays en werkt met zowel Arduino, chipKit-kaarten als bepaalde TI LaunchPads.
OPMERKING: vanwege de grootte van de bibliotheek raad ik het niet aan om deze te gebruiken op ATmega328 (Arduino Uno) en ATmega32U4 (Arduino Leonardo) omdat ze slechts 32 KB flash-geheugen hebben. Het zal werken, maar u zult ernstig beperkt zijn in het beschikbare flashgeheugen voor uw toepassing
Stappen
- Download de UTFT-bibliotheek
- De bibliotheek uitpakken
- Open UTFT\hardware\avr in geval van Arduino of afhankelijk van de gebruikte microcontroller
- Open HW_AVR_defines met Kladblok
- Uncomment Line 7 om UNO-schild voor MEGA in te schakelen
- Sla het bestand op en voeg deze bibliotheek toe aan Arduino IDE
Nu zijn we klaar met deze stap! In de volgende stap zal ik laten zien om de bibliotheek te gebruiken en de pinnen voor Arduino Mega te definiëren.
Stap 3: Het TFT-schild initialiseren
Nadat u de bibliotheek hebt bewerkt, voegt u deze toe aan de Arduino-directory.
Vervolgens ga ik je laten zien hoe je de juiste TFT-module definieert die je hebt
we zouden de modulenaam in de bibliotheek moeten vinden.
- open het bibliotheekbestand
- ga naar de documentatie
U kunt deze bestanden zien in de Documentatie
• UTFT:
Dit bestand toont alle functies en commando's die in deze bibliotheek zijn opgenomen.
• UTFT_vereiste
Dit bestand bevat informatie over de modules en hoe het gerelateerd is aan de bibliotheek, zoals pinnenconfiguraties
•UTFT_Supported_display_modules_&_controller
Dit is ons doel, dit bestand heeft de namen van de modules en schilden die door deze bibliotheek worden ondersteund, u kunt daarin een lijst met modulenamen en modulenamen voor de UTFT zien die u moet gebruiken om uw module te definiëren.
Stappen om de TFT te definiëren:
Open het bestand UTFT_Supported_display_modules_&_controller uit de bibliotheek
- Open het bestand UTFT_Supported_display_modules_&_controller uit de bibliotheek
- Zoek de modellen voor UTFT voor de modules (schild) die u heeft.
- Om nu een UTFT-functie op de Arduino IDE te definiëren, gebruiken we de opdracht:
UTFT-naam (module, Rs, Wr, Cs, Rst);
Open UTFT_Requirement-bestand uit de bibliotheek
Uit het document weten we dat de pinnen zich op de A5-, A4-, A3- en A2-pinnen bevinden.
we gebruiken het commando:
UTFT mijnGLCD(ITDB28, 19, 18, 17, 16); # merk op dat pinnen 19, 18, 17, 16 in de Arduino Mega
UTFT mijnGLCD (ITDB28, A5, A4, A3, A2); # merk op dat pinnen A5, A4, A3, A2 in de Arduino UNO
En klaar! Nu kunt u de bibliotheekvoorbeelden op de Arduino IDE gebruiken met de volgende wijzigingen.
Stap 4: Basis Hallo Wereld
#include // Declareer welke lettertypen we gaan gebruiken
extern uint8_t BigFont; extern uint8_t SevenSegNumFont; // Vergeet niet om de modelparameter aan te passen aan uw weergavemodule! UTFT mijnGLCD (ITDB28, A5, A4, A3, A2); void setup() { myGLCD. InitLCD(); mijnGLCD.clrScr(); mijnGLCD.setFont(BigFont); } void loop() { myGLCD.setColor (0, 255, 0); //groen myGLCD.print ("HELLO WORLD", 45, 100); terwijl (waar) {}; }
Stap 5: UTFT-lettertypen
#include // Declareer welke lettertypen we gaan gebruiken
extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont; // Stel de pinnen in op de juiste pinnen voor uw ontwikkelingsschild // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standaard Arduino Uno/2009-schild:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT-schild:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standaard Arduino Mega/Due schild:, 38, 39, 40, 41 // CTE TFT LCD/SD schild voor Arduino Mega:, 38, 39, 40, 41 // // Vergeet niet om de modelparameter aan te passen aan uw displaymodule! UTFT mijnGLCD (ITDB32S, 38, 39, 40, 41); void setup() { mijnGLCD. InitLCD() mijnGLCD.clrScr(); } void loop() { myGLCD.setColor (0, 255, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.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^_", CENTER, 132); myGLCD.print("`abcdefghijklmnopqrstuvwxyz{|}~ ", CENTER, 144); mijnGLCD.setFont(SevenSegNumFont); myGLCD.print("0123456789", CENTER, 190); terwijl(1) {}; }
Stap 6: UTFT-vormen, lijnen en patronen
#include "UTFT.h"// Verklaar welke lettertypen we gaan gebruikenextern uint8_t SmallFont;// Stel de pinnen in op de juiste pinnen voor uw ontwikkelingsschild // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standaard Arduino Uno/2009-schild:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT-schild:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standaard Arduino Mega/Due schild:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield voor Arduino Mega:, 38, 39, 40, 41 // // Vergeet niet de modelparameter aan te passen aan uw displaymodule! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () { randomSeed (analogRead (0)); // Stel het LCD-scherm in myGLCD. InitLCD (); mijnGLCD.setFont(SmallFont); }
lege lus()
{ int buf[318]; int x, x2; int y, y2; int r;// Maak het scherm leeg en teken het frame myGLCD.clrScr(); mijnGLCD.setColor(255, 0, 0); mijnGLCD.fillRect(0, 0, 319, 13); mijnGLCD.setColor(64, 64, 64); mijnGLCD.fillRect(0, 226, 319, 239); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1); mijnGLCD.setBackColor(64, 64, 64); mijnGLCD.setColor(255, 255, 0); mijnGLCD.print("", CENTER, 227); mijnGLCD.setColor (0, 0, 255); myGLCD.drawRect(0, 14, 319, 225);// Teken dradenkruis myGLCD.setColor (0, 0, 255); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.drawLine(159, 15, 159, 224); mijnGLCD.drawLine (1, 119, 318, 119); voor (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);// Teken sin-, cos- en tan-lijnen myGLCD.setColor (0, 255, 255); mijnGLCD.print("Sin", 5, 15); for (int i=1; i<318; i++) { myGLCD.drawPixel(i, 119+(sin(((i*1.13)*3.14)/180)*95)); } mijnGLCD.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)); } mijnGLCD.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))); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); mijnGLCD.fillRect(1, 15, 318, 224); mijnGLCD.setColor (0, 0, 255); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.drawLine(159, 15, 159, 224); myGLCD.drawLine(1, 119, 318, 119);// Teken een bewegende sinusgolf x=1; for (int i=1; i319) { if ((x==159)||(buf[x-1]==19)) myGLCD.setColor(0, 0, 255); anders myGLCD.setColor (0, 0, 0); mijnGLCD.drawPixel(x, buf[x-1]); } mijnGLCD.setColor (0, 255, 255); y=119+(sin(((i*1.1)*3.14)/180)*(90-(i / 100))); mijnGLCD.drawPixel(x, y); buf[x-1]=y; } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele gevulde rechthoeken voor (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); pauze; geval 2: myGLCD.setColor(255, 0, 0); pauze; geval 3: myGLCD.setColor (0, 255, 0); pauze; geval 4: myGLCD.setColor (0, 0, 255); pauze; geval 5: myGLCD.setColor (255, 255, 0); pauze; } myGLCD.fillRect(70+(i*20), 30+(i*20), 130+(i*20), 90+(i*20)); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele gevulde, afgeronde rechthoeken voor (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); pauze; geval 2: myGLCD.setColor(255, 0, 0); pauze; geval 3: myGLCD.setColor (0, 255, 0); pauze; geval 4: myGLCD.setColor (0, 0, 255); pauze; geval 5: myGLCD.setColor (255, 255, 0); pauze; } myGLCD.fillRoundRect(190-(i*20), 30+(i*20), 250-(i*20), 90+(i*20)); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele gevulde cirkels voor (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); pauze; geval 2: myGLCD.setColor(255, 0, 0); pauze; geval 3: myGLCD.setColor (0, 255, 0); pauze; geval 4: myGLCD.setColor (0, 0, 255); pauze; geval 5: myGLCD.setColor (255, 255, 0); pauze; } mijnGLCD.fillCircle(100+(i*20), 60+(i*20), 30); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele lijnen in een patroon myGLCD.setColor (255, 0, 0); for (int i=15; i<224; i+=5) { myGLCD.drawLine(1, i, (i*1.44)-10, 224); } mijnGLCD.setColor (255, 0, 0); for (int i=224; i>15; i-=5) { myGLCD.drawLine(318, i, (i*1.44)-11, 15); } mijnGLCD.setColor (0, 255, 255); for (int i=224; i>15; i-=5) { myGLCD.drawLine(1, i, 331-(i*1.44), 15); } mijnGLCD.setColor (0, 255, 255); for (int i=15; i<224; i+=5) { myGLCD.drawLine(318, i, 330-(i*1.44), 224); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele willekeurige cirkels voor (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=32+willekeurig (256); y=45+willekeurig (146); r=willekeurig (30); mijnGLCD.drawCircle(x, y, r); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele willekeurige rechthoeken voor (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=2+willekeurig (316); y=16+willekeurig (207); x2=2+willekeurig (316); y2=16+willekeurig (207); mijnGLCD.drawRect(x, y, x2, y2); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Teken enkele willekeurige afgeronde rechthoeken voor (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=2+willekeurig (316); y=16+willekeurig (207); x2=2+willekeurig (316); y2=16+willekeurig (207); mijnGLCD.drawRoundRect(x, y, x2, y2); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); mijnGLCD.fillRect(1, 15, 318, 224); for (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=2+willekeurig (316); y=16+willekeurig (209); x2=2+willekeurig (316); y2=16+willekeurig (209); mijnGLCD.drawLine(x, y, x2, y2); } vertraging (2000); mijnGLCD.setColor (0, 0, 0); mijnGLCD.fillRect(1, 15, 318, 224); for (int i=0; i<10000; i++) { myGLCD.setColor(random(255), random(255), random(255)); myGLCD.drawPixel(2+willekeurig(316), 16+willekeurig (209)); } vertraging (2000); mijnGLCD.fillScr(0, 0, 255); mijnGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect(80, 70, 239, 169); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); myGLCD.print("Dat is het!", CENTER, 93); myGLCD.print("Herstarten in een", CENTER, 119); myGLCD.print("paar seconden…", CENTER, 132); mijnGLCD.setColor (0, 255, 0); mijnGLCD.setBackColor (0, 0, 255); myGLCD.print("Runtime: (msec)", CENTER, 210); mijnGLCD.printNumI(millis(), CENTER, 225); vertraging (10000); }
Stap 7: UTFT-bitmap
#erbij betrekken
#include // Verklaar welke lettertypen we gaan gebruiken extern uint8_t SmallFont;// Stel de pinnen in op de juiste pinnen voor uw ontwikkelingsschild // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standaard Arduino Uno/2009-schild:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT-schild:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standaard Arduino Mega/Due schild:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield voor Arduino Mega:, 38, 39, 40, 41 // // Vergeet niet om de modelparameter aan te passen aan uw displaymodule! UTFT myGLCD(ITDB32S, A5, A4, A3, A2);extern unsigned int info[0x400]; extern niet-ondertekend int-pictogram [0x400]; extern unsigned int tux[0x400];void setup() { myGLCD. InitLCD(); mijnGLCD.setFont(SmallFont); }void loop() { myGLCD.fillScr(255, 255, 255); mijnGLCD.setColor(255, 255, 255); myGLCD.print(" *** Een 10 bij 7 raster van een 32x32 icoon *** ", CENTER, 228); voor (int x=0; x<10; x++) voor (int y=0; y<7; y++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); vertraging (5000); mijnGLCD.fillScr(255, 255, 255); mijnGLCD.setColor(255, 255, 255); myGLCD.print(" Twee verschillende pictogrammen in schaal 1 tot 4 ", CENTER, 228); int x=0; for (int s=0; s0; s--) { myGLCD.drawBitmap (x, 224-(s*32), 32, 32, icoon, s); x+=(s*32); } vertraging (5000); }
Stap 8: Knopinterface
#include #include // Display initialiseren// ------------------ // Zet de pinnen op de juiste pinnen voor uw ontwikkelbord // ------- -------------------------------------------------- -- // Standaard Arduino Uno/2009 Shield:, 19, 18, 17, 16 // Standaard Arduino Mega/Due Shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield voor Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT-testbord:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD-schild voor Arduino Door:, 22, 23, 31, 33 // // Vergeet niet om verander de modelparameter om bij uw weergavemodule te passen! UTFT myGLCD(ITDB32S, 38, 39, 40, 41);// Touchscreen initialiseren // ---------------------- // Zet de pinnen op de juiste die voor je ontwikkelbord // ------------------------------------------- ---------------- // Standaard Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Standaard Arduino Mega/Due Shield: 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield voor Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield voor Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2);// Verklaar welke lettertypen we gaan gebruiken extern uint8_t BigFont;int x, y; char stCurrent[20]=""; int stCurrentLen=0; char stLast[20]="";/************************* ** Aangepaste functies ** ********* ****************/void drawButtons() { // Teken de bovenste rij knoppen voor (x=0; x<5; x++) { myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60); mijnGLCD.setColor(255, 255, 255); mijnGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60); mijnGLCD.printNumI(x+1, 27+(x*60), 27); } // Teken de middelste rij knoppen voor (x=0; x<5; x++) { myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120); mijnGLCD.setColor(255, 255, 255); mijnGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120); if (x<4) myGLCD.printNumI(x+6, 27+(x*60), 87); } mijnGLCD.print("0", 267, 87); // Teken de onderste rij knoppen myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); mijnGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print("Wissen", 40, 147); mijnGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (160, 130, 300, 180); mijnGLCD.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) { voor (x=0; x
Stap 9: Flappy Bird
#include #include #include //==== Objecten maken UTFT myGLCD(SSD1289, 38, 39, 40, 41); //Parameters moeten worden aangepast aan uw Display/Schield-model UTouch myTouch (6, 5, 4, 3, 2);//==== Lettertypen definiëren extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont;extern unsigned int bird01[0x41A]; // Bird Bitmapint x, y; // Variabelen voor de coördinaten waar het scherm is ingedrukt// Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int-score = 0; int lastSpeedUpScore = 0; int hoogste score; booleaans scherm Pressed = false; boolean gameStarted = false; void setup () { // Start display myGLCD. InitLCD (); mijnGLCD.clrScr(); mijnTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); hoogsteScore = EEPROM.lezen(0); // Lees de hoogste score van de EEPROM initialGame(); // Start het spel }void loop() { xP=xP-movingRate; // xP - x-coördinaat van de pilaren; bereik: 319 - (-51) trekpilaren (xP, yP); // Tekent de pijlers // yB - y-coördinaat van de vogel die afhangt van de waarde van de variabele fallRate yB+=fallRateInt; fallRate=fallRate+0,4; // Elke inetratie neemt de valsnelheid toe, zodat we het effect van versnelling/ zwaartekracht kunnen fallRateInt= int(fallRate); // Controleert op botsing if(yB>=180 || yB<=0){ // top en bottom gameOver(); } if((xP=5) && (yB<=yP-2)){ // bovenste pijler gameOver(); } if((xP=5) && (yB>=yP+60)){ // lagere pijler gameOver(); } // Tekent de vogel drawBird (yB); // Nadat de pilaar door het scherm is gegaan if (xPRESET=250) && (x=0) && (y=0) && (x=30) && (y=270){ myGLCD.setColor (0, 200, 20); mijnGLCD.fillRect (318, 0, x, y-1); mijnGLCD.setColor (0, 0, 0); mijnGLCD.drawRect(319, 0, x-1, y); mijnGLCD.setColor (0, 200, 20); mijnGLCD.fillRect(318, y+81, x, 203); mijnGLCD.setColor (0, 0, 0); mijnGLCD.drawRect(319, y+80, x-1, 204); } else if (x hoogste score) { hoogste score = score; EEPROM.write(0, hoogste score); } // Stelt de variabelen opnieuw in op startpositiewaarden xP=319; yB=50; fallRate=0; score = 0; lastSpeedUpScore = 0; bewegende snelheid = 3; gameStarted = false; // Start het spel opnieuw initialGame(); }
Stap 10: Werking van het project
Je kunt de broncode vinden in mijn Github-repository.
Link:
Geef een duim omhoog als het je echt heeft geholpen en volg mijn kanaal voor interessante projecten:)
Deel deze video als je wilt.
Leuk dat je geabonneerd bent:
Bedankt voor het lezen!
Aanbevolen:
Solderen van draden aan draden - Basisprincipes van solderen: 11 stappen
Solderen van draden aan draden | Basisprincipes van solderen: voor deze Instructable bespreek ik veelvoorkomende manieren om draden aan andere draden te solderen. Ik ga ervan uit dat je de eerste 2 Instructables voor mijn Soldering Basics-serie al hebt uitgecheckt. Als je mijn Instructables over het gebruik van
Een piëzo gebruiken om klank te produceren: basisprincipes: 4 stappen (met afbeeldingen)
Hoe een piëzo te gebruiken om toon te produceren: basisprincipes: Hallo allemaal, In deze instructable gebruiken we een piëzo-zoemer om toon te produceren. Wat is een piëzo-zoemer? Een piëzo is een elektronisch apparaat dat zowel kan worden gebruikt om geluid te produceren als om geluid te detecteren. Toepassingen: U kunt hetzelfde circuit gebruiken om
Basisprincipes van de motor - Concept Super eenvoudig te begrijpen met een experiment: 7 stappen (met afbeeldingen)
Basisprincipes van de motor | Concept Super gemakkelijk te begrijpen met een experiment: in deze instructable ga ik je leren over het onderliggende fundamentele principe van motoren. Alle motoren om ons heen werken volgens dit principe. Zelfs generatoren werken op een wederzijdse verklaring van deze regel. Ik heb het over de Vlaming's Left-Hand Ru
Basisprincipes van Arduino Eplora: 4 stappen
Basisprincipes van Arduino Eplora: Oh! Ik heb je daar niet gezien! Je moet de basis van de basis van het geweldige Eplora-bord willen leren. Nou, kom binnen, kom binnen. Deze tutorial leert je een paar handige trucs die je kunt doen met je Eplora
Basisprincipes van domotica: 6 stappen (met afbeeldingen)
Basisprincipes van domotica: Hallo allemaal. Dit instructable zal u begeleiden om de basisprincipes van domotica te begrijpen. Omdat dit van basisniveau is, gaan we alleen Arduino en enkele andere componenten gebruiken. Verhaal over de Instructable: - Ik ben nog steeds aan het leren over Arduino p