介绍:Arduino游戏控制器,适用于NES和GBA
问候。
所以这里有一个有趣的小项目,涉及复古游戏:
为了玩经典游戏,如超级马里奥,银河战士,塞尔达传说,和许多其他,Arduino游戏控制器项目被构建。
这个NES-GBA控制器的内部是焊接在连接到XIAO M0 Dev board的穿孔板上的按钮,该板为整个控制器供电。控制器的机身完全是3D打印的。
来自Seeed的XIAO M0 SAMD21 Dev Board与手柄图书馆因为它支持对这个项目至关重要的HID。
这个项目不能使用Arduino Uno或Nano等知名板构建,因为它们没有HID支持。
这个Instructables是关于这个游戏控制器是如何从头开始构建的,所以让我们开始吧。
供应
以下是本项目使用的材料-
- XIAO M0 Dev Board
- 12mm x12mm触觉按钮
- 穿孔板
- 电线
- 操纵杆测试板
- 电路试验板
- 3 d部分
第一步:在XIAO RP2040或PICO上使用XIAO M0
DIY键盘,鼠标或游戏控制器可以使用基于RP2040的板,如Pico和XIAO RP2040,它们支持HID。
本项目使用Gamepad库,该库还不支持RP2040设备,尽管可能有另一种方法将RP2040用作手柄。
简单地将所有按钮分配到键盘的上下、左右、a - b等键,我们就可以创建一个直接的键盘,同时充当游戏控制器。
这将部分工作,但RP2040将显示为一个键盘,按钮类似于游戏控制器,而不是游戏控制器。
Seeed的小m0
在这种情况下,Seeed的XIAO M0取代了RP2040,这是一种由SAMD21G18芯片供电的DEV板,该芯片也支持HID,与Arduino Tian中使用的芯片相同。
samd21 MCU是一个32位MCU,具有256 KB闪存和32 KB SRAM,运行速度为48 MHz,使XIAO MO成为这个项目的理想板。
它的功能很像类固醇的Atemga32u。
该芯片是Seeed的XIAO M0的关键组件,这是一种非常小的面包板友好开发板,是标准Arduino板的一个很好的替代方案。
这个板最大的优点是它只需要5美元。
你可以在下面的链接查看更多关于XIAO M0的详细信息
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html
步骤2:面包板版本
我们首先将XIAO板连接到面包板上开始这个项目。从D0到D9, 10个IO引脚连接到10个触觉按钮。
每个触觉按钮都有连接到GND的第二个引脚。当按下按钮时,每个I/O引脚都被拉下。
然后,XIAO读取引脚状态,并通过USB端口发出信号。
在面包板版本中,只有10个按钮分别用于左触发器、右触发器、上、下、左触发器、开始、停止以及A和B。我使用的是我之前制作的“操纵杆测试板”,这是一个用于快速创建游戏手柄相关项目原型的按钮板。
的正在使用的代码很简单。首先,从下面提供的URL下载并安装手柄库。
https://github.com/gamelaster/ArduinoGamepad/tree/master/examples
然后,使用所附的草图将任何支持hid的设备(在本例中是XIAO samd21)转换为手柄。
到目前为止,在这个草图中只声明了10个按钮,但是通过稍微更改代码可以添加更多的按钮。
附件
3 .结果
- 我们将XIAO板连接到PC,然后打开设备和打印机,以查看此配置是否有效。
- 在设备和打印机中,你会看到Seeed XIAO Board,它有一个手柄标志,我们右键单击它,看到它的属性。
- 通过从D0到D9依次按下按钮,手柄设置被确认为功能正常,这将导致按钮按下显示在属性中。
- 它不会马上工作,因为手柄按键没有分配,所以我们进入模拟器输入设置,并将每个按键分配给一个函数。之后,我们打开GBA模拟器并加载一个游戏。
- 游戏控制器将在键映射后与该模拟器一起工作。
步骤4:自定义控制器设计和3D部件
三个由性能板或原型板构成的开关pcb被安置在控制器的矩形外壳中,该外壳被设计成类似于NES或GBA手柄。
在这个项目的后续迭代中,按钮板将从适当的pcb构建;目前,我们正在使用穿孔板。这个模型是在按钮板准备好之后创建的。
机身采用RED PLA 3D打印,填充量20%,层高0.2mm,喷嘴0.4mm。
盖子是用相同的参数从黑色PLA生产的。
所有的板标签都是可选的,但是,它们需要更精细的设置,例如0.16毫米,0.2毫米喷嘴,以使它们看起来光滑。
步骤5:制作按钮板
- 我们开始构建按钮板的过程,首先收集所有必要的部件,包括一个12x12mm的触觉开关和三块穿孔板,将用于创建三个不同的开关组装部件,每个部件将包括一组方向键、a - b键和启动-停止键。
- 为了保持按钮到位,我们首先把它们放在穿孔板上,用烙铁焊接它们的衬垫。
- 接下来,使用可以从led或电阻等THT组件中回收的银铜线,我们将每个按钮的GND引脚彼此连接起来。
步骤6:定制XIAO分岔板
- 在准备好按钮板之后,我们用两个母头销和一个穿孔板片准备了XIAO扩展分流板。
- 我们焊接肖的垫,并将其插入穿孔板,正确地安装在它的地方。
最终产品由三个按钮板组成,带有方向按钮、A-B键、启动-停止键和一个XIAO扩展板。
步骤7:控制器组件-添加左触发器和右触发器
在设置按钮板和XIAO Breakout板之后,我们开始组装主控制器,首先使用热胶将左右触发按钮固定在适当的位置。
步骤8:控制器组装-放置按钮板
- 然后我们用热胶把定向按钮板固定在它的位置。
- 接下来,我们再次使用热胶将A-B按钮板连接到游戏控制器体内。
- 起止按钮板最后添加在它的地方,并使用热胶。
步骤9:用按钮板连接-地线
接下来,我们通过使用焊接到每个按钮的引脚的电线将其连接到XIAO板上的GND引脚,为所有板设置一个公共地。
步骤10:连接按钮板-单独的按钮销
接下来,我们将每个I/O引脚连接到代码中指定的每个按钮,使用与面包板版本相同的接线,例如,I/O D0连接到左触发器,D1连接到右触发器,D2连接到UP, D3连接到下,D4连接到左,D5连接到右,D6连接到A, D7连接到B, D8启动,D9停止。
要了解更多信息,请查看包含的原理图。
步骤11:目前为止的结果……
此时,从D0到D9的每个I/O引脚都连接到特定的开关引脚,每个按钮的另一端连接到公共地。
当按下按钮时,连接的I/O引脚被拉下,XIAO读取哪个引脚被拉下。
步骤12:测试控制器
使用万用表设置为连续模式,我们首先检查该板的焊接,将探针的一端放在I/O引脚上,另一端放在开关引脚上。
在将探针移动到任何I/O引脚和地面后,我们按下连接到I/O引脚的按钮,连续性将发出嘟嘟声,表明I/O引脚正在向下拉。我们在每个引脚上再次执行此测试,以确认一切都正确连接。
接下来,我们将控制器插入计算机并打开设备和打印机
我们之前做过这个测试,所以我们通过检查种子XIAO属性再次检查按钮按下,是的,所有开关都正常工作。
步骤13:XIAO最终放置
我们使用热胶,以安全地把肖Breakout板到位后,确保它现在是可操作的,所有的按钮都链接正确。我在这个项目中过度使用热胶,但没有规则阻止它的使用。
步骤14:放置盖子
最后,我们用4颗M2螺钉将盖子固定在控制器的背面,结束了组装过程。
步骤15:键映射
我们将控制器重新连接到计算机,并启动模拟器软件;对我来说,是Game Boy模拟器“Virtual Boy”。
由于控制器不会直接与任何设备一起工作,我们必须首先映射键,以便在任何模拟器中使用它。
我们可以用这个设备在映射控件后玩各种Game Boy或NES游戏。
第16步:游戏——口袋妖怪
我建议你们合法地获取所有的rom。
第一款游戏将是Pokemon Gold Edition,一款game Boy Color游戏。
Pokémon Gold和Pokémon Silver是Pokémon系列的第二套游戏,于1999年11月21日在日本发行。在金色和银色之前,有最初Game Boy的口袋妖怪红色和蓝色版本游戏,这是Pokémon系列中为Game Boy颜色制作的第一款游戏。
Pokémon Emerald, Ruby和Platinum游戏后来出现了,它们都还不错。Pokémon Lite Platinum是Gold的重制版,所以它很好。
就我个人而言,我喜欢金色版,因为它毫无疑问是该系列中最好的口袋妖怪游戏。
在游戏的结局中击败了Johto和Kanto健身房的领导者后,我们还在Mount Silver对阵了上一场比赛的RED。
如果你还不知道,RED是Ash Ketchum在之前的GBC游戏Pokémon RED中的对应角色,但他穿着红色服装。
步骤17:游戏-银河战士
然后我启动了标志性的《银河战士》游戏,它属于任天堂的动作冒险游戏系列。玩家控制赏金猎人Samus Aran,他保护银河系免受太空海盗和其他邪恶实体的攻击,这些邪恶实体想利用寄生的银河战士动物作为力量来源。
最初的《银河战士》(Metroid)是1986年为任天堂(Nintendo)娱乐系统发行的,现在我们正在Gameboy模拟器上玩这款游戏。
因为它使用了与之前设置的相同的键图,所以控制与之前的游戏相同。
第18步:游戏-终极蜘蛛侠
最后,我们让动视的《终极蜘蛛侠》(Ultimate spiderman -是的,正是这家公司创造了《cod》)试试。
动作冒险游戏《终极蜘蛛侠》于2005年发布,它是根据漫威漫画公司的蜘蛛侠角色和同名漫画书改编的。这款游戏由动视发布,适用于PlayStation 2、Xbox、Microsoft Windows、Game Boy Advance、GameCube和任天堂DS平台。
这里是Game Boy高级版,我必须说,这是一款不错的游戏。
步骤19:结论
这个NES-GBA控制器功能全面。由于代码中的引脚功能,如果我们将其插入任何游戏站,它应该作为直接控制器。
在模拟器中,我们必须映射键,但一旦我们保存了键函数,一切似乎都按预期执行。
使用Pro Micro和自定义板,我之前创建了一个Xbox 360控制器用来玩《侠盗猎车手5》之类的游戏这款NES-GBA控制器只适用于复古游戏,但它可以通过在电路板上添加操纵杆来升级,成为一个合适的模拟控制器。
朋友们,今天就到这里。如果你对这类项目感兴趣,可以看看我之前在游戏主机和控制器方面的一些作品。
特别感谢se工作室为本项目提供XIAO。如果你需要更便宜的电子元件,可以去看看。
到此为止,我很快就会带着一个全新的项目回来。
和平了。
评论