3-1-2. Waveshare3.2インチLCD タッチスクリーンの設定
Raspberry Pi と Waveshare 3.2inch RPi LCD (V3)。
Touch screen to move crosshair
LCDは /dev/fb1 として、タッチパネルは /dev/input/mouse1 として認識される。
1. タッチパネルドライバの設定
sudo nano /etc/modules ← に以下の行を追加。 ads7846_device model=7846 cs=1 gpio_pendown=17 speed=1000000 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900 fbtft側のrotate設定に合わせて、 ads7846側の swap_xy も適宜設定(値は0または1)が必要らしい。
2. タッチセンサーの調整
ここからの作業は、LCDに表示したまま、Tera Term を使用して行うとやり易い。
①. “event test” & “touchscreen library” をインストールする。
sudo apt-get install evtest tslib libts-bin
②. evtestを使用してスクリーンの端をタッチした時のx,yの値をチェック。
pi@onjipi ~ $ evtest No device specified, trying to scan all of /dev/input/event* Not running as root, no devices may be available. Available devices: /dev/input/event0: ADS7846 Touchscreen Select the device event number [0-0]: 0 Input driver version is 1.0.1 Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0 Input device name: "ADS7846 Touchscreen" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 330 (BTN_TOUCH) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 0 Min 200 Max 3900 Event code 1 (ABS_Y) Value 0 Min 200 Max 3900 Event code 24 (ABS_PRESSURE) Value 0 Min 0 Max 255 Properties: Testing ... (interrupt to exit)
③. tslibを使用して画面の調整。
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate
④. 調整結果のテスト。
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/event0 ts_test
⑤. 終わったら ctrl+c で終了する
3. LXDE GUI タッチコントローラーの調整
①. “xinput_calibrator”をを使えるようにする。
sudo apt-get install xinput sudo apt-get install dh-autoreconf sudo apt-get install libx11-dev libxext-dev libxi-dev x11proto-input-dev cd ~ git clone https://github.com/tias/xinput_calibrator cd xinput_calibrator/ ./autogen.sh make sudo make install
②. LXDE GUIの立ち上げ。
FRAMEBUFFER=/dev/fb1 startx
ここで、Raspberry Pi に接続しているキーボードとマウスを利用して、
アクセサリの中のLXTerminalを起動し、
xinput_calibrator
と、入力する。 → 画面の四隅に十字マークが出るのでペンでタッチ。
③. /usr/share/X11/xorg.conf.d/99-fbturbo.conf の修正。
タッチが終わると、画面に設定値が表示されるので、それをメモし、
/usr/share/X11/xorg.conf.d/99-fbturbo.conf に
Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "Calibration" "302 3862 3893 132" ← メモした値
Option "SwapAxes" "0"
EndSection
を追加。
4. 起動画面から LCD に表示させる
boot configulationファイルを更新して、 起動時にHDMI/TV出力の/dev/fb0の変わりに LCDの/dev/fb1を使用するようにする。 /boot/cmdline.txt 一番最後の「rootwait」のあとに続けて、 fbcon=map:10 fbcon=rotate:0 fbcon=font:ProFont6x11