|
—
本帖被 数码发骚友 设置为精华(2008-12-22)
—
接触的第一款PC赛车游戏是《Flatout》,在一台配置不高的公用电脑上用最普通的键盘撞得不亦乐乎。后来工作了,自己买了电脑了,《Flatout2》也出来了,于是买了个几十块钱的USB手柄,嘿嘿,从石器时代步入青铜时代了……或者说从四肢行走进化到直立行走了…… 前不久无意发现了中国模拟赛车联合会论坛,原来中国喜欢玩模拟赛车的朋友还不少,看着大家都是R400、G25、红嬷嬷黑嬷嬷的……不免开始感叹于自己装备的寒酸了,正准备动手D个游戏方向盘(以下简称盘子)来玩玩呢,哈哈,在某同事房间角落里发现了这个浑身尘埃的破旧玩意…… 插上电脑,显示要驱动,汗……百度一下……根据盘子上面的标志上网百度了下,居然找不到什么信息?官方网站居然也没有任何相关记录,只是在某企业供求信息发布网站上找到唯一一张与此物类似的神物——FT-075(更正一下,应该是AT-0370),然后才根据该型号搜出了其官方的证实:没有驱动(再次更正,其实是有驱动的,但没驱动也能用,只是没有按摩功能)。 但为什么电脑显示要驱动呢?最简单的排除法,插上另一台电脑,顺利识别,于是乎,重装系统,终于发现新硬件并顺利自装驱动。 打开控制面板看了下属性,居然没有什么部件损坏,都能动。《Flatout2》开起来,设置好各轴、油门、刹车……4圈飚下来,发现了个大问题,盘子中间足有25度的区域是没反应的……继续百度,原来这是低端盘子的通病——硬件装配及软件各方面的精度不高,只好设置一个死区来避免游戏中的盘子回中偏差,但这个死区也太大了点吧,太明显了,还没我手柄好用。 不过,我是没那么容易放弃滴,继续百度,发现原来有个罗技出品的叫DXTweak2的软件可以实现软件调节盘子死区,信心大增,DOWN之,随即对照坛里前辈们的使用说明开始琢磨,可怎么调都没用啊,因为在那个25度左右的死区里电脑上的轴位指示根本一动不动,看来是硬件上的问题了。一个字:拆! 轻松的拆开底板以及一个齿轮传动罩后,终于看到了传说中的盘子电位器,跟平时的电子产品里的调节电位器没啥两样嘛,一边转动一边万用表监测其中脚电压,发现其电压取样脚的电压是均匀的在VCC与GND之间过渡的,也就是说,造成死区的原因是该盘子的控制芯片中已经设定好了的,比如:VCC是4.4V,那么中点就是2.2V,芯片内设置了死区电压为2.2V±0.3V,那么假设从中点2.2V向左(低电位)转动盘子就必须到1.9V芯片才向PC发送左转的一个初始模拟量,右转则反之。分析到此,思路开始清晰,芯片程序固然无法改写,但取样电压我是可以通过外加电路来影响的,本着低成本、易改造的原则,初步方案如下: 原理简单,利用左、右两个电位器(为了不至于严重影响转弯时的线性行程所以这两个调节电位器特地选用了100K,阻值远大于原来10K电位器)来分别拉低、拉高取样端的电压。 安装好后,突然发现自己犯了一个低级错误,拉低中心点的电位的同时就不能拉高中心点的电位了啊,真是极其低级的错误……面壁一分钟…… 但问题还是得解决啊,于是,新的改造方案出台: 原理其实很简单,设置两个位置传感开关,当向左转的时候断开右边的调节电位器,右转的时候断开左边的电位器,这样就不会相互影响了(补充一下,上图中的两个开关其实是常闭的,画图时疏忽了不好意思)。 由于手里没有合适的传动开关,只好暂时用了两个轻触开关就是平时MP3/4上常用的那种按钮开关来代替。由于物资缺乏,在安装时遇到了极大的阻力,不过在牺牲了一个午休的时间之后终于装好了这两个微小的位置传感开关(热熔胶固定)。 在测试过程中,又修改了好几次安装位置以达到99.9%以上的可靠动作率。 好了,硬件部分已经完工,接下来……DXTweak2开起来,先把盘子往左打过死区,调节左电位器,看到轴位指示滑块开始移动了吧,这证明已经起作用了呃,接下来要做的就是慢慢调节左电位器直到从中心点往左打一点点就能看到滑块左移,只要电路没问题,相信你也能做到这一点。右边也是同样的调节,当两边都调节好后,再转动方向盘试试,哈哈~死区“消失”了!只要稍微的转动方向盘就能看到滑块立即随之移动,兴奋吧!艰辛的付出总算得到了一点点回报…… “消失”为什么用双引号呢?因为它还没有真正的消失,至少到目前位置,我们还只是消灭了硬件层次的“死区”,细心的朋友可以看出,在DXTweak2的界面中(如下图),当方向盘转动时,滑块并不是从中点向两边线性移动,而是忽然的跳到原来的“左死区点”和“右死区点”,现在我们就可以通过DXTweak2强大的功能来设置了。大家来看下面两张图: 上面那张是没有设置死区的,而下面那张是设置了15%的死区,看出区别了吧,代表实际输出(相对于DXTweak2)黑色滑块并没有直接跳到“右死区点”而是停在了中点右侧的第一个精度分辨点上,这意味着什么?意味着当你向左或向右轻微的转动方向盘时,DXTweak2也会输出一个“轻微的”转动信号,只要游戏支持DXTweak2就OK了!也许有朋友会觉得奇怪:设置15%死区不是增大死区么?怎么会减小呢?呵呵,再从头看一遍帖子,您肯定能理解,“负负得正”……哈哈…… 至此,“零死区”改造帖正式结束。本文并无什么技术含量,只是想发扬一下DIY精神,呵呵,有好的建议或是批评都可以提出来!有批评才有进步! 后记:由于相机坏了,文中照片都是用MP4拍的,寒碜是寒碜了点,各位将就着看吧,到时弄好了相机再补图! DIY是一种态度,一种物尽其用的态度——爱非神话
注:原帖始发于中国模拟赛车联合会
|