2016-08-19
タッチコントローラーXPT2046を搭載した、Raspberry Pi用液晶モニタです。このチップの名前で検索すると、いくつか情報が見つかりますが、私が購入したものを使えるようにするまでのまとめを記しておきます。
ただ接続しただけでは640x480で表示されてしまいますので、LCDのサイズである800x480で表示されるように設定します。
hdmi_group=2 hdmi_mode=87 hdmi_cvt=800 480 60 6 0 0 0 framebuffer_width=800 framebuffer_height=480
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 までを下記ファイルに記述します。
初めての場合はこのファイルは存在しないと思いますので、新しく作ります。
Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "168 3943 170 3959" Option "SwapAxes" "0" EndSection