Калибровка сенсорного экрана.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Калибровка сенсорного экрана.

Сообщение demson »

Нужен совет. Требуется откалибровать сенсорный экран.
Итак, имеется графический LCD 128x64 на него налеплена резитивная сенсорная панель.
Мега 16, ацп 8 бит. На данный момент калибровка заключается в линейной подгонке координат сенсорного экрана к реальному.
В общем при касании под местом касания рисуется пиксель.
Появилась проблема, что при проведении пером вправо вниз (диагональ) пиксели начиная с середины экрана "убегают" то есть рисуются дальше (правее ниже) места касания. до середины (примерно) все четко под пером.
В связи с этим вопрос как калибруются сенсорные панели по 5 точкам, непонятен алгоритм.

на данный момент: меряем верх лево (x1,y1) и низ право (x2,y2)
далее любое касание будет как
(координата_X - x1 ) / ( (x2-x1) / 128)
(координата_Y -y1 ) / ( (y2-y1) / 64)
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Калибровка сенсорного экрана.

Сообщение ibiza11 »

при калибровке на экране рисуется точка, в которую нужно попасть пером, таким образом запоминаются "крайние" значения АЦП.
Промежуточные значения вычисляются по линейному закону, как Вы и говорите. также можно ввести промежуточное значение в центре экрана, получив интерполяцию не к прямой, а к двум отрезкам (возможно лежащим на одной прямой). надеюсь понятно пояснил :oops: не мастер, уж простите.
Ставим плюсы: )
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение demson »

Да, это понятно. Идея хорошая, запишем.
Тогда такой вопрос, раз сама панель линейна:
Всетаки что то там нелинейное есть может ацп врет на близких к 5в напряжениях? хотелось бы узнать в чем дело.
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Re: Калибровка сенсорного экрана.

Сообщение WildCat »

Так может оно все таки логарифмическое тоже бывает?
Кстати при калибровке крайние значения АЦП не определяются, в том то и дело. Мы давим не в самый угол экрана, а чуть ближе к центру.
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение Aheir »

А какой ток бегает в цепи? Насколько помню, из-за этого может быть нелинейность.
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Re: Калибровка сенсорного экрана.

Сообщение WildCat »

Кстати, поди демс подключил 330омный экран напрямую на питание) Он там обуглиться должен :))
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение demson »

Подключен к мк напрямую, ножками ставится ноль и единичка.
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение demson »

вот диаграмма смещений, напрашивается линейная зависимость.
измерял проходом по диагонали.
Вложения
123321123.gif
оно же, скрином чтобы долго не скачивать.
(10.61 КБ) 830 скачиваний
Книга1.xls
(15 КБ) 194 скачивания
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение demson »

и еще более точно
Вложения
Книга1.xls
(23.5 КБ) 273 скачивания
123321123.gif
скрин
(11.23 КБ) 710 скачиваний
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Калибровка сенсорного экрана.

Сообщение ibiza11 »

что то сильно значения скачут. Может усреднение результатов АЦП попробовать? будет медленнее, но надежнее.

кстати графики получены мультиметром или это уже результат обработки сигналов с помощью микроконтроллера? если мультиметром, то то не стоит доверять, сопротивление контактов может повлиять на результат.


WildCat писал(а):Так может оно все таки логарифмическое тоже бывает?
:shock: в первый раз слышу. зачем так усложнять сенсор? там же резистивная пленка равномерно нанесена.
Ставим плюсы: )
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение demson »

Нет, это все с МК, усреднение есть 4 замера, если расхождение между замерами ацп более чем на 10 единиц то результат не считается нажатием. Значения в принципе скакать немного могут, потому что попасть в квадрат размером пиксель на пиксель нереально, и к тому же был всего 1 проход по всем значениям, 1 раз то есть. :) Но важен тот факт что ошибка проявляется к концу - на значениях ацп 150-200 а это где то 4-5 вольт. И имеет линейную зависимость.
Может просто с некоторых значений вводить поправочный коэффициент? по графику вроде бы линейно "уплывает".
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Калибровка сенсорного экрана.

Сообщение ibiza11 »

сейчас на свежую голову подумал, в конце (ближе к краю стеклышка) невозможно нажать в край (не повредив тачскрин), ибо стекло не пластик, сильно не прогнешь, получается ближе к краям тачскрина на самом деле нажмается не та точка, где сейчас перо, а чуть ближе к центру. пока в голову не приходит как с этим бороться. Вы какую точность ожидаете от тачскрина 128х64?
Ставим плюсы: )
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Re: Калибровка сенсорного экрана.

Сообщение WildCat »

Попиксельную как раз. Чтоб можно было в каждый пиксел экрана ткнуть и включить.
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение demson »

да лан пиксельную :))) , хоть бы в пятак (5*5) попасть. Размеры тач скрина больше размеров экрана где то на пол сантиметра по всем краям.
В левом верхнем углу экрана все позиционируется на краях нормально, в правом нижнем уплывает, да и вообще плывет после четверти заметно.
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение demson »

В общем дело было и не в том :)
Как оказалось была банальная погрешность вычисления: то есть также написанный код но подругому сгруппированный работает отлично. Пишется так:
X_pix=ceil(((АЦП_X - x1)*128)/(x2-x1))
Y_pix=ceil(((АЦП_Y - y1)*64)/(y2-y1))
где х1 y1 значения ацп касания (0;0) пикселя
а x2 y2 значения ацп касания (128;64) пикселя (главная диагональ)
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение demson »

не стоит забывать про переполнение
http://stackoverflow.com/questions/7916 ... cation-why

xpr=128;
ypr=64;
xpr=ceil(((tochpad[0]-x1)*xpr)/(x2-x1));
ypr=ceil((tochpad[1]-y1)*ypr/((y2-y1)));
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
I@COM
Родился
Сообщения: 9
Зарегистрирован: Пт июл 24, 2009 08:13:53
Откуда: Kiev

Re: Калибровка сенсорного экрана.

Сообщение I@COM »

доброго времени суток !
а вы немоглибы посоветовать как написать на асме тоже самое только с другими размерами экрана
у меня применяется контролер тачпада ADS7846 ?


xpr=320;
ypr=240;
xpr=ceil(((tochpad[0]-x1)*xpr)/(x2-x1));
ypr=ceil((tochpad[1]-y1)*ypr/((y2-y1)));
Со стены ты видишь руки не пугайся это глюки
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение Spider »

Простите если не в тему
Это читали: http://www.atmel.com/dyn/resources/prod ... oc8091.pdf ?
Аватара пользователя
I@COM
Родился
Сообщения: 9
Зарегистрирован: Пт июл 24, 2009 08:13:53
Откуда: Kiev

Re: Калибровка сенсорного экрана.

Сообщение I@COM »

Да читал
там про принцыпы чтения и вычисления координат
а у меня чтение координат, запись этих координат уже написаны
я не знаю как на ассемблере эту математику представить и что потом делать с полученными данными
на С видел примеры, (но пока только учу С) и многое непонятно основываюсь сугубо на интуицию
Со стены ты видишь руки не пугайся это глюки
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Re: Калибровка сенсорного экрана.

Сообщение Spider »

Там же есть и расчёт калибровок. Я по их алгоритму делал, работает пока...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»