2022/05/05更新|By G小編
当树莓派玩家需要将触摸屏做直向显示应用时, 经常遭遇到显示影像已经改为直向显示、但屏幕的触摸位置却未同步旋转的困扰。这是由于树莓派触摸屏的触空位置必须透过变换矩阵(TransformationMatrix) 重新定义光标的相对位置,未在Xinput中重新指定正确的直向触摸变换矩阵值,触摸屏便无法反应正确的触摸位置。
本文将详细说明如何在树莓派操作系统将显示影像设定为直向(90度) 或直向翻转(270度),并透过指定变换矩阵位置来设定M505T触摸屏为直向或 直向翻转操作, 以满足玩家在Kiosk、 导览系统或工业控制等直向的触摸操作需求。
树莓派操作系统设定画面(Raspi-Config)中的分辨率选项,只能选择标准的横向显示;例如M505T的设定值应为 [ DMT Mode 82 1920x1080 60Hz 16:9 ] ,是16:9 的横向显示。(了解更多Raspi-Config说明)
欲将M505T做直向显示应用时,请依下列步骤进行设定。
点选桌面左上角的Termianl图示打开Terminal
输入
〖 sudo nano /boot/config.txt 〗
找到 " HDMI_mode=82 " , 在其下方新增〖display_hdmi_rotate=1〗, 按" ctrl+X" >> 按" Y ">>按" enter" 储存
注1: 依顺时针方向计算旋转角度, display_hdmi_rotate =0 (横向显示) display_hdmi_rotate=1 (90度) display_hdmi_rotate=2 (180度) display_hdmi_rotate=3 (270度)
注2: 由于M505T之电源开关位于屏幕正面右侧, 我们建议放置于桌面时, M505T选择90度直向显示使用。
注意:Debian于2022年4月进版,若您输入display_hdmi_rotate=1 指令后,屏幕方向并未旋转,请检查config file, 取消 dtoverlay=vc4-kms-v3d的默认指令[在指令前方加#],储存后重新启动, display_hdmi_rotate的指令即可正常运行。
④ 重新启动
输入 〖 sudo reboot 〗
⑤ 开机后, 屏幕画面改为直向显示
输入〖 cd /usr/share/X11/xorg.conf.d〗
输入〖 ls〗 ,列出文件夹中所有文件名
输入〖sudo nano 40-libinput.conf〗
找到touchscreen 的InputClass段落 , 输入 〖Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1" 〗
M505T 不同旋转角度之触摸变换矩阵值
90° = Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"
180° = Option "TransformationMatrix" "-1 0 1 0 -1 1 0 0 1"
270° = Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1"
注: 不同厂牌/型号触摸屏之XY起始点位置可能不同,故90° 与 270°的变换矩阵值可能恰好相反,M505T以外的机型请自行尝试调整!
输入〖 sudo reboot〗
直向的M505T触摸屏依然可以使用xinport_calibrator程序进行触摸位置校正,以获得更精准的触摸操作;详细的步骤请按此参考文章
3. 安装触摸校正程序