Problem z multi-touch w Nexus One

05.03.2010 @ 23:31:30 by Rafał Kozik | sprzęt

Dzisiaj będzie trochę gdybania ;) Zrobiło się głośno o tym, że Nexus One 'gubi się' przy obsłudze multi-touch. Google obwinia HTC za użycie niskiej jakości ekranu dotykowego. Niestety wydaje mi się, że nie uda się tego rozwiązać w aktualizacji oprogramowania. Dlaczego? O tym w dalszej części.



Według wikipedii występują dwa rodzaje pojemnościowego wykrywania dotyku:

There are two types of capacitive sensing system. Transcapacitance, where the object (finger, conductive stylus) alters the transcapacitance coupling between row and column electrodes, which are scanned sequentially.[3] The second is Absolute Capacitance where the object (finger, etc.) senses the presence and absolute position horizontally and vertically on the surface. Subtraction of a preceding absolute position from the present absolute position yields the relative motion of the object/finger during that time.

Nexus One nie miał obsługi multi-touch od samego początku i został on dodany dopiero jako aktualizacja. Skoro telefon nie miał w założeniu takiej funkcjonalności (a przynajmniej tak to wygląda), to przypuszczam, że został użyty pierwszy typ opisywanego ekranu. Oznacza to tyle, że multi-touch może być jedynie emulowany.

Mamy dostęp do informacji o dotyku w poziomie i pionie:


Obrazek

Gdy dodamy drugi punkt będzie wyglądać to tak:


Obrazek

Na podstawie starych i nowych informacji możemy wydedukować który obszar na każdej z osi odpowiada któremu miejscu dotyku. Problem pojawia się w momencie, gdy obszary te zaczną się pokrywać:


Obrazek

Teraz mamy tylko jeden obszar na osi pionowej i jest on przyporządkowany do obu punktów. Jeżeli rozsuniemy ponownie punkty, tak, żeby obszary już się nie pokrywały nie jesteśmy w stanie określić który obszar powinien odpowiadać któremu miejscu dotyku:


Obrazek

Obrazek

Możemy próbować używać różnego rodzaju heurystyk, żeby przewidzieć jaka powinna być poprawna kolejność (np. jak wyglądało przesuwanie dotyków w ciągu kilku ostatnich odczytów), ale niestety nigdy nie będzie to w 100% dobre.

Mam nadzieję, że się mylę -- Nexus One to ciekawy telefon i jest (jeszcze) jednym z kandydatów na mój nowy sprzęt ;)


Komentarze

CvX!
2010-03-06 @ 01:44:53

Z tego co wiem Nexus miał już wcześniej obsługę multi-touch, wspomniana aktualizacja włączała tę funkcjonalność w modelach przeznaczonych na rynek amerykański (widocznie musieli załatwić kwestie prawne).
Komentowanie zostało tymczasowo wyłączone.