Страница 1 из 2

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

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

на данный момент: меряем верх лево (x1,y1) и низ право (x2,y2)
далее любое касание будет как
(координата_X - x1 ) / ( (x2-x1) / 128)
(координата_Y -y1 ) / ( (y2-y1) / 64)

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

Добавлено: Вс окт 03, 2010 23:33:15
ibiza11
при калибровке на экране рисуется точка, в которую нужно попасть пером, таким образом запоминаются "крайние" значения АЦП.
Промежуточные значения вычисляются по линейному закону, как Вы и говорите. также можно ввести промежуточное значение в центре экрана, получив интерполяцию не к прямой, а к двум отрезкам (возможно лежащим на одной прямой). надеюсь понятно пояснил :oops: не мастер, уж простите.

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

Добавлено: Вс окт 03, 2010 23:58:53
demson
Да, это понятно. Идея хорошая, запишем.
Тогда такой вопрос, раз сама панель линейна:
Всетаки что то там нелинейное есть может ацп врет на близких к 5в напряжениях? хотелось бы узнать в чем дело.

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

Добавлено: Пн окт 04, 2010 02:42:16
WildCat
Так может оно все таки логарифмическое тоже бывает?
Кстати при калибровке крайние значения АЦП не определяются, в том то и дело. Мы давим не в самый угол экрана, а чуть ближе к центру.

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

Добавлено: Пн окт 04, 2010 11:09:05
Aheir
А какой ток бегает в цепи? Насколько помню, из-за этого может быть нелинейность.

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

Добавлено: Пн окт 04, 2010 13:29:23
WildCat
Кстати, поди демс подключил 330омный экран напрямую на питание) Он там обуглиться должен :))

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

Добавлено: Пн окт 04, 2010 15:16:39
demson
Подключен к мк напрямую, ножками ставится ноль и единичка.

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

Добавлено: Пн окт 04, 2010 16:36:19
demson
вот диаграмма смещений, напрашивается линейная зависимость.
измерял проходом по диагонали.

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

Добавлено: Пн окт 04, 2010 17:11:54
demson
и еще более точно

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

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

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


WildCat писал(а):Так может оно все таки логарифмическое тоже бывает?
:shock: в первый раз слышу. зачем так усложнять сенсор? там же резистивная пленка равномерно нанесена.

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

Добавлено: Пн окт 04, 2010 22:17:56
demson
Нет, это все с МК, усреднение есть 4 замера, если расхождение между замерами ацп более чем на 10 единиц то результат не считается нажатием. Значения в принципе скакать немного могут, потому что попасть в квадрат размером пиксель на пиксель нереально, и к тому же был всего 1 проход по всем значениям, 1 раз то есть. :) Но важен тот факт что ошибка проявляется к концу - на значениях ацп 150-200 а это где то 4-5 вольт. И имеет линейную зависимость.
Может просто с некоторых значений вводить поправочный коэффициент? по графику вроде бы линейно "уплывает".

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

Добавлено: Вт окт 05, 2010 06:09:04
ibiza11
сейчас на свежую голову подумал, в конце (ближе к краю стеклышка) невозможно нажать в край (не повредив тачскрин), ибо стекло не пластик, сильно не прогнешь, получается ближе к краям тачскрина на самом деле нажмается не та точка, где сейчас перо, а чуть ближе к центру. пока в голову не приходит как с этим бороться. Вы какую точность ожидаете от тачскрина 128х64?

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

Добавлено: Вт окт 05, 2010 10:41:20
WildCat
Попиксельную как раз. Чтоб можно было в каждый пиксел экрана ткнуть и включить.

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

Добавлено: Вт окт 05, 2010 16:28:51
demson
да лан пиксельную :))) , хоть бы в пятак (5*5) попасть. Размеры тач скрина больше размеров экрана где то на пол сантиметра по всем краям.
В левом верхнем углу экрана все позиционируется на краях нормально, в правом нижнем уплывает, да и вообще плывет после четверти заметно.

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

Добавлено: Сб окт 09, 2010 10:51:10
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) пикселя (главная диагональ)

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

Добавлено: Сб окт 09, 2010 11:24:00
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)));

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

Добавлено: Пн окт 11, 2010 10:36:43
I@COM
доброго времени суток !
а вы немоглибы посоветовать как написать на асме тоже самое только с другими размерами экрана
у меня применяется контролер тачпада ADS7846 ?


xpr=320;
ypr=240;
xpr=ceil(((tochpad[0]-x1)*xpr)/(x2-x1));
ypr=ceil((tochpad[1]-y1)*ypr/((y2-y1)));

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

Добавлено: Пн окт 11, 2010 11:05:32
Spider
Простите если не в тему
Это читали: http://www.atmel.com/dyn/resources/prod ... oc8091.pdf ?

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

Добавлено: Пн окт 11, 2010 12:05:33
I@COM
Да читал
там про принцыпы чтения и вычисления координат
а у меня чтение координат, запись этих координат уже написаны
я не знаю как на ассемблере эту математику представить и что потом делать с полученными данными
на С видел примеры, (но пока только учу С) и многое непонятно основываюсь сугубо на интуицию

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

Добавлено: Пн окт 11, 2010 12:16:44
Spider
Там же есть и расчёт калибровок. Я по их алгоритму делал, работает пока...