当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]在我们最新的项目中,游戏怀旧与现代创新相遇——迷你蛇游戏控制台。这个缩小的版本建立在我们之前的64x32 HUB75 RGB矩阵面板为基础的Snake游戏机,但现在,我们已经采取了这个概念,并将其缩小到一个真正的手持游戏设备。

大家好,欢迎回来。这里有一些有趣的东西。

在我们最新的项目中,游戏怀旧与现代创新相遇——迷你蛇游戏控制台。这个缩小的版本建立在我们之前的64x32 HUB75 RGB矩阵面板为基础的Snake游戏机,但现在,我们已经采取了这个概念,并将其缩小到一个真正的手持游戏设备。

我们的目标是创造一个小版本的原始Snake游戏控制台,可以运行类似版本的Snake游戏代码。虽然核心游戏逻辑保持不变,但需要进行一些修改,包括调整显示尺寸,调整蛇的大小以及引入关键增强功能。现在,这条蛇有了渐变的颜色,增加了更多的视觉吸引力,每当食物(红点)被吃掉时,它就会发出蜂鸣器驱动的哔哔声,这给游戏体验带来了更多的满足感。

如果蛇咬了自己,游戏结束序列就开始了,我们会看到一个游戏结束屏幕,显示所消耗的食物的总数。在游戏自动重新开始之前,游戏结束画面会持续5秒。

这款迷你控制台采用Waveshare的ESP32- s3 - lcd -1.69,这是一款基于ESP32 s3的设置,配有1.69英寸的ST7789V2显示屏,在不牺牲性能的情况下提供便携性。由于内置500毫安锂电池,你可以随时随地玩游戏。所有组件,包括ESP32板和定制按钮板,都安置在一个定制设计的外壳内,我们在Fusion 360中构建,然后使用Creality K10 Max进行3D打印。

本文探讨了这个Snake Game控制台的整个构建过程,以及如何通过几个简单的步骤重新构建它,所以让我们开始构建吧。

材料要求

这些是建筑中使用的材料:

•定制PCB(由PCBWAY提供)

•ESP32 S3 1.69寸显示屏(购于PCBWAY礼品店)

•按钮

•500mAh 3.7V 14500锂离子电池

•按钮开关

•M2螺丝

•连接电线

•热熔胶

•3D打印外壳

Snake游戏控制台项目和PICO Blasters

让我们先来看看贪吃蛇游戏机,这是一个紧凑的便携式系统,由树莓派PICO驱动,具有64x32 RGB矩阵面板和3d打印外壳。它运行的是一款经典的贪吃蛇游戏,你可以使用四个方向的按钮来引导蛇,追逐随机的红点来获得分数,并尽量避免撞到自己。另外,它有一个机载电池,所以你可以带着它去任何地方玩。

然后是camePICO Blaster,它采用了相同的硬件设置,并将其变成了一款快节奏的《太空入侵者》风格的射击游戏。有了额外的自定义控制板,改进的游戏机制和颜色编码的投射物,这款游戏完全是关于反应和策略的。

玩家驾驶一艘宇宙飞船,躲避攻击并使用两种类型的武器进行反击——速射子弹和强大的冲击波,它可以消灭沿途的一切(游戏邦注:为了保持趣味性,玩家需要设置冷却时间!)

这两款游戏都是从头开始编写的,真的很痛苦。大部分开发时间都花在了创造游戏逻辑上,而这两款设备的硬件部分也非常简单,并且在不到一天的时间内就准备好了。

对于Mini版本,我只移植了Snake Game。我们可以为该设备制作更多游戏,这将是我们未来项目的一个想法。

迷你版设计

在这个项目的设计中,我们首先将我们的ESP32显示器的3D模型导入到Fusion360中,同时导入我们的Button PCB with Buttons的Cad文件,以及电池和push switch的Cad文件。

接下来,我们将组件组织在一个合乎逻辑和实用的布局中,将开关PCB放置在显示器下方,将电池放置在显示器和开关PCB的后面,并将推开关放置在电池上方的背面。一旦一切都安排好了,我们就开始设计一个封装所有组件的外壳,并将它们无缝地统一起来。在美学上,我选择了一个方形的复古设计,让人想起上世纪90年代,从经典的诺基亚手机中汲取灵感——从它的外形上可以看到这些元素。

外壳已准备好并分为两部分:前外壳和盖子部分。前机箱容纳ESP32显示板和Switch PCB。ESP32显示器是压力安装在其位置;我们还包括安装孔,以防有人希望拧紧显示器适当与外壳。开关PCB用4颗M2螺钉固定到位。

盖子部分容纳电池和电源开关。

前外壳和盖子部分都用四个M2螺钉连接在一起,因为我们在前外壳上创建了四个螺钉凸台,在盖子上创建了四个孔,以滑动螺钉并将两者连接在一起。

对于3D打印,我们导出了两个部件的网格文件,并在我们的新Creality K10 max上使用0.4mm喷嘴和25%填充的白色Hyper PLA打印它们。

ESP32显示开发板

我们在我们的项目中使用ESP32-S3-LCD-1.69,因为它是一种低成本,高性能的MCU板,完全符合我们的需求。

配备了1.69英寸的电容式液晶显示屏,锂电池充电芯片,以及带有三轴加速度计和陀螺仪的六轴传感器,该板具有增强我们的Snake游戏机的功能。

它包括一个定时功能的RTC芯片,一个用于运动跟踪的QMI8658惯性测量单元(IMU),以及一个用于长期电源管理的ETA6098锂电池充电芯片。

板载蜂鸣器提供音频反馈,而Type-C接口允许轻松的演示闪烁和日志打印。此外,BOOT和RST按钮简化了重置和固件下载,可定制的功能按钮支持多种输入方法,包括单、双和长按。

ST7789V2液晶控制器支持240 × RGB × 320分辨率,但其有效显示面积为240(H) × RGB × 280(V)。它支持RGB444、RGB565和RGB666颜色格式,我们的项目使用RGB565来获得最佳的视觉输出。

四线SPI接口确保高效的GPIO使用和快速的通信速度,而显示屏的圆角有助于其圆滑,紧凑的设计。

至于采购这个显示器,我们从PCBWAY的礼品店得到了它,这是一个电子市场,在那里你可以找到各种各样的电子设备和模块,他们的真实价格。

开关PCB设计

在这个项目中,我们重新使用了之前的贪吃蛇游戏控制台项目中的一个按钮板。该PCB具有四个按钮,每个连接到GND,以及四个输出引脚,将连接到ESP32的GPIO引脚。通过按下每个按钮,我们将GPIO引脚拉到GND,微控制器记录按钮状态的这种变化。

通过在适当的位置添加按钮并按正确的顺序连接走线,最终完成了电路板设计,之后我们导出了该PCB的Gerber Data并将其发送给PCBWAY进行样品。

开关PCB组件

按钮板的组装过程超级简单。我们首先从板的顶部放置按钮,然后我们用烙铁从底部焊接它们的焊盘。

贪吃蛇游戏代码

在继续汇编过程之前,让我们深入研究一下这个项目的代码。

让我们对这段代码进行深入分析,并从Include库和显示设置开始。

这些包括ESP32所需的库,还定义了保存在pin_config文件中的重要硬件引脚映射。

上面的部分设置SPI总线并初始化ST7789 LCD显示器。

接下来,我们为用户控件和蜂鸣器定义GPIO引脚。

接下来是游戏网格大小和单个单元大小。

这控制了网格中的食物放置边界。

这一部分定义了蛇的结构和运动、食物和游戏状态的必要变量。

现在是游戏逻辑功能,它包含两个主要部分;食物放置和碰撞检测。

这是食物放置功能,当食物被吃掉时随机分配一个新的位置。

这是检查蛇是否与自己碰撞的部分。

接下来是游戏重置和得分部分。

这部分在新回合开始时重置游戏状态。

本节更新LCD上的成绩显示。

现在是这个项目的声音效果部分,当食物被消耗时播放一个简短的哔哔声,当游戏结束时播放一段旋律。

当食物被吃掉时,它会发出短暂的哔哔声。

这个部分在比赛结束时播放一段旋律。

现在是游戏显示和图形部分,显示“游戏结束”屏幕并重置游戏。

初始化串行通信、显示和按钮引脚。

最后,我们得到了这段代码中最重要的部分,即游戏循环。这个部分处理移动、碰撞、食物消耗和游戏速度。

我们在附件中附加了pin_config.h文件,因此请确保它与主草图位于同一文件夹中。

布线过程

•首先将五根线连接到ESP32 Dev板的GPIO2、GPIO10、GPIO16、GPIO18和GND端子上。

•接下来,我们将地线连接到按钮板的GND端子。

•GPIO2线连接在交换板的左端子上。

•GPIO10连接右端。

•GPIO16连接Down端子。

•GPIO18连接Up端子。

电源组件

我们使用3.7V 500mAh 14500锂离子电池作为这个项目的电源。

他们通常没有点焊电线,迫使人们手动将电线焊接到电池端子上,这是一种可能导致火灾或爆炸的不良做法。这无疑会减少电池的寿命和容量,因此我们应该避免使用烙铁将电线直接焊接到锂电池的端子上。

•我们现在通过将电池的正极线连接到推开关的NC开始电源组装过程。

•我们在推开关的公共端子上再加一根电线。我们在电池正极之间加入了一个推开关,这样电池电源就可以通过这个开关关闭。

•接下来,我们将电池的正极和负极连接线连接到ESP32板上的电池连接器。

•通过这个连接,我们现在可以用锂离子电池为这个装置供电了。

总装

•最后的组装开始与ESP32显示器的安置在前面的外壳上,我们从前面推到位。

•接下来,我们从前外壳的内部传递开关PCB并将其放在前面。这将隐藏ESP32板和Switch PCB之间的连接线。

•然后使用四个M2螺钉将开关PCB固定在适当位置。

•我们现在安装锂电池在盖子部分和推开关在其正确的位置。

•使用热熔胶枪,我们将热熔胶涂在推开关和电池上,使它们固定在适当的位置。

•接下来,我们在GPIO端口上的显示器背面涂上热熔胶,在这里我们连接了开关板的电线,防止在组装过程中从ESP32走线拔出电线。

•机箱的两个部分现在已经定位在一起,用4颗M2螺钉将它们连接起来。

•我们的Snake游戏控制台迷你设备已经组装好了。

结果

这是这个小型构建的最终结果:迷你蛇游戏控制台,一个小型的手持游戏设备,以紧凑的形式将经典的蛇游戏带入生活。整个设计带有怀旧气息,有点像老款诺基亚6110,让人立刻回想起早期的手机游戏。

尽管它很小,但控制台运行流畅,具有响应式控制和由ESP32-S3-LCD-1.69驱动的充满活力的显示屏。渐变颜色的蛇,当你吃东西时的蜂鸣器,以及定制的按钮板,都让它感觉很精致,玩起来很有趣。在Fusion 360中设计的3d打印外壳使它具有坚固的结构,可以舒适地握在手中。

多亏了内置的500毫安锂离子电池,它是完全便携式的,让你随时随地玩游戏,而不需要恒定的电源。明亮的显示屏和流畅的游戏玩法使它与大版本一样吸引人,但现在它更方便携带。

对于下一个迭代,我想更多地关注游戏本身,这可以通过添加障碍(游戏邦注:如当蛇碰到墙壁时便会结束游戏)而进一步完善。当蛇变大时,它的速度会增加,这是我想在项目的下一个版本中添加的调整之一。此外,我相信如果我们在未来的项目中使用LiPo电池,以及带有SMD按钮的定制PCB,以增加PCB和电子产品的尺寸,我可以创造一个更好更小的身体。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭