Агуулгын хүснэгт:

Arduino TFT интерфейсийн үндсэн ойлголтууд: 10 алхам (зурагтай)
Arduino TFT интерфейсийн үндсэн ойлголтууд: 10 алхам (зурагтай)

Видео: Arduino TFT интерфейсийн үндсэн ойлголтууд: 10 алхам (зурагтай)

Видео: Arduino TFT интерфейсийн үндсэн ойлголтууд: 10 алхам (зурагтай)
Видео: SKR Pro v1.2 - Basics 2024, Арваннэгдүгээр
Anonim
Arduino TFT интерфейсийн үндсэн мэдээлэл
Arduino TFT интерфейсийн үндсэн мэдээлэл

TFT мэдрэгчтэй дэлгэц нь Atmel, PIC, STM гэх мэт микроконтроллеруудад ашиглах боломжтой гайхалтай график интерфэйс юм.

Өнөөдөр бид Arduino -тэй 2.4 инчийн TFT LCD бамбай интерфэйс рүү орох гэж байна.

Энэ бамбай нь Arduino UNO -д зориулагдсан боловч би үүнийг "Програмын санах ой" гэсэн логик шалтгаанаар Arduino Mega -тай хэрхэн ашиглахыг заах болно.

Энэхүү өнгөт TFT LCD бамбайг ашигласнаар бид өнгөт TFT LCD дээр тэмдэгт, мөр, товчлуурын интерфэйс, битийн зураг гэх мэтийг үзүүлэх боломжтой.

Алхам 1: Техник хангамж ба програм хангамжийн шаардлага

Техник хангамж ба програм хангамжийн шаардлага
Техник хангамж ба програм хангамжийн шаардлага
Техник хангамж ба програм хангамжийн шаардлага
Техник хангамж ба програм хангамжийн шаардлага

Arduino мега ашиглан бамбай интерфэйсийг хийхийн тулд бидэнд дараахь зүйлс хэрэгтэй болно.

ТОНОГ ТӨХӨӨРӨМЖ:

• Arduino мега

• TFT 2.4/2.8/3.2 инчийн LCD дэлгэц

• USB кабель

ПРОГРАММ

• Arduino IDE

• UTFT номын сан / spfd5408 номын сан

Бамбай нь анх Arduino UNO -ийн самбаруудад зориулагдсан бөгөөд үүнийг Arduino мега дээр ашиглах боломжтой.

Үүнийг Arduino UNO дээр ашиглахдаа "Хадгалах санах ой" болон зүү ашиглах гэсэн хоёр үндсэн асуудал байдаг.

НҮБ -д байдаг ашиглагдаагүй тээглүүрийг ашиглах нь хэцүү байдаг, гэхдээ бидэнд илүү олон оролт/гаралтын зүү үлдсэн тул Arduino MEGA -ийн хувьд илүү дээр юм.

Дараагийн алхамд би TFT бамбайг ашиглахын тулд UTFT номын санг хэрхэн яаж засахыг үзүүлэх болно

Алхам 2: UTFT Lib -ийг тохируулах

UTFT Lib -ийг тохируулж байна
UTFT Lib -ийг тохируулж байна

Энэ номын сан нь миний ITDB02_Graph, ITDB02_Graph16 болон RGB_GLCD Arduino болон chipKit -ийн номын сангийн үргэлжлэл юм. Дэмжигдсэн дэлгэцийн модулиуд болон хянагчдын тоо нэмэгдэж эхэлмэгц ирээдүйд хадгалахад хамаагүй хялбар болохын тулд ганцхан нийтийн номын сан хийх цаг болсон гэж би бодож байна.

Arduino MEGA нь 256 кб програмын санах ойтой. Үүнээс гадна 54 зүү байдаг.

Тэдгээрийн ихэнхийг үнэгүй ашиглах боломжтой бөгөөд аналогийг ердөө 5 -ыг нь 16 -аас авдаг.

Энэхүү номын сан нь 8bit, 16bit, цуваа график дэлгэцийг дэмждэг бөгөөд Arduino, chipKit самбар болон TI LaunchPads -ийг сонгон ажиллах болно.

ТАЙЛБАР: Номын сангийн хэмжээ том тул ATmega328 (Arduino Uno) болон ATmega32U4 (Arduino Leonardo) дээр ашиглахыг зөвлөдөггүй, учир нь тэд зөвхөн 32КБ флаш санах ойтой. Энэ нь ажиллах болно, гэхдээ та програмынхаа флаш санах ойд хязгаарлагдмал байх болно

Алхам

  • UTFT номын санг татаж авах
  • Номын санг задлах
  • Arduino эсвэл ашигласан микроконтроллероос хамааран UTFT / hardware / avr -ийг нээнэ үү
  • Notepad ашиглан HW_AVR_defines -ийг нээнэ үү
  • MEGA -ийн UNO бамбайг идэвхжүүлэхийн тулд 7 -р мөрийг тайлбарлахгүй
  • Файлыг хадгалаад энэ номын санг Arduino IDE дээр нэмнэ үү

Одоо бид энэ алхамыг хийлээ! Дараагийн алхамд би номын санг ашиглаж, Arduino Mega -ийн зүүг тодорхойлохыг харуулах болно.

Алхам 3: TFT Shield -ийг эхлүүлэх

TFT бамбайг эхлүүлэх
TFT бамбайг эхлүүлэх

Номын санг засварласны дараа үүнийг Arduino директорт нэмнэ үү.

Дараа нь би танд байгаа TFT модулийг хэрхэн зөв тодорхойлохыг танд үзүүлэх болно

Бид түүний модулийн нэрийг номын сангаас олох ёстой.

  • номын сангийн файлыг нээнэ үү
  • баримт бичиг рүү очно уу

Та эдгээр файлуудыг Баримт бичигт үзэх боломжтой

• UTFT:

Энэ файл нь энэ номын санд орсон бүх функц, тушаалуудыг харуулдаг.

• UTFT_Шаардлага

Энэ файл нь модулийн тухай болон энэ номын сантай хэрхэн холбоотой болохыг, тухайлбал тээглүүрийн тохиргоо гэх мэт мэдээллийг агуулсан болно

• UTFT_Supported_display_modules _ & _ хянагч

Энэ бол бидний зорилт, энэ файл нь энэ номын санд дэмжигддэг модулиуд болон бамбайнуудын нэртэй байдаг бөгөөд та модулийг тодорхойлоход ашиглах ёстой UTFT -ийн модулийн нэр, модулийн нэрсийн жагсаалтыг эндээс харж болно.

TFT -ийг тодорхойлох алхамууд:

Номын сангаас UTFT_Supported_display_modules _ & _ хянагчийн файлыг нээнэ үү

  • Номын сангаас UTFT_Supported_display_modules _ & _ хянагчийн файлыг нээнэ үү
  • Өөрт байгаа модулиуд (бамбай) -ын UTFT загварыг хайж олоорой.
  • Одоо Arduino IDE дээр UTFT функцийг тодорхойлохын тулд бид дараах тушаалыг ашиглана.

UTFT нэр (модуль, Rs, Wr, Cs, Rst);

Номын сангаас UTFT_Requirement файлыг нээнэ үү

Баримт бичгээс харахад тээглүүрүүд нь A5, A4, A3, A2 зүү дээр байрладаг болохыг бид мэднэ.

бид тушаалыг ашигладаг:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); Ардуино Мега дахь 19, 18, 17, 16 -р зүү байгааг анхаарна уу

UTFT myGLCD (ITDB28, A5, A4, A3, A2); Arduino UNO дахь A5, A4, A3, A2 зүү байгааг анхаарна уу

Тэгээд хийсэн! Одоо та Arduino IDE дээрх номын сангийн жишээг дараах өөрчлөлтүүдээр ашиглаж болно.

Алхам 4: Үндсэн Сайн байна уу Дэлхий

Үндсэн Сайн байна уу Дэлхий
Үндсэн Сайн байна уу Дэлхий

#include // Бид ямар фонт ашиглахаа мэдэгдээрэй

extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Загварын параметрийг дэлгэцийн модульд тохируулан өөрчлөхөө мартуузай! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // ногоон myGLCD.print ("HELLO WORLD", 45, 100); while (үнэн) {}; }

Алхам 5: UTFT фонтууд

UTFT фонтууд
UTFT фонтууд

#include // Бид ямар фонт ашиглахаа мэдэгдээрэй

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Хөгжлийн бамбайгаа зөв зүүгээр тохируулаарай // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Стандарт Arduino Uno/2009 бамбай:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT бамбай:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Стандарт Arduino Mega/Хэмжээ:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // Загварын параметрийг дэлгэцийн модульд тохируулан өөрчлөхөө мартуузай! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); хүчингүй тохиргоо () {myGLCD. InitLCD () myGLCD.clrScr (); } void loop () {myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("! \"#$%& '()*+, -./", ТӨВ, 0); myGLCD.print (" 0123456789:;? ", ТӨВ, 16); myGLCD.print ("@ ABCDEFGHIJKLMNO ", ТӨВ, 32); myGLCD.print (" PQRSTUVWXYZ ^_ ", ТӨВ, 48); myGLCD.print (" "abcdefghijklmno", ТӨВ, 64); myGLCD.stuv ("pq {} ~ ", ТӨВ, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "#$%& '()*+, -./0123456789:;?", ТӨВ, 120); myGLCD.print ("@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^_", ТӨВ, 132); myGLCD.print ("" abcdefghijklmnopqrstuvwxyz {|} ~ ", ТӨВ, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", ТӨВ, 190); байхад (1) {}; }

Алхам 6: UTFT -ийн хэлбэр, шугам, загвар

UTFT хэлбэр, шугам, хэв маяг
UTFT хэлбэр, шугам, хэв маяг

#include "UTFT.h" // Гадаад uint8_t SmallFont-д ямар фонт ашиглахаа мэдэгдээрэй ; ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Стандарт Arduino Uno/ 2009 бамбай:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT бамбай:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Стандарт Arduino Mega/Хэмжээ:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // Загварын параметрийг дэлгэцийн модульд тохируулан өөрчлөхөө мартуузай! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); хүчингүй тохиргоо () {randomSeed (analogRead (0))); // LCD -ийг тохируулах myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

хоосон давталт ()

{int buf [318]; int x, x2; int y, y2; int r; // Дэлгэцийг цэвэрлээд 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); // Загалмай зурах myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); for (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); // sin-, cos- болон tan-шугамуудыг зур myGLCD.setColor (0, 255, 255); myGLCD.print ("Нүгэл", 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 ("Тан", 5, 39); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan ((i*1.13)*3.14)/180))); } саатал (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); // Хөдөлж буй далавч зурах x = 1; for (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); өөр myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119+(нүгэл (((i*1.1)*3.14) / 180)*(90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255)); завсарлага; тохиолдол 2: myGLCD.setColor (255, 0, 0); завсарлага; тохиолдол 3: myGLCD.setColor (0, 255, 0); завсарлага; тохиолдол 4: myGLCD.setColor (0, 0, 255); завсарлага; тохиолдол 5: myGLCD.setColor (255, 255, 0); завсарлага; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0), 255); завсарлага; тохиолдол 2: myGLCD.setColor (255, 0, 0); завсарлага; тохиолдол 3: myGLCD.setColor (0, 255, 0); завсарлага; тохиолдол 4: myGLCD.setColor (0, 0, 255); завсарлага; тохиолдол 5: myGLCD.setColor (255, 255, 0); завсарлага; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255)); завсарлага; тохиолдол 2: myGLCD.setColor (255, 0, 0); завсарлага; тохиолдол 3: myGLCD.setColor (0, 255, 0); завсарлага; тохиолдол 4: myGLCD.setColor (0, 0, 255); завсарлага; тохиолдол 5: myGLCD.setColor (255, 255, 0); завсарлага; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Зарим мөрийг 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); } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 0; i <100; i ++) {myGLCD.setColor (санамсаргүй (255), санамсаргүй (255), санамсаргүй (255))); x = 32+санамсаргүй (256); y = 45+санамсаргүй (146); r = санамсаргүй (30); myGLCD.drawCircle (x, y, r); } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 0; i <100; i ++) {myGLCD.setColor (санамсаргүй (255), санамсаргүй (255), санамсаргүй (255))); x = 2+санамсаргүй (316); y = 16+санамсаргүй (207); x2 = 2+санамсаргүй (316); y2 = 16+санамсаргүй (207); myGLCD.drawRect (x, y, x2, y2); } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // (int i = 0; i <100; i ++) {myGLCD.setColor (санамсаргүй (255), санамсаргүй (255), санамсаргүй (255)); x = 2+санамсаргүй (316); y = 16+санамсаргүй (207); x2 = 2+санамсаргүй (316); y2 = 16+санамсаргүй (207); myGLCD.drawRoundRect (x, y, x2, y2); } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <100; i ++) {myGLCD.setColor (санамсаргүй (255), санамсаргүй (255), санамсаргүй (255)); x = 2+санамсаргүй (316); y = 16+санамсаргүй (209); x2 = 2+санамсаргүй (316); y2 = 16+санамсаргүй (209); myGLCD.drawLine (x, y, x2, y2); } саатал (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <10000; i ++) {myGLCD.setColor (санамсаргүй (255), санамсаргүй (255), санамсаргүй (255)); myGLCD.drawPixel (2+санамсаргүй (316), 16+санамсаргүй (209)); } саатал (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 ("Энэ л боллоо!", ТӨВ, 93); myGLCD.print ("Дахин эхлүүлэх", CENTER, 119); myGLCD.print ("хэдэн секунд…", ТӨВ, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Ажиллах хугацаа: (msecs)", ТӨВ, 210); myGLCD.printNumI (millis (), CENTER, 225); саатал (10000); }

Алхам 7: UTFT Bitmap

UTFT Bitmap
UTFT Bitmap

#оруулах

#include // Бид extern uint8_t SmallFont-ийг ямар фонтоор ашиглахаа тунхаглах ; ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Стандарт Arduino Uno/ 2009 бамбай:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT бамбай:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Стандарт Arduino Mega/Хугацааны хамгаалалт:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // Загварын параметрийг дэлгэцийн модульд тохируулан өөрчлөхөө мартуузай! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); extern unsigned int мэдээлэл [0x400]; extern тэмдэггүй 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 ("*** 32x32 дүрс бүхий 10 -аас 7 хүртэлх хэмжээтэй ***", ТӨВ, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, мэдээлэл); саатал (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("1 -ээс 4 хүртэлх масштабтай хоёр өөр дүрс", CENTER, 228); int x = 0; for (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, icon, s); x+= (s*32); } саатал (5000); }

Алхам 8: Товч интерфэйс

Товч интерфэйс
Товч интерфэйс

#include #include // Дэлгэцийг эхлүүлэх // ------------------ // Хөгжлийн самбартаа зүүг зөв болгож тохируул // ------- -------------------------------------------------- - // Standard Arduino Uno/2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT тестийн самбар:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD Shield for Arduino Due:, 22, 23, 31, 33 // // Үүнийг санаарай загварын параметрийг дэлгэцийн модульд тохируулан өөрчилнө үү! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Мэдрэгчтэй дэлгэцийг эхлүүлэх // ---------------------- // Зүүг зөв тохируулна уу. таны хөгжлийн самбарт зориулагдсан хүмүүс // ------------------------------------------- ---------------- // Стандарт Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Стандарт Arduino Mega/Бамбай: 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield for Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield for Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Бид extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************* ** Тусгай функцууд ** ********* ****************/void drawButtons () {// (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); } // (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); хэрэв (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // myGLCD.setColor (0, 0, 255) товчлуурын доод эгнээг зурна уу; myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Цэвэр", 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 ("Оруулах", 190, 147); myGLCD.setBackColor (0, 0, 0); } хүчингүй 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

Алхам 9: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include // ==== Объект үүсгэх UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Параметрүүдийг таны Display/Schield загварт тохируулах ёстой UTouch myTouch (6, 5, 4, 3, 2); // ==== Фонтыг тодорхойлох extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bird Bitmapint x, y; // Дэлгэц дарагдсан координатын хувьсагчид // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int оноо = 0; int lastSpeedUpScore = 0; int дээд оноо; boolean screenPressed = худал; boolean gameStarted = false; void setup () {// Дэлгэцийг эхлүүлэх myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); дээд оноо = EEPROM.read (0); // EEPROM inititeGame () -ээс хамгийн өндөр оноог уншина уу; // Тоглоом эхлүүлэх} void loop () {xP = xP-moveRate; // xP - x pilars -ийн координат; хүрээ: 319 - (-51) drawPilars (xP, yP); // Шувууны баганыг // yB - y координатыг зурж байгаа бөгөөд энэ нь унаж буй хурдны хувьсагчийн үнэ цэнээс хамаарна yB+= fallRateInt; fallRate = fallRate+0.4; // Оролт бүр уналтын хурд нэмэгдэх бөгөөд ингэснээр хурдатгал/ хүндийн хүчний нөлөөг авч болно fallRateInt = int (fallRate); // (yB> = 180 || yB <= 0) {// дээд ба доод gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// дээд тулгуур тоглоомOver (); } if ((xP = 5) && (yB> = yP+60)) {// доод тулгуур тоглоомOver (); } // Шувууг зурдаг drawBird (yB); // Баганыг дэлгэцээр дамжуулсны дараа (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); } өөр бол (x дээд оноо) {хамгийн өндөр оноо = оноо; EEPROM.write (0, хамгийн өндөр оноо); } // Хувьсагчдыг байрлалын утгыг эхлүүлэхийн тулд дахин тохируулна xP = 319; yB = 50; fallRate = 0; оноо = 0; lastSpeedUpScore = 0; moveRate = 3; gameStarted = худал; // Тоглоом эхлүүлэхGameiteGame (); }

Алхам 10: Төслийн ажил

Та эх кодыг миний Github репозитороос олж болно.

Холбоос:

Хэрэв энэ нь танд үнэхээр тусалсан бол эрхий хуруугаа өгөөрэй, сонирхолтой төслүүдийн талаар миний сувгийг дагаарай:)

Хэрэв танд таалагдаж байвал энэ видеог хуваалцаарай.

Та бүртгүүлсэндээ баяртай байна:

Уншсанд баярлалаа!

Зөвлөмж болгож буй: