您尚未登录。

楼主 #1 2020-06-05 14:34:08

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

nuc972做的板,buildroot构建的带qt5.6的文件系统,接的是个7寸的800*480的屏幕,电阻触控面板。

画了个界面,之前用usb鼠标点击,没发现问题。
现在用电阻触摸面板,发现点击很多次以后才有可能有效。
反复试了几次,发现qt程序如果设的比较小,不占满800*480的话,按键都是有效的。
设为800*480后,按键基本失灵,很难按出来。
高度略小一点,比如高度设为450,则大部分按键没问题,有时候,最下边一排,或最左边一排按键不灵敏。

最近编辑记录 Gentlepig (2020-06-05 16:33:42)

离线

#2 2020-06-05 14:44:40

哇酷小二
wechat微信:whycan_cn
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,378
积分: 1902
个人网站

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

先用 ts_test 看下四边,四角触摸是否正常?





离线

楼主 #3 2020-06-05 14:52:34

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

ts_test基本正常,四角和其它区域效果一致。

说基本正常,是因为,运行ts_test用手指画线,有时候画的线,中间有一小截断开的。

编译内核时,关于触摸面板的adc选项里有个sample counter值,默认是200,我改过成0,结果运行ts_test后光标不怎么跟手了。
改为20,用手指画线,不光有断开的地方,有的时候是向某个方向凸出个三角尖峰来。所以后来又改回200了。

离线

#4 2020-06-05 15:04:14

春风吹又生
会员
注册时间: 2020-02-25
已发帖子: 61
积分: 60

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

Gentlepig 说:

ts_test基本正常,四角和其它区域效果一致。

说基本正常,是因为,运行ts_test用手指画线,有时候画的线,中间有一小截断开的。

编译内核时,关于触摸面板的adc选项里有个sample counter值,默认是200,我改过成0,结果运行ts_test后光标不怎么跟手了。
改为20,用手指画线,不光有断开的地方,有的时候是向某个方向凸出个三角尖峰来。所以后来又改回200了。

发个图看看

离线

楼主 #5 2020-06-05 15:34:32

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

串口右移了10,下移了50:

串口无右移,只下移了50:

现在是将主窗口向下移动到底端了,最左侧的一排按钮失灵,有的按键按下去结果却是其他按键被按下了。(视频应该横着看)

最近编辑记录 Gentlepig (2020-06-05 16:00:48)

离线

#6 2020-06-05 15:38:00

哦豁哦豁
会员
注册时间: 2020-01-17
已发帖子: 79
积分: 79

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

ts_test 的图片也发一张看看

离线

楼主 #7 2020-06-05 15:49:31

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

sample_count为200的截图:
887CC16F1D6E5203ACCAA23B00DA49BF.jpg

sample_count为20的截图:
2B6605D6603095A3398AB186522BC95F.jpg

最近编辑记录 Gentlepig (2020-06-05 15:58:32)

离线

楼主 #8 2020-06-05 16:33:00

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

这是全屏后的效果,按键基本失灵:

离线

#9 2020-06-05 16:44:19

工控小白
会员
注册时间: 2020-05-20
已发帖子: 39
积分: 38

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

sample_count 是啥?没听说过

离线

#10 2020-06-05 16:45:51

哦豁哦豁
会员
注册时间: 2020-01-17
已发帖子: 79
积分: 79

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

ts_test 测试只有一些误触, 不至于Qt程序全屏完全按不了吧。

离线

#11 2020-06-05 16:49:29

哇酷小二
wechat微信:whycan_cn
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,378
积分: 1902
个人网站

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

用的 NUC972 自带触摸屏外设?

修改这个配置文件, /etc/ts.conf

这里面有各种滤波器参数, 调调改改。

# Access plugins
################

# Uncomment if you wish to use the linux input layer event interface
module_raw input

# For other driver modules, see the ts.conf man page


# Filter plugins
################

# Uncomment if first or last samples are unreliable
# module skip nhead=1 ntail=1

# Uncomment if needed for devices that measure pressure
module pthres pmin=1

# Uncomment if needed
# module debounce drop_threshold=40

# Uncomment if needed to filter spikes
# module median depth=5

# Uncomment to enable smoothing of fraction N/D
# module iir N=6 D=10

# Uncomment if needed
# module lowpass factor=0.1 threshold=1

# Uncomment if needed to filter noise samples
module dejitter delta=100

# Uncomment and adjust if you need to invert an axis or both
# module invert x0=800 y0=480

# Uncomment to use ts_calibrate's settings
module linear




离线

楼主 #12 2020-06-05 16:54:17

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

# Uncomment if you wish to use the linux input layer event interface
module_raw input

# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie

# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
# module_raw corgi

# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1x00

# Uncomment if you're using an HP iPaq h3600 or similar
# module_raw h3600

# Uncomment if you're using a Hitachi Webpad
# module_raw mk712

# Uncomment if you're using an IBM Arctic II
# module_raw arctic2

module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

因为在fb_test里基本正常,所以我觉得还是qt5的问题,不知道是哪里配置错误了。

最近编辑记录 Gentlepig (2020-06-05 17:05:13)

离线

楼主 #13 2020-06-05 16:56:49

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

工控小白 说:

sample_count 是啥?没听说过

刚看了下,是adc sample counter。

离线

#14 2020-06-05 16:58:38

哇酷小二
wechat微信:whycan_cn
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,378
积分: 1902
个人网站

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

/etc/ts.conf 你可以自行调整,直到调到ts_test 最优为止。





离线

楼主 #15 2020-06-05 17:00:25

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

哇酷小二 说:

/etc/ts.conf 你可以自行调整,直到调到ts_test 最优为止。

谢谢。现在ts_test虽然不是最优,但效果也能用。qt5程序全屏触控失灵,我觉得和ts.conf关系不大吧。

离线

#16 2020-06-05 17:02:29

哇酷小二
wechat微信:whycan_cn
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,378
积分: 1902
个人网站

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

看下你的 环境变量和qt app启动命令





离线

楼主 #17 2020-06-05 17:04:47

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

这是/etc/profile的内容:

export PATH=/bin:/sbin:/usr/bin:/usr/sbin

if [ "$PS1" ]; then
        if [ "`id -u`" -eq 0 ]; then
                export PS1='\u@h \w# '
        else
                export PS1=']u@h \w$ '
        fi
fi

export PAGER='/bin/more '
export EDITOR='/bin/vi'

# Source configuration files from /etc/profile.d
for i in /etc/profile.d/*.sh ; do
        if [ -r "$i" ]; then
                . $i
        fi
        unset i
done

export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal


export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x480:mmsize=200x120:offset=0x
export QT_QPA_GENERIC_PLUGINS=tslib:$TSLIB_TSDEVICE

启动程序的命令:/mnt/nfs/calculator

现在的感觉就像是,全屏后,触控坐标和显示坐标对应不上了。

最近编辑记录 Gentlepig (2020-06-05 17:08:32)

离线

#18 2020-06-05 17:08:57

novice
会员
注册时间: 2019-07-26
已发帖子: 112
积分: 93

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

电阻屏触摸采样率200有点浪费了,正常情况下80-120就能保证画线不断了。如果不需要画线等连续追踪坐标的操作,只需要点击操作,可以设定更低的数值。

离线

楼主 #19 2020-06-05 17:12:28

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

novice 说:

电阻屏触摸采样率200有点浪费了,正常情况下80-120就能保证画线不断了。如果不需要画线等连续追踪坐标的操作,只需要点击操作,可以设定更低的数值。

谢谢。设过20,图在上边,效果有点差,设成0时,光标就不跟手了。

离线

#20 2020-06-05 17:24:54

哇酷小二
wechat微信:whycan_cn
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,378
积分: 1902
个人网站

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

环境变量看不出什么问题,可以做一个简单的Qt程序,把点击的X/Y坐标打印出来, 或者直接显示到Qt界面,看是什么情况.





离线

楼主 #21 2020-06-05 17:30:03

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

好,明天试试。

离线

楼主 #22 2020-06-08 09:38:23

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

点击屏幕左上角,按说坐标应该是(0, 0):
1_20200608-0931.jpg

点击屏幕右上角,按说坐标应该是(800, 0):
2_20200608-0931.jpg

点击屏幕右下角,按说坐标应该是(800, 480):
3_20200608-0932.jpg

点击屏幕左下角,按说坐标应该是(048, 0):
4.jpg

点击屏幕中心保持不松开,按说坐标应该是(400, 240):
5.jpg

松开不再保持点击屏幕中心,按说坐标应该是(400, 240):
6.jpg

执行fb-test测试程序,因为布线时R和B整组对调了,所以红蓝显示对调了。但不知为何上下分层?
7.jpg

离线

#23 2020-06-08 09:54:51

哇酷小二
wechat微信:whycan_cn
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,378
积分: 1902
个人网站

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

有点诡异, 用: ts_print 和 ts_print_raw 这两个程序试一试,

还是怀疑你的tslib校准文件(/etc/pointercal)有问题,

或者 Qt用了错误的校准文件。





离线

楼主 #24 2020-06-08 10:06:07

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

小结下测试结果:
x方向:
最左边好像不是从0开始的,大概是50开始。依次向右移动过程中发现,按下是一个值,松开后的值大概是按下值的4倍多。因此向右移动大概到200像素位置以后,松开的坐标值都是799了。

y方向:
先说一直保持按下的状态,从上向下滑动,是从0开始逐渐增大,增大到大概400(与实际位置一致)后,又开始往小的方向变,最降到80多。
如果点击后不保持按下状态,则数据有可能是479,也可能是正常值。

离线

楼主 #25 2020-06-08 10:08:08

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,204
积分: 1140.5

Re: 求教,800*480的电阻触控屏,qt5程序大小设为800*480后,按键就失控。

哇酷小二 说:

有点诡异, 用: ts_print 和 ts_print_raw 这两个程序试一试,

还是怀疑你的tslib校准文件(/etc/pointercal)有问题,

或者 Qt用了错误的校准文件。


ts_print测试是正常的。

-------------------------------------

感谢。

环境变量里,加入以下这两句后,没问题了...
export QT_QPA_EGLFS_TSLIB=1   
export QT_QPA_FB_TSLIB=1

最近编辑记录 Gentlepig (2020-06-08 10:23:56)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn