×

小太空侵略者游戏开源分享

消耗积分:0 | 格式:zip | 大小:0.34 MB | 2022-11-07

2223

分享资料个

描述

最近我做了一个名为Tiny Space Impact Game 的项目。看完之后才发现,主机本身就很通用,可以用来玩其他液晶1602风格的游戏。微处理器中还有大量未使用的闪存,可以添加不止一款游戏。

与空间主题保持一致,我添加了 arduinocelentano 的LCD Invaders以及一个简单的菜单系统来选择游戏。

示意图

该电路是围绕 ATtiny1614 微处理器设计的。这款 14pin 设备有 16K 闪存和 2K 静态内存,对于这个游戏来说绰绰有余。与 ATmega328 微处理器不同,ATtiny1614 可以以 1MHz 时钟运行。这意味着它在运行时和处于睡眠模式时消耗的电量要少得多,从而使电池寿命更长。

poYBAGNkexqAdCUhAABrGZOgwxA357.png
LCD 1602 游戏机示意图
 

我用 3V3 稳压器和 3.7V 电池插座设计了原理图。如果您想专门使用电池,请不要使用 U$1、U$2 和 C8。如果您只想使用 5-12V 电源砖为游戏供电,则可以不使用电池连接器 CN1。

将 5V 1602 LCD 显示器转换为在 3.3V 上运行

大多数 1602 LCD 显示器设计为在 5V 下运行。有 3.3V 版本可用,但它们可能非常昂贵。大多数 5V 板可以通过添加三个组件和更改跳线转换为由 3.3V 电源供电。

pYYBAGNkex2AClbCAABofhDi7ao771.jpg
左侧的 5V 板转换为由右侧的 3.3V 电源供电。
 

1.在U3上添加ICL7660 SOIC芯片

2、C1和C2加两个10uF 1206电容

3.打开J1(去除焊锡)并关闭J3(添加焊桥)

3D打印

包括 STL 文件。将这些带到 3D 打印店,或者如果您有自己的打印机,请通过切片软件运行它们。我使用了 0.2 毫米的层高并且没有支撑。

用 2.5 毫米钻头钻出四个 PCB 安装孔,并用 3 毫米丝锥创建一个螺纹。

如果盖子丢失,请在底部边缘添加蓝色油漆胶带,直到贴合紧密。

确保 X-Pad 和 Button 顶部在插入顶部时不会卡在外壳上。使用锉刀去除前几层坐在加热的构建板上时可能出现的任何唇缘。

印刷电路板

由于 ATtiny1614 微处理器仅作为表面贴装器件 (SMD) 提供,因此我决定对构建中的大多数组件使用 SMD 封装。

poYBAGNkeyCAHbuSAAEV8Ygj6ZM829.jpg
大部分元件使用SMD元件
 

如果您希望将电路板商业化,或者您可以像我一样自己制作,Eagle 文件已包含在内。我使用了碳粉方法。

组装 - 步骤 1

首先添加 SMD 组件。我发现在焊接 SMD 元件时使用焊膏比使用卷盘中的焊料更容易。

还将 UPDI 编程器的排针和电池插座焊接到电路板的铜面上。

焊接用于设置 LCD 对比度的 10K 微调电位器时要小心短路。

pYYBAGNkeyOAYVCaAADxVgFW1TE873.jpg
添加 SMD 组件、10K 微调电位器和电池座
 

组装 - 第 2 步

为 1602 LCD 显示器添加 16 针头。还将一些填充物超级粘在电路板顶部以支撑 LCD PCB。确保当显示器放置在 PCB 上时,它的 PCB 是平行的。

poYBAGNkeyeACmthAAB_ikhLuYQ890.jpg
添加 16 针 LCD 排针和超级胶水一些填充物以支撑电路板
 

组装 - 第 3 步

将 LCD 显示器、开关和蜂鸣器添加到板的顶部。

用四个 6mm M3 螺钉将组装好的板子拧到外壳顶部。

pYYBAGNkeymAbsDYAACvOJqv0Dg506.jpg
将 LCD 显示器、开关和蜂鸣器添加到板的顶部
 

对 ATtiny1614 进行编程

ATtiny1614 是新一代 ATtiny 微处理器的一部分。与 ATtiny85 等早期系列不同,新品种使用 RESET 引脚对 CPU 进行编程。要对其进行编程,您需要一个 UPDI 程序员。我用 Arduino Nano 做了一个。您可以在Create Your Own UPDI Programmer中找到完整的构建说明。它还包含将 megaTinyCore 板添加到 IDE 的说明。

我自制的 UPDI 编程器输出 5V。由于 1602 LCD 显示器现在配置为从 3.3V 运行,因此您无法使用 UPDI 编程器为电路板供电。而是仅连接接地线和 UPDI 线(不连接 5V 线)并使用 3.7V LIPO 电池或外部电源砖供电。

poYBAGNkeyyAel0aAACDFF_YOxc279.jpg
用我自制的 UPDI 编程器对 ATtiny1614 处理器进行编程
 

在 IDE 中安装板后,从“工具”菜单中选择它。

选择芯片(ATtiny1614)、millis()/micros() 定时器(TCD0) 和Arduino Nano 连接的COM 端口。

如果您打算使用电池运行游戏,请将时钟速度设置为 1MHz。如果您打算使用外部电源运行游戏,请将时钟速度设置为 8MHz。

Programmer 需要设置为jtag2updi (megaTinyCore)

打开草图并将其上传到 ATtiny1614。

软件更改 - 太空入侵者

与 OLED 显示器相比,LCD 屏幕的更新速度往往非常慢。这成为快速移动物体的问题。我不得不在原始代码中为子弹类添加延迟,以便子弹更明显。

它还添加了音效和保留在 EEPROM 中的高分系统。

软件更改 - 空间影响

在修改原始代码以使用 X-Pad 而不是操纵杆后,我发现 Space Impact 游戏本身很难玩,因为控件响应不够快。这是因为测试控件是否被激活的主程序循环也会更新屏幕。因此,当屏幕更新时,控件没有响应。

软件已更改,以便使用周期性中断持续测试控件。这意味着即使屏幕正在更新,控件也会响应。

它还具有更多的声音和保留在 EEPROM 中的高分系统。

结论

如果您愿意,微处理器中还有更多空间可以添加另一个游戏。控制台本身易于握持和玩游戏。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !