Სარჩევი:
- ნაბიჯი 1: აპარატურისა და პროგრამული უზრუნველყოფის მოთხოვნები
- ნაბიჯი 2: შეცვალეთ UTFT Lib
- ნაბიჯი 3: TFT ფარის ინიციალიზაცია
- ნაბიჯი 4: ძირითადი გამარჯობა მსოფლიო
- ნაბიჯი 5: UTFT ფონტები
- ნაბიჯი 6: UTFT ფორმები, ხაზები და ნიმუში
- ნაბიჯი 7: UTFT ბიტმაპი
- ნაბიჯი 8: ღილაკის ინტერფეისი
- ნაბიჯი 9: Flappy Bird
- ნაბიჯი 10: პროექტის მუშაობა
ვიდეო: Arduino TFT ინტერფეისის საფუძვლები: 10 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
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
ეს ბიბლიოთეკა არის ჩემი 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 ფარის ინიციალიზაცია
ბიბლიოთეკის რედაქტირების შემდეგ დაამატეთ იგი 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 ფონტები
#მოიცავს // გამოაცხადეთ რომელი შრიფტები გამოვიყენებთ
გარე 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.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 ბიტმაპი
#ჩართეთ
#მოიცავს // გამოაცხადეთ რომელი შრიფტები ვიყენებთ გარედან 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
#მოიცავს #მოიცავს #მოიცავს // ==== ობიექტების შექმნა 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 საცავში.
ბმული:
ცერა თითი მიაწოდეთ თუ მართლა დაგეხმარათ და მიჰყევით ჩემს არხს საინტერესო პროექტებისთვის:)
თუ მოგეწონებათ გააზიარეთ ეს ვიდეო.
ბედნიერი ვარ, რომ გამოიწერე:
Მადლობა წაკითხვისთვის!
გირჩევთ:
შედუღების ზედაპირის სამონტაჟო კომპონენტები - შედუღების საფუძვლები: 9 ნაბიჯი (სურათებით)
შედუღების ზედაპირის მთა კომპონენტები | Soldering საფუძვლები: ჯერჯერობით ჩემი Soldering Basics Series, მე განვიხილე საკმარისი საფუძვლები soldering თქვენ უნდა დაიწყოს პრაქტიკაში. ამ ინსტრუქციურში, რასაც მე განვიხილავ, ცოტა უფრო მოწინავეა, მაგრამ ეს არის რამოდენიმე საფუძველი Surface Mount Compo– ს შესადუღებლად
ინტერფეისის ღილაკი - არდუინოს საფუძვლები: 3 ნაბიჯი
Pushbutton - Arduino საფუძვლები: Pushbutton არის კომპონენტი, რომელიც აკავშირებს ორ წერტილს წრეში, როდესაც თქვენ დააჭირეთ მას. როდესაც დაჭერით ღილაკი ღიაა (არაპრესირებული) არ არსებობს კავშირი ღილაკზე ორ ფეხს შორის, ამიტომ პინი დაკავშირებულია 5 -თან ვოლტი (გამწევ რეზის საშუალებით
Gesture Hawk: ხელით ჟესტით კონტროლირებადი რობოტი გამოსახულების დამუშავებაზე დაფუძნებული ინტერფეისის გამოყენებით: 13 ნაბიჯი (სურათებით)
Gesture Hawk: ხელის ჟესტით კონტროლირებადი რობოტი გამოსახულების დამუშავების საფუძველზე ინტერფეისის გამოყენებით: Gesture Hawk გამოჩნდა TechEvince 4.0-ში, როგორც გამოსახულების დამუშავების მარტივი მექანიზმი ადამიანისა და მანქანის ინტერფეისით. მისი სარგებლობა მდგომარეობს იმაში, რომ რობოტული მანქანის გასაკონტროლებლად, რომელიც მუშაობს სხვადასხვა მიმართულებით, არ არის საჭირო დამატებითი სენსორები ან ხელთათმანების გარდა
პროგრამა Pro-mini Uno– ს გამოყენებით (Arduino საფუძვლები): 7 ნაბიჯი (სურათებით)
პროგრამა Pro-mini Uno– ს გამოყენებით (არდუინოს საფუძვლები): ეს ყველაფერი, ამ ინსტრუქციურად მინდა გაგიზიაროთ ჩემი გამოცდილება ახლახანს ნაყიდი Arduino pro-mini– ით და როგორ მოვახერხე კოდის ატვირთვა პირველად ჩემი გამოყენებით ძველი Arduino Uno. Arduino pro-mini– ს აქვს შემდეგი მახასიათებლები: ეს არის მე
RC მანქანის კონტროლი ვებ ინტერფეისის საშუალებით: 6 ნაბიჯი (სურათებით)
RC მანქანის კონტროლი ვებ ინტერფეისის საშუალებით: მეგობრებო, ამ ინსტრუქციურად მე ვასწავლი, რომ გააკეთოთ RC მანქანა ვებ ინტერფეისის საშუალებით. ჩვენ მას უსადენოდ გავაკონტროლებთ ჩვენივე სერვერის საშუალებით. იმ მეთოდის გამოყენებით, რომელსაც მე გაჩვენებთ, ჩვენ არ დაგვჭირდება RC მიმღების გამოყენება. ვებ – მასპინძლობისთვის