基于XIAO ESP32 C6,以16x8矩阵作为显示器设计一个小游戏
扫描二维码
随时随地手机看文章
大家好,欢迎回来。这里有一些有趣的东西。
The XIAO Hopper,一款基于《Flappy bird》灵感的游戏。
在这里,我们使用自定义的16x8 WS2812B LED矩阵作为显示器和按钮来控制像素。
“XIAO跳跃器”一词源于我们的版本《Flappy Bird》,它使用了一个XIAO微控制器;故名萧hopper。
这是我们版本的《Flappy Bird》,在这个版本中,由单个像素表示的小鸟在16x8 LED矩阵上移动柱子的间隙中移动。目标是在空间之间导航时避免撞到柱子。游戏玩法由一个按钮控制,挑战随着时间的推移而增加。
柱子是随机分配的空间,鸟儿必须穿过这些空间。
当按下按钮时,鸟儿向上飞行;松开按钮时,重力将其向下拖动。
本文是关于这个项目的完整构建过程,所以让我们从构建开始。
材料要求
这些是在此构建中使用的组件。
•XIAO ESP32 C6 DEV board
•定制PCB(由Seeed Fusion提供)
•WS2812B发光二极管
•跳线
•电路试验板
•按钮
XIAO ESP32 C6 DEV board
在这个项目中,我们使用的是基于ESP32-C6 SoC的XIAO ESP32 C6开发板,它具有双32位RISC-V处理器,一个具有160 MHz的高性能内核,另一个具有20 MHz的低功耗内核,可实现高效的多任务处理和节能。
它的512KB SRAM和4MB闪存为程序执行和存储提供了足够的空间,使其成为对速度和内存效率都有要求的项目的绝佳选择。
XIAO ESP32 C6以其连接性而脱颖而出,支持Wi-Fi 6,蓝牙5.3和Zigbee/Thread等高级协议,可与智能家居系统和物联网设备顺利集成。该板具有11个GPIO引脚和各种接口,如UART, SPI, I2C和ADC,允许轻松连接到传感器和外设。其占地面积小(21 x 17.8 mm)和USB Type-C电源输入使其非常适合空间受限和便携式项目,例如LED矩阵游戏机。
如果您想要一个,请访问其产品页面,或者访问其wiki页面以了解有关开发板的更多信息。
16x8 WS2812BLED矩阵
在这个项目中,我们使用我们之前制作的矩阵项目之一,该项目由128个WS2812B LED组成,放置在16x8矩阵布局中,16个LED放置在16行和8列中。
每个WS2812B LED彼此并联连接。为了控制所有128个LED,只需要一个GPIO,因为每个LED都以独特的配置连接,其中第一个LED Dout连接到第二个LED Din端口,第二个LED Dout连接到第三个LED的Din端口,以此类推,直到最后128个LED。
要更深入地了解该显示器的开发过程,请参阅我之前的文章,我在其中简要解释了它。
Seeed Studio Fusion
Seeed Fusion PCBService为PCB制造和PCB组装提供一站式原型设计,因此,他们在7个工作日内生产出高质量的PCB和快速交钥匙PCB。
Seeed Studio Fusion PCB组装服务负责整个制造过程,从Seeed Studio Fusion敏捷制造和硬件定制到零件采购,组装和测试服务,因此您可以确保他们获得高质量的产品。
在衡量市场兴趣并验证工作原型之后,Seeed Propagate Service可以通过专业指导和强大的连接网络帮助您将产品推向市场。
试验板组装
•为了开始组装,我们将XIAO ESP32 C6微控制器放在面包板上。然后,我们在它旁边添加Push Button。
•我们通过将矩阵的VCC连接到XIAO的5V开始布线过程。
•然后将矩阵的GND连接到XIAO的GND。
•我们将Push Button的一端连接到GND,另一端连接到GPIO 1。
•矩阵数据线连接到XIAO的GPIO0。
接线过程现在已经完成。
代码
这是在这个项目中使用的代码,它是一个简单的。
让我们简要地分析一下代码。
我们使用Adafruit_NeoMatrix.h库来控制16x8 WS2812B LED矩阵。这个库帮助我们绘制像素、形状和动画。
初始化矩阵以匹配其物理布局和颜色格式。
BUTTON_PIN连接到一个按钮,该按钮控制鸟的运动。
跟踪鸟的垂直位置(birdY)。
柱子用x(水平位置)、gapStart(缝隙位置)和gapHeight(尺寸)来定义。
本节准备LED矩阵,设置按钮引脚作为输入,并初始化柱子。
这个按钮控制小鸟的运动,模拟释放时的重力。
小鸟的位置被固定在屏幕边界内,并在x=3处绘制。
柱子向左移动并在离开屏幕时重置新的间隙位置。
这将检查小鸟是否击中了柱子(在间隙之外),并显示红色的“Game Over”,然后重新开始游戏。
随着时间的推移,柱子移动得越快,游戏就越难。
结果和下一步
这是这个小构建的最终结果:在基于esp32的开发板上使用自定义矩阵面板运行一个类似《Flappy bird》的游戏。
我们使用Push Button控制Bird或Pixel的移动;随着时间的推移,游戏的难度也在增加。如果我们击中任何建筑物,我们将看到一个红色屏幕,表明游戏已经结束;然后游戏重新开始,循环再次重复。
这是一个小型手持游戏控制台项目的测试项目,该项目将由一个带有按钮的单个定制矩阵PCB组成。游戏将会在屏幕上进行编程,它看起来就像Game Boy或类似的设备,但带有RGB LED显示屏。
本文编译自hackster.io