2018年2月18日日曜日

小型HDMIモニタを搭載したRasberry PI 3 | ライタス株式会社

Rasberry Pi3は小型PCとして非常に有用で、考え方次第で利用用途がたくさんあります。

今回は、小さいHDMIタッチモニタを利用したRasberry PI 3環境を作ってみたいと思います。

使用したタッチモニタはQuimat 3.5インチタッチスクリーンです。
https://www.amazon.co.jp/gp/product/B075K56C12/


このキットを使えば、非常に簡単にタッチスクリーンを利用したRasberry PI 3環境が作れるかと思ったのですが、
何か所かはまったところがあるので、参考までに記載してみます。

1. 解像度の調整

今回使用しているタッチモニターは3:2のサイズが推奨されているので、それに対応して設定します。
通常であれば、480x320のサイズで利用するところですが、表示サイズが大きすぎてブラウザ表示だけでも大変な状況になります。
そこで、810x540に設定を変更したいと思います。

# sudo nano /boot/config.txt

以下書き換えます。

#hdmi_cvt 480 320 60 6 0 0 0
hdmi_cvt 810 540 60 6 0 0 0 #810x540

これで再起動すれば、設定が反映されます。
# sudo reboot


2. タッチの位置が左右逆になる

起動したイメージファイルが悪かったのか、タッチされる位置が左右逆転してしまいました。
これを修正するには、以下のファイルを編集します。

# sudo nano /usr/share/X11/xorg.conf.d/40-libinput.conf

座標に関しては、TransformationMatrixという値で設定されます。
詳細は、以下のURLに記載があります。
https://en.wikipedia.org/wiki/Transformation_matrix

通常はTransformationMatrixは以下のように設定されています。
⎡ 1 0 0 ⎤
⎜ 0 1 0 ⎥
⎣ 0 0 1 ⎦
{1 0 0 0 1 0 0 0 1}

これを左右逆転変更するには、
⎡ -1 0 1 ⎤
⎜ 0  1 0 ⎥
⎣ 0  0 1 ⎦
{-1 0 1 0 1 0 0 0 1}

ちなみに、上下逆転するには
⎡ 1  0  0 ⎤
⎜ 0  -1 1 ⎥
⎣ 0  0  1 ⎦
{1 0 0 0 -1 1 0 0 1}

これを修正する方法は以下の通りです。

# Match on all types of devices but tablet devices and joysticks
Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"

        Option "TransformationMatrix" "-1 0 1 0 1 0 0 0 1"

EndSection


何かの参考になれば幸いです。

0 件のコメント:

コメントを投稿