Raspberry Pi Waveshare3.2インチLCD タッチスクリーンの調整完了

Raspberry Pi ノウハウと作品集
Waveshare3.2インチLCD 装着
 

lcd001Raspberry Pi に”3.2インチ”のLCDを付ければ大きさがぴったりで、Raspberry Pi を携帯して使用するには便利ではないかと、Amazonで”Waveshare 3.2inch RPi LCD (V3)”を購入。
スクリーンへの表示はうまく行ったが、タッチスクリーンが機能せず、四苦八苦する。

 
スポンサー リンク
 
 

2015-05-05-raspbian-wheezy ではうまく行かず、2015-02-16-raspbian-wheezy でセットアップするとOKとなる。(理由、不明。)

lcdtest3Raspberry Pi と Waveshare 3.2inch RPi LCD (V3)。 Touch screen to move crosshair

LCDは /dev/fb1 として、タッチパネルは /dev/input/mouse1 として認識される。

  
1. タッチパネルドライバの設定
 
/etc/modules の編集。

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 crosshair to Calibrate
Touch screen to move crosshair
上図のメッセージが出るので、タッチペンで入力し感度を調整する。

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

④. 調整結果のテスト。
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/event0 ts_test
 
Dragのテスト:十字記号を動かしてみる。
Dragのテスト:十字記号を動かしてみる
 
Drawのテスト:タッチペンで描いてみる。
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
 
 を追加。
 
 LXDE GUI タッチコントローラーの調整

 LXDE GUI タッチコントローラーの調整

 LXDE GUI タッチコントローラーの調整
 
 
4. 起動画面から LCD に表示させる
 
boot configulationファイルを更新して、起動時にHDMI/TV出力の/dev/fb0の変わりにLCDの/dev/fb1を使用するようにする。
 /boot/cmdline.txt 一番最後の「rootwait」のあとに続けて、
 
 fbcon=map:10 fbcon=rotate:0 fbcon=font:ProFont6x11
 
起動画面から LCD に表示させる
 
 

以上。
(2015.05.27)

 
             

スポンサー リンク
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください