เมื่อเร็ว ๆ นี้ฉันต้องพัฒนาแอปพลิเคชัน (ระบบคีออสก์) สําหรับ / บน Raspberry Pi 4 ความพิเศษเกี่ยวกับเรื่องนี้คือต้องเชื่อมต่อจอภาพแบบสัมผัส 2 จอผ่าน HDMI ซึ่งต้องหมุนไปทางขวา 90 องศา ดังนั้นรูปแบบแนวตั้ง 2 จอภาพอยู่ด้านบนของกันและกัน
การหมุนหน้าจอและจัดเรียงไว้ด้านบนของกันและกันไม่ก่อให้เกิดปัญหาใด ๆ เนื่องจากเป็นไปได้ง่ายผ่านอินเทอร์เฟซผู้ใช้ - ติดตั้ง "Raspbian Buster พร้อมเดสก์ท็อปและซอฟต์แวร์ที่แนะนํา"
ในการดําเนินการนี้ในเมนู" Raspberry -> Preferences -> Screen Configuration" ให้หมุนจอภาพ HDMI สองจอไปทางขวาจัดเรียงไว้ด้านบนจากนั้นบันทึกการตั้งค่า
ปัญหาของเรื่องนี้คือการกําหนดค่าการสัมผัสไม่ได้หมุนโดยอัตโนมัติจัดเรียงทับกันและส่งผลให้มีพื้นที่สัมผัสขนาดใหญ่บนจอภาพ 2 จอ
เพื่อให้พฤติกรรมการสัมผัสทํางานได้อย่างถูกต้องต้องปรับไฟล์การกําหนดค่า 2 ไฟล์ - /usr/share/X11/xorg.conf.d/40-libinput.conf และ /home/pi/.profile -

ก่อนอื่นคุณต้องอ่านรหัสของจอภาพที่เชื่อมต่อ ในการดําเนินการนี้ให้เปิดเทอร์มินัลและใช้คําสั่ง

xinput list

อินพุต ด้วยเหตุนี้คุณจะได้รับจอภาพที่เชื่อมต่อซึ่งแสดงด้วยรหัสที่เกี่ยวข้อง ในกรณีของฉันจอภาพมีรหัส 6 และ 7

จากนั้นในไฟล์ /usr/share/X11/xorg.conf.d/40-libinput.conf ให้ปรับส่วน "Section InputClass" ด้วย "Identifier libinput touchpad catchall" ดังนี้:

Section "InputClass" 
        Identifier "libinput touchpad catchall" 
        MatchIsTouchscreen "on" 
        Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1" 
        MatchDevicePath "/dev/input/event*" 
        Driver "libinput" 
EndSection

ทําให้พื้นผิวสัมผัสหมุนได้

สุดท้ายให้ใส่ส่วนย่อยของอินเทอร์เฟซแบบสัมผัสออกเป็น 2 ส่วนเท่า ๆ กันที่ส่วนท้ายของไฟล์ /home/pi/.profile เพื่อให้โหลดทุกครั้งที่ระบบเริ่มทํางาน

xinput set-prop "6" --type=float "Coordinate Transformation Matrix" 1 0 0 0 0.5 0 0 0 1
xinput set-prop "7" --type=float "Coordinate Transformation Matrix" 1 0 0 0 0.5 0.5 0 0 1
Walter Prechtl

Walter Prechtl

อัพเดทเมื่อ: 06. March 2024
เวลาอ่านหนังสือ: 3 minutes