Talaan ng mga Nilalaman:

Mga Pangunahing Kaalaman sa Arduino TFT Interfacing: 10 Hakbang (na may Mga Larawan)
Mga Pangunahing Kaalaman sa Arduino TFT Interfacing: 10 Hakbang (na may Mga Larawan)

Video: Mga Pangunahing Kaalaman sa Arduino TFT Interfacing: 10 Hakbang (na may Mga Larawan)

Video: Mga Pangunahing Kaalaman sa Arduino TFT Interfacing: 10 Hakbang (na may Mga Larawan)
Video: МАСТЕР-КЛАСС по Arduino | Полный семинар по программированию за 90 минут! 2024, Nobyembre
Anonim
Mga Pangunahing Kaalaman sa Arftino TFT
Mga Pangunahing Kaalaman sa Arftino TFT

Ang TFT touchscreens ay ang kamangha-manghang interface ng grapiko na maaaring magamit sa mga microcontroller tulad ng Atmel, PIC, STM, dahil mayroon itong malawak na saklaw ng kulay, at mahusay na kakayahang grapiko at isang mahusay na pagmamapa ng mga pixel.

Ngayon, pupunta kami sa Interface 2.4 inch TFT LCD Shield kasama ang Arduino.

Ang kalasag na ito ay para sa Arduino UNO, ngunit tuturuan ko kung paano ito gamitin sa Arduino Mega para sa isang napaka-lohikal na dahilan, ang "Memory ng Program".

Sa pamamagitan ng paggamit ng kulay na ito ng TFT LCD na kalasag maaari naming ipakita ang mga character, string, interface ng pindutan, mga bitmap na imahe, atbp sa kulay na TFT LCD.

Hakbang 1: Mga Kinakailangan sa Hardware at Software

Mga Kinakailangan sa Hardware at Software
Mga Kinakailangan sa Hardware at Software
Mga Kinakailangan sa Hardware at Software
Mga Kinakailangan sa Hardware at Software

Upang gawin ang interface ng kalasag sa Arduino mega, kailangan namin ang sumusunod.

HARDWARE:

• Arduino mega

• TFT 2.4 / 2.8 / 3.2 pulgada LCD

• Kable ng USB

SOFTWARE

• Arduino IDE

• UTFT Library / spfd5408 Library

Ang Shield ay orihinal na ginawa para sa Arduino UNO boards, na maaaring magamit sa Arduino mega.

Mayroong dalawang pangunahing isyu habang ginagamit ito sa Arduino UNO: "Memory ng imbakan" at paggamit ng mga pin.

Mahirap gamitin ang mga hindi nagamit na pin na magagamit sa UNO, samantalang mas mabuti sa Arduino MEGA dahil mayroon kaming natitirang I / O pin.

Sa susunod na hakbang, ipapakita ko kung paano i-edit ang UTFT library upang magamit ang TFT na kalasag

Hakbang 2: Tweaking UTFT Lib

Tweaking UTFT Lib
Tweaking UTFT Lib

Ang library na ito ay ang pagpapatuloy ng aking mga aklatan ng ITDB02_Graph, ITDB02_Graph16 at RGB_GLCD para sa Arduino at chipKit. Tulad ng bilang ng mga sinusuportahang modyul sa pagpapakita at mga kontroler na nagsimulang tumaas nadama ko na oras na upang gumawa ng isang solong, unibersal na silid-aklatan sapagkat mas madaling mapanatili sa hinaharap.

Ang Arduino MEGA ay may 256kb ng memorya ng programa. Bilang karagdagan, mayroong 54 na mga pin.

Karamihan sa kanila ay malayang gamitin, at ang analog na 5 lamang ay kinuha mula sa 16.

Sinusuportahan ng library na ito ang isang bilang ng 8bit, 16bit, at mga serial graphic display, at gagana sa parehong Arduino, chipKit boards at piliin ang TI LaunchPads.

TANDAAN: Dahil sa laki ng library hindi ko inirerekumenda ang paggamit nito sa ATmega328 (Arduino Uno) at ATmega32U4 (Arduino Leonardo) dahil mayroon lamang silang 32KB ng flash memory. Gagana ito, ngunit malubhang malilimitahan ka sa magagamit na flash memory para sa iyong aplikasyon

Mga hakbang

  • I-download ang UTFT Library
  • I-unzip ang Library
  • Buksan ang UTFT / hardware / avr sa kaso ng Arduino o depende sa ginamit na microcontroller
  • Buksan ang HW_AVR_defines gamit ang Notepad
  • Uncomment Line 7 upang paganahin ang UNO kalasag para sa MEGA
  • I-save ang file at Idagdag ang Library na ito sa Arduino IDE

Tapos na kami sa hakbang na ito! Sa susunod na hakbang, ipapakita ko na gamitin ang library at tukuyin ang mga pin para sa Arduino Mega.

Hakbang 3: Inisialisa ang TFT Shield

Pinasimulan ang TFT Shield
Pinasimulan ang TFT Shield

Pagkatapos i-edit ang library, Idagdag ito sa direktoryo ng Arduino.

Susunod, ipapakita ko sa iyo kung paano tukuyin ang tamang module ng TFT na mayroon ka

dapat nating makita ang pangalan ng modyul nito sa silid-aklatan.

  • buksan ang file ng library
  • pumunta sa dokumentasyon

Maaari mong makita ang mga file na ito sa Dokumentasyon

• UTFT:

Ipinapakita ng file na ito ang lahat ng mga pagpapaandar at utos na kasama sa library na ito.

• UTFT_Requiring

Ang file na ito ay may impormasyon tungkol sa mga module at kung paano ito nauugnay sa library, tulad ng mga pagsasaayos ng mga pin

• UTFT_Supported_display_modules _ & _ controller

Ito ang aming target, ang file na ito ay may mga pangalan ng mga module at kalasag na sinusuportahan ng library na ito, maaari mong makita dito ang isang listahan ng mga pangalan ng module at mga pangalan ng module para sa UTFT na dapat mong gamitin upang tukuyin ang iyong module.

Mga Hakbang upang Tukuyin ang TFT:

Buksan ang UTFT_Supported_display_modules _ & _ file ng controller mula sa silid-aklatan

  • Buksan ang UTFT_Supported_display_modules _ & _ file ng controller mula sa library
  • Hanapin ang Mga Modelong para sa UTFT para sa Mga Modyul (kalasag) na mayroon ka.
  • Ngayon upang tukuyin ang isang pagpapaandar ng UTFT sa Arduino IDE, ginagamit namin ang utos:

Pangalan ng UTFT (module, Rs, Wr, Cs, Rst);

Buksan ang UTFT_Requiring file mula sa library

Mula sa dokumento, alam namin na ang mga pin ay matatagpuan sa mga A5, A4, A3, at A2 na mga pin.

ginagamit namin ang utos:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # tandaan na ang mga pin na 19, 18, 17, 16 sa Arduino Mega

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # tandaan na pin ang A5, A4, A3, A2 sa Arduino UNO

At tapos na! Maaari mo nang magamit ang mga halimbawa ng library sa Arduino IDE sa mga Sumusunod na pagbabago.

Hakbang 4: Pangunahing Hello World

Pangunahing Kumusta Mundo
Pangunahing Kumusta Mundo

#include // Ideklara kung aling mga font ang gagamitin namin

extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Tandaan na baguhin ang parameter ng modelo upang umangkop sa iyong display module! 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 ("HELLO WORLD", 45, 100); habang (totoo) {}; }

Hakbang 5: Mga UTFT Font

Mga font ng UTFT
Mga font ng UTFT

#include // Ideklara kung aling mga font ang gagamitin namin

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Itakda ang mga pin sa mga tamang tama para sa iyong kalasag sa pag-unlad // ----------------------------------- ----------------- // Arduino Uno / 2009: // ---------------- --- // Standard Arduino Uno / 2009 kalasag:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT kalasag:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standard Arduino Mega / Takdang kalasag:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield para sa Arduino Mega:, 38, 39, 40, 41 // // Tandaan na baguhin ang parameter ng modelo upang umangkop sa iyong module ng pagpapakita! 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 ^ _", CENTER, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ~ ", CENTER, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTER, 190); habang (1) {}; }

Hakbang 6: Mga UTFT na Hugis, Linya at pattern

Mga UTFT na Hugis, Linya at pattern
Mga UTFT na Hugis, Linya at pattern

# isama ang "UTFT.h" // Ideklara kung aling mga font ang gagamitin namin sa labas uint8_t SmallFont ; // Itakda ang mga pin sa mga tama para sa iyong kalasag sa pag-unlad // ---------------- -------------------------------------------- // Arduino Uno / 2009: // ----------------- // Standard Arduino Uno / 2009 kalasag:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT na kalasag:, A5, A4, A3, A2 // // Arduino Mega: // ----------------- // Standard Arduino Mega / Takdang kalasag:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield para sa Arduino Mega:, 38, 39, 40, 41 // // Tandaan na baguhin ang parameter ng modelo upang umangkop sa iyong display module! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Setup the LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

walang bisa loop ()

{int buf [318]; int x, x2; int y, y2; int r; // I-clear ang screen at iguhit ang frame 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 ("* Universal Color TFT Display Library *", 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); // Gumuhit ng mga crosshair myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); para sa (int i = 9; i <310; i + = 10) myGLCD.drawLine (i, 117, i, 121); para sa (int i = 19; i <220; i + = 10) myGLCD.drawLine (157, i, 161, i); // Gumuhit ng sin-, cos- at tan-lines myGLCD.setColor (0, 255, 255); myGLCD.print ("Sin", 5, 15); para sa (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); para sa (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); para sa (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i * 1.13) * 3.14) / 180))); } pagkaantala (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); // Gumuhit ng isang gumagalaw na sinewave x = 1; para sa (int i = 1; i319) {kung ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); kung hindi man myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119 + (kasalanan (((i * 1.1) * 3.14) / 180) * (90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Gumuhit ng ilang mga pinuno na parihaba para sa (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pahinga; kaso 2: myGLCD.setColor (255, 0, 0); pahinga; kaso 3: myGLCD.setColor (0, 255, 0); pahinga; kaso 4: myGLCD.setColor (0, 0, 255); pahinga; kaso 5: myGLCD.setColor (255, 255, 0); pahinga; } myGLCD.fillRect (70+ (i * 20), 30+ (i * 20), 130+ (i * 20), 90+ (i * 20)); } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Gumuhit ng ilang puno, bilugan na mga parihaba para sa (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pahinga; kaso 2: myGLCD.setColor (255, 0, 0); pahinga; kaso 3: myGLCD.setColor (0, 255, 0); pahinga; kaso 4: myGLCD.setColor (0, 0, 255); pahinga; kaso 5: myGLCD.setColor (255, 255, 0); pahinga; } myGLCD.fillRoundRect (190- (i * 20), 30+ (i * 20), 250- (i * 20), 90+ (i * 20)); } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Gumuhit ng ilang mga napunan na bilog para sa (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pahinga; kaso 2: myGLCD.setColor (255, 0, 0); pahinga; kaso 3: myGLCD.setColor (0, 255, 0); pahinga; kaso 4: myGLCD.setColor (0, 0, 255); pahinga; kaso 5: myGLCD.setColor (255, 255, 0); pahinga; } myGLCD.fillCircle (100+ (i * 20), 60+ (i * 20), 30); } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Gumuhit ng ilang mga linya sa isang pattern na myGLCD.setColor (255, 0, 0); para sa (int i = 15; i <224; i + = 5) {myGLCD.drawLine (1, i, (i * 1.44) -10, 224); } myGLCD.setColor (255, 0, 0); para sa (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i * 1.44) -11, 15); } myGLCD.setColor (0, 255, 255); para sa (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i * 1.44), 15); } myGLCD.setColor (0, 255, 255); para sa (int i = 15; i <224; i + = 5) {myGLCD.drawLine (318, i, 330- (i * 1.44), 224); } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Gumuhit ng ilang mga random na bilog para sa (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 32 + random (256); y = 45 + random (146); r = random (30); myGLCD.drawCircle (x, y, r); } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Gumuhit ng ilang mga random na parihaba para sa (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + random (316); y = 16 + random (207); x2 = 2 + random (316); y2 = 16 + random (207); myGLCD.drawRect (x, y, x2, y2); } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Gumuhit ng ilang mga random na bilugan na parihaba para sa (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + random (316); y = 16 + random (207); x2 = 2 + random (316); y2 = 16 + random (207); myGLCD.drawRoundRect (x, y, x2, y2); } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); para sa (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + random (316); y = 16 + random (209); x2 = 2 + random (316); y2 = 16 + random (209); myGLCD.drawLine (x, y, x2, y2); } pagkaantala (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); para sa (int i = 0; i <10000; i ++) {myGLCD.setColor (random (255), random (255), random (255)); myGLCD.drawPixel (2 + random (316), 16 + random (209)); } pagkaantala (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 ("Iyon lang!", CENTER, 93); myGLCD.print ("Pag-restart sa isang", CENTER, 119); myGLCD.print ("ilang segundo …", CENTER, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Runtime: (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); pagkaantala (10000); }

Hakbang 7: UTFT Bitmap

UTFT Bitmap
UTFT Bitmap

# isama

#include // Ideklara kung aling mga font ang gagamitin namin extern uint8_t SmallFont ; // Itakda ang mga pin sa tamang mga para sa iyong kalasag sa pag-unlad // ---------------- ------------------------------------------ // Arduino Uno / 2009: / / ----------------- // Standard Arduino Uno / 2009 kalasag:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT kalasag:, A5, A4, A3, A2 // // Arduino Mega: // ----------------- // Standard Arduino Mega / Takdang kalasag:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield para sa Arduino Mega:, 38, 39, 40, 41 // // Tandaan na baguhin ang parameter ng modelo upang umangkop sa iyong display module! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); extern unsigned int info [0x400]; extern unsigned int icon [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 ("*** Isang 10 by 7 grid ng isang 32x32 icon ***", CENTER, 228); para sa (int x = 0; x <10; x ++) para sa (int y = 0; y <7; y ++) myGLCD.drawBitmap (x * 32, y * 32, 32, 32, impormasyon); pagkaantala (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Dalawang magkakaibang mga icon sa scale 1 hanggang 4", CENTER, 228); int x = 0; para sa (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s * 32), 32, 32, icon, s); x + = (s * 32); } pagkaantala (5000); }

Hakbang 8: Pag-interface ng Button

Pagitan ng Button
Pagitan ng Button

#include #include // Initialize display // ------------------ // Itakda ang mga pin sa tamang mga para sa iyong development board // ------- ---- - // Standard Arduino Uno / 2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega / Takdang kalasag:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield para sa Arduino Dahil:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD / SD Shield para sa Arduino Dahil:, 22, 23, 31, 33 // // Tandaan na baguhin ang parameter ng modelo upang umangkop sa iyong display module! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Pinasimulan ang touchscreen // ----------------- // Itakda ang mga pin sa tama mga para sa iyong development board // ---------------- // Standard Arduino Uno / 2009 Shield: 15, 10, 14, 9, 8 // Standard Arduino Mega / Takdang kalasag: 6, 5, 4, 3, 2 // CTE TFT LCD / SD Shield para sa Arduino Dahil: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD / SD Shield para sa Arduino Dahil: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Ipahayag kung aling mga font ang gagamitin namin ng extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = ""; / ***** *****, 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); } // Iguhit ang gitnang hilera ng mga pindutan para sa (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); kung (x <4) myGLCD.printNumI (x + 6, 27+ (x * 60), 87); } myGLCD.print ("0", 267, 87); // Iguhit ang ibabang hilera ng mga pindutan myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Malinaw", 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) {para sa (x = 0; x

Hakbang 9: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include // ==== Paglikha ng Mga Bagay UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parameter dapat ayusin sa iyong modelo ng Display / Schield UTouch myTouch (6, 5, 4, 3, 2); // ==== Ang pagtukoy ng mga Font extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bird Bitmapint x, y; // Variable para sa mga coordinate kung saan ang display ay na-press // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int iskor = 0; int lastSpeedUpScore = 0; int pinakamataas naScore; boolean screenPressed = false; boolean gameStarted = false; void setup () {// Initiate display myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); pinakamataas naScore = EEPROM.read (0); // Basahin ang pinakamataas na iskor mula sa EEPROM initiateGame (); // Initiate the game} void loop () {xP = xP-movingRate; // xP - x coordinate ng pilars; saklaw: 319 - (-51) drawPilars (xP, yP); // Gumuhit ang mga haligi // yB - y coordinate ng ibon na nakasalalay sa halaga ng fallRate variable na yB + = fallRateInt; fallRate = fallRate + 0.4; // Ang bawat pagpasok ng pagtaas ng rate ng pagkahulog upang maaari naming ang epekto ng pagpapabilis / gravity fallRateInt = int (fallRate); // Checks for collision if (yB> = 180 || yB <= 0) {// top and bottom gameOver (); } kung ((xP = 5) && (yB <= yP-2)) {// itaas na haligi ng laroOver (); } kung ((xP = 5) && (yB> = yP + 60)) {// lower game gameOver (); } // Nakaguhit ang bird drawBird (yB); // Matapos ang poste ay dumaan sa screen kung (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); } iba pa kung (x pinakamataas naScore) {highestScore = iskor; EEPROM.write (0, pinakamataas naScore); } // I-reset ang mga variable upang simulan ang mga halaga ng posisyon xP = 319; yB = 50; fallRate = 0; puntos = 0; lastSpeedUpScore = 0; gumagalawRate = 3; gameStarted = false; // Restart game initiateGame (); }

Hakbang 10: Paggawa ng Proyekto

Mahahanap mo ang source code sa aking Github na imbakan.

Link:

Magbigay ng isang thumbs up kung nakatulong talaga ito sa iyo at sundin ang aking channel para sa mga kagiliw-giliw na proyekto:)

Ibahagi ang video na ito kung nais mo.

Maligaya na nag-subscribe ka:

Salamat sa pagbabasa!

Inirerekumendang: