This post is also available in: English (İngilizce)
DOKUNMATİK PANEL KALİBRASYONU
- Dokunmatik paneller ekranların üzerilerine takılarak kullanılırlar. Ancak panelin koordinatları ile ekranın koordinatları uyuşmaz ve bu sebeple bunların kalibre edilmesi gerekir.
- Daha önce 4 telli rezistif tip paneller için yazdığım kütüphanede fonksiyon aracılığı ile kalibrasyon yapılmaktaydı. Ancak farklı tip dokunmatik panel kullananlarında kalibrasyon matematiğini öğrenmesi amacı ile 2 nokta kalibrasyon metodunun matematiksel çözümünü anlattım
- Video dersi izlemeyi unutmayın
2 NOKTA KALIBRASYON YÖNTEMİ
- Birçok kalibrasyon yöntemi bulunmaktadır. (2-4-6-12-16 nokta yöntemleri bulunur.)
- Genelde büyük ekranlarda açısal olarakta kalibrasyon sağlamak için 2 den fazla değer kullanılarak kalibrasyon yapılır.
- 2 Nokta yöntemi olmasına karşın 4 noktaya dokunulur bunun sebebi X1 X2 ve Y1 Y2 olmasıdır.
- Bunun için öncelikle dokunmatik panelin takıldığı ekranda belli yerlerde piksel yani noktalar oluşturulur .
- Yukarıda bulunan resim bir şablondur. Burada 4 adet kırmızı nokta bizim kalibrasyon noktalarımızdır.
- Bu noktalar GLCD de piksel oluşturma fonksiyonu ile yukarıdaki ölçülerin denk geldiği yerlerde oluşturulur. Bu tamamen kullanıcının nereye dokunacağını göstermek amaçlıdır.
- 240×128 bir GLCD için yukarıdaki şablon resme göre dokunulması gereken noktaların oluşturulması gereken koordinatlar şunlardır;
- 1.NOKTA x=%20 ve y=%80 yani x=240*20/100= 48 y=128*80/100=102 yani (48,102)
- 2.NOKTA x=%20 ve y=%20 yani x=240*20/100=48 y=128*20/100=25 yani (48,25)
- 3.NOKTA x=%80 ve y=%20 yani x=240*80/100=192 y=128*20/100=25 yani (192,25)
- 4.NOKTA x=%80 ve y=%80 yani x=240*80/100=192 y=128*80/100=102 yani (192,102)
- 240×128 bir ekranda 4 adet kalibrasyon noktalarının ekranda hangi koordinatlarda oluşturulması gerektiğini yukarıda hesapladık. Bu noktalarda pikseller oluşturulacak ve kullanıcıdan buralara dokunması istenecek.
- Kullanıcı bu noktalara dokunduğunda dokunmatik panel üzerinden gelen ham x ve y değerleri okunacak.(devre şeması ve diğer detaylar için inceleyiniz “rezistif tip dokunmatik panel kütüphanesi“)
- Örnek olarak anlatma gerekirse (ham değerler derste kullanılan değerlerdir her panelin vereceği değer farklılık gösterebilir)
- 1.NOKTAYA dokunulduğunda okunan ham değer x=230 ve y=730 dur. Yani GLCD üzerinde (48,102) noktasına dokunulduğunda okunan değer (230,730) dur
- 2.NOKTAYA dokunulduğunda okunan ham değer x=228 ve y=237 dir. Yani GLCD üzerinde (48,25) noktasına dokunulduğunda okunan değer (228,237) dir
- 3.NOKTAYA dokunulduğunda okunan ham değer x=780 ve y=232 dur. Yani GLCD üzerinde (192,25) noktasına dokunulduğunda okunan değer (780,232) dir
- 4.NOKTAYA dokunulduğunda okunan ham değer x=773 ve y=704 dur. Yani GLCD üzerinde (192,102) noktasına dokunulduğunda okunan değer (773,704) dir
- Yukarıdaki şekilde dokunulan noktaları ve bu noktalardan alınan ham verileri ( veriler dokunmatik panel üzerinden gelmektedir) kayıt ediyoruz.
- Ekran kontrolü için daha önce yazdığım“SAP1024B_GRAFIK_LCD” kütüphanemi kullanabilirsiniz.
GLCD de Dokunulan Noktalar | Dokunmatik Panelden okunan değerler | |||
---|---|---|---|---|
XD | YD | X | Y | |
1.NOKTA | 48 | 102 | 230 | 730 |
2.NOKTA | 48 | 25 | 228 | 237 |
3.NOKTA | 192 | 25 | 780 | 232 |
4.NOKTA | 192 | 102 | 773 | 704 |
- Bu noktalara dokunulduğunda okunan değerler bizim ham değerlerimizdir.
- Bu değerlerden sonra matematiksel işlem sırası gelmiştir.
- Bu işlem ile bizim sapma paylarımızı hesaplayarak çözüme ulaşacağız.
- Adından da anlaşılacağı gibi sapma payı GLCD ile dokunmatik panel arasındaki sapmayı hesaplar ve değerleri buna göre düzelterek. GLCD ninde Dokunmatik panelinde koordinat düzleminde aynı noktalara sahip olmasını sağlar.
- Örnek = ekranın (100,100) noktasına dokunduğunuzda bu sefer farklı değer değil dokunmatik panel üzerinden de (100,100) okursunuz
KALİBRASYONUN MATEMATİKSEL ÇÖZÜMÜ
Sapma Değerlerinin Hesaplanması
- Son formül ile sonuca gitmeden önce benim “sapma değeri“ diye adlandırdığım 4 adet değeri hesaplamamız gerekmektedir.
- Sapma değerlerini yukarıdaki tablodan yararlanarak hesaplayacağız.
- Sapma değerleri 4 adet hesaplanacaktır. Bunlar “a” değeri, “b” değeri , “c” değeri ve “d” değeri şeklindedir.
- Her değer “(a1+a2)/2= ortalaması” şeklinde hesaplanacaktır.
- Tüm sapma değerleri için yukarıdaki resimde gözüktüğü gibi 4 adet formül kullanılacaktır.
“a1 ve b1” Sapma Değerlerinin Hesaplanması
FORMÜL1: |
YD1=(a1*Y1)+(b1*1) YD3=(a1*Y3)+(b1*1) |
- Yukarıdaki tablodan değerleri okuyarak yerlerine yerleştirelim.
102=(a1*730)+b1
25=(a1*232)+b1
———————–
102= (730a1) +b1
–25= –(232a1) –b1———————–
77=498a1
———————–
a1=(77/498) = 0,154 - a1 değerini bulduğumuza göre bu değer üzerinden b1 değerini bulalım
25=(0,154*232)+b1
———————–
25=(35,728)+b1
———————–
b1=(25–37,728)= -10,728
“a2 ve b2” Sapma Değerlerinin Hesaplanması
FORMÜL2: |
YD2=(a2*Y2)+(b2*1) YD4=(a2*Y4)+(b2*1) |
- Yukarıdaki tablodan değerleri okuyarak yerlerine yerleştirelim.
25=(a2*237)+b2
102=(a2*704)+b2
———————–
–25= –(237a2) –b2
102= (704a2) +b2———————–
77=467a2
———————–
a2=(77/467) = 0,164 - a2 değerini bulduğumuza göre bu değer üzerinden b2 değerini bulalım
25=(0,164*237)+b2
———————–
25=(38,868)+b2
———————–
b2=(25–38,868)= -13,868
“c1 ve d1” Sapma Değerlerinin Hesaplanması
FORMÜL3: |
XD1=(c1*X1)+(d1*1) XD3=(c1*X3)+(d1*1) |
- Yukarıdaki tablodan değerleri okuyarak yerlerine yerleştirelim.
48=(c1*230)+d1
192=(c1*780)+d1
———————–
–48= –(230c1) –d1
192= (780c1) +d1———————–
144=550c1
———————–
c1=(144/550) = 0,261 - c1 değerini bulduğumuza göre bu değer üzerinden d1 değerini bulalım
48=(0,261*230)+d1
———————–
48=(60,03)+d1
———————–
d1=(48–60,03)= -12,03
“c2 ve d2” Sapma Değerlerinin Hesaplanması
FORMÜL4: |
XD2=(c2*X2)+(d2*1) XD4=(c2*X4)+(d2*1) |
- Yukarıdaki tablodan değerleri okuyarak yerlerine yerleştirelim.
48=(c2*228)+d2
192=(c2*773)+d2
———————–
–48= –(228c2) –d2
192= (773c2) +d2———————–
144=545c2
———————–
c2=(144/545) = 0,264 - c2 değerini bulduğumuza göre bu değer üzerinden d2 değerini bulalım
48=(0,264*228)+d2
———————–
48=(60,192)+d2
———————–
d2=(48–60,192)= -12,192
Sapma Değerleri Sonuç Tablosu
1 | 2 | Ortalaması | |
a | 0,154 | 0,164 | 0,159 |
b | -10,728 | -13,868 | -12,298 |
c | 0,261 | 0,264 | 0,262 |
d | -12,03 | -12,192 | -12,111 |
- Yukarıdaki tabloda elde edilen sonuçlar son formülde kullanılacaktır.
- Ortalama alma yöntemi (a1+a2)/2 şeklindedir.
Sonuç Formülü Kullanılarak Kalibrasyon Yapılması
SONUÇ FORMÜLÜ |
YD=a*Y(b) XD=c*X(d) |
- Tüm değerler hesaplandıktan sonra artık kalibrasyon yapılabilir.
- Yukarıdaki “Sonuç Formülü” yazılımda kullanılacak son noktadır. Bu formül ile yazılım kalibrasyonu yapar. Nasıl çalıştığını örnekler ile görelim.
- Örnek olarak yukarıdaki tabloda verilen değerleri kullanacağım.
- Örneğin, Y ekseninde dokunduğumda 730 değerini okudum ancak benim tıkladığım nokta gerçekte 102 dir. ( en baştaki tabloya bakınız)
- Formülde yerlerine koyalım;
YD=(0,159*730)-12,298=103,772 - Bulduğum sapma değerlerine göre işlem yaptığımda dokunduğum noktanın 103 olması gerektiğini gördüm. Aslında dokunduğum noktada gerçekte 102 dir, bu tür sapmalar dokunulan yer ve küsuratlar sebebi ile olabilir ancak dikkate alınmamalıdır çünkü yazılımda float değeri ile işlem yapıldığından küsuratların büyük bir kısmı hesaba katılır ve bu tarz yanılmalar ortadan kalkar.
- Eğer X ekseninde bir hesap yapmamız gerekseydi
- Örneğin, X eksenine dokunduğumda 230 değerini okudum ancak benim tıkladığım nokta gerçekte 48 dir. ( en baştaki tabloya bakınız)
- Formülde yerlerin koyalım;
XD=(0,262*230)-12,111=48,149 - Bulduğum sapma değerlerine göre yapılan hesapta dokunulan noktanın 48 olması gerektiğini gördüm zaten benimde dokunduğum nokta X ekseninde 48 dir, yani kalibrasyon doğru yapılmış oldu.
SONUÇ
- Dokunmatik panellerin kalibre edilmesi yukarıda anlatıldığı gibi hesaplamalar ile yapılmaktadır. Rastgele sayı belirleme ile yapmak bilim dışıdır ve doğru değildir.
- Ekran boyutu ne olursa olsun yukarıdaki yöntem yüzdelik dilimler ile konuyu ele aldığından sizi doğru sonuca götürür.
- Kalibrasyon yaparken dokunulan her noktanın ham “X” ve “Y” değeri alınır “Sonuç Formülünde” yerine konulur ve sonuç alınır.
İşlem ve diğer detaylar için mutlaka aşağıdaki video dersi izleyiniz.
Dokunmatik Panel Kalibrasyonunun Matematiksel Çözümü Video Ders
This post is also available in: English (İngilizce)