ラズパイで7inch タッチディスプレイの回転
タッチディスプレイの画面とタッチ座標を回転させる方法。
3週間くらいかかったので記念にブログに書いておきます。
ディスプレイ
Raspberry Pi 公式 7" タッチスクリーン LCD Element14
- 発売日: 2016/09/01
- メディア: Personal Computers
ケース
仕事でラズパイに7inchのディスプレイを接続して、「縦置き」するということがありました。
もちろん横に表示されている画面を縦にしないといけないのでハードのみならず、ソフト的にも画面を回転させなければいけません。
いろんな数値をいじったりキャリブレーションしたりあらゆる手段を講じて、なんとか希望通りになりました。
過去の記事もたくさん参考にしたのですが、どれもそのままの方法ではうまく行かず…試行した内容を整理しました。
今回の内容は画面を縦に使用する場合の内容です。通常の横置きならば "lcd_rotate=0" or "lcd_rotate=2" で対応できます。
ちなみにHDMIのディスプレイでは試していないので、このままの内容は適用できるかは分かりません。
手順
- 接続されているタッチディスプレイの名前を調べる※sshからはコマンドが通らないので端末から操作する。ディスプレイとキーボード、マウスを接続する
xinput list
自分の結果(接続ディスプレイで違う結果になると思います)
Virtual core pointer id=2 [master pointer (3)] Virtual core XTEST pointer id=4 [slave pointer (2)] Compx 2.4G Receiver id=7 [slave pointer (2)] これ!→ FT5406 memory based driver id=8 [slave pointer (2)] HID 04f3:0103 id=10 [slave pointer (2)] Virtual core keyboard id=3 [master keyboard (2)] Virtual core XTEST keyboard id=5 [slave keyboard (3)] Compx 2.4G Receiver id=6 [slave keyboard (3)] Compx 2.4G Receiver id=9 [slave keyboard (3)] HID 04f3:0103
- /etc/X11に"xorg.conf.d"というディレクトリを作成する。
cd /etc/X11/
sudo mkdir xorg.conf.d
- "xorg.conf.d"内に"99-calibration.conf"というファイルを作成する。
sudo nano 99-calibration.conf
- "99-calibration.conf"に以下の内容を記述する
Section "InputClass" Identifier "calibration" MatchProduct "FT5406 memory based driver" Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1" EndSection
"MatchProduct"は1で調べたタッチディスプレイの名前
"Option"は90°か270°かで変わる。
90° : "TransformationMatrix" "0 1 0 -1 0 1 0 0 1" 270° : "TransformationMatrix" "0 -1 1 1 0 0 0 0 1"
数値も""で囲わないと起動時にデスクトップが表示されなくなったりするので注意。
そうなってもコマンドで操作できるので問題なかったです(やらかし)
- 再起動する
sudo reboot
参考文献
キャリブレーションについて
https://a244.hateblo.jp/entry/2016/10/09/014932
ラズパイフォーラム
https://www.raspberrypi.org/forums/viewtopic.php?t=194273