Konop
Guest
Thu Feb 17, 2011 11:15 pm
Witam
Na wstępie - mój problem opiszę na przykładowym programie do rysowania
po LCDku

. Jedzie się palcem/rysikiem po LCD no i to samo ma się
pojawić na wyświetlaczu.
JEśli nie dotykam wyświetlacza, to pojawiają mi się na nim śmieci!
Grupy punktów, w miarę stałych miejscach, trochę na prawo od środka,
oraz dalej na prawo i trochę wyżej. Problem występuje na dwóch
egzemplarzach podobnego wyświetlacza.
Oczywiście, mogę z tym walczyć, przez:
- zwiększenie czasu martwego na ustalenie się stanu na wejściu ADC
- wymaganie, aby N kolejnych pomiarów znalazło się w pewnym określonym
obszarze, tu mogę regulować N oraz promień R...
Wszystko fajnie, tylko nie potrafię dojść do satysfakcjonującego mnie
kompromisu:). Albo są śmieci, albo całość działa za wolno. Jeśli ustawię
zbyt wysoką ilość powtórzeń, to mam spore opóźnienie przy "kliknięciu".
Jeśli zaś dam małe opóźnienie, ale też mały promień, wówczas ciężko
zrealizować przeciąganie palcem po ekranie (wymagany jest bardzo powolny
ruch). Nie wiem, czy to wina samego panelu, mojej metody, czy sposobu
podłączenia... Generalnie próbowałem:
- zmienić kanał ADC na drugi (ten sam sygnał powinniśmy mieć na X1 i X2,
jak i na Y1 i Y2)
- zmieniać polaryzację
- inaczej układać kabelek połączeniowy (całość pracuje na płytce
prototypowej).
Nic to nie pomagało... Trochę mnie to wkurza, bo sprawa niby banalna, a
ciągle mam z tym problemy. Mam telefon z panelem rezystancyjnym (starszy
model) i tam to działa świetnie! Czyli ogólnie się da. Tylko nie wiem,
czy to wina wyświetlacza, czy mojego algorytmu??
Patrzyłem na gotowce, ale znajdowałem same prymitywne, bez kalibracji
nawet i oczywiście tak samo źle to działało... nawet nie umiałem
dopatrzyć się w nich kodu, który wykrywa dotknięcie panelu...
Może ktoś coś doradzi??

...
--
Pozdrawiam
Konop
Robert Zemła
Guest
Fri Feb 18, 2011 12:26 am
W dniu 2011-02-17 23:15, Konop pisze:
....
Quote:
Może ktoś coś doradzi??

...
Zgaduję że coś jest nie tak z samym algorytmem albo sposobem dokonywania
pomiarów. Dobrze obsłużyć panel rezystancyjny wcale nie jest tak łatwo
jakby się mogło wydawać. Polecam lekturę:
http://www.analog.com/static/imported-files/application_notes/AN-1021.pdf Kiedyś
przerabiałem ten temat tyle że w moim przypadku sporym problemem było
uzyskanie precyzyjnych wyników na całej powierzchni ekranu
pozdrawiam
Maciek
Guest
Fri Feb 18, 2011 8:30 am
Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:ijk6m3$3a8$1@inews.gazeta.pl...
Quote:
Witam
Na wstępie - mój problem opiszę na przykładowym programie do rysowania po
LCDku

. Jedzie się palcem/rysikiem po LCD no i to samo ma się pojawić na
wyświetlaczu.
JEśli nie dotykam wyświetlacza, to pojawiają mi się na nim śmieci!
Zakładam, że przetwornik to AD7843 albo coś pokrewnego. Czy korzystasz z
wyjścia PENIRQ? To chyba najprostszy sposób na detekcję tego, czy panel jest
dotykany, czy nie.
Maciek
Maciek
Guest
Fri Feb 18, 2011 9:55 am
Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:37e6813e-e7e7-4baf-9dfe-ec4e06e43a7d@l18g2000yqm.googlegroups.com...
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:
Quote:
Użytkownik "Konop" <kono...@gazeta.pl> napisał w
wiadomościnews:ijk6m3$3a8$1@inews.gazeta.pl...
(...)
Quote:
Nie, korzystam z wbudowanego w uC LPC2378 przetwornika ADC. Ale to nie
powinno mieć istotnego znaczenia - rozumiem, że ucierpi dokładność,
ale te "fałszywe" kliknięcia??
A w jaki sposób wykrywasz kliknięcie? Rozumiem, że _jedna_ gałąź (np. Y- lub
Y+) jest podłączona do GND lub VCC, a na drugiej (X+ lub X-) sprawdzasz
napięcie?
Maciek
Konop
Guest
Fri Feb 18, 2011 10:36 am
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:
Quote:
Użytkownik "Konop" <kono...@gazeta.pl> napisał w wiadomościnews:ijk6m3$3a8$1@inews.gazeta.pl...
Witam
Na wstępie - mój problem opiszę na przykładowym programie do rysowania po
LCDku

. Jedzie się palcem/rysikiem po LCD no i to samo ma się pojawić na
wyświetlaczu.
JEśli nie dotykam wyświetlacza, to pojawiają mi się na nim śmieci!
Zakładam, że przetwornik to AD7843 albo coś pokrewnego. Czy korzystasz z
wyjścia PENIRQ? To chyba najprostszy sposób na detekcję tego, czy panel jest
dotykany, czy nie.
Nie, korzystam z wbudowanego w uC LPC2378 przetwornika ADC. Ale to nie
powinno mieć istotnego znaczenia - rozumiem, że ucierpi dokładność,
ale te "fałszywe" kliknięcia??
Pozdrawiam
Konop
Konop
Guest
Fri Feb 18, 2011 10:47 am
Quote:
Zgaduj e co jest nie tak z samym algorytmem albo sposobem dokonywania
pomiar w. Dobrze obs u y panel rezystancyjny wcale nie jest tak atwo
jakby si mog o wydawa . Polecam lektur :http://www.analog.com/static/imported-files/application_notes/AN-1021...Kiedy
przerabia em ten temat tyle e w moim przypadku sporym problemem by o
uzyskanie precyzyjnych wynik w na ca ej powierzchni ekranu
Tu głównie piszą o kalibracji... OK, przyda się na pewno, no ale to
nie odfiltruje mi zakłóceń, jakie pojawiają się we "właściwym"
obszarze pracy... tak mi się przynajmniej wydaje

...
Pozdrawiam
Konop
Maciek
Guest
Fri Feb 18, 2011 10:51 am
Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:04c8a044-8252-4e28-930a-8bc0808377f1@x11g2000yqc.googlegroups.com...
On 18 Lut, 09:55, "Maciek" <for...@interia.pl> wrote:
Quote:
U ytkownik "Konop" <kono...@gazeta.pl> napisa w wiadomo
cinews:37e6813e-e7e7-4baf-9dfe-ec4e06e43a7d@l18g2000yqm.googlegroups.com...
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:> U ytkownik "Konop"
kono...@gazeta.pl> napisa w
wiadomo cinews:ijk6m3$3a8$1@inews.gazeta.pl...
(...)
Nie, korzystam z wbudowanego w uC LPC2378 przetwornika ADC. Ale to nie
powinno mie istotnego znaczenia - rozumiem, e ucierpi dok adno ,
ale te "fa szywe" klikni cia??
A w jaki spos b wykrywasz klikni cie? Rozumiem, e _jedna_ ga (np. Y- lub
Y+) jest pod czona do GND lub VCC, a na drugiej (X+ lub X-) sprawdzasz
napi cie?
No tak

. Y1 do VCC, Y2 do GND. Napięcie sprawdzam na X1 lub X2 (ale
tylko na jednej nodze). Analogicznie mierzę współrzędną Y. Problem mam
niezależnie, czy włącze rezystory do VCC czy do GND...
Zaraz... Więc jeżeli nie naciskasz, to X1 (lub X2) wisi w powietrzu? Dobrze
zrozumiałem?
Maciek
Konop
Guest
Fri Feb 18, 2011 11:25 am
On 18 Lut, 09:55, "Maciek" <for...@interia.pl> wrote:
Quote:
U ytkownik "Konop" <kono...@gazeta.pl> napisa w wiadomo cinews:37e6813e-e7e7-4baf-9dfe-ec4e06e43a7d@l18g2000yqm.googlegroups.com...
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:> U ytkownik "Konop" <kono...@gazeta.pl> napisa w
wiadomo cinews:ijk6m3$3a8$1@inews.gazeta.pl...
(...)
Nie, korzystam z wbudowanego w uC LPC2378 przetwornika ADC. Ale to nie
powinno mie istotnego znaczenia - rozumiem, e ucierpi dok adno ,
ale te "fa szywe" klikni cia??
A w jaki spos b wykrywasz klikni cie? Rozumiem, e _jedna_ ga (np. Y- lub
Y+) jest pod czona do GND lub VCC, a na drugiej (X+ lub X-) sprawdzasz
napi cie?
No tak

. Y1 do VCC, Y2 do GND. Napięcie sprawdzam na X1 lub X2 (ale
tylko na jednej nodze). Analogicznie mierzę współrzędną Y. Problem mam
niezależnie, czy włącze rezystory do VCC czy do GND...
Pozdrawiam
Konop
Maciek
Guest
Fri Feb 18, 2011 12:30 pm
Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:3c5d8bf6-694d-4ec4-b895-aa5af633767d@p11g2000vbq.googlegroups.com...
Quote:
Zaraz... Więc jeżeli nie naciskasz, to X1 (lub X2) wisi w powietrzu?
Dobrze
zrozumiałem?
Nie no, nie jestem na tyle pomysłowy, żeby robić radio na LPCku

...
Włączone mam "pull-upy" do VCC na tych pinach... Próbowałem też
włączać podciąganie do GND, jak i coś w stylu X1 podciągnięte do VCC,
X2 podciągnięte do GND itp... nie pomagało... właśnie nie wiem, może
powinienem dać mniejszy rezystor podciągający? W sumie mogę go dać na
stałe, nie?
Na stałe nie, bo zaburzy dokładność podziału dzielnika. U mnie sekwencja
jest taka:
- Y- do masy, X+ podwieszone do VCC (wejście ATMEGA128),
- jeżeli na X+ pojawi się stan niski, czekam 10 ms i ponownie sprawdzam,
- jeżeli na X+ jest nadal stan niski, wyłaczam pull-up i rozpoczynam
konwersję.
A jaką masz wartość tego pull-up'u? Nie przełączasz go aby tuż przed
sprawdzeniem wejścia?
Maciek
Infotank
Guest
Fri Feb 18, 2011 12:31 pm
Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:ijk6m3$3a8$1@inews.gazeta.pl...
Quote:
Witam
Na wstępie - mój problem opiszę na przykładowym programie do rysowania po
LCDku

. Jedzie się palcem/rysikiem po LCD no i to samo ma się pojawić na
wyświetlaczu.
JEśli nie dotykam wyświetlacza, to pojawiają mi się na nim śmieci! Grupy
punktów, w miarę stałych miejscach, trochę na prawo od środka, oraz dalej
na prawo i trochę wyżej. Problem występuje na dwóch egzemplarzach
podobnego wyświetlacza.
Oczywiście, mogę z tym walczyć, przez:
- zwiększenie czasu martwego na ustalenie się stanu na wejściu ADC
- wymaganie, aby N kolejnych pomiarów znalazło się w pewnym określonym
obszarze, tu mogę regulować N oraz promień R...
Najszybciej i niedrogo, specjalizowany interface do paneli dotykowych
rezystancyjnych np. TSC2046
Roman F
Quote:
Wszystko fajnie, tylko nie potrafię dojść do satysfakcjonującego mnie
kompromisu:). Albo są śmieci, albo całość działa za wolno. Jeśli ustawię
zbyt wysoką ilość powtórzeń, to mam spore opóźnienie przy "kliknięciu".
Jeśli zaś dam małe opóźnienie, ale też mały promień, wówczas ciężko
zrealizować przeciąganie palcem po ekranie (wymagany jest bardzo powolny
ruch). Nie wiem, czy to wina samego panelu, mojej metody, czy sposobu
podłączenia... Generalnie próbowałem:
- zmienić kanał ADC na drugi (ten sam sygnał powinniśmy mieć na X1 i X2,
jak i na Y1 i Y2)
- zmieniać polaryzację
- inaczej układać kabelek połączeniowy (całość pracuje na płytce
prototypowej).
Nic to nie pomagało... Trochę mnie to wkurza, bo sprawa niby banalna, a
ciągle mam z tym problemy. Mam telefon z panelem rezystancyjnym (starszy
model) i tam to działa świetnie! Czyli ogólnie się da. Tylko nie wiem, czy
to wina wyświetlacza, czy mojego algorytmu??
Patrzyłem na gotowce, ale znajdowałem same prymitywne, bez kalibracji
nawet i oczywiście tak samo źle to działało... nawet nie umiałem dopatrzyć
się w nich kodu, który wykrywa dotknięcie panelu...
Może ktoś coś doradzi??

...
--
Pozdrawiam
Konop
Konop
Guest
Fri Feb 18, 2011 12:41 pm
On 18 Lut, 10:51, "Maciek" <for...@interia.pl> wrote:
Quote:
Użytkownik "Konop" <kono...@gazeta.pl> napisał w wiadomościnews:04c8a044-8252-4e28-930a-8bc0808377f1@x11g2000yqc.googlegroups.com...
On 18 Lut, 09:55, "Maciek" <for...@interia.pl> wrote:
U ytkownik "Konop" <kono...@gazeta.pl> napisa w wiadomo
cinews:37e6813e-e7e7-4baf-9dfe-ec4e06e43a7d@l18g2000yqm.googlegroups.com...
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:> U ytkownik "Konop"
kono...@gazeta.pl> napisa w
wiadomo cinews:ijk6m3$3a8$1@inews.gazeta.pl...
(...)
Nie, korzystam z wbudowanego w uC LPC2378 przetwornika ADC. Ale to nie
powinno mie istotnego znaczenia - rozumiem, e ucierpi dok adno ,
ale te "fa szywe" klikni cia??
A w jaki spos b wykrywasz klikni cie? Rozumiem, e _jedna_ ga (np. Y- lub
Y+) jest pod czona do GND lub VCC, a na drugiej (X+ lub X-) sprawdzasz
napi cie?
No tak

. Y1 do VCC, Y2 do GND. Napięcie sprawdzam na X1 lub X2 (ale
tylko na jednej nodze). Analogicznie mierzę współrzędną Y. Problem mam
niezależnie, czy włącze rezystory do VCC czy do GND...
Zaraz... Więc jeżeli nie naciskasz, to X1 (lub X2) wisi w powietrzu? Dobrze
zrozumiałem?
Nie no, nie jestem na tyle pomysłowy, żeby robić radio na LPCku

...
Włączone mam "pull-upy" do VCC na tych pinach... Próbowałem też
włączać podciąganie do GND, jak i coś w stylu X1 podciągnięte do VCC,
X2 podciągnięte do GND itp... nie pomagało... właśnie nie wiem, może
powinienem dać mniejszy rezystor podciągający? W sumie mogę go dać na
stałe, nie?
Pozdrawiam
Konop
Konop
Guest
Fri Feb 18, 2011 3:33 pm
On 18 Lut, 12:30, "Maciek" <for...@interia.pl> wrote:
Quote:
Użytkownik "Konop" <kono...@gazeta.pl> napisał w wiadomościnews:3c5d8bf6-694d-4ec4-b895-aa5af633767d@p11g2000vbq.googlegroups.com...
Zaraz... Więc jeżeli nie naciskasz, to X1 (lub X2) wisi w powietrzu?
Dobrze
zrozumiałem?
Nie no, nie jestem na tyle pomysłowy, żeby robić radio na LPCku

...
Włączone mam "pull-upy" do VCC na tych pinach... Próbowałem też
włączać podciąganie do GND, jak i coś w stylu X1 podciągnięte do VCC,
X2 podciągnięte do GND itp... nie pomagało... właśnie nie wiem, może
powinienem dać mniejszy rezystor podciągający? W sumie mogę go dać na
stałe, nie?
Na stałe nie, bo zaburzy dokładność podziału dzielnika. U mnie sekwencja
jest taka:
No tak, ale to może by się udało obejść kalibracją... choć - wtedy, to
przstałoby to być liniowe... no to to jednak zły pomysł

...
Quote:
- Y- do masy, X+ podwieszone do VCC (wejście ATMEGA128),
- jeżeli na X+ pojawi się stan niski, czekam 10 ms i ponownie sprawdzam,
- jeżeli na X+ jest nadal stan niski, wyłaczam pull-up i rozpoczynam
konwersję.
Hmmm... ok, spróbuję później Twoją metodą i dam znać... Może
faktycznie to będzie dobry pomysł. Pomierzę jakie mam napięcia w
takiej konfiguracji gdy dotykam panelu i gdy tego nie robię

...
Quote:
A jaką masz wartość tego pull-up'u? Nie przełączasz go aby tuż przed
sprawdzeniem wejścia?
Nie pamiętam teraz jaki jest pull-up w LPC

...
Pozdrawiam
Konop
Konop
Guest
Fri Feb 18, 2011 11:50 pm
Quote:
Na stałe nie, bo zaburzy dokładność podziału dzielnika. U mnie sekwencja
jest taka:
- Y- do masy, X+ podwieszone do VCC (wejście ATMEGA128),
- jeżeli na X+ pojawi się stan niski, czekam 10 ms i ponownie sprawdzam,
- jeżeli na X+ jest nadal stan niski, wyłaczam pull-up i rozpoczynam
konwersję.
OK, zrobiłem prawie tak jak napisałeś i działa!!! Moje modyfikacje to:
- do GND zwieram obie końcówki Y
- stan na pinie X+ sprawdzam co 5ms
- jeśli w 2 kolejnych próbach stan jest niski, rozpoczynam pomiary,
pomiary wykonuję na przemian ze sprawdzeniem stanu "cygrowo"
- odczytaną wartość uważam za poprawną, jeśli przed pomiarem jak i po
stan na pinie X+ jest niski.
- jeśli którekolwiek sprawdzenie stanu wykazało stan wysoki, wszystko
wraca do punktu wyjścia

...
Stoi już to ładnych kilka minut i nic, żadnych "śmieci". Rysuje się za
to ładnie!! Teraz czas na kalibrację!!

... W tej kwestii też możesz
coś polecić? O linku z początku dyskusji pamiętam

...
--
Pozdrawiam
Konop
Konop
Guest
Sat Feb 19, 2011 3:05 pm
Quote:
Zgaduję że coś jest nie tak z samym algorytmem albo sposobem dokonywania
pomiarów. Dobrze obsłużyć panel rezystancyjny wcale nie jest tak łatwo
jakby się mogło wydawać. Polecam lekturę:
http://www.analog.com/static/imported-files/application_notes/AN-1021.pdf Kiedyś
przerabiałem ten temat tyle że w moim przypadku sporym problemem było
uzyskanie precyzyjnych wyników na całej powierzchni ekranu
Dobra, teraz się wziąłem za kalibrację, skorzystałem z tego kodu
"wprost"... i niespodzianka, nie działa za dobrze... Wszystko jest
jakieś poprzesuwane (łatwo wyjechać poza obszar ekranu), i odwrócone
(ruch w lewo rysuje mi linię w prawo, ruch w górę - linię w dół itp).
Pewnie gdzieś trzeba zmienić - na + czy coś, ale ciężko to teraz
znaleźć... Korzystałeś może z tego kodu? Coś w nim zmieniałeś??
--
Pozdrawiam
Konop