我的目标
我一直很喜欢《俄罗斯方块》,所以我想尝试在PocketBeagle上重现这款游戏。不幸的是,我没有能够实现我想要的所有功能,但我仍然在这方面学到了很多,希望这个项目可以在未来得到改进!
PocketBeagle Pinout参考图
以下是PocketBeagle的引脚图,您可以在本教程中参考。
SPI显示
首先,我们应该将SPI Display连接到PocketBeagle。将SPI显示器放在大型无焊面包板上,然后进行以下连接(我使用SPI0,因此如果您想使用SPI1,则需要使用不同的引脚):
•显示GND到PocketBeagle GND (P1_16)
•显示识别码到PocketBeagle 3.3V
•显示CLK到PocketBeagle CLK (P1_8)
•向PocketBeagle展示MISO
•显示MOSI到PocketBeagle MOSI (P1_12)
•显示CS到PocketBeagle GPIO5 (P1_6)
•显示DC到PocketBeagle GPIO89 (P1_4)
•显示RST到PocketBeagle GPIO87 (p12)
这些连接是这样的:
蜂鸣器
接下来,我们可以将蜂鸣器连接到PocketBeagle的PWM引脚!我用的是PWM2B。为此,在大型无焊面包板上进行以下连接:
•蜂鸣器+ PocketBeagle PWM2B (P2_3)
•蜂鸣器-到PocketBeagle GND
这是我的样子(橙色的电线到P2_3):
按钮
最后,我们可以连接我们的按钮。我在D-pad布局的小型无焊面包板上配置了我的,其中有两个额外的按钮用作a和b。这些按钮中的每个按钮都有一个以以下方式配置的1k欧姆电阻(归功于Erik Welsh的图表):
以下是每个按钮的连接:
•PocketBeagle P1_36的按钮
•B按钮到PocketBeagle P1_34
•右键PocketBeagle P1_32
•向下按钮PocketBeagle P1_30
•左键PocketBeagle P1_28
•向上按钮PocketBeagle P1_26
这就是那些看起来像(电阻是很难看到的,所以参考上面的图表知道他们去哪里):
软件的考验和磨难:
我尝试了许多不同的方法,试图让它真正运行《俄罗斯方块》,但不幸的是没有成功。我最初想尝试从头开始编写《俄罗斯方块》,但很难理解如何与显示器交互以使形状正确显示和移动。接下来,我尝试使用预制的Python代码来运行它,而不是自己从头开始编写,但我发现的所有示例都依赖于pygame库,我无法将其安装在PocketBeagle上。最后,我尝试使用Advanced MAME(参考Kevin Li的GameBeagle和Mouser Electronics的指南),但我再次失败。随着期末考试的临近,我不得不承认失败,最终我的屏幕只显示了一个占位符图像,并从蜂鸣器中播放俄罗斯方块主题。
图表
系统框图
电源框图
本文编译自hackster.io