「せばな」は言わない

綱の上を歩き、岩を登るエンジニア

【Raspberry Pi】ラズパイで7inch タッチディスプレイの回転

f:id:tk_thunder:20190223000715j:plain

ラズパイで7inch タッチディスプレイの回転

タッチディスプレイの画面とタッチ座標を回転させる方法。

3週間くらいかかったので記念にブログに書いておきます。

ディスプレイ

Raspberry Pi 公式 7" タッチスクリーン LCD Element14

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