LoginSignup
6
7

More than 5 years have passed since last update.

ラズベリーパイを縦置きのタッチスクリーンで使用する設定

Last updated at Posted at 2018-04-24

この文章について

ラズベリーパイを縦置きタッチスクリーンで使用できるようにしたときのちょっとしたOS設定変更についてのメモです。

環境

  • raspberrypi 3b
  • RASPBIAN STRETCH WITH DESKTOP
  • PN-L401C
  • OS起動時にpiユーザで自動的にDesktopログインするようになっています。

ディスプレイ表示の回転

設定ファイル「/boot/config.txt」に起動時のパラメータをセットすることでディスプレイ表示を回転させることができます。

設定できる値は下記です。

設定値 回転
0 回転なし
1 時計回りに90°
2 時計回りに180°
3 時計回りに270°

※「/boot/config.txt」の末尾に回転させたい向きを設定して再起動します。

ディスプレイ表示を時計回りに90°回転する場合

/boot/config.txt
display_hdmi_rotate=1

ディスプレイ表示を時計回りに270°回転する場合

/boot/config.txt
display_hdmi_rotate=3

再起動したら画面表示が回転した状態になっているかと思います。

タッチデバイスの回転

ここまでの手順のままだとタッチデバイスの上下左右がディスプレイの回転に追従できていません。
xinputコマンドにてタッチデバイスの回転を制御することが可能です。

まずは、タッチデバイスのデバイス名を知る必要があるので次のコマンドで確認します。

bash
pi@raspberrypi:~ $ xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Sharp Corp.   Sharp LT40 TouchPanel       id=7    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ UVC Camera (046d:0825)                    id=6    [slave  keyboard (3)]

「Virtual core pointer」のツリーにぶらさがっている「Sharp Corp. Sharp LT40 TouchPanel」が「PN-L401C」なのでこのデバイスに対してxinputの設定をします。
コマンドは次の通り

タッチデバイスを時計回りに90°回転する場合

pi@raspberrypi:~ $ xinput --set-prop 'Sharp Corp.   Sharp LT40 TouchPanel' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1

タッチデバイスを時計回りに270°回転する場合

pi@raspberrypi:~ $ xinput --set-prop 'Sharp Corp.   Sharp LT40 TouchPanel' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1

ここまでの手順でディスプレイ表示とタッチデバイス入力の回転ができるようになりました。

デスクトップ開始時にタッチデバイスを設定

最後にデスクトップ環境起動時のxinputでのタッチデバイスを設定をします。

前準備としてさきほどのxinputコマンドを実行するシェルスクリプトを作成しておきます。保存先は「~/rotate_touch_screen.sh」とします。

~/rotate_touch_screen.sh
!/bin/bash
xinput --set-prop 'Sharp Corp.   Sharp LT40 TouchPanel' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1

※上記は「タッチデバイスを時計回りに90°回転する場合」です。

スクリプト実行できるようにフラグをつけておきます。

bash
pi@raspberrypi:~ $ chmod +x ~/rotate_touch_screen.sh

次に起動時設定にスクリプト実行設定を追加します。設定するファイルは「~/.config/lxsession/LXDE-pi/autostart」で末尾に追加します。

~/.config/lxsession/LXDE-pi/autostart
@/home/pi/rotate_touch_screen.sh

再起動してみて、画面の回転、タッチデバイスの回転が問題なければ設定完了です。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7