PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Дополнительные устройства (http://pccar.ru/forumdisplay.php?f=177)
-   -   Собственный контроллер резистивного сенсорного экрана, совместимый с Android (http://pccar.ru/showthread.php?t=18930)

zyxel812 27.03.2013 22:11

Собственный контроллер резистивного сенсорного экрана, совместимый с Android
 
Собрался я тут на досуге распотрошить свой штатный монитор и внедрить в него pccar на базе odroid-x2. Но это отдельная история, сейчас о мониторе, точнее о его сенсорном экране.
Размер матрицы у него 6.5", не то чтобы большая редкость, но найти удалось только с резистивным тачскрином. Много гуглив, стало ясно, что "завести" такой тачcкрин под Андроидом хотят все, но не кому это нормально не удалось. Почесав немного репу, посмотрев тут что такое резистивный экран и как он работает, я понял: "а ведь его удастся контролировать при помощи микроконтроллера avr!", тем более, решая предыдущую проблему связи с кнопками на руле, HID Class Device я уже научился делать и прикинутся для Андроида мышкой не составит труда. Погуглив еще раз, действительно нашел пару примеров, как подключить резистивный тач к микроконтроллеру.
Начал я "воять". Всё получается, координаты касания к экрану определять научился, даже написал простую калибровочную утилиту. Мышкой прикидываться научился, курсор по экрану винды уже бегает примерно там, где я вожу пальцем. Настал час Х - подключение к Андроиду. Облом, не работает. Подключаю к винде - работает. Погуглив еще немножко, выяснилось, что Андроид не поддерживает мышки, которые передают абсолютные координаты, он умеет работать с мышами, которые передают движения. Вычислять, какие движения нужно передать, чтоб курсор попал в точку х,у кажется мне слишком сложными. В общем, я временно в тупике. Нужны идеи. От алгоритмов вычисления движений для перемещения курсора из точки А в точку Б, до других готовых способов подружить Андроид с резистивным тачем.

Gorynch 27.03.2013 22:37

А если взять контроллер такой мышки и на его входы подавать абсолютные координаты?

mas_u 27.03.2013 22:55

Цитата:

Сообщение от zyxel812 (Сообщение 252818)
Нужны идеи. От алгоритмов вычисления движений для перемещения курсора из точки А в точку Б.

А какие тут могут быть идеи?
Запоминать последнюю точку и вычислять относительно нее dx и dy для новой точки.

http://www.youtube.com/watch?v=RXJUcBbT19g

Через какое-то время после таких вычислений будет накапливаться погрешность между реальным касанием и тем, что навычисляли. Необходимо обнулять погрешность.

wave_is 27.03.2013 23:20

а я все никак не могу понять почему одни мышки работают в андроиде, а вторые нет

s.m. 28.03.2013 00:09

а если подключить через блютуз? это конечно через ж.. но может помочь

zyxel812 28.03.2013 00:51

Цитата:

Сообщение от Gorynch (Сообщение 252821)
А если взять контроллер такой мышки и на его входы подавать абсолютные координаты?

Поясните

Цитата:

Сообщение от mas_u
А какие тут могут быть идеи?
Запоминать последнюю точку и вычислять относительно нее dx и dy для новой точки.

http://www.youtube.com/watch?v=RXJUcBbT19g

Через какое-то время после таких вычислений будет накапливаться погрешность между реальным касанием и тем, что навычисляли. Необходимо обнулять погрешность.

Это ваш проект на видео? Так и сделано? Описание где-нибудь есть?

Цитата:

Сообщение от s.m.
а если подключить через блютуз? это конечно через ж.. но может помочь

Суть-то та же, просто порт как бы другой.

Gorynch 28.03.2013 01:05

Виноват, упустил из виду, что оптика мыши и процессор обработки смещены в одном корпусе, поэтому подсунуть свои данные не получится

mas_u 28.03.2013 01:46

Цитата:

Сообщение от zyxel812 (Сообщение 252840)


Это ваш проект на видео? Так и сделано? Описание где-нибудь есть?

Проектом это назвать сложно, так - эксперименты для поиска замены треснувшего родного емкостного тача. Принцип работы как упоминал выше.
Описания нет - было реализовано на atmega8 + v-usb.

zyxel812 28.03.2013 13:06

Цитата:

Сообщение от mas_u (Сообщение 252846)
Проектом это назвать сложно, так - эксперименты для поиска замены треснувшего родного емкостного тача. Принцип работы как упоминал выше.
Описания нет - было реализовано на atmega8 + v-usb.

Если не трудно, расскажи пожалуйста об особенностях с которыми тебе пришлось столкнуться. Это, возможно, сэкономит мне кучу времени. Первые эксперименты, которые я сейчас сделал, не особо удачны. Для устранения ошибки, после отпускания экрана, перевожу курсор в верхний левый угол и при следующем касании отталкиваюсь от этой позиции. Однако, при касании курсор у меня перемещается на много дальше чем нужно, но при дальнейшем движении двигается вроде на правильные расстояния. В общем, проведя еще кучу экспериментов, думаю приду к правильному решению, но хотелось бы сэкономить время.

zyxel812 28.03.2013 13:30

Выяснилось, что передача смещения в 100 вызывает перемещение курсора примерно на 250 точек на экране. Пока не ясно, коэффициент 2,5 для всех компьютеров одинаков или для каждого он свой и зависит от каких-то настроек.

Ага, стало ясно, коэффициент зависит от настройки скорости перемещения курсора мыши в винде. Галочка "Включить повышенную точность установки указателя мыши" уменьшает первое движение мишкой. В Андроиде вроде нет таких настроек. Буду вычислять коэффициент на нем.

На моем андроиде, коэффициент 2. Андроид с usb у меня один, проверить одинаковость на разных устройствах пока не могу. Зависит ли коэффициент от разрешения экрана?


Часовой пояс GMT +4, время: 19:56.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot