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
 

Touch screen to move crosshair
左図のメッセージが出るので、
タッチペンで入力し感度を調整する。

十字記号が、 四隅と最後に中央に出て来るので、
それぞれタッチして行く



④. 調整結果のテスト。

 sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/event0 ts_test



  Dragのテスト:十字記号を動かしてみる  Drawのテスト:タッチペンで描いてみる。

  
  

⑤. 終わったら 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








関連ページ