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

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

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

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

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

方案原理

introduction.png

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

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

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

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

MMOS.png

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

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

不过可惜的是MMOS目前已经停止维护了大家使用的软件都已经很久没有更新了取代他的是正在商业运营的SimCube相比MMOSSimCube的开放程度应该是进一步的减弱了玩家几乎没有太多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信号再传输给PACPWM-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

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