Raspberry Pi 4 Touch Monitor Iikot

Kamakailan ay kinailangan kong bumuo ng isang application (kiosk system) para sa / sa isang Raspberry Pi 4. Ang espesyal na bagay tungkol dito ay ang 2 touch monitor ay konektado sa pamamagitan ng HDMI, na kailangang iikot 90 degrees sa kanan. Kaya portrait format, 2 monitor sa ibabaw ng bawat isa.
Ang pag-ikot ng screen at pag-aayos nito sa ibabaw ng bawat isa ay hindi nagdulot ng anumang problema, dahil madali itong mangyari sa pamamagitan ng user interface - isang "Raspbian Buster na may desktop at inirerekomendang software" ang na-install.
Upang gawin ito, sa menu na "Raspberry -> Preferences -> Screen Configuration", i-on ang dalawang HDMI monitor sa kanan, ayusin ang mga ito sa itaas ng bawat isa at pagkatapos ay i-save ang mga setting.
Ang problema sa ito ay ang pagsasaayos ng touch ay hindi awtomatikong pinaikot, nakaayos sa ibabaw ng bawat isa at nagreresulta sa isang malaking lugar ng touch sa paglipas ng 2 monitor.
Upang gumana nang maayos ang pag-uugali ng touch, 2 configuration file - /usr/share/X11/xorg.conf.d/40-libinput.conf at /home/pi/.profile - kailangang ayusin.

Una kailangan mong basahin ang mga ID ng mga konektadong monitor. Upang gawin ito, buksan ang isang terminal at gamitin ang utos

xinput list

input. Bilang isang resulta, makakakuha ka ng mga konektadong monitor na nakalista kasama ang kaukulang mga ID. Sa case ko, may ID 6 at 7 ang monitors.

Pagkatapos sa file na /usr/share/X11/xorg.conf.d/40-libinput.conf ayusin ang bahaging "Section InputClass" sa "Identifier libinput touchpad catchall" tulad ng sumusunod:

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

Ito ang dahilan kung bakit umiikot ang touch surface.

Sa wakas, ipasok ang subdivision ng touch interface sa 2 pantay na bahagi sa dulo ng file / home / pi /.profile, upang ito ay na load sa bawat oras na ang sistema ay sinimulan.

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