0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeGrafični LCD prikazovalnik s folijo občutljivo na dotik - kalibracija

    Grafični LCD prikazovalnik s folijo občutljivo na dotik – kalibracija

    Kr­mi­lje­nje gra­fič­ne­ga LCD-ja s fo­li­jo ob­čut­lji­vo na do­tik (to­uch scre­en) je ve­dno za­ni­mi­va te­ma­ti­ka na se­mi­nar­jih. Na 3. Ba­scom se­mi­nar­ju smo pri­ka­za­li mož­nost upo­ra­be ka­li­bra­ci­je to­uch pa­ne­la v 16 ali v 4 toč­kah.

    Uvod

    Gra­fič­ni pri­ka­zo­val­ni­ki se v Slo­ve­ni­ji le­po upo­rab­lja­jo rav­no za­ra­di eno­stav­no­sti upo­ra­be s po­mo­čjo Ba­scom-AVR pro­gram­ske­ga je­zi­ka. De­mo ver­zi­ja Ba­scom-AVR pro­gra­ma omo­go­ča, da upo­ra­bnik pri­ka­že eno sli­či­co na za­slo­nu, za pri­kaz več sli­čic pa je že po­tre­bno ku­pi­ti li­cen­čno ver­zi­jo. Gle­de na zmo­glji­vo­sti, ki jih li­cen­čna ver­zi­ja po­nu­ja, to ni­ti ni ta­ko dra­ga »in­ve­sti­ci­ja«. Z na­ku­pom li­cen­čne ver­zi­je tu­di pod­pi­ra­mo av­tor­ja Ba­sco­ma, da bo še na­prej skr­bel za pod­po­ro te­ga iz­re­dno prak­tič­ne­ga oro­dja.

    Za pri­kaz sli­ke (v eni ali več bar­vah, od­vi­sno od upo­rab­lje­ne­ga pri­ka­zo­val­ni­ka) na gra­fič­nem LCD-ju mo­ra­mo naj­prej sli­či­co na­ri­sa­ti, ali pa jo us­trez­no po­ma­njša­ti na ve­li­kost na­še­ga pri­ka­zo­val­ni­ka. Če upo­rab­lja­mo 128×64 ve­lik pri­ka­zo­val­nik, po­tem je po­tre­bno sli­ko te­mu pri­mer­no gra­fič­no pri­pra­vi­ti v us­trez­nih pro­gra­mih, kot so Sli­kar, Co­rel in dru­gi.

    Ka­li­bra­ci­ja

    Ka­li­bra­ci­ja v obeh pri­me­rih (4 ali 16 točk) po­te­ka ta­ko, da na do­lo­če­nih me­stih gra­fič­ne­ga LCD-ja pri­ka­že­mo tip­ko, na ka­te­ro je po­tre­bno pri­ti­sni­ti. S pri­ti­skom na pri­ka­za­no po­vr­ši­no shra­ni­mo izmer­je­no vre­dnost v EE­PROM za ka­snej­šo upo­ra­bo. Pred­vsem to pri­de prav ta­krat, ko ne že­li­mo ob vsa­ko­krat­nem vklo­pu pri­ka­zo­val­ni­ka ali na­še na­pra­ve po­nav­lja­ti ka­li­bra­ci­je.

    V ko­li­kor bi to ven­dar­le že­le­li (npr. da že­li­mo ka­li­bri­ra­ti pri­tisk s pr­stom na­me­sto s pla­stič­no pa­li­či­co), po­tem po re­set-u pri­ti­sne­mo tip­ko PD.0 in jo dr­ži­mo to­li­ko ča­sa, do­kler se na pri­ka­zo­val­ni­ku ne po­ja­vi iz­pis: Ka­li­bra­ci­ja.

    Ka­li­bra­ci­ja v 16 toč­kah

    Kot po­ve na­slov, ka­li­bra­ci­ja po­te­ka v 16 toč­kah. Na gra­fič­ni LCD za­slon ri­še­mo se­ri­jo slik, ki pred­stav­lja­jo na­še tip­ke, kot na pri­mer glej sliko 1 in ta­ko na­prej do zad­njih »tipk« slika 2. V ko­li­kor smo tip­ko pri­ti­sni­li do­bro, se bo pri­ka­zal iz­pis, glej sliko 3, v ko­li­kor pa ni­smo pri­ti­sni­li tip­ke ali pa smo jo pri­ti­sni­li sla­bo, se bo iz­pi­sa­lo ob­ve­sti­lo slika 4 in pri­ka­za­la se bo sli­ka tip­ke, ka­te­re ni­smo pri­ti­sni­li. Ko smo pri­ti­sni­li vseh 16 tipk se po­ja­vi pra­zen za­slon, pro­gram ča­ka na pri­tisk tip­ke.

    Opis pro­gra­ma

    Na za­čet­ku pro­gra­ma iz­ve­de­mo ini­ci­a­li­za­ci­jo gra­fič­ne­ga pri­ka­zo­val­ni­ka, kon­fi­gu­ri­ra­mo ADC pre­tvor­nik (ki ga po­tre­bu­je­mo pri pre­tvor­bi ana­log­nih sig­na­lov to­uch fo­li­je), de­fi­ni­ra­mo spre­men­ljiv­ke in fun­kci­jo. Spre­men­ljiv­ki Tipkax(17) in Tipkay(17) de­fi­ni­ra­mo kot ERAM, do­lo­či­mo, ali že­li­mo ka­li­bra­ci­jo in sko­či­mo v glav­no Do-Lo­op zan­ko.

    Opis fun­kci­je

    De­lo­va­nje fun­kci­je, ki ugo­to­vi, če je ne­ka tip­ka pri­tis­nje­na, lah­ko raz­lo­ži­mo z sliko 5. Za vsa­ko tip­ko (na pri­mer Tip­ko 27), ki jo bo­mo pri­ka­za­li na gra­fič­nem pri­ka­zo­val­ni­ku, si v ta­be­lo shra­ni­mo le x in y

    po­lo­žaj sre­di­ščne toč­ke (Toc­ka_X (27), Toc­ka_Y (27)), ki le­ži na pre­se­či­šču di­a­go­nal zno­traj te tip­ke. X po­lo­ža­ju toč­ke priš­te­je­mo ne­ko vre­dnost (na pri­mer 35), ki pred­stav­lja to­le­ran­co na ko­or­di­na­tah X, ki smo jo še pri­prav­lje­ni spre­je­ti. Do­bi­mo naj­ve­čjo vre­dnost X, ki nam še po­me­ni pri­tisk te tip­ke. Po­tem od X po­lo­ža­ja sre­di­ščne toč­ke od­šte­je­mo ve­li­kost to­le­ran­ce, s či­mer do­bi­mo naj­ma­njšo vre­dnost X, ki nam lah­ko še po­me­ni pri­tisk na to tip­ko. Ena­ko na­re­di­mo z Y ko­or­di­na­to sre­di­ščne toč­ke te tip­ke in do­bi­mo naj­ve­čjo in naj­ma­njšo vre­dnost Y, ki smo ju še pri­prav­lje­ni spre­je­ti kot pri­tisk na tip­ko, ki jo tre­nut­no pre­ver­ja­mo . Fun­kci­ja nam pre­ve­ri, če se ko­or­di­na­te tre­nut­ne­ga do­ti­ka uje­ma­jo s ko­or­di­na­ta­mi ka­te­re od mno­ži­ce točk, ki se na­ha­ja­jo zno­traj mo­dre­ga šra­fi­ra­ne­ga po­dro­čja (glej sli­ko!). Če se uje­ma­jo, je ta tip­ka prav­kar pri­tis­nje­na in fun­kci­ja vr­ne kot re­zul­tat vre­dnost 1, v nas­prot­nem pri­me­ru vr­ne vre­dnost 0. Gle­de na vre­dnost, ki jo je vr­ni­la fun­kci­ja, se odlo­ča­mo za raz­lič­ne sklo­pe ak­cij, ki so pred­vi­de­ne ob pri­ti­sku na po­sa­mez­no tip­ko.

    Fun­kci­jo po­kli­če­mo ta­ko, da nje­no vre­dnost pri­re­di­mo ne­ki spre­men­ljiv­ki ti­pa Byte, ker tu­di fun­kci­ja vra­ča re­zul­tat ti­pa Byte. Ob kli­cu fun­kci­je v okle­pa­ju na­ve­de­mo šte­vil­ko tip­ke, za ka­te­ro že­li­mo pre­ve­ri­ti, če je bi­la mor­da pri­tis­nje­na. Ta šte­vil­ka je po­mem­bna pri in­dek­si­ra­nju spo­min­skih lo­ka­cij, kjer ima­mo shra­nje­ne ko­or­di­na­te X in Y sre­di­ščnih točk za vse tip­ke. S po­mo­čjo te fun­kci­je lah­ko ugo­tav­lja­mo, če je pri­tis­nje­na ka­te­ra od vseh na­ših tipk v kak­šni For-Next zan­ki, brez ve­li­ke po­ra­be dra­go­ce­ne­ga po­dat­kov­ne­ga pro­sto­ra, glej sliko 6.

    Opis su­bru­tin

    Su­bru­ti­na »Ka­li­bra­ci­ja« pre­be­re vre­dno­sti iz to­uch fo­li­je in jih shra­nju­je v po­zi­ci­je spre­men­ljivk za X in Y od 1 do 16. Ob za­čet­ku ka­li­bra­ci­je se na za­slo­nu iz­ri­še pr­va tip­ka in pro­gram pri­ča­ku­je pri­tisk na to tip­ko. Ta­ko za vsa­ko od 16 tipk shra­ni­mo vre­dno­sti, ki jih do­bi­mo ob vsa­kem pri­ti­sku na to­uch fo­li­jo.

    Su­bru­ti­na »Re­ad­to­uch« be­re vre­dno­sti iz to­uch fo­li­je. Vre­dnost pre­be­re v For-next zan­ki za­to, da do­bi­mo ne­ko po­preč­no vre­dnost in da se zne­bi­mo ne­ve­ljav­nih vre­dno­sti.

    Su­bru­ti­na »Prit_tip­ke« pri­ka­že us­trez­no sli­ko na gra­fič­nem za­slo­nu gle­de na shra­nje­no vre­dnost. Su­bru­ti­na de­lu­je ta­ko: ob pri­ti­sku pro­gram zaz­na ne­ko vre­dnost, ki jo pri­mer­ja s 16 shra­nje­ni­mi vre­dnos­tmi. Ker ima­jo vre­dno­sti svo­jo +/-od­sto­pa­nje, ki ga de­fi­ni­ra­mo v fun­kci­ji, lah­ko ze­lo do­bro po­kri­je­mo ce­lot­no po­dro­čje to­uch fo­li­je.

    Pro­gram ka­li­bri­ra to­uch fo­li­jo in gra­fič­ni pri­ka­zo­val­nik na 16 me­stih. S prak­tič­no upo­ra­bo se je iz­ka­za­lo, da je tak­šna ka­li­bra­ci­ja ča­sov­no po­trat­na, ven­dar pa za­ra­di shra­nje­nih vre­dno­sti ka­li­bra­ci­je v EE­PROM se ob na­sled­njih vklo­pih to iz­ka­že kot pre­dnost, saj je de­lo­va­nje te ru­ti­ne ze­lo hi­tro. Po­nov­ne ka­li­bra­ci­je ni po­tre­bno oprav­lja­ti v ko­li­kor ne za­me­nja­mo »me­di­ja« pri­ti­ska, ki je lah­ko člo­ve­ški prst ali pla­stič­na pa­li­či­ca (ne sme bi­ti oster pred­met, ki bi po­ško­do­val to­uch fo­li­jo!!).

    Ka­li­bra­ci­ja v 4 toč­kah

    Dru­gi mož­ni na­čin je ka­li­bra­ci­ja v 4 toč­kah. Po­do­bno kot pred­ho­dnem pri­me­ru na gra­fič­nem pri­ka­zo­val­ni­ku pri­ka­zu­je­mo tip­ke. To­krat pri­ka­že­mo sa­mo 4 tip­ke v vo­gal­nih po­zi­ci­jah na sliki 7. Vse osta­le po­zi­ci­je pro­gram iz­ra­ču­na iz vre­dno­sti, ki smo jih pri­do­bi­li iz ka­li­bra­ci­je. Opis su­bru­tin je enak v tem pri­mer, do­da­na je sa­mo su­bru­ti­na Ra­ču­na­nje, v ka­te­ri iz­ra­ču­na­mo vre­dno­sti za po­sa­mez­ne tip­ke.

    Pre­ra­čun vre­dno­sti za po­sa­mez­no tip­ko po­te­ka po sle­de­čem prin­ci­pu:

    • Za tip­ke 2, 3 in 14, 15 iz­ra­ču­na­mo vre­dno­sti po for­mu­li:
    Tip­ka št. 2=Tip­ka 1- (Tip­ka1-Tip­ka4)/3
    • Na­to nam osta­ne­jo sa­mo še tip­ke 9-12 in 5-8, ki jih iz­ra­ču­na­mo po sle­de­čih for­mu­lah:
    Tip­ka 9 = Tip­ka13- (Tip­ka13-Tip­ka1)/4
    • isto ve­lja za tip­ke 10-12.
    • Za tip­ke 5-8 upo­ra­bi­mo for­mu­lo:
    Tip­ka5=Tip­ka9-(Tip­ka9-Tip­ka1)/2

    Mor­da se bo­ste vpra­ša­li, ka­ko smo pri­šli do teh for­mul: eno­stav­no smo po­dat­ke o X in Y ko­or­di­na­tah, ki smo jih izme­ri­li pri po­stop­ku ka­li­bra­ci­je v 16 toč­kah pre­ne­sli v Excel ta­be­lo in tam ugo­to­vi­li to zna­čil­nost fo­li­je.

    Za­klju­ček

    Ta­ko smo iz­ra­ču­na­li vse vre­dno­sti za pri­tisk na to­uch fo­li­ji. Ob tem je po­tre­bno opo­zo­ri­ti na raz­lič­ne to­uch fo­li­je! Fo­li­ja, ki jo po­nu­ja­mo v AX elek­tro­ni­ki, ima tak­šne la­stno­sti, da se vre­dno­sti lah­ko iz­ra­ču­na s po­mo­čjo na­ve­de­nih for­mul. V ko­li­kor to ni mož­no pre­dla­gam ka­li­bra­ci­jo v 16 toč­kah. Pro­gram se­ve­da ni ide­a­len in za­ra­di ne­li­ne­ar­no­sti fo­li­je so do­ga­ja, da do­lo­če­ne tip­ke – še po­se­bej ti­ste ob de­snem ro­bu, ne »pri­me­jo« in je po­tre­bno po­nov­no pri­ti­sni­ti na njih. To se do­ga­ja za­ra­di opi­sa­ne ne­li­ne­ar­no­sti fo­li­je. V ko­li­kor bi vas to mo­ti­lo pre­dla­gam, da si iz­ri­še­te ve­čje tip­ke, re­ci­mo 8 tipk. S tem, ko so tip­ke ve­čje, je lah­ko ve­čje tu­di ob­mo­čje oko­li pri­ti­ska tip­ke, ki je raz­lo­že­no ne­kaj vr­stic vi­šje. Upam, da vam bo pro­gram na gra­fič­nem LCD-ju s to­uch fo­li­jo le­po de­lo­val!

    Program FONTI
    
    Program MALE IN VELIKE TIPKE

    Za nakup tiskanega vezja ali ostalega materiala, lahko kontaktoirate uredništvo revije Svet elektronike!
    Ogled celotnega članka je možna le z nakupom letnika v PDF obliki.

    Avtor: Jure Mikeln, Bojan Kovač
    2010_SE175_55