在树莓派4上使用2个触摸屏

时间:2020-03-19 17:42:18

标签: python raspberry-pi raspbian touchscreen

由于双HDMI输出,我正在尝试做一个在运行树莓派的树莓pi 4上使用2个触摸屏的项目。我的显示器没有问题,并且pi可以识别来自两个屏幕的触摸,但是无法识别来自哪个屏幕的触摸。最终结果是鼠标移动不稳定且不可预测。

我已经考虑过使用python(pyagutogui)来控制鼠标在两个屏幕上的触摸位置。从理论上讲,我的代码将分三步工作:

1)从/ dev / input / mouse0或/ dev / input / mouse1(或其他位置)接收触摸位置的x-y值(目前,在这里我可以看到来自触摸的“鼠标”移动)
2)应用校正因子来确定鼠标应该在显示器上的什么位置
3)使用pyautogui将鼠标移到该位置,然后单击

我的主要问题是我不知道如何从触摸屏获取原始X-Y数据。任何关于如何实现这一目标的想法,或者关于如何达到最终结果的任何其他想法,将不胜感激!

3 个答案:

答案 0 :(得分:0)

您有解决方案吗? 我安装了sudo apt-get install xinput-calibrator 校准后,我得到一个带有以下文本的窗口:

quantity

EndSection

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

所以我得到了一些坐标并对其进行了一些更改,但没有任何结果。 抱歉,我没有解决方案,但可能会有所帮助。

答案 1 :(得分:0)

古老的问题,但由于我遇到了同样的问题并且正在努力寻找简洁的答案,我会添加我的,希望对下一个人有用。

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

xinput --map-to-output <device> <crtc>

其中 device 是 xinput --list 给出的数字 ID,crtc 是 xrandr 给出的显示名称。因此,就我而言,我从自动启动运行以下 bash 脚本,将两个触摸屏映射到 Raspberry Pi 4 上各自的显示器:

#!/bin/bash
xinput --map-to-output $(xinput --list | sed -re '/G2Touch/ ! d ;  s/.*id=([0-9]*).*/\1/') HDMI-1
xinput --map-to-output $(xinput --list | sed -re '/wch\.cn/ ! d ;  s/.*id=([0-9]*).*/\1/') HDMI-2

其中 G2Touch 和 wch.cn 分别是两个显示器的 xinput --list 中给出的设备名称。

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

答案 2 :(得分:0)

@sheddenizen 谢谢, 是的,它有 2 个相同的触摸屏对我有用。

Asset