Arduino游戏控制器,适用于NES和GBA

3360年

23

介绍:Arduino游戏控制器,适用于NES和GBA

公司简介:Hello world;

问候。

所以这里有一个有趣的小项目,涉及复古游戏:

为了玩经典游戏,如超级马里奥,银河战士,塞尔达传说,和许多其他,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。如果你需要更便宜的电子元件,可以去看看。

到此为止,我很快就会带着一个全新的项目回来。

和平了。

做第一个分享的人

    建议

    • 让它发光比赛

      让它发光比赛
    • 钟比赛

      钟比赛
    • 分组代码竞赛

      分组代码竞赛

    评论