Python 在raspberry pi 4上使用2个触摸屏

Python 在raspberry pi 4上使用2个触摸屏,python,raspberry-pi,raspbian,touchscreen,Python,Raspberry Pi,Raspbian,Touchscreen,我正在尝试做一个项目,在raspberry pi 4 running buster上使用2个触摸屏,这要感谢双HDMI输出。我对显示器没有任何问题,pi可以识别来自两个屏幕的触摸,但它无法识别来自哪个屏幕的触摸。最终的结果是不稳定和不可预测的鼠标移动 我曾经考虑过使用python(pyagutogui)来控制鼠标,根据触摸在任何一个屏幕上的感觉。理论上,我的代码将分为3个步骤: 1) 从/dev/input/mouse0或/dev/input/mouse1接收触摸位置的x-y值(或可能的其他位置

我正在尝试做一个项目,在raspberry pi 4 running buster上使用2个触摸屏,这要感谢双HDMI输出。我对显示器没有任何问题,pi可以识别来自两个屏幕的触摸,但它无法识别来自哪个屏幕的触摸。最终的结果是不稳定和不可预测的鼠标移动

我曾经考虑过使用python(pyagutogui)来控制鼠标,根据触摸在任何一个屏幕上的感觉。理论上,我的代码将分为3个步骤:

1) 从/dev/input/mouse0或/dev/input/mouse1接收触摸位置的x-y值(或可能的其他位置?目前我可以从触摸中看到“鼠标”移动)
2) 应用校正系数以确定鼠标在显示器上的位置
3) 使用pyautogui将鼠标移动到该位置并单击

我的主要问题是我不知道如何从触摸屏上获取原始的X-Y数据。任何关于如何做到这一点的想法,或任何关于如何达到我的最终结果的想法都将不胜感激

你有什么解决办法吗? 我安装了sudo-apt-get-install-xinput校准器 校准后,我得到一个包含以下文本的窗口:

Section "InputClass"
    Identifier      "calibration"
    MatchProduct    "TSTP MTouch"
    Option  "MinX"  "51"
    Option  "MaxX"  "65564"
    Option  "MinY"  "82"
    Option  "MaxY"  "65398"
    Option  "SwapXY"        "0" # unless it was already set to 1
    Option  "InvertX"       "0"  # unless it was already set
    Option  "InvertY"       "0"  # unless it was already set
端部

这应该转到以下文件:/usr/share/X11/xorg.conf.d/40-libinput.conf 或/etc/X11/xorg.conf.d/10-blanking.conf

所以我得到了一些坐标,稍微改变了一下,但没有任何结果。
很抱歉,我没有一个解决方案,但这可能会有一点帮助。

古老的问题,但由于我有同样的问题,并努力寻找一个简洁的答案,我将添加我的,希望它对下一个人有用

您可以使用xinput将绝对指向设备(如触摸屏)映射到特定显示器

xinput --map-to-output <device> <crtc>
其中G2Touch和wch.cn分别是xinput--list中给出的两台显示器的设备名称

我不知道你会如何使用两个完全相同的触摸屏;我希望它们会以相同的顺序枚举,在这种情况下,您应该能够直接使用数字ID,但也许udev需要一些技巧?

@sheddenizen 非常感谢。 是的,我有两个相同的触摸屏

xinput --map-to-output 6 HDMI-1
xinput --map-to-output 7 HDMI-2
xinput --map-to-output 6 HDMI-1
xinput --map-to-output 7 HDMI-2