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

BluBerriSix - TFT TouchScreen / Arduino заавар: 12 алхам (зурагтай)
BluBerriSix - TFT TouchScreen / Arduino заавар: 12 алхам (зурагтай)

Видео: BluBerriSix - TFT TouchScreen / Arduino заавар: 12 алхам (зурагтай)

Видео: BluBerriSix - TFT TouchScreen / Arduino заавар: 12 алхам (зурагтай)
Видео: MKS SGEN L V1.0 - Basics 2024, Долдугаар сарын
Anonim
BluBerriSix - TFT TouchScreen / Arduino заавар
BluBerriSix - TFT TouchScreen / Arduino заавар
BluBerriSix - TFT TouchScreen / Arduino заавар
BluBerriSix - TFT TouchScreen / Arduino заавар

2019 онд RIM Blackberry 850 -ийн 20 жилийн ой тохиож байна! Канадын энэхүү бяцхан бүтээл дэлхий ертөнцийн харилцааны хэв маягийг өөрчилжээ. Энэ нь аль хэдийн алга болсон боловч түүний өв уламжлал үргэлжилсээр байна!

Энэхүү зааварчилгаанд та Uno/Mega -ийн MCUfriend.com 2.4 TFT дэлгэцийн бамбайг хэрхэн ашиглах талаар сурах болно. Та график объект, текстийг хэрхэн харуулах, хүрэлтийг хүлээн авах, мэдрэгчтэй үйл явдалд хэрхэн ажиллах талаар сурах болно. Дэлгэц нь Adafruit болон бусад TFT бамбай/дэлгэцтэй маш төстэй юм. Тиймээс хэрэв та энд байгаа бол нэвтрүүлгийг үзээрэй.

Бид bluBerriSIX ноорог зургийнхаа 2 хялбаршуулсан хувилбарыг бүтээх болно.

Эхэлцгээе!

Алхам 1: BluBerriSIX - тойм

Image
Image
BluBerriSIX - Тойм
BluBerriSIX - Тойм
BluBerriSIX - Тойм
BluBerriSIX - Тойм

BluBerriSIX програм нь зургаан функцтэй TFT төсөл юм.

Үүнд:

Гар чийдэн

Saucy '7' апп (Magic '8' Ball шиг)

Тооцоологч

SR-04 хэт авианы зайн мэдрэгчийг ашиглан зайг хэмжих програм

HC-12 дамжуулагчтай 1.5 км хүртэл бодит цагийн бүртгэлийг хийдэг Температур ба чийгшил апп.

HC-12 ашиглан мессеж бичих програм.

Энэ төсөл нь 1100 мөр код авсан. Бид TFT дэлгэц, мэдрэгчтэй ойлголтуудыг харуулсан нэлээд энгийн хувилбарыг бүтээх болно.

Алхам 2: Юу хэрэгтэй вэ?

Юу хэрэгтэй вэ?
Юу хэрэгтэй вэ?
Юу хэрэгтэй вэ?
Юу хэрэгтэй вэ?

- Arduino Uno эсвэл Mega 2560

- MCUfriend 2.4 инчийн TFT бамбай

Дараахь номын сангууд:

- Adafruit_GFX номын сан

- Adafruit Touchscreen номын сан

- MCUFRIEND_kbv номын сан

Эдгээр номын санг Arduino IDE доторх номын сангийн менежерээр суулгаж болно.

Номын санг ачаалахын тулд Sketch -> Номын санг оруулах -> Номын санг удирдах … цэс рүү очно уу.

'Хайлтаа шүүх …' талбарт libary -ийн нэрний эхний хэдэн тэмдэгтийг оруулаад тохирох номын санг сонгож суулгана уу. Дууссаныхаа дараа энэ дэлгэцээс гараад буцна уу.

TFT бамбайг Uno/Mega дээр суурилуулахдаа тээглүүрээ зөв байрлуулж байгаа эсэхийг шалгахын тулд маш болгоомжтой байгаарай. Би анхны бамбайгаа буруу тохируулаад шарсан. Дэлгэц үхсэнийг мэдсэнийхээ дараа би зөв номын санг хайж олох гэж хоёр долоо хоног бухимдсан. АНХААРААРАЙ

Алхам 3: Манай төсөл

Манай төсөл
Манай төсөл
Манай төсөл
Манай төсөл
Манай төсөл
Манай төсөл
Манай төсөл
Манай төсөл

Бид bluBerriSIX ноорогны энгийн хувилбарыг бүтээх болно.

Энэ нь байх болно, - цацах дэлгэц

- хоёр товчлуур бүхий үндсэн цэсийн дэлгэц

- Saucy 7 програм

- хялбаршуулсан текст оруулах програм

Та мөн энэ дэлгэцийн зүүн доод хэсэгт байрлах 'Нүүр хуудас' дүрс дээр дарж үндсэн цэс рүү буцах боломжтой болно. Хэрэв танд ийм дүрс байхгүй бол та дэлгэцийнхээ "гэрийн" бүсийг тодорхойлох хэрэгтэй болно. Та энэ гарын авлагаас дэлгэцийн мэдрэгчтэй бүсийг хэрхэн тодорхойлохыг сурах болно.

Хэдийгээр энэ нь хялбаршуулсан төсөл боловч нэлээд урт хэвээр байна. Би Arduino -ийн ноорогуудын хувилбаруудыг үндсэн үе шат бүрт өгөх болно, хэрэв та хүсвэл тэдгээрийг байршуулж болно.

Алхам 4: Толгой код, Глобал хувьсагчид, Дэлгэцийн тохиргоо

Толгой код, дэлхийн хувьсагчид, дэлгэцийн тохиргоо
Толгой код, дэлхийн хувьсагчид, дэлгэцийн тохиргоо
Толгой код, дэлхийн хувьсагчид, дэлгэцийн тохиргоо
Толгой код, дэлхийн хувьсагчид, дэлгэцийн тохиргоо

Төслийг бүхэлд нь баримтжуулсан болно. Гэхдээ нарийн ширийн зүйлийг дагана.

Arduino -ийн шинэ төслийг эхлүүлээд үүнийг "tft demo" эсвэл өөр нэрээр нэрлээрэй.

Дээрх кодын эхний самбар нь дэлхийн хувьсагчдыг тодорхойлохыг бидэнд харуулав. Түүнчлэн бид дэлгэцийн функц болон дэлгэцийн мэдрэгчийг илрүүлэхэд ашиглах шаардлагатай номын сангуудыг нэмж оруулсан болно.

Мөн бид аналог тээглүүрийг дэлгэцийн зориулалтаар нь тодорхойлж тодорхойлдог.

Бид tft объект (дэлгэц) ба ts объект (хүрэлт) -ийг тус тусын функцүүдийн лавлагаа гэж тодорхойлдог.

Дэлгэц, текст, график объектын өнгийг хялбархан гаргахын тулд бид 16 битийн өнгөний тогтмолыг тодорхойлдог. Өнгө сонгогч, харагдахуйц өнгийг 16 битийн арван зургаатын утгууд руу хөрвүүлэх хөрвүүлэгчтэй вэбсайтын URL байгааг та анзаарах болно. Энэ бол маш хэрэгтэй хэрэгсэл юм.

Хоёрдахь кодын самбар дээр бид аппликешнд зориулагдсан дэлхийн хувьсагчдыг тодорхойлдог.

CString, үсэг ба letterX ба letterY тэмдэгт мөр, массивыг ашиглана: а) текст оруулах програмын товчлуур дээрх үсгийг харуулах, б) харгалзах үсэг бүрийн x ба y координаттай x ба y координатыг тааруулах. гар. Ноорогны хэсэгт очиход энэ талаар илүү ихийг олж мэдэх болно.

funcX , funcY ба func нь үндсэн цэсийн дэлгэц дээр ямар апп товчлуур дарагдсан болохыг тодорхойлохын тулд ажилладаг бөгөөд дараа нь тухайн програмыг ажиллуулахын тулд эдгээр мэдээллийг ашигладаг.

lastTouch ба tThresh нь дэлгэцийг удаан дарахад олон удаа хүрэхгүй байхын тулд мэдрэгчтэй аргуудад ашиглагддаг. Энэ тухай дараа дэлгэрэнгүй.

Mode хувьсагч нь ямар дэлгэц гарч байгааг хянах бөгөөд tMode хувьсагч нь ямар ч үед ямар мэдрэгчтэй аргыг ашиглаж байгааг хянах болно.

Setup () блок дээр бид Serial.println () командыг дибаг хийх зорилгоор ашиглахыг хүсч байвал бид Цуваа сувгийг нээдэг. Хэрэв та Serial Monitor дибаг хийхийг хүсэхгүй байгаа бол танд энэ мөр шаардлагагүй болно.

Дараагийн дөрвөн мөр нь tft объектын тохиргооны код юм.

Дараа нь бид дэлгэцийн чиглэлийг хөрөг горимд тохируулна.

RandomSeed () тушаал нь зүгээр л санамсаргүй тоо үүсгэгчийг эхлүүлж, дараа нь Saucy 7 аппликейшнд ашиглах болно.

Эцэст нь бид цацах дэлгэцийн аргыг нэрлэдэг.

Алхам 5: Spash дэлгэц бүтээх, дэлгэцийн мэдрэгчтэй зураглалын эсрэг ойлголт

Нууц дэлгэц бүтээх, дэлгэцийн мэдрэгчтэй зураглалын эсрэг ойлголт
Нууц дэлгэц бүтээх, дэлгэцийн мэдрэгчтэй зураглалын эсрэг ойлголт
Нууц дэлгэц бүтээх, дэлгэцийн мэдрэгчтэй зураглалын эсрэг ойлголт
Нууц дэлгэц бүтээх, дэлгэцийн мэдрэгчтэй зураглалын эсрэг ойлголт

Одоо бид дэлгэцийн дэлгэцийг барьж эхлэх болно.

Гэхдээ эхлээд дэлгэц, мэдрэгчтэй зураглалыг үзэхийн тулд зургийг харна уу. Гарал үүсэл нь өөр өөр газар байдгийг анхаарна уу. Дэлгэцийн хувьд гарал үүсэл (0, 0) нь дэлгэцийн зүүн дээд буланд (RESET товч дээр байх үед) байх бөгөөд зүүнээс баруун тийш, дээрээс доошоо ургадаг.

Мэдрэгч илрүүлэхийн тулд гарал үүсэл нь дэлгэцийн зүүн доод буланд байх бөгөөд зүүнээс баруун тийш, доороос дээш дээш ургадаг.

Тиймээс ДЭЛГЭХ, ХАРИУЛАХ ГАЗРУУДЫГ ОНЦГОЙ тодорхойлж, өөр өөр нарийвчлалтай байна. Дэлгэц нь 240 -аас 320 -ийн нарийвчлалтай бөгөөд мэдрэгч нь илүү өндөр нарийвчлалтай болохыг та удахгүй харах болно.

Loop () {} аргын доорх ноорог зургийнхаа хэсэг рүү очвол бид splash () аргын кодыг оруулах болно.

Толгой код дээр тодорхойлсон ЦАГААН өнгөөр дэлгэцийг бөглөхийн тулд fillScreen () командыг эхлүүлнэ үү.

Дараа нь бид текстийн хэмжээг '5' болгож тохируулна. Энэ бол харьцангуй том үндсэн текстийн хэмжээ юм. Бид текст курсорын x ба y байрлалыг тохируулж, текстийн өнгийг тохируулна. Эцэст нь хэвлэх ("TFT") тушаал нь цэнхэр өнгийн '5' хэмжээтэй текстийг заасан байрлал дээр зурдаг.

Текстийн хэмжээг нэмэгдүүлэхийн хэрээр тэмдэгтүүд улам бүр жижиг болж байгааг харах болно. Тиймээс 5 -аас дээш гарах нь ашиггүй байж магадгүй юм. Энэхүү гарын авлагын төгсгөлд би bitmap фонт ашиглан апп -аа илүү сайхан харагдуулах текстийг харуулах болно. Bitmap фонтын багцыг ашиглах нь таны зургийн хэмжээг хязгаарлах Arduino санах ойд маш их зай эзэлдэг

Бид дэлгэц дээрх бусад хоёр текст зүйлд ижил төстэй тушаалуудыг давтана.

Эцэст нь бид програмыг үндсэн цэсийн дэлгэц рүү шилжихээс өмнө хэрэглэгчдэд дэлгэцийн агуулгыг унших боломжийг олгохын тулд 2.5 секундын турш хойшлуулна.

Үргэлжлүүлэн энэхүү ноорог зургийг Arduino дээрээ байршуулаарай. Энэ нь дэлгэцийг харуулах ёстой.

Алхам 6: Мэдрэгчтэй зураглалын оношлогооны хэрэгсэл хийх

Мэдрэгчтэй зураглалын оношлогооны хэрэгсэл хийх
Мэдрэгчтэй зураглалын оношлогооны хэрэгсэл хийх
Мэдрэгчтэй зураглалын оношлогооны хэрэгсэл хийх
Мэдрэгчтэй зураглалын оношлогооны хэрэгсэл хийх

ShowTouch () арга нь дэлгэцийн янз бүрийн хэсгүүдийн мэдрэгчтэй координатыг олж авахад туслахад маш хэрэгтэй юм. Та товчлууруудынхаа мэдрэгчтэй бүсийг тодорхойлохын тулд үүнийг хийх хэрэгтэй болно.

Үргэлжлүүлээд өмнө нь хийсэн splash () аргынхаа доор энэ аргыг оруулна уу.

Энэ нь хэрхэн ажилладагийг энд харуулав.

If мэдэгдэл нь сүүлд хүрснээс хойш хангалттай хугацаа өнгөрсөн эсэхийг тодорхойлдог. Энэ нь одоогийн системийн цаг миллис () -ийг авч, lastTouch цагийг хасдаг. Хэрэв энэ нь tThresh утгаас (200 миллисекунд) илүү байвал мэдрэгчийг хүлээн авна. Үгүй бол энэ нь санамсаргүй байдлаар олон удаа хүрэх үйл явдлыг үл тоомсорлох болно.

Дараа нь getpoint () тушаал нь хүрэлтийн x, y, z координатыг авдаг. Z координат нь мэдрэгчтэй даралтын хэмжүүр юм.

Хэрэв даралтын ноорог толгойд тодорхойлсон хамгийн их ба хамгийн бага тогтмол хэмжигдэхүүнтэй бол энэ арга нь эхлээд YP ба XM тээглүүрүүдийг OUTPUT болгон өөрчилж дэлгэцийг DISPLAY горимд оруулна.

Дараа нь өмнө нь харуулсан координатыг арилгахын тулд цагаан тэгш өнцөгт зурна.

Дараа нь ноорог нь фонтыг 2 хэмжээтэй, хар өнгөтэй болгож, x (p.x) ба y (p.y) координатыг дэлгэц дээр харуулна. Та дараа нь эдгээр байршлуудыг тэмдэглэж авах боломжтой бөгөөд энэ нь өөрийн ноорог хийх зориулалттай мэдрэгчтэй бүсээ програмчлахад тусална.

Аргын доод хэсэгт байгаа if мэдэгдэл нь дэлгэц дээрх 'Home' товчлуур дарагдсан эсэхийг шалгана. '<=' операторууд Нүүр товчлуурын өргөн ба өндрийг зөвшөөрдөг. Тодорхойлсон координатууд нь Нүүр товчлуурын x төв ба y төвийн координатууд юм. Хэрэв дарагдсан бол горимыг 0 гэж тохируулсан бөгөөд энэ нь эцэст нь 'Үндсэн цэсийн дэлгэц рүү очих' гэсэн утгатай болно. Энэ тухай дараа дэлгэрэнгүй.

Эцэст нь бид сүүлд хүрэх үйл явдалд бэлэн байхын тулд lastTouch -ийг одоогийн системийн цаг миллис () болгон шинэчилдэг.

Одоо loop () блок руу ороод showTouch () мөрийг нэмнэ үү;

Энэ үед ноорогоо байршуулаад үзээрэй. Энэ нь дэлгэцийн дэлгэцийг зурах бөгөөд хэрэв та дэлгэц дээр хүрч эхлэх юм бол TOUCH x ба y координатууд дэлгэц дээр гарч ирнэ.

Үргэлжлүүлэхийн өмнө кодын хоёр чухал мөрийг дахин үзье.

pinMode (YP, OUTPUT); // TFT хяналтын тээглүүрийг сэргээх

pinMode (XM, OUTPUT); // мэдрэгчийг илрүүлсний дараа харуулах зориулалттай

Дэлгэц дээр ямар нэгэн зүйл харуулахыг хүссэн үедээ дэлгэцийг TOUCH горимоос DISPLAY горимд оруулахын тулд эдгээр хоёр тушаалыг гүйцэтгэх ёстой. Үгүй бол таны дэлгэцийн команд ажиллахгүй болно.

Өнөөг хүртэл сайн байна! Завсарлага авах!

Алхам 7: Үндсэн цэсийн дэлгэцийг үүсгэнэ үү

Үндсэн цэсийн дэлгэцийг бүтээх
Үндсэн цэсийн дэлгэцийг бүтээх
Үндсэн цэсийн дэлгэцийг бүтээх
Үндсэн цэсийн дэлгэцийг бүтээх
Үндсэн цэсийн дэлгэцийг бүтээх
Үндсэн цэсийн дэлгэцийг бүтээх

Бид одоо програм бүрийн идэвхжүүлэхийн тулд дарж болох хоёр товчлуураар үндсэн цэсийн дэлгэцээ бүтээх болно. Энэ аргыг menuScreen () гэж нэрлэдэг.

Бид дэлгэцийг DISPLAY горимд оруулахаас эхэлдэг.

Дараа нь бид фонтын хэмжээ, өнгө, байрлалыг тохируулж 'Үндсэн цэс' текстийг хэвлэнэ.

Одоо бид товчлуурууд болох хоёр тэгш өнцөгт зурж байна.

Бүх график командууд ижил төстэй бүтэцтэй:

graphicShape (x координат, y координат, өргөн, өндөр, COLOR)

- x координат - зүүн дээд буланд тэгш өнцөгт объектууд, тойргийн төв

- y координат - тэгш өнцөгт объектын зүүн дээд талд, тойргийн төв

- width - объектын пикселийн өргөн

- COLOR - бидний толгой хэсэгт тодорхойлсон өнгөний тогтмол

Эцэст нь бид Saucy 7 дүрс болон QWERTY Текст Оруулах дүрсийг зурах хоёр аргыг дуудаж байна. Эдгээр нь тусдаа арга юм.

Draw7icon (0) арга нь бөмбөг зурахад y-офсет бүхий бүхэл тоон параметрийг авдаг. Бид үүнийг цэсийн дэлгэц дээр, Saucy 7 програмын дэлгэц дээр бөмбөг зурах ижил аргыг ашиглахын тулд хийдэг. Офсет нь бидэнд бөмбөгний у-координатыг дээш эсвэл доош програмаар тохируулах боломжийг олгодог.

Draw7Ball (0) аргыг draw7Icon (0) дотроос дууддаг. Энэ нь бөмбөгийг цэс эсвэл аппликейшн дээр зурах эсэхээс хамаарч босоо байрлалыг тохируулах боломжийг олгодог параметрийг шаарддаг.

FillCircle () тушаал нь 4 аргументыг авдаг.

- тойргийн төвийн x координат

- y тойргийн төвийн координат

- тойргийн радиус (пикселээр)

- COLOR - бидний толгой хэсэгт тодорхойлсон өнгөний тогтмол

Эцэст нь drawTextIcon () аргыг ашиглан Текст оруулах програмын дүрсийг зурна.

Та тохиргооны () хэсэгт splash () аргыг тайлбарлаж, menuScreen () ашиглан энэ аргыг ажиллуулахыг оролдож болно.

Ноорогоо Arduino дээрээ оруулаад туршаад үзээрэй!

Алхам 8: Saucy 7 програм ба үндсэн цэсийн аргууд

Saucy 7 програм ба үндсэн цэсийн аргууд
Saucy 7 програм ба үндсэн цэсийн аргууд
Saucy 7 програм ба үндсэн цэсийн аргууд
Saucy 7 програм ба үндсэн цэсийн аргууд
Saucy 7 програм ба үндсэн цэсийн аргууд
Saucy 7 програм ба үндсэн цэсийн аргууд
Saucy 7 програм ба үндсэн цэсийн аргууд
Saucy 7 програм ба үндсэн цэсийн аргууд

SevenScreen () арга нь бөмбөг зурж, дараа нь зааврыг харуулах зэрэг програмын дэлгэцийг зурах болно.

SevenInstr () арга нь өмнөх хариултуудаас дэлгэцийг цэвэрлэхээс гадна зааврыг харуулдаг. Мөн 'Response' товчлуурыг зурна.

Show7Response () арга нь өмнөх хариултын аргыг дэлгэцээс цэвэрлэх, "бодох …" хөдөлгөөнт мессежийг харуулах, дараа нь санамсаргүй байдлаар сонгосон хариу мессежийг харуулах зэрэг болно.

read7Touch () нь санамсаргүй байдлаар үүсгэсэн мессежийг гаргахын тулд мэдрэгчтэй үйл явдлыг хүлээж буй арга юм. Мэдрэгч код нь дээр дурдсан showTouch () оношлогооны аргынхтай маш төстэй юм. Энгийнээр хэлэхэд энэ арга нь дэлгэцийн аль ч хэсэгт хүрэхийг 'Хариулах' товчлуур дээр дарж хүлээн авах болно.

Аргын дээд хэсэгт бид мэдрэгчтэй үйл явдлаас үүсгэж болох мессеж болох хариултын мөрүүдийг тодорхойлдог.

Хэрэв Нүүр товч дарагдсан бол энэ нь програмыг зогсоож, үндсэн цэсийн дэлгэц рүү буцах болно. Үгүй бол энэ арга нь 0-7 хооронд санамсаргүй тоо үүсгэн (онцгой), харгалзах текст мессежийг массиваас show7Response () арга руу дамжуулна.

Эцэст нь, backToMenu () арга нь Home товчлуурыг дарж, хяналтыг үндсэн цэсийн дэлгэц рүү буцаана.

ReadMenuTouch () арга нь үндсэн цэсийн дэлгэц дээр байх үед мэдрэгчтэй үйл явдлыг ажигладаг. Мэдрэгч илрэх үед энэ нь x ба y координатуудыг getFunc (x, y) аргаар дамжуулдаг бөгөөд энэ нь хүрэлтийн x ба y координаттай таарч funcX ба funcY массивуудад харагддаг. Дараа нь сонгосон програмын func массивын дугаарыг буцаана. '1' бол Saucy 7, '2' нь текст оруулах програм юм. Дараа нь энэ горимыг тухайн апп -ийн утгад тохируулж өгдөг бөгөөд ингэснээр програмыг ажиллуулах болно.

Алхам 9: Loop () блок

Loop () блок
Loop () блок

Бид одоо тохирох дэлгэцийг харуулахын тулд loop () блок кодыг үүсгэж эхлэх бөгөөд одоо сонгосон сонголт дээр үндэслэн тохирох мэдрэгчтэй аргуудыг дуудах болно.

Loop () арга нь switch () гэсэн хоёр бүтцээс бүрдэнэ.

Шилжүүлэгчийн дээд бүтэц нь аль сонголтыг сонгохоос хамааран тохирох дэлгэцийг харуулдаг. Энэ нь мөн одоогийн сонгосон сонголтыг ажиллуулах тохиромжтой мэдрэгчтэй аргын tMode утгыг тохируулдаг. Эцэст нь энэ нь горимын утгыг 9 болгож дэлгэцийн дэлгэцийг эцэс төгсгөлгүй дахин зурахгүй байх болно.

Доод шилжүүлэгчийн бүтэц нь tMode-ийн утгыг харуулсан хэрэглэгчийн сонгосон програмын сонголт дээр үндэслэн ямар мэдрэгчтэй аргыг гүйцэтгэхийг хянадаг.

Ноорогоо Arduino дээрээ ачаалж, та Saucy 7 програмыг сонгож ашиглах боломжтой байх ёстой.

Та маш их ажил хийсэн! Завсарлага авах:-)

Алхам 10: Текст оруулах програм - Бид гэртээ сунаж байна

Текст оруулах апп - Бид гэрийн сунгалтанд байна!
Текст оруулах апп - Бид гэрийн сунгалтанд байна!
Текст оруулах апп - Бид гэрийн сунгалтанд байна!
Текст оруулах апп - Бид гэрийн сунгалтанд байна!
Текст оруулах апп - Бид гэрийн сунгалтанд байна!
Текст оруулах апп - Бид гэрийн сунгалтанд байна!
Текст оруулах апп - Бид гэрийн сунгалтанд байна!
Текст оруулах апп - Бид гэрийн сунгалтанд байна!

Бид одоо текст оруулах програмын аргуудыг нэгтгэх болно.

makeKbd () гарыг дэлгэцэн дээр зурдаг.

Энэ нь бөглөсөн бөөрөнхий зургаан тэгш өнцөгт зурж, дараа нь товчлуур дээр дэлгэц дээр хэвлэж буй cString мөрөөс үсэг авах замаар "түлхүүр" тус бүр дээр зохих үсгийг давхарлана. FillRoundedRect () командын хоёр дахь сүүлийн параметр нь булан бүрийн радиусыг пикселээр илэрхийлсэн болохыг анхаарна уу. Энэ утга өндөр байх тусам булан нь илүү бөөрөнхий болно.

ReadKbdTouch () арга нь бусад мэдрэгч илрүүлэх аргуудтай адил ажилладаг.

Хэрэв Home товчлуур дээр байхгүй мэдрэгч илэрсэн бол энэ нь x ба y координатыг curChar (x, y) аргаар дамжуулж дэлгэц дээрх тухайн x ба y байрлалд харгалзах тэмдэгтийг буцаана. 'Бичсэн' мессежийг 'displayMsg (theChar) аргыг ашиглан дэлгэц дээр харуулна.

CurChar (x, y) арга нь readKbdTouch () -ээс дамжуулсан x ба y координаттай ойролцоо тохирох зүйлийг олохын тулд letterX ба letterY массивуудыг хайж олох болно. Хэрэв энэ нь тохирохыг олж чадвал харгалзах үсгийг readKbdTouch арга руу буцаана. Бид theChar хувьсагчийг 32 болгож огторгуйн тэмдэгтийн ASCII код болгон эхлүүлсэн болохыг анхаарна уу. Хэрэв бид хэрэглэгч гарнаас хол газар хүрвэл энэ нь байхгүй тэмдэгтүүдийг харуулахгүйн тулд үүнийг хийдэг.

DisplayMsg (theChar) арга нь curChar (x, y) -ээс буцаагдсан тэмдэгтийг аваад түүнийг msg мөрөнд хавсаргана. Дараа нь зурвасыг дэлгэц дээр харуулна.

Эцэст нь бид текст оруулах програмын сонголтыг хүлээн авахын тулд loop () блокыг шинэчилнэ.

TftDemo ноорогоо Arduino дээрээ байршуулаарай, та дууссан програмыг ашиглах боломжтой болно.

Баяр хүргэе! Та TFT мэдрэгчтэй дэлгэцийн апп бүтээсэн байна! Үлдсэн өдрийг амраарай!

Алхам 11: Гөлгөр болно! - Adafruit Bitmap фонтыг өөрийн ноорог дээр ашиглах

Стандарт tft фонтын багц зүгээр байна. Гэхдээ бид TFT ноорог дээрээ зохих битүүмжийн фонтыг ашиглаж чадвал илүү дээр юм.

Сул тал нь фонтын багцыг Arduino санах ойд ачаалах нь ихээхэн зай эзэлдэг. Үнэндээ ноорогоо маш олон фонтоор бөглөх нь маш хялбар бөгөөд Arduino -д ачаалагдахгүй болно.

Фонтыг энэ төсөлд аль хэдийн суулгасан Adafruit_GFX номын сангийн хавтас дотор ашиглах боломжтой. Фонт ашиглах талаар маш сайн заавар энэ сайт дээр байна.

Ноорог зургийнхаа толгой хэсэгт ашиглахыг хүссэн фонтынхоо фонтын лавлагааг нэмнэ үү. Бид энэ жишээнд FreeSerifBoldItalic18p7b фонтыг ашиглах болно.

#оруулах

Таны splash () аргад tft.setTextSize () дээр тайлбар бичээрэй; тушаал.

Дараах тушаалыг нэмнэ үү.

tft.setFont (& FreeSerifBoldItalic18pt7b);

Одоо ямар ч print () командууд одоогоор заасан фонтыг ашиглах болно. Өөр фонт руу шилжихийн тулд та өөр tft.setFont () тушаалыг ашиглан дараагийн фонтыг ашиглах болно.

Фонтыг стандарт tft фонт руу буцааж тохируулахын тулд tft.setFont (); параметргүй тушаал.

Ноорог зургийг Arduino -д байршуулаарай, дараа нь дэлгэц нь текстийг дэлгэцэн дээр гаргахын тулд дэлгэцийн зургийн фонтыг ашиглаж байгааг харах болно. Та фонт оруулсны дараа ноорогны хэмжээ нэлээд том болсныг та анзаарах болно.

Алхам 12: Эцсийн бодол

График объектын өөр олон командууд танд байгаа. Үүнд:

tft.drawRect (x, y, өргөн, өндөр, COLOR);

tft.drawLine (x1, y1, x2, y2, COLOR);

Дараах жишээнүүд нь tft.color565 аргыг ашиглан улаан, ногоон, цэнхэр утгыг үндэслэн өнгө зааж өгөх боломжийг олгодог. Энэ бол манай ноорог дээр ашигласан HEX өнгөний тогтмол утгыг ашиглах өөр нэг арга юм.

tft.drawRoundRect (x, y, өргөн, өндөр, радиус, tft.color565 (255, 0, 0)); // энэ нь улаан байх болно

tft.drawCircle (x, y, радиус, tft.color565 (0, 255, 0)); // энэ нь ногоон байх болно

tft.drawTriangle (орой 1x, орой1y, орой2x, орой2y, оргил3х, орой33, tft.color565 (0, 0, 255)); // хөх

tft.fillTriangle (орой 1x, орой1y, орой2x, орой2y, орой3х, орой33, tft.color565 (255, 0, 0);

Эдгээр командуудаар тоглож, TFT төслүүддээ хэрхэн нэмэх талаар олж мэдээрэй.

TFT дэлгэц ашиглаж сурах нь маш хэцүү бөгөөд та эдгээр эхний алхмуудыг сурахад цаг гаргаснаараа бахархах ёстой.

TFT дэлгэц нь таны Arduino төслүүдэд сонирхолтой, ашигтай график хэрэглэгчийн интерфэйсийг нэмж болно.

Энэхүү гарын авлагыг ажиллуулж байгаад баярлалаа.

ОДОО ГАРААД ЯМАР ГАЙХАМШИГТАЙ БОЛГООЧ!

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