boxmoe_header_banner_img

欢迎来到数字1528君的个人主页!

加载中

文章导读

自制街机游戏控制器心得


avatar
Rabb1_shUwU 2026年7月14日 66

《Ongeki》是日本的一款音乐游戏。然而,这款街机游戏仅在日本发售。如果想要在中国国内游玩到这款游戏,就不得不自制街机控制器(以下简称手台)以控制游戏内容。于是我在第四学期期末考试前后,根据已有的开源项目自制了一个手台。以下贴出自己的心得仅供参考。

1.手台外壳

外壳是手台的重中之重,一个优秀的外壳不仅提升整体质感,更防止在大力敲打时(这常常是手台遇到的环境)损坏结构。然而,外壳对于小批量自制来说又是昂贵的,尤其是钣金件。而在学校,我也没有环境切割钢板或铝合金(一般需要大功率的曲线锯,然而学校宿舍会限制电器功率)。于是,我选择了雪弗板作为主材料,选择了亚克力板作为正面材料。前者如木板一样易于切割且富有韧性,后者坚固光滑,并且可以打印喜欢的图案。

我建议哪怕是开源项目,也应当使用SW或CAD等软件检查设计,甚至不如说尤其是开源项目才更要这么做。疏于检查导致了我后期的再切割。在手头工具只有美工刀和亚克力割刀的情况下无疑是费时费力的。建议所有要长期做DIY的人都可以准备曲线锯,美工刀和手动线锯实在是太难用了。

如果你真的要手动切割,那么做好通风和防尘的准备,并且准备好钢尺,美工刀,亚克力割刀与耐心。

2.打孔与固定

我购买了手持钻作为开孔工具。手持钻的功率不高,易于在宿舍中使用。然而,比美工刀更甚,你需要做好防尘的准备。手持钻不仅可以打雪弗板,还可以打亚克力板和打印PLA塑料。

对于面和面之间的连接,我使用了角铁。事实说明这不是一个特别好的选择,但我暂时也没有什么头绪。欢迎留言补充。

上面的螺丝一定要使用手动螺丝刀,以对抗可能的大力拍打。事实证明自动螺丝刀不抗大力拍打,可能会在游玩时因大力拍打而飞出去。自攻螺丝则不一样,你可以使用电动螺丝刀。

3.按钮,微动与弹簧

按钮是音击手台的重点。事实证明,你至少需要购买宝联的按钮(在阿里巴巴上有卖,10元一个,附赠微动支架但不附赠LED)。你可以不使用三和按钮,但一定不要购买宝利/BLEE的按钮,后者是更工业化,不适合音乐游戏机的按钮。

老实说,你其实可以不用购买功能键。这样小的功能键只有三和按键(一般会比较贵),如果你选用了国产大一点的按键(如图所示),请仔细修改你的外壳图纸。

一个好的弹簧和微动能为游戏体验丰富不少。你至少需要买六个弹簧和六个微动,以替换原本的弹簧和微动。商家附赠的微动一般不适合用于音乐游戏机,他们的按压力度过大,导致玩起来非常别扭。功能键则随意,你可以选择用国产微动和自带的弹簧。我选择了欧姆龙100g微动和咸鱼上20g的弹簧(原机是类似的配置,不过更加昂贵)。

润滑油不一定是必须的,同样我不建议涂抹太多,可能会不利于回弹。

我选用了游戏《舞萌DX》的按钮作为侧键方案。你需要斟酌使用3D打印件还是舞萌DX按钮。前者手感更好,面积更大,但需要你手动购买按钮打印件(在咸鱼上有卖)或是手动打印,自行购买光敏原件和平板弹簧等。后者则搬上来就能直接用,但是手感会差,不仅按钮是斜着的,不利于“手刀”,而且面积小,弹簧硬。我选择了后者。

4.摇杆

正如maimai的自制需要克服触摸屏和大框体,chuni的自制需要焊接压感元器件,ongeki的摇杆不仅是游戏的特色内容,也同时为DIY提供了很大的难度。我选择了一个3D打印方案,使用M8螺丝和弹性联轴器与旋转编码器连接。

注意你的旋转编码器,如果你的旋转编码器输出的不是TTL信号,你需要购买一个电平转换芯片。我这里使用了绝对值旋转编码器,输出的是RS232信号,因此我额外购买了一个MAX3232转换芯片。同样的,你最好买分辨率高一点的旋转编码器,普通的1024旋转编码器最后能用到的只有100个数值,放在1080宽的屏幕上,每次移动人物都会是瞬移的。1024分辨率和4096分辨率的价格差不多,你可以买后者。

手柄本体我随便购买了一个淘宝的摇杆,只需要几块钱。如果你觉得插进去太松了,可以缠几圈电工胶带然后再用神秘力量挤进去。

弹簧实在是提供了很大的安装难度,我建议你购买正常的M8螺丝后(不要购买带防滑垫圈的M8螺丝,很难拧),将所有元器件穿过去,再用螺母限制住弹簧。最后的成品如上图所示。

5.焊接与连线

由于我是计算机系的学生,在本科阶段学校不会为我们开设金工实习这门课,所以我只能自学焊接。

我建议选用63焊锡(63%的Sn含量,37%的Pb含量),注意最好选择带有内部松香的焊锡。一支焊锡笔。在焊接PCB上的电子元器件前,你最好戴一副眼镜,并穿戴KN95口罩,开窗通风,防止迎面而来的铅元素。同时也不要想着在你的工作台上吃饭了,除非你想和罗马人一样享受铅糖。

PCB上大量的排针并不是很好焊接,你可以拿一块橡皮,把排针插在上面。注意不要让焊锡笔碰到橡皮。

焊接完成后,我们就可以开始连线。

大量的杜邦线简直是安装的毒瘤。你最好使用扎带把线扎起来,防止掉线。同时不要安装错了光敏按钮的线,否则电流会击穿data口,导致整个按钮坏掉。

成品如图所示。

你可以买一个60cm高的桌子,把手台放在上面。手台的尺寸一般是800mm*300mm。这个不锈钢桌子是我从学校的垃圾场里捡来的,花费0元(

6.编程

Arduino相比于stm32,编程难度要低得多。这里着重说明摇杆编程。

根据旋转编码器的不同,所写的代码也不同,我这里使用的绝对值旋转编码器使用的是Modbus协议,建议仔细阅读旋转编码器上的说明书,根据情况你可能需要编写内存读取或CRC校验等。对于一个波特率为9600的旋转编码器,每7ms才能发送一条完整的报文,小于这个值则会接受异常。

我这里使用了X Input AVR Boards烧录,使用XInput模拟摇杆输入,使得电脑能够识别单片机为XBOX手柄。要注意的时,烧录后ArduinoIDE便无法再识别开发板,你只能使用reset按钮或短接reset来再次烧录。不使用鼠标输入是因为Arduino原生不支持位置绝对的鼠标坐标操作,如果快速移动摇杆,会导致位置偏移。

我十分建议使用摇杆输入的玩家使用AntiMicroX软件,原生的segatool只支持摇杆方向的判断却不支持摇杆的模拟输入,你不仅可以使用这个软件绑定鼠标的绝对位置和摇杆的绝对位置,还可以显示你的摇杆输入,对调试来说是十分有用的(当然你用windows自带joy.cpl的也可以调试摇杆位置)。

7.结语

享受游戏吧!附物料。其中BLEE按钮换成了宝联按钮。你可以使用更便宜的编码器,效果不会差很多。

开源项目参考:

https://github.com/satorusaka/Ongeki-Con

https://github.com/Nana0Nana/NAGEKI



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码