Калибровка touch screen на Raspberry Pi

Появилась необходимость откалибровать сенсорный дисплей EloTouch подключенный по USB к Raspberry Pi с Raspbian на борту. Приступим.

Для начала установим необходимые пакеты из стандартного репозитория.

sudo apt-get install libx11-dev libxext-dev libxi-dev x11proto-input-dev

Скачиваем xinput_calibrator из репозитория, распаковываем и собираем.

wget http://github.com/downloads/tias/xinput_calibrator/xinput_calibrator-0.7.5.tar.gz
tar -xzvf xinput_calibrator-0.7.5.tar.gz
./configure
make
sudo make install

Все готово. Можно запускать xinput_calibrator из Lxterminal (или из bash по ssh с заранее подключенной X сессией командой export DISPLAY=:0.0)

На выходе программы мы получим следующие данные

pi@raspberry ~ $ xinput_calibrator
Calibrating EVDEV driver for "EloTouchSystems,Inc Elo TouchSystems 2216 AccuTouch® USB Touchmonitor Interface" id=7
  current calibration values (from XInput): min_x=421, max_x=3561 and min_y=598, max_y=3479

Doing dynamic recalibration:
  Setting new calibration data: 452, 3558, 603, 3445


--> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'
Section "InputClass"
  Identifier	"calibration"
  MatchProduct	"EloTouchSystems,Inc Elo TouchSystems 2216 AccuTouch® USB Touchmonitor Interface"
  Option	"Calibration"	"452 3558 603 3445"
EndSection

Секцию InputClass нужно поместить в один из конфигурационных файлов и перезагрузить Raspberry Pi

/usr/share/X11/xorg.conf.d/10-evdev.conf
/usr/share/X11/xorg.conf.d/01-input.conf

 

2 comments on “Калибровка touch screen на Raspberry Pi

  1. У меня резистивный 7″ тачскрин от eGalax. ОС Raspbian. Прочитал множество статей, в том числе эту. Не помогло. Путём долгих и мучительных поисков нашёл своё решение. Весь порядок действий по калибровке изложил в видео:
    https://www.youtube.com/watch?v=pChXP9ECa74

    Сравнивая с этой статьёй, отмечу что команды до «sudo make install» порядок действий у меня тот же. Дальше начинаются расхождения.

    sudo apt-get install xserver-xorg-input-evdev xinput-calibrator -y
    // Пакет предоставляет драйвер для устройств ввода, использующих evdev, механизм доставки событий ядра Linux.

    // На всякий случай проверьте каталог /etc/X11/xorg.conf.d
    // Его либо не должно существовать, либо он должен быть пустым

    sudo mv /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
    // Переименовываем файл 10-evdev.conf в 45-evdev.conf
    // Это нужно, чтобы номер файла настроек evdev был > номера настроек libinput

    // Далее редактируем /usr/share/X11/xorg.conf.d/40-libinput.conf
    ————————————————————-
    Section «InputClass»
    Identifier «libinput touchscreen catchall»
    MatchIsTouchscreen «on»
    MatchDevicePath «/dev/input/event*»
    Driver «libinput» // заменить на «evdev» !!!
    EndSection

    // Далее редактируем (если нет файла, создаём) /usr/share/X11/xorg.conf.d/99-calibration.conf
    —————————————————————-
    Section «InputClass»
    Identifier «calibration»
    MatchProduct «eGalax Inc. USB TouchController»
    Option «Calibration» «0 2000 0 2000»
    Option «SwapAxes» «0»
    Option «TransformationMatrix» «-1 0 1 0 -1 1 0 0 1»
    EndSection

    // Опции «Calibration», «SwapAxes», «TransformationMatrix» указаны предварительные значения !!! Подробнее смотри в видео.

    // Вводим на рабочем столе Raspberry Pi:
    ——————————————
    xinput_calibrator
    // после калибровки получаем 4 числа, которые записываем в файл конфигурации
    sudo nano /usr/share/X11/xorg.conf.d/99-calibration.conf

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *