Სარჩევი:

Arduino TFT ინტერფეისის საფუძვლები: 10 ნაბიჯი (სურათებით)
Arduino TFT ინტერფეისის საფუძვლები: 10 ნაბიჯი (სურათებით)

ვიდეო: Arduino TFT ინტერფეისის საფუძვლები: 10 ნაბიჯი (სურათებით)

ვიდეო: Arduino TFT ინტერფეისის საფუძვლები: 10 ნაბიჯი (სურათებით)
ვიდეო: MKS Gen L - Marlin 1 1 9 (configuration.h) 2024, ივლისი
Anonim
Arduino TFT ინტერფეისის საფუძვლები
Arduino TFT ინტერფეისის საფუძვლები

TFT სენსორული ეკრანი არის გასაოცარი გრაფიკული ინტერფეისი, რომლის გამოყენებაც შესაძლებელია მიკროკონტროლებთან, როგორიცაა Atmel, PIC, STM, რადგან მას აქვს ფართო ფერის დიაპაზონი, კარგი გრაფიკული უნარი და პიქსელების კარგი რუქა.

დღეს ჩვენ ვაპირებთ ინტერფეისს 2.4 დიუმიანი TFT LCD ფარი არდუინოსთან ერთად.

ეს ფარი არის Arduino UNO– სთვის, მაგრამ მე გასწავლით თუ როგორ გამოიყენოთ იგი Arduino Mega– ს ძალიან ლოგიკური მიზეზის გამო, „პროგრამის მეხსიერება“.

ამ ფერის TFT LCD ფარის გამოყენებით ჩვენ შეგვიძლია ვაჩვენოთ სიმბოლოები, სტრიქონები, ღილაკების ინტერფეისები, ბიტმაპ სურათები და ა.შ ფერადი TFT LCD.

ნაბიჯი 1: აპარატურისა და პროგრამული უზრუნველყოფის მოთხოვნები

აპარატურისა და პროგრამული უზრუნველყოფის მოთხოვნები
აპარატურისა და პროგრამული უზრუნველყოფის მოთხოვნები
აპარატურისა და პროგრამული უზრუნველყოფის მოთხოვნები
აპარატურისა და პროგრამული უზრუნველყოფის მოთხოვნები

ფარის ინტერფეისი Arduino მეგასთან, ჩვენ გვჭირდება შემდეგი.

HARDWARE:

• არდუინო მეგა

• TFT 2.4/2.8/3.2 დიუმიანი LCD

• USB კაბელი

პროგრამული უზრუნველყოფა

• Arduino IDE

• UTFT ბიბლიოთეკა / spfd5408 ბიბლიოთეკა

ფარი თავდაპირველად დამზადებულია Arduino UNO დაფებისთვის, რომლის გამოყენებაც შესაძლებელია Arduino mega– ით.

Arduino UNO– სთან მუშაობისას ორი ძირითადი საკითხია: "მეხსიერების მეხსიერება" და ქინძისთავების გამოყენება.

ძნელია გამოუყენებელი ქინძისთავების გამოყენება, რომლებიც ხელმისაწვდომია UNO– ში, მაშინ როდესაც ეს უკეთესია Arduino MEGA– ით, რადგან ჩვენ უფრო მეტი I/O ქინძისთავები გვაქვს დარჩენილი.

შემდეგ ეტაპზე, მე ვაჩვენებ, თუ როგორ უნდა შეცვალონ UTFT ბიბლიოთეკა TFT ფარის გამოსაყენებლად

ნაბიჯი 2: შეცვალეთ UTFT Lib

UTFT Lib- ის შეცვლა
UTFT Lib- ის შეცვლა

ეს ბიბლიოთეკა არის ჩემი ITDB02_Graph, ITDB02_Graph16 და RGB_GLCD ბიბლიოთეკების გაგრძელება Arduino და chipKit. მხარდაჭერილი ჩვენების მოდულებისა და კონტროლერების რაოდენობის ზრდასთან ერთად ვიგრძენი, რომ დროა შევქმნათ ერთი, უნივერსალური ბიბლიოთეკა, რადგან მისი შენარჩუნება მომავალში გაცილებით ადვილი იქნება.

Arduino MEGA– ს აქვს 256 კბ პროგრამული მეხსიერება. გარდა ამისა, არის 54 ქინძისთავები.

მათი უმრავლესობა თავისუფალია გამოსაყენებლად, ხოლო ანალოგი მხოლოდ 5 არის აღებული 16 – დან.

ეს ბიბლიოთეკა მხარს უჭერს 8 ბიტიანი, 16 ბიტიანი და სერიული გრაფიკული ჩვენებებს და იმუშავებს როგორც Arduino- სთან, ასევე chipKit დაფებთან და შერჩეულ TI LaunchPads- თან.

შენიშვნა: ბიბლიოთეკის ზომის გამო არ გირჩევთ გამოიყენოთ ATmega328 (Arduino Uno) და ATmega32U4 (Arduino Leonardo), რადგან მათ აქვთ მხოლოდ 32KB ფლეშ მეხსიერება. ის იმუშავებს, მაგრამ თქვენ მკაცრად შეზღუდული იქნებით თქვენი პროგრამისთვის ხელმისაწვდომი ფლეშ მეხსიერებით

ნაბიჯები

  • ჩამოტვირთეთ UTFT ბიბლიოთეკა
  • გახსენით ბიბლიოთეკა
  • გახსენით UTFT / აპარატურა / avr Arduino– ს შემთხვევაში ან გამოყენებული მიკროკონტროლერის მიხედვით
  • გახსენით HW_AVR_defines Notepad– ის გამოყენებით
  • დატოვეთ კომენტარი მე –7 ხაზზე, რათა გააქტიუროთ UNO ფარი MEGA– სთვის
  • შეინახეთ ფაილი და დაამატეთ ეს ბიბლიოთეკა Arduino IDE- ში

ახლა ჩვენ დავასრულეთ ეს ნაბიჯი! მომდევნო ეტაპზე, მე ვაჩვენებ ბიბლიოთეკის გამოყენებას და არმინო მეგას ქინძისთავების განსაზღვრას.

ნაბიჯი 3: TFT ფარის ინიციალიზაცია

TFT ფარის ინიციალიზაცია
TFT ფარის ინიციალიზაცია

ბიბლიოთეკის რედაქტირების შემდეგ დაამატეთ იგი Arduino დირექტორია.

შემდეგი, მე გაჩვენებთ თუ როგორ უნდა განსაზღვროთ სწორი TFT მოდული, რომელიც გაქვთ

ჩვენ უნდა ვიპოვოთ მისი მოდულის სახელი ბიბლიოთეკაში.

  • გახსენით ბიბლიოთეკის ფაილი
  • გადადით დოკუმენტაციაზე

თქვენ შეგიძლიათ ნახოთ ეს ფაილები დოკუმენტაციაში

• UTFT:

ეს ფაილი აჩვენებს ბიბლიოთეკაში შემავალ ყველა ფუნქციას და ბრძანებას.

• UTFT_ მოთხოვნა

ამ ფაილს აქვს ინფორმაცია მოდულების შესახებ და როგორ არის დაკავშირებული ბიბლიოთეკასთან, როგორიცაა ქინძისთავების კონფიგურაცია

• UTFT_Supported_display_modules _ & _ კონტროლერი

ეს არის ჩვენი სამიზნე, ამ ფაილს აქვს მოდულებისა და ფარის სახელები, რომლებიც მხარს უჭერს ამ ბიბლიოთეკას, თქვენ შეგიძლიათ ნახოთ მასში მოდულის სახელები და მოდულის სახელები UTFT– სთვის, რომელიც უნდა გამოიყენოთ მოდულის განსაზღვრისათვის.

TFT განსაზღვრის ნაბიჯები:

გახსენით UTFT_Supported_display_modules _ & _ კონტროლერის ფაილი ბიბლიოთეკიდან

  • გახსენით UTFT_Supported_display_modules _ & _ კონტროლერის ფაილი ბიბლიოთეკიდან
  • იპოვნეთ UTFT მოდელები იმ მოდულებისთვის (ფარი), რომელიც გაქვთ.
  • ახლა რომ განვსაზღვროთ UTFT ფუნქცია Arduino IDE– ზე, ჩვენ ვიყენებთ ბრძანებას:

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); # გაითვალისწინეთ, რომ ქინძისთავები A5, A4, A3, A2 Arduino UNO– ში

და დასრულდა! ახლა თქვენ შეგიძლიათ გამოიყენოთ ბიბლიოთეკის მაგალითები Arduino IDE– ზე შემდეგი ცვლილებებით.

ნაბიჯი 4: ძირითადი გამარჯობა მსოფლიო

ძირითადი გამარჯობა მსოფლიო
ძირითადი გამარჯობა მსოფლიო

#მოიცავს // გამოაცხადეთ რომელი შრიფტები გამოვიყენებთ

გარე uint8_t BigFont ; გარე 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); ხოლო (ჭეშმარიტი) {}; }

ნაბიჯი 5: UTFT ფონტები

UTFT ფონტები
UTFT ფონტები

#მოიცავს // გამოაცხადეთ რომელი შრიფტები გამოვიყენებთ

გარე uint8_t SmallFont ; გარე uint8_t BigFont ; გარე uint8_t SevenSegNumFont ; // დააყენეთ ქინძისთავები თქვენი განვითარების ფარისთვის // -------------------------------------- ------------------------- // არდუინო უნო / 2009: // ---------------- --- // სტანდარტული Arduino Uno/2009 ფარი:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT ფარი:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // სტანდარტული Arduino Mega/due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // დაიმახსოვრეთ მოდელის პარამეტრის შეცვლა თქვენი ჩვენების მოდულის შესატყვისად! 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.prwt ("pqrstu} | G ", CENTER, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "#$%& '()*+, -./0123456789:;?", ცენტრი, 120); myGLCD.print ("@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^_", ცენტრი, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ", CENTER, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTER, 190); ხოლო (1) {}; }

ნაბიჯი 6: UTFT ფორმები, ხაზები და ნიმუში

UTFT ფორმები, ხაზები და ნიმუში
UTFT ფორმები, ხაზები და ნიმუში

#მოიცავს "UTFT.h" // გამოაცხადეთ რომელი შრიფტები ვიყენებთ გარედან uint8_t SmallFont ; // დააყენეთ ქინძისთავები თქვენი განვითარების ფარის სწორი პირობა // -------------- ---------------------------------------------- // არდუინო უნო / 2009: // ------------------- // სტანდარტული Arduino Uno/ 2009 ფარი:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT ფარი:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // სტანდარტული Arduino Mega/due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // დაიმახსოვრეთ მოდელის პარამეტრის შეცვლა თქვენი ჩვენების მოდულის შესატყვისად! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {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 (" * უნივერსალური ფერადი TFT ჩვენების ბიბლიოთეკა *", 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-lines myGLCD.setColor (0, 255, 255); myGLCD.print ("ცოდვა", 5, 15); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (ცოდვა (((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); // დახაზეთ რამდენიმე შევსებული ოთხკუთხედი for (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); // დახაზეთ რამდენიმე შევსებული, მომრგვალებული ოთხკუთხედი for (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); // დახაზეთ რამდენიმე შემთხვევითი ოთხკუთხედი for (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (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); // დახაზეთ რამდენიმე შემთხვევითი მომრგვალებული ოთხკუთხედი for (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 ("გადატვირთვა", ცენტრი, 119); myGLCD.print ("რამდენიმე წამი …", CENTER, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("ხანგრძლივობა: (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); დაგვიანება (10000); }

ნაბიჯი 7: UTFT ბიტმაპი

UTFT ბიტმაპი
UTFT ბიტმაპი

#ჩართეთ

#მოიცავს // გამოაცხადეთ რომელი შრიფტები ვიყენებთ გარედან uint8_t SmallFont ; // დააყენეთ ქინძისთავები თქვენი განვითარების ფარისთვის // ------------------ ------------------------------------------ // არდუინო უნო / 2009: / / ------------------- // სტანდარტული Arduino Uno/ 2009 ფარი:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT ფარი:, A5, A4, A3, A2 // // არდუინო მეგა: // ------------------- // სტანდარტული არდუინო მეგა/შესაბამისი ფარი:, 38, 39, 40, 41 // CTE TFT LCD/SD ფარი Arduino Mega– სთვის:, 38, 39, 40, 41 // // დაიმახსოვრეთ მოდელის პარამეტრის შეცვლა თქვენი ჩვენების მოდულის შესატყვისად! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); გარე ხელმოუწერელი int ინფორმაცია [0x400]; გარე ხელმოუწერელი int ხატი [0x400]; გარე ხელმოუწერელი int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** 10 x 7 ბადე 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, ინფორმაცია); დაგვიანება (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, ხატი, s); x+= (s*32); } დაყოვნება (5000); }

ნაბიჯი 8: ღილაკის ინტერფეისი

ღილაკი ინტერფეისით
ღილაკი ინტერფეისით

#ჩართეთ #ჩართეთ // ჩვენების ინიციალიზაცია // ------------------ // დააყენეთ ქინძისთავები თქვენი განვითარების დაფისთვის სწორი // ------- ------------------------------------------------------ - // სტანდარტული Arduino Uno/2009 Shield:, 19, 18, 17, 16 // სტანდარტული Arduino Mega/Due ფარი:, 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/Due ფარი: 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 არდუინოს გამო: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // გამოაცხადეთ რომელი შრიფტები ვიყენებთ გარე 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 ("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) {for (x = 0; x

ნაბიჯი 9: Flappy Bird

Flappy Bird
Flappy Bird

#მოიცავს #მოიცავს #მოიცავს // ==== ობიექტების შექმნა UTFT myGLCD (SSD1289, 38, 39, 40, 41); // პარამეტრები უნდა იყოს მორგებული თქვენს Display/Schield მოდელზე UTouch myTouch (6, 5, 4, 3, 2); // ==== შრიფტების განსაზღვრა გარედან uint8_t SmallFont ; გარე uint8_t BigFont ; გარე uint8_t SevenSegNumFont ; გარე ხელმოუწერელი int bird01 [0x41A]; // ფრინველის ბიტმაპინტი x, y; // ცვლადი კოორდინატებისათვის, სადაც ეკრანი დაჭერილია // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int მოძრაობის მაჩვენებელი = 3; int fallRateInt = 0; float fallRate = 0; int ქულა = 0; int lastSpeedUpScore = 0; int უმაღლესი ქულა; ლოგიკური ეკრანიპრესილი = ყალბი; boolean gameStarted = false; void setup () {// ინიცირების ჩვენება myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); უმაღლესი ქულა = EEPROM.read (0); // წაიკითხეთ უმაღლესი ქულა EEPROM initateGame– დან (); // თამაშის ინიცირება} void loop () {xP = xP-moveRate; // xP - სვეტების x კოორდინატი; დიაპაზონი: 319 - (-51) drawPilars (xP, yP); // ხატავს სვეტებს // yB - y ფრინველის კოორდინატი, რომელიც დამოკიდებულია ვარდნის ცვლადის მნიშვნელობაზე yB+= fallRateInt; fallRate = დაცემა+0,4; // ყოველი ინექცია დაცემის მაჩვენებელი იზრდება ისე, რომ ჩვენ შევძლოთ აჩქარების/ სიმძიმის ეფექტის დაცემა FallRateInt = int (fallRate); // ამოწმებს შეჯახების შესახებ თუ (yB> = 180 || yB <= 0) {// ზედა და ქვედა თამაშიOver (); } if ((xP = 5) && (yB <= yP-2)) {// ზედა სვეტის თამაშიOver (); } if ((xP = 5) && (yB> = yP+60)) {// ქვედა სვეტი gameOver (); } // ხატავს ფრინველის 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; მოძრავი შეფასება = 3; gameStarted = ყალბი; // გადატვირთეთ თამაში initateGame (); }

ნაბიჯი 10: პროექტის მუშაობა

თქვენ შეგიძლიათ იპოვოთ წყაროს კოდი ჩემს Github საცავში.

ბმული:

ცერა თითი მიაწოდეთ თუ მართლა დაგეხმარათ და მიჰყევით ჩემს არხს საინტერესო პროექტებისთვის:)

თუ მოგეწონებათ გააზიარეთ ეს ვიდეო.

ბედნიერი ვარ, რომ გამოიწერე:

Მადლობა წაკითხვისთვის!

გირჩევთ: