打印

请教:机械鼠标如何提高分辩率??

[复制链接]
1255|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
caihong001|  楼主 | 2014-8-28 09:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自已用cypree主控DIY了两款鼠标,一个光电的,一个机械的,都是自适应USB与PS2
现在光电的一切正常,效果也很好,而且通过控制光电传感器芯片可以自由调节分辩率。

但在调试机械鼠标时,不点不顺,基本效果已经可以了,上下都可以动,采用的是外部中断模式,判断上下,左右方向,光栅动一格计数加一或减一
但是这样鼠标的分标率很低,这也可以理解,光栅转动速度没法和光电芯片采样率相比(光电芯片在2。54mm长度可采集400--1200个点),
为了提高分辩率,我采用的方法是光栅动一格计数加10或减10(理论上速度是提高了十倍),但效果很不好,速度是上去了,但鼠标指针是跳跃式的移动。
后来我运用抛物线方程式对数据进行处理,效果始终不理想   
可能是我把这东西想复杂了,或许有很简单的办法,还望有经验的高人指点一二!
(备注:硬件部分的问题可以排除)
沙发
caihong001|  楼主 | 2014-8-29 16:24 | 只看该作者
本帖最后由 caihong001 于 2014-8-29 16:28 编辑

一直都没人回复,机械鼠标这种过时的东西看来已经无人问津了,经过一天多调试,已经解决了。
分辩率在200,400,800间已经可以自由调节,也把我的方法贴出来大家看看(解决办法多种多样,可能有更好的,我的只做参考)

还是老办法,即外部中断+抛物线方程序式,只是做了细化
原来每个光电管两路信号我只取了一路接入中断,而且是上升沿触发,这样一格光栅切割对管时产生的信号过程为:01--11--10--00,切割计数只加了1

现在是把一个对管的两路信号都接入中断,上下方向+左右方向两对管总共就是四路信号,即要用四个外部中断,触发方式也由原来的上升沿改为边沿触发(上升沿,下降沿)这样光栅切割一格原来计数加1,现在就是加4了,速度变为原来的4倍。

我对比了下,这个速度和原来鼠标分辩率为400的速度相差无几,而且画也是很细腻,不会出现跳跃

那有了400的,调200的自然就简单了,把计数值除2即可

调800的,直接将计数值剩2,不见意取更大的数了,不然精度不行,会出现跳跃式
为了效果更好我用了个简单的方程式N*X-(N-1),这里我的N=2

使用特权

评论回复
板凳
sahh| | 2014-8-30 10:28 | 只看该作者
原理上,本来就应该接入两路信号,根据信号的序列来判断方向的。

楼主原本只接入一路,不知道你当时的方向是怎么判断的?

使用特权

评论回复
地板
caihong001|  楼主 | 2014-9-2 16:49 | 只看该作者
sahh 发表于 2014-8-30 10:28
原理上,本来就应该接入两路信号,根据信号的序列来判断方向的。

楼主原本只接入一路,不知道你当时的方向 ...

接一路就可以判断正反转,在中断中读取两路IO口的值,正反转的值是固定的

使用特权

评论回复
5
jy00764061| | 2018-6-25 22:34 | 只看该作者
你好,关于你用cypress做的鼠标左右移动的算法是否可指参考一下,我邮箱00764061@163.com.我最近做了一个轨迹球,功能都正常,就是左右移动很慢,和你以前遇到的问题一样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

91

帖子

1

粉丝