DIY 一个汽车方向盘游戏外设(MMOS OSW DIY)

驾照虽在手,但总感觉开车还是没什么意思。看了懂车帝的评测视频,才发觉像车手做麋鹿测试时那样子开车才是有意思。当然,咱没那个精力和金钱在赛道那么玩,所以就在游戏里过过瘾好了。

本来是想买个罗技或者图马斯特的外设的,但是看那高昂的售价以及像儿童电玩设备一样的质感,又让我觉得这钱花的不值。

什么值得买是个神奇的地方,在相关外设爆料的评论区看到有大神提到,“五百块就可以搞直驱入鼎了”,这让我提起了对OpenSimWheel的兴趣。

OSW这个圈子不大,资料也不是很多,还需要对电气设备、硬件设计具有一定的知识,新人入坑的门槛有些高。所以我将DIY的过程记录下来,可能可以帮助之后的新人更容易入坑吧。

方案原理

introduction.png

整个方案架构图如图所示,其核心是利用工业用伺服电机直驱方向盘。这里的直驱体现在,与常见的中低端商品外设采用小电机加上齿轮减速箱不同,伺服电机直驱方案使用大功率大扭矩的电机直连方向盘,没有减速箱,所以不会有减速箱齿轮间隙等问题,大功率电机提供的大扭矩还可以带来更加逼真的力反馈效果。伺服电机需要做闭环控制,因此自带编码器来感知转轴的位置,我们可以利用这一点特性获得方向盘的角度。

我国制造业繁荣,大量的市场需求催生了大量的伺服电机生产厂家,在充分的竞争下又将低端设备的价格拉的足够低,同时还有大量工厂淘汰的旧设备可用,进一步拉低了设备价格。在这种背景下,很多欧洲的玩家飘洋过海购买中国产的伺服电机,甚至还远比购买商品外设便宜。

但是工业电机的设计初衷与游戏外设八竿子打不着,所以我们需要做的工作就是需要将游戏的力反馈信号转换为伺服电机的驱动器能理解的方式传递给伺服电机,又将伺服电机反馈的角度信息转换为游戏能理解的方式传递给游戏。也就是架构图中的橙色部分,都是需要我们来完成的。

踏板、排挡比较特殊。OSW的玩家许多都是先接触了商品方向盘,觉得不够好才转而研究直驱的。商品方向盘外设的排挡等设备没有太多硬伤,所以DIY的不多,很多人选择兼容商品外设的配件。

MMOS.png

OSW这个概念最早是在国外某论坛提出的,有玩家就开始付诸行动,尝试实现这一套方案。慢慢的也有不断地改进,最终形成了一个主流方案,那就是MMOS。MMOS提供了一套免费的 闭源 的软件方案,包括PC端的驱动程序,以及采用STM32F407VGT6作为主控的控制端固件。

与很多人所想象的不同,MMOS包括后来的SimCube与开源没有任何关系。我们最多只能说他是开放的,具有一定的DIY的空间。玩家们的DIY,DIY的都是主控板的 外围 硬件方案。但是MMOS方案兼容性还是不错的,具备多种控制的模式,所以目前玩家能顺利使用他控制大部分的伺服驱动器。

不过可惜的是MMOS目前已经停止维护了,大家使用的软件都已经很久没有更新了。取代他的是正在商业运营的SimCube,相比MMOS,SimCube的开放程度应该是进一步的减弱了,玩家几乎没有太多DIY的空间了。

购买指南

伺服

作为方案的核心,我们首先应该考虑的是伺服电机(套装)。伺服电机有很多参数,转速、扭矩、尺寸、转动惯量等。转速我们通常不需要关心;扭矩越大越好,但扭矩也与功率、价格、重量相关,同时你也需要考虑你能Hold住多大的扭矩,一般新手选择4-8Nm的就够了;OSW常用130mm尺寸的电机,新手最好考虑这个尺寸的;转动惯量一般来说小一点好,但这个参数不是那么重要,没有更好的选择也不必纠结;

此外伺服的品牌也有许多选择,常见的有日鼎、亿丰、台达等。个人推荐台达,相对做工较好,功能也丰富,说明书也规范,能极大减少使用成本,我选择的是台达ASDA-1021-AB驱动器+ECMA-G31309PS电机,一套450元不包邮。日鼎据说是没有限速功能的,只有超速警告(OS),用起来不方便且不安全,但是日鼎是最便宜的,也是二手市场库存最多的。

注意,伺服电机与驱动器一般都是成套的,购买前建议让卖家测试好一套可用再发货,伺服电机都很重,运费一般都要大几十,退换货成本相当大。此外,最好完整看完此文及相关资料,在确定伺服具备后文所使用的功能后再下单也不迟。

注意无论使用哪家的伺服,一定要能搞到说明书,说明书非常重要。这里也附上台达ASDA-AB系列的说明书:ASDA-AB.pdf

此外购买伺服时注意还要配有相关的线缆。工业伺服的配件不好买,能买到价格也不便宜。一般要注意有这些:220V市电输入线,电机编码器连接线缆,电机动力电缆,控制IO电缆。

方向盘

steering.png

直接淘宝搜索“方向盘 赛车 改装”关键词,按价格排序即可。同款式有许多卖家在卖,价格有高有低,似乎品质没有什么区别,挑便宜的买即可。看情况是否需要快拆,不用快拆就是那六颗螺丝直接拧在法兰上,用快拆就是把快拆底座拧在法兰上,方向盘再固定在快拆上。

机械配件

这部分主要是电机的连接机械配件,包含电机固定的支架,电机与方向盘的联轴器。

DNZJ.PNG

前者我是在咸鱼购买了一个不锈钢切出来弯折的支架,比较扎实价格不贵。

machine.png

后者一般是一个这样的连接模式。先用涨套弄出与电机轴平行的固定孔,然后用法兰将不同孔距的方向盘和涨套连接起来。一般使用Z11-22*32涨紧套规格(注意电机轴必须是22mm直径),涨套的使用方法参考视频:https://www.bilibili.com/video/BV16b411H7Se。

IMG_0361.PNG

法兰没有标准件可用,所以要买的话价格会比较贵。我是自己画了一个,白嫖嘉立创用铝基板做出来的。

安全警示

1.伺服电机是由交流市电作为动力的,可能导致各种各样的触电危险,一定要按照伺服器手册中的安全操作要求进行;

2.通电前,应该检查漏电保护开关能否正常动作,这是为自己的安全负责;

3.高速转动的电机在调试过程中容易造成人身伤害,如果暂时不能把电机用螺栓固定在支架上,一定要放在地上,如果放在桌边缘或者试图用U型夹固定,可能会掉下来砸断脚掌,油管已有博主亲身示范。

4.调试完成前,一定不要把手伸进方向盘;调试完成后,尽可能不要把手伸进方向盘。即使驱动器开启了限速功能,突然快速转动的方向盘也可能把手臂打断!

控制方案

所谓的力反馈其实就是扭矩控制。游戏将相应的力反馈信号发送给外设的驱动程序,驱动程序通过USB传输给主控后,主控产生一个PWM信号,其占空比对应游戏的力反馈力度;PWM信号再传输给PAC(PWM-Analog Converter)芯片,PAC芯片按其占空比产生对应幅度的模拟量给伺服驱动器,驱动器将控制电机产生对应扭矩的力。

Manaul-1.png

具体如何设置为扭矩模式需要阅读伺服的说明书。以我的台达为例,扭矩模式下扭矩值通过T_REF的电位控制,所以我们需要PAC芯片根据占空比产生-10~10V的电压信号。要产生正的的模拟量简单,但是负的会麻烦许多,但我们又肯定是需要不同方向的扭矩的。

Manaul-2.png

所以阅读说明书,发现我们可以通过输入一个开关量,控制扭矩的方向。也就是所谓的指令取反功能。这下就简单了,我们将DI4设置为方向取反,之后只需要管扭矩的绝对值,方向通过设置一根单独的方向信号线就可以解决。这也就是所谓的PWM+DIR模式。

不同的伺服有着不同的控制功能和要求,比如日鼎用的是H桥模式,那么我们就需要产生两组PWM信号,用以控制H桥等等。具体的情况需要具体分析,也需要仔细阅读说明书。相对来讲,PWM+DIR是比较简单的一种。

summary.png

我们使用的是MMOS这一闭源方案,作者提供的固件是没有源码的,因此我们的芯片型号、引脚定义都已经固定好了,我们直接套用即可。如果是日鼎的方案,PE11就是另外一个PWM,仿照PE9串接一个PAC芯片即可。

Manual-3.png

Manual-4.png

还需要注意的是,DI-默认是上拉使能的,接在COM-上才是失能。此外,在设计时应该按照说明书的要求,严格区分模拟电与数字电,不同的部分使用不同的电源。使用了差分驱动的信号线,应将差分信号双绞成对传送到光耦。PAC芯片前的光耦,因为传送的是PWM信号,我们需要使用高速光耦,在选型时应注意相关参数。

之后按照说明书,将信号线焊接在相应的引脚上。

参考资料

国内中文资料较多的是哔哩哔哩各个作者的专栏。

DIY伺服直驱方向盘试玩神力科莎 @pkintel https://www.bilibili.com/video/BV1si4y1u7En

这里要特别感谢 @pkintel 前辈,他在视频评论区分享了完整的资料,包括MMOS固件、驱动、设置指南、接线指南以及他设计的多种方案的控制板图纸。

(待完善)台达ASDA-AB伺服器DIY MMOs 直驱力回馈方向盘教程 @极速外卖 https://www.bilibili.com/read/cv7102802/

该贴内有正确的台达伺服的连接以及设置方法。

MMOS FFB伺服直驱方向盘主控板DIY @fred_wu_xs https://www.bilibili.com/read/cv10344806

该贴内有多种品牌的伺服的连接及设置方法。

【一张图】看懂台达ASDA-AB伺服驱动器diy osw ffb力反馈反向盘参数配置for mmos @辅助全关 https://www.bilibili.com/read/cv8705448

该作者提供了详细的伺服设置方法以及接线方法(不止台达一种,同作者还分享了多种其他伺服的教程)。