Raspberry Pi Quimat 3.5インチタッチスクリーンをUbuntuで使う
これです
LCDがGPIOじゃなくてHDMI接続なのでGPIOが塞がらないというか実際電源供給やらで塞がるんですが、他の安物と違ってGPIOが全部使えるようにピンヘッダが外部に出ていて便利ラズパイ用LCDはコレ一択な感じすらある
環境
Raspberry Pi 3 Model B
Ubuntu Mate 16.04
初めにconfig.txtを編集して解像度の変更とタッチパネルを有効化させます
$ sudo nano /boot/config.txt
ファイルの最下部にこれらを記述します
途中にも色々それっぽい項目はあるのですが全部コメントアウトされてるので気にしなくてよいです
hdmi_drive=2 hdmi_group=2 hdmi_mode=87 hdmi_cvt=800 480 60 6 0 0 0 dtparam=spi=on display_rotate=2 dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150,swapxy=1
再起動するといい感じの表示になってると思います
タッチパネルのキャリブレーションをします
$ sudo apt-get install xinput-calibrator
$ DISPLAY=:0.0 xinput_calibrator
キャリブレーション画面になるので赤い十字のマーカーの中心をタッチしていきます
終わると結果がこんな感じで出てきます
pi@pi-desktop:~$ DISPLAY=:0.0 xinput_calibrator Setting calibration data: 0, 4095, 0, 4095 Calibrating EVDEV driver for "ADS7846 Touchscreen" id=6 current calibration values (from XInput): min_x=0, max_x=4095 and min_y=0, max_y=4095 Doing dynamic recalibration: Setting calibration data: 206, 3949, 172, 3866 --> 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" "206 3949 172 3866" Option "SwapAxes" "0" EndSection
Ubuntuの場合/usr/share/X11/xorg.conf.d/99-calibiration.confにファイルを作成します
$ sudo nano /usr/share/X11/xorg.conf.d/99-calibiration.conf
結果のSection~EndSectionをコピペするか写経します
Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "206 3949 172 3866" Option "SwapAxes" "0" EndSection
再起動して正常に動作することを確認します
おわり
追記というかなんというかおまけというか
タッチパネルに向きを合わせるためにdisplay_rotate=2で画面の向きを180度回転させてるんですけど、そうするとHDMI端子が手前側にくるんですね
自分はGPIOを手前にしたくて少し調べたんですけどタッチパネルを反転するにはX
windowのほうを設定を変えなくてはいけないみたいです
昔はlcd_rotate=2で反転できたらしいんですけど
とりあえずはそのままの向きで使おう思います
追記の追記
画面とタッチパネルの反転ができました
config.txtのdisplay_rotate=2のところを編集
display_rotate=0
下記コマンドを実行しタッチパネルを反転
$ xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
反転が確認できたら起動時にコマンドが実行されるようにスタートアップに登録します
System>Personal>Startup Applicationsを開き上記コマンド追加します
必要に応じてキャリブレーションをしたりしましょう
ただ、自分の環境ではタッチパネルを反転させた後にキャリブレーションしたら逆にズレが大きくなったので補正の値は反転前のを使っています