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
在Terminal中輸入
〖 sudo nano /boot/config.txt 〗
找到HDMI_mode=82 , 在其下方新增〖display_hdmi_rotate=1〗, 按" ctrl+X" >> 按" Y ">>按" enter" 儲存
註1: 依順時針方向計算旋轉角度, display_rotate =0 (橫向顯示) display_rotate=1 (90度) display_rotate=2 (180度) display_rotate=3 (270度)
註2: 由於M505T之電源開關位於螢幕正面右側, 我們建議放置於桌面時, M505T選擇90度直向顯示使用。
注意:Debian於2022年4月進版,若您輸入display_hdmi_rotate=1 指令後,螢幕方向並未旋轉,請檢查config file, 取消 dtoverlay=vc4-kms-v3d的預設指令[在指令前方加#],儲存後重新開機, display_hdmi_rotate的指令即可正常運行。
④ 重新開機
在Terminal中輸入〖 sudo reboot 〗
⑤ 開機後, 螢幕畫面改為直向顯示
在Terminal中輸入
〖 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. 安裝觸控校正程式