Სარჩევი:

BluBerriSix - TFT TouchScreen / Arduino სახელმძღვანელო: 12 ნაბიჯი (სურათებით)
BluBerriSix - TFT TouchScreen / Arduino სახელმძღვანელო: 12 ნაბიჯი (სურათებით)

ვიდეო: BluBerriSix - TFT TouchScreen / Arduino სახელმძღვანელო: 12 ნაბიჯი (სურათებით)

ვიდეო: BluBerriSix - TFT TouchScreen / Arduino სახელმძღვანელო: 12 ნაბიჯი (სურათებით)
ვიდეო: bluBerriSIX - Arduino TFT Project - Happy 20th Birthday Blackberry 850! 2024, ნოემბერი
Anonim
BluBerriSix - TFT TouchScreen / Arduino სახელმძღვანელო
BluBerriSix - TFT TouchScreen / Arduino სახელმძღვანელო
BluBerriSix - TFT TouchScreen / Arduino სახელმძღვანელო
BluBerriSix - TFT TouchScreen / Arduino სახელმძღვანელო

2019 წელი არის RIM Blackberry 850 წლის 20 წლის იუბილე! ამ პატარა კანადურმა გამოგონებამ შეცვალა სამყაროს კომუნიკაცია. ის დიდი ხანია გავიდა, მაგრამ მისი მემკვიდრეობა გრძელდება!

ამ ინსტრუქციაში თქვენ ისწავლით თუ როგორ გამოიყენოთ MCUfriend.com 2.4 TFT ეკრანი ფარი Uno/Mega- სთვის. თქვენ ისწავლით გრაფიკული საგნების და ტექსტის ჩვენებას და როგორ მიიღოთ შეხება და იმოქმედოთ შეხების მოვლენებზე. ეს ეკრანი ძალიან ჰგავს ადაფრუტს და სხვა TFT ფარებს/ეკრანებს. ასე რომ, თუ თქვენ აქ ხართ, იყავით შოუს გარშემო.

ჩვენ ავაშენებთ ჩემი bluBerriSIX ესკიზის გამარტივებული 2 აპლიკაციის ვერსიას.

Დავიწყოთ!

ნაბიჯი 1: BluBerriSIX - მიმოხილვა

Image
Image
BluBerriSIX - მიმოხილვა
BluBerriSIX - მიმოხილვა
BluBerriSIX - მიმოხილვა
BluBerriSIX - მიმოხილვა

BluBerriSIX აპლიკაცია არის ექვსი ფუნქციის TFT პროექტი.

Ეს შეიცავს:

ფანარი

წვნიანი '7' აპლიკაცია (ჯადოსნური '8' ბურთივით)

Კალკულატორი

დისტანციის გაზომვის აპლიკაცია SR-04 ულტრაბგერითი მანძილის სენსორის გამოყენებით

ტემპერატურისა და ტენიანობის აპლიკაცია, რომელიც ასევე ახდენს რეალურ დროში მონაცემების აღრიცხვას 1.5 კმ-მდე HC-12 გადამცემით

ტექსტური აპლიკაცია HC-12– ის გამოყენებით.

ამ პროექტმა მიიღო 1100 ხაზი კოდი. ჩვენ ავაშენებთ ბევრად უფრო მარტივ ვერსიას, რომელიც კვლავ აჩვენებს TFT დისპლეის და შეხების ამოცნობის კონცეფციებს.

ნაბიჯი 2: რა არის საჭირო?

რა არის საჭირო?
რა არის საჭირო?
რა არის საჭირო?
რა არის საჭირო?

- Arduino Uno ან მეგა 2560

- MCUfriend 2.4 დიუმიანი TFT ფარი

შემდეგი ბიბლიოთეკები:

- Adafruit_GFX ბიბლიოთეკა

- ადაფრუტის სენსორული ბიბლიოთეკა

- MCUFRIEND_kbv ბიბლიოთეკა

ეს ბიბლიოთეკები შეიძლება დაინსტალირდეს ბიბლიოთეკის მენეჯერთან ერთად Arduino IDE- ში.

ბიბლიოთეკის ჩასატვირთად გადადით ჩანახატზე -> ბიბლიოთეკის ჩართვა -> ბიბლიოთეკების მართვა … მენიუს ვარიანტში.

ველში "გაფილტრეთ თქვენი ძებნა …", შეიყვანეთ წიგნის სახელის პირველი რამდენიმე სიმბოლო და შემდეგ შეარჩიეთ და დააინსტალირეთ შესაბამისი ბიბლიოთეკა. დასრულების შემდეგ, უბრალოდ უკან დაიხიეთ ამ ეკრანიდან.

Uno/Mega– ზე TFT ფარის დამონტაჟებისას, იყავით ძალიან ფრთხილად, რომ დარწმუნდეთ, რომ სწორად აწყობთ ქინძისთავებს. მე არასწორად დავაყენე ჩემი პირველი ფარი და შევწვი. ორი კვირა მზარდი იმედგაცრუებით ვცდილობდი ვიპოვო სწორი ბიბლიოთეკები, სანამ მივხვდებოდი, რომ ეკრანი მკვდარი იყო. ᲤᲠᲗᲮᲘᲚᲐᲓ ᲘᲧᲐᲕᲘ

ნაბიჯი 3: ჩვენი პროექტი

ჩვენი პროექტი
ჩვენი პროექტი
ჩვენი პროექტი
ჩვენი პროექტი
ჩვენი პროექტი
ჩვენი პროექტი
ჩვენი პროექტი
ჩვენი პროექტი

ჩვენ ავაშენებთ bluBerriSIX ესკიზის უფრო მარტივ ვერსიას.

ექნება, - გაფრქვევის ეკრანი

- მთავარი მენიუს ეკრანი ორი ღილაკით

- Saucy 7 აპლიკაცია

- ტექსტის შეყვანის გამარტივებული აპლიკაცია

თქვენ ასევე შეძლებთ დაუბრუნდეთ მთავარ მენიუს ამ სახლის ეკრანის ქვედა მარცხენა კუთხეში 'მთავარი' დაჭერით. თუ თქვენ არ გაქვთ ასეთი ხატი, თქვენ უბრალოდ უნდა განსაზღვროთ თქვენი სახლის ეკრანის "მთავარი" რეგიონი. თქვენ შეისწავლით თუ როგორ უნდა განსაზღვროთ ეკრანის შეხების რეგიონები ამ გაკვეთილში.

მიუხედავად იმისა, რომ ეს არის გამარტივებული პროექტი, ის მაინც საკმაოდ გრძელია. მე მოგაწვდით Arduino სკეტჩების ვერსიებს თითოეულ მთავარ ეტაპზე, ასე რომ თქვენ შეგიძლიათ ატვირთოთ ისინი, თუ გსურთ.

ნაბიჯი 4: სათაურის კოდი, გლობალური ცვლადები, ეკრანის დაყენება

სათაურის კოდი, გლობალური ცვლადები, ეკრანის დაყენება
სათაურის კოდი, გლობალური ცვლადები, ეკრანის დაყენება
სათაურის კოდი, გლობალური ცვლადები, ეკრანის დაყენება
სათაურის კოდი, გლობალური ცვლადები, ეკრანის დაყენება

მთელი პროექტი უაღრესად დოკუმენტირებულია. მაგრამ დეტალები მოყვება.

დაიწყეთ Arduino– ს ახალი პროექტი და დაარქვით მას „tft demo“ან ნებისმიერი სხვა სახელი, რომელიც გსურთ.

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

ჩვენ ასევე განვსაზღვრავთ ანალოგურ ქინძისთავებს მათი ეკრანის სპეციფიკური მიზნების მითითებით.

ჩვენ განვსაზღვრავთ tft ობიექტს (ჩვენებას) და ts ობიექტს (შეხებას), როგორც მითითებებს მათი შესაბამისი ფუნქციებისათვის.

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

მეორე კოდის პანელში ჩვენ განვსაზღვრავთ გლობალურ ცვლადებს ჩვენი აპლიკაციის სპეციფიკური მიზნებისათვის.

CString, ასო და ასო X და letterY სტრიქონები და მასივები გამოიყენება ა) ტექსტის შესვლის აპლიკაციის ღილაკებზე გამოსახვისთვის და ბ) შეხების x და y კოორდინატებს ემთხვევა თითოეული შესაბამისი ასო x და y კოორდინატებზე კლავიატურა. უფრო მეტი ამის შესახებ, როდესაც ჩვენ მივაღწევთ ესკიზის იმ მონაკვეთს.

funcX , funcY და func არის მასივები, რომლებიც მუშაობენ იმის დასადგენად, თუ რომელი პროგრამის ღილაკია დაჭერილი მთავარ მენიუს ეკრანზე და შემდეგ იყენებენ ამ ინფორმაციას შესაბამისი აპლიკაციის გასაშვებად.

lastTouch და tThresh გამოიყენება შეხების მეთოდებში, რათა დავრწმუნდეთ, რომ ჩვენ არ მივიღებთ მრავალჯერ შეხებას ეკრანის ძალიან დიდხანს დაჭერით. ამის შესახებ მოგვიანებით.

რეჟიმის ცვლადი გააკონტროლებს რომელი ეკრანი გამოჩნდება და tMode ცვლადი გააკონტროლებს რომელი შეხების მეთოდები გამოიყენება ნებისმიერ დროს.

Setup () ბლოკში ჩვენ ვხსნით სერიულ არხს, თუ გვსურს გამოვიყენოთ Serial.println () ბრძანებები გამართვისთვის. თქვენ არ გჭირდებათ ეს ხაზი, თუ არ გსურთ სერიული მონიტორის გამართვის გამართვა.

მომდევნო ოთხი ხაზი არის მხოლოდ tft ობიექტის დაყენების კოდი.

შემდეგ ჩვენ ვაყენებთ ეკრანის ორიენტაციას პორტრეტის რეჟიმში.

RandomSeed () ბრძანება უბრალოდ იწყებს შემთხვევითი რიცხვების გენერატორს მოგვიანებით გამოსაყენებლად Saucy 7 აპლიკაციის მიერ.

დაბოლოს, ჩვენ ვუწოდებთ splash screen მეთოდს.

ნაბიჯი 5: Spash ეკრანის შექმნა და ეკრანის გაგება სენსორული რუქის წინააღმდეგ

Spash ეკრანის აგება და ჩვენების გაგება სენსორული რუქის წინააღმდეგ
Spash ეკრანის აგება და ჩვენების გაგება სენსორული რუქის წინააღმდეგ
შუშის ეკრანის აგება და ჩვენების გაგება სენსორული რუქის წინააღმდეგ
შუშის ეკრანის აგება და ჩვენების გაგება სენსორული რუქის წინააღმდეგ

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

მაგრამ პირველ რიგში, გთხოვთ შეხედოთ სურათს ეკრანისთვის და შეეხეთ რუქას. გაითვალისწინეთ, რომ წარმოშობა სხვადასხვა ადგილას არის. ჩვენებისათვის წარმოშობა (0, 0) არის ეკრანის ზედა მარცხენა ნაწილში (როდესაც ღილაკი RESET არის ზემოთ) და იზრდება მარცხნიდან მარჯვნივ და ზემოდან ქვემოდან.

შეხების გამოვლენის მიზნით, წარმოშობა მდებარეობს ეკრანის ქვედა მარცხენა კუთხეში და იზრდება მარცხნიდან მარჯვნივ და ქვემოდან ზემოდან.

ასე რომ, ჩვენების და შეხების რუქები განისაზღვრება ცალკე და აქვთ განსხვავებული რეზოლუციები. ეკრანს აქვს გარჩევადობა 240 320 -ზე, ხოლო შეხებას გაცილებით მაღალი გარჩევადობა აქვს, როგორც ამას მალე ნახავთ.

გადადით თქვენი ესკიზის არეზე loop () {} მეთოდის ქვემოთ და ჩვენ შევიყვანთ splash () მეთოდის კოდს.

ჩვენ ვიწყებთ fillScreen () ბრძანების შესრულებით, რომ შეავსოთ ეკრანი WHITE ფერით, რომელიც ჩვენ განვსაზღვრეთ სათაურის კოდში.

შემდეგ ჩვენ დავაყენეთ ტექსტის ზომა "5". ეს არის შედარებით დიდი ძირითადი ტექსტის ზომა. ჩვენ დავაყენეთ x და y პოზიცია ტექსტის კურსორისთვის და ჩვენ დავაყენეთ ტექსტის ფერი. დაბეჭდვის ("TFT") ბრძანება რეალურად ხატავს ცისფერ, ზომა '5' ტექსტს მითითებულ ადგილას.

ტექსტის ზომის გაზრდისთანავე ნახავთ, რომ პერსონაჟები სულ უფრო და უფრო ჭუჭყიანდებიან. ასე რომ, 5 -ზე ზემოთ გადასვლა ალბათ არ გამოდგება. ამ გაკვეთილის ბოლოს, მე გაჩვენებთ თუ როგორ გამოიყენოთ bitmap შრიფტები, რომ მიიღოთ უფრო ლამაზი ტექსტი თქვენს აპლიკაციებში. კომპრომისი ის არის, რომ bitmap შრიფტის ნაკრებების გამოყენება ბევრ მეხსიერებას იკავებს თქვენს Arduino– ში, რაც ზღუდავს თქვენს ესკიზის ზომებს

ჩვენ ვიმეორებთ მსგავს ბრძანებებს სხვა ორი ტექსტური ელემენტისთვის splash ეკრანზე.

დაბოლოს, ჩვენ ვაგვიანებთ 2,5 წამით, რათა მომხმარებელს მივცეთ საშუალება წაიკითხოს ეკრანის შინაარსი, სანამ აპლიკაცია გადავა მთავარ მენიუს ეკრანზე.

წადი და ატვირთე ესკიზი შენს არდუინოში. მას უნდა აჩვენოს გაფრქვევის ეკრანი.

ნაბიჯი 6: შეხებით რუქის დიაგნოსტიკური ინსტრუმენტის შექმნა

შეხებით რუქის დიაგნოსტიკური ინსტრუმენტის შექმნა
შეხებით რუქის დიაგნოსტიკური ინსტრუმენტის შექმნა
შეხებით რუქის დიაგნოსტიკური ინსტრუმენტის შექმნა
შეხებით რუქის დიაგნოსტიკური ინსტრუმენტის შექმნა

ShowTouch () მეთოდი ძალიან სასარგებლოა, რათა დაგეხმაროთ მიიღოთ ეკრანის სხვადასხვა ნაწილის შეხების კოორდინატები. თქვენ უნდა გააკეთოთ ეს თქვენი ღილაკების შეხების რეგიონების განსაზღვრისათვის.

გააგრძელეთ და შეიყვანეთ ეს მეთოდი თქვენი ადრე splash () მეთოდის ქვემოთ.

აი, როგორ მუშაობს.

If განცხადება განსაზღვრავს, გავიდა თუ არა საკმარისი დრო ბოლო შეხებიდან. იგი იღებს მიმდინარე სისტემის დროს millis () და აკლებს ბოლო შეხების დროს. თუ ის აღემატება tThresh მნიშვნელობას (200 მილიწამი), ის იღებს შეხებას. წინააღმდეგ შემთხვევაში, ის იგნორირებას უკეთებს შემთხვევით მრავალ შეხებით მოვლენებს.

შემდეგი, getpoint () ბრძანება იღებს შეხების x, y და z კოორდინატებს. Z კოორდინატი არის შეხების წნევის საზომი.

თუ ზეწოლა არის ესკიზის სათაურში ჩვენ მიერ განსაზღვრული მაქსიმალური და მინიმალური მუდმივობის ფარგლებში, მეთოდი პირველად შეცვლის YP და XM ქინძისთავებს OUTPUT, ეკრანს ათავსებს DISPLAY რეჟიმში.

შემდეგ ის დახატავს თეთრ ოთხკუთხედს, რომ წაშალოს ადრე ნაჩვენები კოორდინატები.

ესკიზი შემდეგ შრიფტს ადგენს 2 ზომაზე, შავ ფერს და ეკრანზე აჩვენებს x (p.x) და y (p.y) კოორდინატებს. ამის შემდეგ შეგიძლიათ აღნიშნოთ ეს ადგილები, რათა დაგეხმაროთ თქვენი ესკიზებისთვის თქვენი შეხების ზონების დაპროგრამებაში.

მეთოდის ბოლოში if განცხადება შეამოწმეთ თუ არა ეკრანზე ღილაკი "მთავარი" დაჭერილი. '<=' ოპერატორები იძლევიან საწყისი ღილაკის სიგანეს და სიმაღლეს. მითითებული კოორდინატებია მთავარი ღილაკის x ცენტრის და y ცენტრის კოორდინატები. თუ ის დაჭერილია, რეჟიმი დაყენებულია 0 -ზე, რაც საბოლოოდ ნიშნავს "გადასვლა მთავარ მენიუს ეკრანზე". ამის შესახებ მოგვიანებით.

დაბოლოს, ჩვენ განვაახლებთ lastTouch– ს მიმდინარე სისტემის დროზე millis (), რათა მოვემზადოთ შემდგომი შეხების ღონისძიებისთვის.

გთხოვთ გადადით მარყუჟის () ბლოკში და დაამატეთ ხაზის showTouch ();

ამ ეტაპზე, ატვირთეთ ესკიზი და სცადეთ. ის დახაზავს გაფანტულ ეკრანს და თუ ეკრანზე შეხებას დაიწყებთ, ეკრანზე გამოჩნდება TOUCH x და y კოორდინატები.

სანამ გადავიდეთ, მოდით გადახედოთ კოდის ორ მნიშვნელოვან ხაზს:

pinMode (YP, OUTPUT); // TFT კონტროლის ქინძისთავების აღდგენა

pinMode (XM, OUTPUT); // შეხების გამოვლენის შემდეგ ჩვენებისათვის

ნებისმიერ დროს, როდესაც გსურთ ეკრანზე რაღაცის ჩვენება, თქვენ უნდა შეასრულოთ ეს ორი ბრძანება, რომ შეცვალოთ ეკრანი TOUCH რეჟიმიდან DISPLAY რეჟიმში. წინააღმდეგ შემთხვევაში, თქვენი ეკრანის ბრძანებები არ იმუშავებს.

კარგად გაკეთდა ჯერჯერობით! Შესვენება!

ნაბიჯი 7: შექმენით მთავარი მენიუს ეკრანი

შექმენით მთავარი მენიუს ეკრანი
შექმენით მთავარი მენიუს ეკრანი
შექმენით მთავარი მენიუს ეკრანი
შექმენით მთავარი მენიუს ეკრანი
შექმენით მთავარი მენიუს ეკრანი
შექმენით მთავარი მენიუს ეკრანი

ჩვენ ახლა ავაშენებთ ჩვენს მთავარ მენიუს ეკრანს ორი ღილაკით, რომელთა დაჭერაც შეგიძლიათ თითოეული პროგრამის გასააქტიურებლად. მეთოდს ეწოდება menuScreen ().

ჩვენ ვიწყებთ ეკრანის განთავსებას DISPLAY რეჟიმში.

შემდეგ ჩვენ ვაყენებთ შრიფტის ზომას, ფერს და პოზიციას და ვბეჭდავთ ტექსტს "მთავარი მენიუ".

ჩვენ ახლა ვხატავთ ორ ოთხკუთხედს, რომლებიც ღილაკებია.

ყველა გრაფიკულ ბრძანებას აქვს მსგავსი სტრუქტურა:

გრაფიკული ფორმა (x კოორდინატი, y კოორდინატი, სიგანე, სიმაღლე, ფერი)

- x კოორდინატი - ზედა მარცხნივ მართკუთხა ობიექტებისთვის, ცენტრი წრეებისთვის

- y კოორდინატი - ზედა მარცხნივ მართკუთხა ობიექტებისთვის, ცენტრი წრეებისთვის

- სიგანე - ობიექტის სიგანე პიქსელებში

- ფერი - ფერის მუდმივი, რომელიც ჩვენ განვსაზღვრეთ სათაურში

დაბოლოს, ჩვენ ვიძახებთ ორ მეთოდს Saucy 7 ხატის და QWERTY ტექსტის შეყვანის ხატის დასახატად. ეს ცალკე მეთოდებია.

Draw7icon (0) მეთოდი იღებს მთელ პარამეტრს, რომელიც y- ოფსეტია ბურთის დახატვისათვის. ჩვენ ამას ვაკეთებთ ისე, რომ ჩვენ შეგვიძლია გამოვიყენოთ იგივე მეთოდი ბურთის მენიუს ეკრანზე და Saucy 7 აპლიკაციის ეკრანზე. ოფსეფტი მხოლოდ საშუალებას გვაძლევს პროგრამულად მოვახდინოთ ბურთის y კოორდინატის მაღლა ან ქვევით.

Draw7Ball (0) მეთოდი გამოიძახება draw7Icon– დან (0). ის ასევე იღებს პარამეტრს, რომელიც საშუალებას გვაძლევს შევაჩეროთ ბურთის ვერტიკალური პოზიცია იმისდა მიხედვით, ვხატავთ მას მენიუს ეკრანზე თუ აპლიკაციის ეკრანზე.

FillCircle () ბრძანება იღებს 4 არგუმენტს.

- წრის ცენტრის x კოორდინატი

- წრის ცენტრის y კოორდინატი

- წრის რადიუსი (პიქსელებში)

- ფერი - ფერის მუდმივი, რომელიც ჩვენ განვსაზღვრეთ სათაურში

საბოლოოდ drawTextIcon () მეთოდი ეწოდება ტექსტის შეყვანის აპლიკაციის ხატის დასახატად.

თქვენ შეგიძლიათ სცადოთ მეთოდის გაშვება (setup () splash () მეთოდის კომენტარით და დაამატოთ menuScreen ().

ატვირთეთ ესკიზი თქვენს არდუინოში და სცადეთ!

ნაბიჯი 8: Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები

Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები
Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები
Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები
Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები
Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები
Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები
Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები
Saucy 7 აპლიკაცია და მთავარი მენიუს მეთოდები

SevenScreen () მეთოდი ხატავს ეკრანს პროგრამისთვის, მათ შორის ბურთის დახატვას და შემდეგ ინსტრუქციის ჩვენებას.

SevenInstr () მეთოდი აჩვენებს ინსტრუქციებს, ასევე ასუფთავებს ეკრანს წინა პასუხებისგან. ის ასევე ხატავს ღილაკს "პასუხი".

Show7Response () მეთოდი ამუშავებს წინა რეაქციის ეკრანიდან გაწმენდას, აჩვენებს ანიმაციურ „აზროვნების…“შეტყობინებას და შემდეგ შემთხვევით შერჩეულ საპასუხო შეტყობინებას.

read7Touch () არის მეთოდი, რომელიც ელოდება შეხების მოვლენას შემთხვევით გენერირებული შეტყობინების შესაქმნელად. სენსორული კოდი ძალიან ჰგავს ადრე აღწერილ showTouch () დიაგნოსტიკურ მეთოდს. სიმარტივისთვის, მეთოდი მიიღებს ეკრანზე ნებისმიერ ადგილას შეხებას, როგორც ღილაკზე „პასუხის გაცემა“.

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

თუ დააჭირეთ ღილაკს მთავარი, ის დაასრულებს აპს და დაბრუნდება მთავარ მენიუს ეკრანზე. წინააღმდეგ შემთხვევაში, მეთოდი გამოიმუშავებს შემთხვევით რიცხვს 0 -დან 7 -მდე (ექსკლუზიური) და შესაბამის ტექსტურ შეტყობინებას საპასუხო მასივიდან show7Response () მეთოდს გადასცემს.

დაბოლოს, backToMenu () მეთოდი თვალყურს ადევნებს მთავარ ღილაკს და აბრუნებს კონტროლს მთავარ მენიუს ეკრანზე.

ReadMenuTouch () მეთოდი თვალს ადევნებს შეხების მოვლენას, როდესაც მთავარი მენიუს ეკრანზე ხართ. როდესაც შეხება გამოვლენილია, ის x და y კოორდინატებს გადასცემს getFunc (x, y) მეთოდს, რომელიც გამოიყურება funcX და funcY მასივებში, რათა ემთხვეოდეს შეხების x და y კოორდინატებს. შემდეგ ის აბრუნებს ნომერს func მასივიდან არჩეული პროგრამისთვის. "1" არის Saucy 7 და "2" არის ტექსტის შესვლის აპლიკაცია. შემდეგ ის ადგენს რეჟიმს იმ პროგრამის ღირებულების შესაბამისად, რომ აპლიკაცია შესრულდეს.

ნაბიჯი 9: მარყუჟის () ბლოკი

მარყუჟის () ბლოკი
მარყუჟის () ბლოკი

ჩვენ ახლა დავიწყებთ მარყუჟის () ბლოკის კოდის შექმნას შესაბამისი ეკრანის ჩვენების გასამკლავებლად და შემდეგ შესაბამისი შეხების მეთოდების გამოძახებით, ამჟამად შერჩეული ვარიანტის საფუძველზე.

მარყუჟის () მეთოდი შედგება ორი გადართვის () სტრუქტურისგან.

გადართვის ზედა სტრუქტურა ამუშავებს შესაბამის ეკრანს იმის მიხედვით, თუ რომელი ვარიანტია არჩეული. იგი ასევე ადგენს tMode მნიშვნელობას შესაბამისი შეხების მეთოდისათვის, რათა გაუშვას მიმდინარე შერჩეული ვარიანტი. დაბოლოს, ის ადგენს რეჟიმის მნიშვნელობას 9 -ზე, ისე რომ ეკრანის ეკრანი უსასრულოდ არ გადახალისდეს.

ქვედა გადამრთველის სტრუქტურა აკონტროლებს შეხების მეთოდებს, რომლებიც ხორციელდება მომხმარებლის მიერ არჩეული აპლიკაციის ვარიანტის საფუძველზე, რომელიც წარმოდგენილია tMode მნიშვნელობით.

ჩადეთ ესკიზი თქვენს Arduino– ში და თქვენ უნდა შეგეძლოთ აირჩიოთ და გამოიყენოთ Saucy 7 აპლიკაცია.

თქვენ ბევრი სამუშაო გააკეთეთ! Შესვენება:-)

ნაბიჯი 10: ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ

ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ!
ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ!
ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ!
ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ!
ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ!
ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ!
ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ!
ტექსტის შეყვანის აპლიკაცია - ჩვენ სახლის გაჭიმვაში ვართ!

ჩვენ ახლა გავაერთიანებთ ტექსტის შეყვანის პროგრამის მეთოდებს.

makeKbd () ხატავს კლავიატურას ეკრანზე.

იგი ხატავს ექვს შევსებულ მომრგვალებულ ოთხკუთხედს და შემდეგ გადაფარავს შესაბამის ასოს თითოეულ 'გასაღებზე' cString სტრიქონიდან ასლის ამოღებით, რომელიც ბეჭდავს ეკრანზე გასაღებზე. გაითვალისწინეთ, რომ fillRoundedRect () ბრძანების მეორე ბოლო პარამეტრი არის თითოეული კუთხის რადიუსი პიქსელებში. რაც უფრო მაღალია ეს მნიშვნელობა, მით უფრო მომრგვალებულია კუთხეები.

ReadKbdTouch () მეთოდი მუშაობს მსგავსი შეხების გამოვლენის სხვა მეთოდების მსგავსად.

თუ შეხება გამოვლინდა, რომელიც არ არის მთავარი ღილაკზე, ის გადასცემს x და y კოორდინატებს curChar (x, y) მეთოდით, რომელიც აბრუნებს სიმბოლოს, რომელიც შეესაბამება ეკრანზე ამ x და y მდებარეობას. შეტყობინება, რომელიც "აკრეფილია" შემდეგ გამოჩნდება ეკრანზე "displayMsg (theChar) მეთოდით.

CurChar (x, y) მეთოდი ეძებს letterX და letterY მასივებს, რათა იპოვოს შესატყვისი, რომელიც ახლოს არის readKbdTouch () - დან გადატანილი x და y კოორდინატებთან. თუ ის იპოვის შესატყვისს, ის აბრუნებს შესაბამის წერილს readKbdTouch მეთოდს. გაითვალისწინეთ, რომ ჩვენ ინიციალიზებულია theChar ცვლადი 32 -ზე, რაც არის ASCII კოდი სივრცის სიმბოლოსთვის . ჩვენ ამას ვაკეთებთ ისე, რომ თუ მომხმარებელი შეეხო კლავიატურისგან მოშორებულ ადგილს, ის არ აჩვენებს მიუწვდომელ სიმბოლოებს.

DisplayMsg (theChar) მეთოდი იღებს curChar (x, y) - დან დაბრუნებულ სიმბოლოს და მას ამატებს msg სტრიქონს. შემდეგ ის აჩვენებს შეტყობინებას ეკრანზე.

დაბოლოს, ჩვენ განვაახლებთ მარყუჟის () ბლოკს, რომ მივიღოთ ტექსტის შესვლის აპლიკაციის შერჩევა.

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

გილოცავთ! თქვენ შექმენით TFT სენსორული აპლიკაცია! დაისვენე დანარჩენი დღე!

ნაბიჯი 11: იყავით გლუვი! - Adafruit Bitmap შრიფტების გამოყენება თქვენს ესკიზში

სტანდარტული tft შრიფტის ნაკრები ნორმალურია. მაგრამ ეს უფრო სასიამოვნოა, თუ ჩვენ შეგვიძლია გამოვიყენოთ შესაბამისი bitmapped შრიფტები ჩვენს TFT ესკიზებში.

მინუსი ის არის, რომ შრიფტების ნაკრები Arduino მეხსიერებაში მნიშვნელოვან ადგილს იკავებს. სინამდვილეში, ძალიან ადვილია თქვენი ესკიზის შევსება იმდენი შრიფტით, რომ არ ჩაიტვირთოს არდუინოში.

შრიფტები ხელმისაწვდომია Adafruit_GFX ბიბლიოთეკის საქაღალდეში, რომელიც თქვენ უკვე დააინსტალირეთ ამ პროექტისთვის. შრიფტების გამოყენების შესანიშნავი გაკვეთილია ამ საიტზე.

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

#ჩართეთ

თქვენი splash () მეთოდით, დაწერეთ კომენტარი tft.setTextSize (); ბრძანება.

დაამატეთ შემდეგი ბრძანება,

tft.setFont (& FreeSerifBoldItalic18pt7b);

ახლა ნებისმიერი print () ბრძანება გამოიყენებს ამჟამად მითითებულ შრიფტს. სხვა შრიფტზე შესაცვლელად, თქვენ გამოიყენებთ სხვა ბრძანებას tft.setFont () შემდეგი შრიფტით, რომლის გამოყენებაც გსურთ.

შრიფტის დასაბრუნებლად სტანდარტულ tft შრიფტზე, უბრალოდ გამოიყენეთ tft.setFont (); ბრძანება პარამეტრის გარეშე.

ატვირთეთ ესკიზი თქვენს Arduino– ში და თქვენ უნდა ნახოთ, რომ splash ეკრანი ახლა იყენებს bitmap შრიფტს ტექსტის ეკრანზე გადასატანად. თქვენ შეამჩნევთ, რომ ესკიზის ზომა მნიშვნელოვნად დიდია ახლა, როდესაც თქვენ შეიტანეთ შრიფტი.

ნაბიჯი 12: საბოლოო აზრები

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

tft.drawRect (x, y, სიგანე, სიმაღლე, ფერი);

tft.drawLine (x1, y1, x2, y2, ფერი);

ქვემოთ მოყვანილი მაგალითები იყენებს tft.color565 მეთოდს, რომელიც საშუალებას გაძლევთ მიუთითოთ ფერი წითელი, მწვანე და ლურჯი მნიშვნელობების საფუძველზე. ეს არის ალტერნატიული გზა გამოიყენოთ მუდმივი განსაზღვრული HEX ფერის მნიშვნელობები, რომლებიც ჩვენ გამოვიყენეთ ჩვენს ესკიზში.

tft.drawRoundRect (x, y, სიგანე, სიმაღლე, რადიუსი, tft.color565 (255, 0, 0)); // ეს იქნება წითელი

tft.drawCircle (x, y, რადიუსი, tft.color565 (0, 255, 0)); // ეს იქნება მწვანე

tft.drawTriangle (vertex1x, vertex1y, vertex2x, vertex2y, vertex3x, vertex3y, tft.color565 (0, 0, 255)); // ცისფერი

tft.fillTriangle (vertex1x, vertex1y, vertex2x, vertex2y, vertex3x, vertex3y, tft.color565 (255, 0, 0);

ითამაშეთ ამ ბრძანებებით და გამოიკვლიეთ როგორ შეუძლიათ მათ დაამატოთ თქვენი TFT პროექტები.

TFT ეკრანის გამოყენების სწავლა რთულია და უნდა იამაყო საკუთარი თავით, რომ დრო დაუთმე ამ პირველი ნაბიჯების შესასწავლად.

TFT ეკრანებს შეუძლიათ დაამატოთ მიმზიდველი და სასარგებლო გრაფიკული ინტერფეისის ასპექტი თქვენს Arduino პროექტებს.

მადლობა ამ გაკვეთილზე მუშაობისთვის.

გადი ახლა და გააკეთე რაღაც საოცრება!

გირჩევთ: