2016-08-19

Raspberry Pi用タッチパネル機能付き5インチHDMI LCD

タッチコントローラーXPT2046を搭載した、Raspberry Pi用液晶モニタです。このチップの名前で検索すると、いくつか情報が見つかりますが、私が購入したものを使えるようにするまでのまとめを記しておきます。

参考サイト

解像度の変更

ただ接続しただけでは640x480で表示されてしまいますので、LCDのサイズである800x480で表示されるように設定します。

/boot/config.txt

hdmi_group=2
hdmi_mode=87
hdmi_cvt=800 480 60 6 0 0 0
framebuffer_width=800
framebuffer_height=480 

タッチパネルを有効にする

/boot/config.txt

dtparam=spi=on
dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150

タッチパネルをキャリブレーションする

これを行わないと、ペンを押下した位置とマウスカーソルの位置がずれますので、タッチセンサーの補正値を設定します。

xinput-calibratorを使用します。

$ sudo apt-get install xinput-calibrator
$ xinput_calibrator

xinput_calibratorを実行すると、十字マークが表示されるので、竹串か爪楊枝のようなものでタッチします。4カ所行うと結果が表示されます。

Calibrating EVDEV driver for "ADS7846 Touchscreen" id=6
current calibration values (from XInput): min_x=149, max_x=3940 and min_y=203, max_y=3945
Doing dynamic recalibration: Setting calibration data: 168, 3943, 170, 3959 --> Making the calibration permanent <-- copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's) Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "168 3943 170 3959" Option "SwapAxes" "0" EndSection

99-calibration.conf に記述してくださいとのことです。/etc/X11/xorg.conf.d または /usr/share/X11/xorg.conf.d のどちらかということですが、Raspbianの場合は後者です。表示された結果の Section から EndSection までを下記ファイルに記述します。

/usr/share/X11/xorg.conf.d/99-calibration.conf

初めての場合はこのファイルは存在しないと思いますので、新しく作ります。

Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "ADS7846 Touchscreen"
        Option  "Calibration"   "168 3943 170 3959"
        Option  "SwapAxes"      "0"
EndSection