Talaan ng mga Nilalaman:

BluBerriSix - isang TFT TouchScreen / Arduino Tutorial: 12 Hakbang (na may Mga Larawan)
BluBerriSix - isang TFT TouchScreen / Arduino Tutorial: 12 Hakbang (na may Mga Larawan)

Video: BluBerriSix - isang TFT TouchScreen / Arduino Tutorial: 12 Hakbang (na may Mga Larawan)

Video: BluBerriSix - isang TFT TouchScreen / Arduino Tutorial: 12 Hakbang (na may Mga Larawan)
Video: bluBerriSIX - Arduino TFT Project - Happy 20th Birthday Blackberry 850! 2024, Hulyo
Anonim
BluBerriSix - isang TFT TouchScreen / Arduino Tutorial
BluBerriSix - isang TFT TouchScreen / Arduino Tutorial
BluBerriSix - isang TFT TouchScreen / Arduino Tutorial
BluBerriSix - isang TFT TouchScreen / Arduino Tutorial

Ang 2019 ay ang ika-20 anibersaryo ng RIM Blackberry 850! Ang maliit na imbensyong ito ng Canada ay binago ang paraan ng pakikipag-usap sa mundo. Matagal na itong nawala, ngunit ang pamana nito ay nagpapatuloy!

Sa itinuturo na ito, malalaman mo kung paano gamitin ang MCUfriend.com 2.4 TFT display na kalasag para sa Uno / Mega. Malalaman mo kung paano ipakita ang mga graphic na bagay at teksto at kung paano makatanggap ng mga pagpindot at kumilos sa mga kaganapan na hinawakan. Ito ang screen ay halos kapareho ng Adafruit at iba pang mga TFT Shield / screen. Kaya kung nandito ka, dumikit para sa palabas.

Buuin namin ang isang pinasimple na 2 bersyon ng app ng aking bluBerriSIX sketch.

Magsimula na tayo!

Hakbang 1: BluBerriSIX - Pangkalahatang-ideya

Image
Image
BluBerriSIX - Pangkalahatang-ideya
BluBerriSIX - Pangkalahatang-ideya
BluBerriSIX - Pangkalahatang-ideya
BluBerriSIX - Pangkalahatang-ideya

Ang bluBerriSIX app ay isang anim na pagpapaandar na proyekto ng TFT.

Kabilang dito ang:

Isang flashlight

Isang Saucy '7' app (tulad ng isang Magic '8' Ball)

Isang Calculator

Isang app ng Pagsukat sa Distansya gamit ang SR-04 ultrasonikong distansya sensor

Isang Temperatura at Humidity app na gumagawa din ng real-time na pag-log ng data hanggang sa 1.5km sa transceiver ng HC-12

Isang texting app gamit ang HC-12.

Ang proyektong ito ay tumagal ng 1100 mga linya ng code. Bumubuo kami ng isang mas simple na bersyon na nagpapakita pa rin ng pagpapakita ng TFT at pag-ugnay sa mga konsepto ng sensing.

Hakbang 2: Ano ang Kailangan?

Ano ang Kailangan?
Ano ang Kailangan?
Ano ang Kailangan?
Ano ang Kailangan?

- Isang Arduino Uno o Mega 2560

- Isang MCUfriend 2.4 TFT na kalasag

Ang mga sumusunod na aklatan:

- Adafruit_GFX library

- Adafruit Touchscreen library

- MCUFRIEND_kbv library

Ang mga aklatan na ito ay maaaring mai-install kasama ang Library Manager sa loob ng Arduino IDE.

Upang mag-load ng isang silid-aklatan, pumunta sa Sketch -> Isama ang Library -> Pamahalaan ang Mga Aklatan… pagpipilian sa menu.

Sa patlang na 'filter your search…', ipasok ang mga unang character ng pangalan ng libary at pagkatapos ay piliin at i-install ang naaangkop na library. Kapag tapos na, ibalik lamang ang iyong paraan sa screen na ito.

Kapag ang pag-mount ng kalasag ng TFT sa Uno / Mega, MAGING MAingat upang matiyak na ang paglinya mo ng tama ang mga pin. Na-misalign ko ang aking unang kalasag at pinirito ito. Gumugol ako ng dalawang linggo ng lumalaking pagkabigo na sinusubukan na makahanap ng tamang mga aklatan bago napagtanto na ang screen ay patay na. MAG-INGAT KA

Hakbang 3: Ang aming Proyekto

Ang aming proyekto
Ang aming proyekto
Ang aming proyekto
Ang aming proyekto
Ang aming proyekto
Ang aming proyekto
Ang aming proyekto
Ang aming proyekto

Buuin namin ang isang mas simpleng bersyon ng bluBerriSIX sketch.

Magkakaroon ito, - isang splash screen

- isang pangunahing menu ng menu na may dalawang mga pindutan

- isang Saucy 7 app

- isang pinasimple na text entry app

Maaari ka ring bumalik sa pangunahing menu sa pamamagitan ng pagpindot sa icon na 'Home' sa ibabang kaliwa ng partikular na display na ito. Kung wala kang tulad ng isang icon, kakailanganin mo lamang tukuyin ang isang 'tahanan' na rehiyon ng iyong screen. Malalaman mo kung paano matukoy ang mga rehiyon ng touch screen sa tutorial na ito.

Bagaman ito ay isang pinasimple na proyekto, medyo mahaba pa rin ito. Magbibigay ako ng mga bersyon ng mga sketch ng Arduino sa bawat pangunahing yugto upang ma-upload mo ang mga ito kung nais mo.

Hakbang 4: Header Code, Mga Global Variable, Pag-setup ng Screen

Header Code, Mga Global Variable, Pag-setup ng Screen
Header Code, Mga Global Variable, Pag-setup ng Screen
Header Code, Mga Global Variable, Pag-setup ng Screen
Header Code, Mga Global Variable, Pag-setup ng Screen

Ang buong proyekto ay lubos na naitala. Ngunit sumusunod ang mga detalye.

Magsimula ng isang sariwang proyekto ng Arduino at tawagan itong 'tft demo' o anumang iba pang pangalan na nais mo.

Ipinapakita sa amin ng unang code ng code sa itaas ang pagtukoy sa mga variable ng mundo. Nagdagdag din kami sa mga library na kakailanganin naming gamitin para sa parehong pagpapaandar ng display ng screen at ang pagtuklas ng touch ng screen.

Tinutukoy din namin ang Mga Analog Pins na may sanggunian sa kanilang mga partikular na layunin sa screen.

Tinutukoy namin ang tft object (display) at ang ts object (touch) bilang mga sanggunian para sa kani-kanilang mga pagpapaandar.

Tinutukoy namin ang ilang mga 16 bit na kulay na pare-pareho upang gawing madali upang mai-render ang mga kulay para sa screen at para sa mga object ng teksto at graphics. Mapapansin mo na mayroong isang URL sa isang website na mayroong isang Color Picker at converter upang i-convert ang mga nakikitang kulay sa kanilang 16 bit hexadecimal na mga halaga. Ito ay isang napaka-kapaki-pakinabang na tool.

Sa pangalawang code panel, tinutukoy namin ang mga variable ng mundo para sa aming mga layunin na tukoy sa app.

Ang mga string at arrays ng cString, letra at letterX at letterY ay ginagamit upang a) ipakita ang mga titik sa mga pindutan para sa text entry app at b) tumugma sa mga coordinate ng x at y ng isang ugnayan sa mga koordinasyong x at y ng bawat kani-kanilang liham sa ang keyboard. Dagdag pa tungkol dito pagdating namin sa seksyong iyon ng sketch.

Ang funcX , funcY at func ay ang mga arrays na gagana upang matukoy kung aling pindutan ng app ang na-press sa pangunahing menu ng menu at pagkatapos ay gamitin ang impormasyong iyon upang ilunsad ang kani-kanilang app.

Ginamit ang lastTouch at tThresh sa mga pamamaraan ng pag-ugnay upang matiyak na hindi kami nakakakuha ng maraming mga pagpindot mula sa pagpindot sa screen nang masyadong mahaba. Higit pa doon

Kinokontrol ng variable ng mode kung aling screen ang ipinapakita at ang variable na tMode ay makokontrol kung aling mga pamamaraan ng pagpindot ang ginagamit sa anumang naibigay na oras.

Sa block ng pag-setup (), binubuksan namin ang isang Serial channel kung nais naming gamitin ang mga command na Serial.println () para sa pag-debug. Hindi mo kailangan ang linyang ito kung hindi mo nais na gawin ang pag-debug ng Serial Monitor.

Ang susunod na apat na linya ay nagtatakda lamang ng code para sa tft object.

Susunod na itinakda namin ang orientation ng screen sa Portrait mode.

Sinisimulan lamang ng randomSeed () na utos ang generator ng random na numero para magamit sa paglaon ng Saucy 7 app.

Sa wakas tinawag namin ang paraan ng splash screen.

Hakbang 5: Pagbuo ng Spash Screen at Pag-unawa sa Display Versus Touch Mapping

Pagbuo ng Spash Screen at Pag-unawa sa Display Versus Touch Mapping
Pagbuo ng Spash Screen at Pag-unawa sa Display Versus Touch Mapping
Pagbuo ng Spash Screen at Pag-unawa sa Display Versus Touch Mapping
Pagbuo ng Spash Screen at Pag-unawa sa Display Versus Touch Mapping

Magsisimula na kaming magtayo ng spash screen.

Ngunit una, mangyaring tingnan ang larawan para sa screen at pindutin ang pagmamapa. Pansinin na ang mga pinagmulan ay nasa iba't ibang mga lokasyon. Para sa pagpapakita, ang pinagmulan (0, 0) ay nasa kanang tuktok ng screen (kapag ang pindutang RESET ay nasa itaas) at lumalaki mula kaliwa hanggang kanan at mula sa itaas hanggang sa ibaba.

Para sa pagtuklas ng ugnay, ang pinagmulan ay nasa ibabang kaliwang sulok ng screen at lumalaki mula kaliwa hanggang kanan at ibaba hanggang sa itaas.

Kaya ang DISPLAY AT TOUCH MAPS AY TINATukoy nang magkahiwalay at may iba't ibang mga resolusyon. Ang display ay may resolusyon na 240 ng 320 at ang touch ay may isang mas mataas na resolusyon sa lalong madaling panahon na makikita mo.

Pumunta sa isang lugar ng iyong sketch sa ibaba ng loop () {} na paraan at ipasok namin ang splash () na code ng pamamaraan.

Nagsisimula kami sa pamamagitan ng paggawa ng isang command ng fillScreen () upang punan ang screen ng kulay na Puti na tinukoy namin sa header code.

Pagkatapos ay itinakda namin ang laki ng teksto sa '5'. Ito ay isang medyo malaking sukat ng pangunahing teksto. Itinakda namin ang posisyon ng x at y para sa text cursor at itinakda namin ang kulay ng teksto. Sa wakas ang print ("TFT") na utos ay talagang kumukuha ng asul, laki ng '5' na teksto sa tinukoy na posisyon.

Sa pagdaragdag mo ng laki ng teksto, makikita mo na ang mga character ay nagiging mas chunky. Kaya't ang pagpunta sa itaas ng 5 ay marahil ay hindi kapaki-pakinabang. Sa pagtatapos ng tutorial na ito, ipapakita ko sa iyo kung paano gamitin ang mga font ng bitmap upang makakuha ng mas mahusay na hitsura ng teksto sa iyong mga app. Ang kalakal ay ang paggamit ng mga hanay ng font ng bitmap na tumatagal ng maraming memorya sa iyong Arduino na maglilimita sa iyong mga laki ng sketch

Inuulit namin ang mga katulad na utos para sa iba pang dalawang mga item sa teksto sa splash screen.

Sa wakas ay naantala namin ng 2.5 segundo upang bigyan ang gumagamit ng isang pagkakataon na basahin ang mga nilalaman ng screen bago lumipat ang app sa pangunahing screen ng menu.

Sige at i-upload ang sketch na ito sa iyong Arduino. Dapat itong ipakita ang splash screen.

Hakbang 6: Paggawa ng isang Touch Mapping Diagnostic Tool

Paggawa ng isang Touch Mapping Diagnostic Tool
Paggawa ng isang Touch Mapping Diagnostic Tool
Paggawa ng isang Touch Mapping Diagnostic Tool
Paggawa ng isang Touch Mapping Diagnostic Tool

Ang pamamaraan ng showTouch () ay lubhang kapaki-pakinabang upang matulungan kang makuha ang mga ugnayan sa ugnay ng iba't ibang bahagi ng screen. Kakailanganin mong gawin ito para sa pagtukoy sa mga rehiyon ng ugnayan para sa iyong mga pindutan.

Sige at ipasok ang pamamaraang ito sa ibaba ng iyong splash () na paraan na nagawa dati.

Narito kung paano ito gumagana.

Tinutukoy ng pahayag kung kung ang isang sapat na oras ay lumipas mula noong huling pag-ugnay. Kinakailangan ang kasalukuyang system time millis () at binabawas ang huling oras ngTouch. Kung mas malaki ito sa halagang tThresh (200 milliseconds), tinatanggap nito ang pagpindot. Kung hindi man, ibabalewala nito ang mga hindi sinasadyang kaganapan na multi-touch.

Susunod, nakukuha ng utos ng getpoint () ang koordinasyong x, y at z ng pagpindot. Ang koordinasyon ng z ay isang sukatan ng presyon ng pagpindot.

Kung ang presyon ay nasa loob ng max at min na mga pare-pareho na tinukoy namin sa header ng sketch, ibabago muna ng pamamaraan ang mga YP at XM pin pabalik sa OUTPUT, ilagay ang screen sa DISPLAY mode.

Susunod ay iguguhit nito ang isang puting rektanggulo upang burahin ang anumang mga coordinate na maaaring naipakita dati.

Itinakda ng sketch ang font sa laki 2, itim na kulay at ipinapakita ang x (p.x) at y (p.y) na mga coordinate sa screen. Maaari ka ring gumawa ng isang tala ng mga lokasyong ito upang matulungan kang i-program ang iyong mga touch zone para sa iyong sariling mga sketch.

Ang pahayag kung sa ilalim ng pamamaraan suriin upang makita kung ang pindutang 'Home' sa screen ay pinindot. pinapayagan ng mga operator ng '<=' ang lapad at taas ng pindutan ng Home. Ang tinukoy na mga coordinate ay ang x-center at y-center na mga coordinate ng pindutan ng Home. Kung pinindot ito, ang mode ay nakatakda sa 0 na sa kalaunan ay mangangahulugang 'Pumunta sa Main Menu Screen'. Higit pa doon

Sa wakas ay na-update namin ang lastTouch sa kasalukuyang system time millis () upang maghanda para sa isang kaganapan sa pag-touch sa ibang pagkakataon.

Mangyaring pumunta ngayon sa loop () block at idagdag ang linya na showTouch ();

Sa puntong ito, i-upload ang iyong sketch at subukan ito. Iguhit nito ang splash screen at kung sinimulan mong hawakan ang screen, ang TOUCH x at y coordinate ay ipapakita sa screen.

Bago magpatuloy, muling bisitahin natin ang dalawang mahahalagang linya ng code:

pinMode (YP, OUTPUT); // ibalik ang mga control TFT control

pinMode (XM, OUTPUT); // para sa pagpapakita pagkatapos makita ang isang ugnayan

Anumang oras na nais mong ipakita ang isang bagay sa screen, DAPAT mong isagawa ang dalawang utos na ito upang palitan ang screen mula sa TOUCH mode patungong DISPLAY mode. Kung hindi man, hindi gagana ang iyong mga display order.

Magaling sa ngayon! Magpahinga!

Hakbang 7: Buuin ang Pangunahing Menu ng Menu

Buuin ang Pangunahing Menu ng Menu
Buuin ang Pangunahing Menu ng Menu
Buuin ang Pangunahing Menu ng Menu
Buuin ang Pangunahing Menu ng Menu
Buuin ang Pangunahing Menu ng Menu
Buuin ang Pangunahing Menu ng Menu

Buuin namin ngayon ang aming screen ng Pangunahing Menu na may dalawang mga pindutan na maaari mong pindutin upang maisaaktibo ang bawat app. Ang pamamaraan ay tinatawag na menuScreen ().

Nagsisimula kami sa pamamagitan ng paglalagay ng screen sa DISPLAY mode.

Pagkatapos ay itinakda namin ang laki ng font, kulay at posisyon at i-print ang teksto na 'Pangunahing Menu'.

Gumuhit kami ngayon ng dalawang mga parihaba na ang mga pindutan.

Ang lahat ng mga utos ng graphics ay may katulad na istraktura:

graphicShape (x coordinate, y coordinate, lapad, taas, COLOR)

- x coordinate - kaliwang tuktok para sa mga hugis-parihaba na bagay, gitna para sa mga bilog

- y coordinate - kaliwang tuktok para sa mga hugis-parihaba na bagay, gitna para sa mga bilog

- lapad - lapad ng object sa mga pixel

- Kulay - isang pare-pareho ang kulay na tinukoy namin sa header

Sa wakas tumatawag kami ng dalawang pamamaraan upang iguhit ang icon ng Saucy 7 at ang icon na QWERTY Text Entry. Iyon ay magkakahiwalay na pamamaraan.

Ang draw7icon (0) na pamamaraan ay tumatagal ng isang integer parameter na kung saan ay ang y-offset para sa pagguhit ng bola. Ginagawa namin ito upang magamit namin ang parehong pamamaraan para sa pagguhit ng bola sa menu ng menu AT sa screen ng app ng Saucy 7. Pinapayagan lamang kami ng offset na programatically ayusin ang y-coordinate ng bola pataas o pababa.

Ang pamamaraan ng draw7Ball (0) ay tinawag mula sa loob ng draw7Icon (0). Tumatagal din ito ng isang parameter na nagbibigay-daan sa amin upang ayusin ang patayong posisyon ng bola depende sa kung iguhit namin ito sa menu ng menu o sa screen ng app.

Ang command ng fillCircle () ay tumatagal ng 4 na argumento.

- x coordinate ng gitna ng bilog

- Ko coordinate ng gitna ng bilog

- radius ng bilog (sa mga pixel)

- Kulay - isang pare-pareho ang kulay na tinukoy namin sa header

Sa wakas ang pamamaraan ng drawTextIcon () ay tinawag upang iguhit ang icon para sa Text Entry app.

Maaari mong subukang patakbuhin ang pamamaraan sa pamamagitan ng pagbibigay ng puna sa splash () na paraan sa pag-setup () at pagdaragdag ng menuScreen ().

I-upload ang sketch sa iyong Arduino at subukan ito!

Hakbang 8: Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu

Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu
Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu
Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu
Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu
Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu
Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu
Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu
Ang Saucy 7 App at ang Pangunahing Mga Paraan ng Menu

Ang pamamaraan ng sevenScreen () ay iguhit ang screen para sa app, kabilang ang pagguhit ng bola at pagkatapos ay ipakita ang mga tagubilin.

Ipinapakita ng pamamaraang pitongInstr () ang mga tagubilin pati na rin ang pag-clear ng screen mula sa mga nakaraang tugon. Ginaguhit din nito ang pindutan na 'Tugon'.

Humahawak ang pamamaraang show7Response () sa pag-clear ng nakaraang pamamaraan ng pagtugon mula sa screen, na nagpapakita ng isang animated na 'pag-iisip …' na mensahe at pagkatapos ay ipinapakita ang piniling random na mensahe ng tugon.

Ang read7Touch () ay ang pamamaraan na naghihintay para sa isang kaganapan sa pagpindot upang makagawa ng mensahe na random na nabuo. Ang touch code ay halos kapareho sa showTouch () diagnostic na pamamaraan na inilarawan nang mas maaga. Para sa pagiging simple, ang pamamaraan ay tatanggap ng isang ugnayan kahit saan sa screen bilang pindutin ang 'Tumugon' na pindutan.

Sa tuktok ng pamamaraan, tinutukoy namin ang isang tugon na hanay ng mga string na mga mensahe na maaaring mabuo mula sa isang kaganapan sa ugnayan.

Kung ang pindutan ng Home ay pinindot, tatapusin nito ang app at bumalik sa pangunahing menu ng menu. Kung hindi man, ang pamamaraan ay bubuo ng isang random na numero sa pagitan ng 0 at 7 (eksklusibo) at ipasa ang kaukulang text message mula sa tugon na array sa show7Response () na pamamaraan.

Sa wakas, ang backToMenu () na pamamaraan ay nanonood para sa isang pagpindot sa pindutan ng Home at ibabalik ang kontrol sa pangunahing screen ng menu.

Ang pamamaraang readMenuTouch () ay nanonood para sa isang kaganapan sa ugnayan kapag nasa pangunahing screen ng menu ka. Kapag may napansin na touch, ipinapasa nito ang x at y na mga coordinate sa getFunc (x, y) na pamamaraan na tumitingin sa funcX at funcY na arrays upang tumugma sa mga coordinate ng x at y ng pagpindot. Ibinabalik nito ang numero mula sa func na array para sa app na napili. Ang '1' ay ang Saucy 7 at ang '2' ay ang text entry app. Itinatakda nito ang mode sa halaga ng app na iyon upang ang app ay maipatupad.

Hakbang 9: Ang Loop () Block

Ang Loop () Block
Ang Loop () Block

Magsisimula na kaming magtayo ng loop () block code upang hawakan ang pagpapakita ng naaangkop na screen at pagkatapos ay pagtawag sa mga naaangkop na pamamaraan ng pagpindot batay sa pagpipilian na kasalukuyang napili.

Ang pamamaraang loop () ay binubuo ng dalawang istraktura ng switch ().

Hinahawakan ng tuktok na istraktura ng switch ang pagpapakita ng naaangkop na screen depende sa aling pagpipilian ang napili. Itinatakda rin nito ang halaga ng tMode para sa naaangkop na pamamaraan ng pagpindot upang tumakbo para sa kasalukuyang napiling pagpipilian. Sa wakas itinatakda nito ang halaga ng mode sa 9 upang ang display screen ay hindi magtapos na muling mag-redraw.

Kinokontrol ng istraktura ng switch sa ibaba kung aling mga pamamaraan ng pagpindot ang naisasagawa batay sa pagpipilian ng app na pinili ng gumagamit na kinakatawan ng halaga ng tMode.

I-load ang sketch sa iyong Arduino at dapat mong piliin at gamitin ang Saucy 7 app.

Nagawa mo ng maraming trabaho! Magpahinga:-)

Hakbang 10: Ang Text Entry App - Nasa Home Stretch kami

Ang Text Entry App - Nasa Home Stretch kami!
Ang Text Entry App - Nasa Home Stretch kami!
Ang Text Entry App - Nasa Home Stretch kami!
Ang Text Entry App - Nasa Home Stretch kami!
Ang Text Entry App - Nasa Home Stretch kami!
Ang Text Entry App - Nasa Home Stretch kami!
Ang Text Entry App - Nasa Home Stretch kami!
Ang Text Entry App - Nasa Home Stretch kami!

Isasama na namin ngayon ang mga pamamaraan ng pagpasok ng teksto ng app.

Ginagawa ng makeKbd () ang keyboard sa screen.

Gumuhit ito ng anim na puno ng bilugan na mga parihaba at pagkatapos ay i-overlay ang naaangkop na titik sa bawat 'key' sa pamamagitan ng pagkuha ng liham mula sa cString string kung saan ito naka-print sa screen sa ibabaw ng susi. Pansinin na ang pangalawang huling parameter sa isang utos ng fillRoundRect () ay ang radius ng bawat sulok sa mga pixel. Ang mas mataas na halagang ito, mas bilugan ang mga sulok.

Gumagana ang pamamaraang readKbdTouch () na katulad sa iba pang mga pamamaraan ng pagtuklas ng ugnayan.

Kung ang isang ugnay ay napansin na WALA sa pindutan ng Home, ipinapasa nito ang x at y na mga coordinate sa curChar (x, y) na paraan na nagbabalik ng character na tumutugma sa lokasyon ng x at y sa screen. Ang mensahe na 'nai-type' ay ipinapakita sa screen gamit ang pamamaraang 'displayMsg (theChar).

Ang curChar (x, y) na pamamaraan ay naghahanap sa pamamagitan ng mga letrang X at letterY upang subukang makahanap ng isang tugma na malapit sa x at y mga koordinasyong ipinasa mula sa readKbdTouch (). Kung nakakita ito ng isang tugma, ibabalik nito ang kaukulang titik sa pamamaraang readKbdTouch. Pansinin na pinasimulan namin ang variable na theChar sa 32 na kung saan ay ang ASCII code para sa isang character sa espasyo, . Ginagawa namin ito upang kung mahipo ng gumagamit ang isang lugar na malayo sa keyboard, hindi ito magpapakita ng mga hindi magagamit na character.

Ang pamamaraan ng displayMsg (theChar) ay tumatagal ng character na bumalik mula sa curChar (x, y) at idinagdag ito sa string ng msg. Ipinapakita nito ang mensahe sa screen.

Panghuli, ia-update namin ang loop () na block upang tanggapin ang pagpipilian ng text entry app.

I-upload ang tftDemo sketch sa iyong Arduino at dapat mong magamit ang nakumpletong app.

Binabati kita! nakabuo ka ng isang TFT touchscreen app! Magpahinga ng natitirang araw!

Hakbang 11: Gettin 'Slick! - Paggamit ng Mga Adafruit Bitmap Font sa Iyong Sketch

Ang karaniwang hanay ng tft font ay okay. Ngunit mas maganda kung makakagamit kami ng wastong mga naka-bit na font sa aming mga TFT sketch.

Ang downside ay ang paglo-load ng mga font na itinakda sa memorya ng Arduino na tumatagal ng makabuluhang puwang. Sa katunayan, napakadali punan ang iyong sketch ng maraming mga font na hindi ito mai-load sa Arduino.

Magagamit ang mga font sa loob ng folder ng library ng Adafruit_GFX na na-install mo na para sa proyektong ito. Ang isang mahusay na tutorial sa paggamit ng mga font ay nasa site na ito.

Sa lugar ng Header ng iyong sketch, idagdag ang sanggunian ng font para sa font na nais mong gamitin. Gagamitin namin ang font ng FreeSerifBoldItalic18p7b para sa halimbawang ito.

# isama

Sa iyong splash () na paraan, magbigay ng puna sa tft.setTextSize (); utos

Idagdag ang sumusunod na utos,

tft.setFont (& FreeSerifBoldItalic18pt7b);

Ngayon ang anumang mga print () na utos ay gagamit ng kasalukuyang tinukoy na font. Upang baguhin sa ibang font, gagamit ka ng isa pang tft.setFont () na utos gamit ang susunod na font na nais mong gamitin.

Upang maitakda ang font pabalik sa karaniwang font ng tft, gumamit lamang ng isang tft.setFont (); utos na walang parameter.

I-upload ang sketch sa iyong Arduino at dapat mong makita ang splash screen na gumagamit na ngayon ng bitmap font para sa pag-render ng teksto sa screen. Mapapansin mo na ang laki ng sketch ay mas malaki nang malaki ngayon na nagsama ka ng isang font.

Hakbang 12: Pangwakas na Mga Saloobin

Maraming iba pang mga graphic object utos na magagamit sa iyo. Nagsasama sila:

tft.drawRect (x, y, lapad, taas, Kulay);

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

Ang mga sumusunod na halimbawa ay gumagamit ng pamamaraan ng tft.color565 upang hayaan kang tukuyin ang kulay batay sa pula, berde at asul na mga halaga. Ito ay isang kahaliling paraan upang magamit ang pare-pareho na tinukoy na mga halaga ng kulay ng HEX na ginamit namin sa aming sketch.

tft.drawRoundRect (x, y, lapad, taas, radius, tft.color565 (255, 0, 0)); // magiging pula ito

tft.drawCircle (x, y, radius, tft.color565 (0, 255, 0)); // magiging berde ito

tft.drawTriangle (vertex1x, vertex1y, vertex2x, vertex2y, vertex3x, vertex3y, tft.color565 (0, 0, 255)); // bughaw

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

Maglaro sa mga utos na ito at tuklasin kung paano sila maaaring idagdag sa iyong mga proyekto sa TFT.

Ang pag-aaral na gumamit ng isang TFT screen ay mapaghamong at dapat mong ipagmalaki ang iyong sarili para sa paglalaan ng oras upang malaman ang mga unang hakbang na ito.

Ang mga TFT screen ay maaaring magdagdag ng isang kaakit-akit at kapaki-pakinabang na aspeto ng Graphical User Interface sa iyong mga proyekto sa Arduino.

Salamat sa pagtatrabaho sa tutorial na ito.

NGAYON LUMABAS KA AT GUMAGAWA NG MAHINDI!

Inirerekumendang: