全世界最小的Game Boy电路方案剖析,这设计你也可以掌握
发布时间:2019-09-06
分享到:
全世界最小的Game Boy电路方案剖析,这设计你也可以掌握
发布时间:2019-09-06
分享到:

这可能是世界上最小的全功能Game Boy Color,能够使用微型方向键盘和按钮,板载显示器和电池,可以媲美原版的Game Boy,只不过是形状缩小了好几个身板。这是一个令人难以置信的Hackaday上的项目,它提供了硬件和软件的强大功能。

 

我相信很多人对你的第一款掌上游戏机有美好的回忆。对于大多数人来说可能都是任天堂的Game Boy,我不得不承认它具有相当不错的便携性和电池寿命,这让许多智能手机变得比较尴尬。尽管如此,Sprite_TM始终梦想着一个非常便携的版本,并且为了他的青春期快乐,他找到了一个Game Boy的钥匙链版本(如下图)。不幸的是,他被骗了。钥匙扣虽然看起来像一个Game Boy,但只能作为一个时钟。

但是现在,几十年后,技术已经取得了进步,因为他也有自己的技能。于是,Sprite_TM构建了属于自己的Game Boy,同时也相当于圆了他儿时的梦想。

硬件

Sprite通过指定显示器开始了他的硬件设计。最初的Game Boy是一个相当差的屏幕,只有160×144分辨率,大约有4级灰度。新屏幕需要包含此功能,但物理尺寸尽可能小。

他发现的第一个屏幕是一个800×600的小型OLED屏幕:一块惊人的硬件,价格低至720美元。更好的选择是尺寸小于1英寸的彩色OLED,售价3.80美元 - 它的分辨率不足以达到96×64,但是Sprite对它进行了测试,结果发现它是一块可以通过测试的屏幕,于是他就接受了它,另外他选择了直径小于1厘米的扬声器,ESP32芯片(采用ESP-WROOM-32模块)和150毫安时锂离子电池。

屏幕的大小决定了Game Boy外形的所有尺寸。Sprite将屏幕的测量图像拉入Inkscape,并开始播放原始硬件的图像,以达到他的最终尺寸。由于需要一个OLED柔性电缆通过的插槽,他在铺设电路板时遇到了一些挑战。他在OpenSCAD中对PCB进行了建模,并围绕它构建了案例设计。这是他第一次使用3D打印机而且他的表壳确实看起来很棒!

软件

在这种情况下,软件是一项挑战。Sprite想要从模拟器开始,但模拟器是为完整的计算机系统编写的。ESP32是一个强大的芯片(双核240 MHz,512k RAM,外围设备,WiFi和蓝牙),但它仍然不是一个完整的计算机。他决定查看经过优化的旧仿真器,以便在非常旧的计算机设备上运行。经过对许多选项的筛选后,他选择了GNUboy,它具有优化功能,可以在486计算机上运行。

这是一个良好的开端,但他还有很长的路要走,以确保这些是可行的的。最值得注意的是,GNUboy用来维护“精灵”的“平铺缓存” - 构成每个游戏的8×8图形块。这在视频的大约18:34被很好地解释了。GNUboy为tile缓存分配大约128 kB的RAM(超过可用的1/4)。Sprite能够将这种需求减少到大约46 kB。

模拟器运行后,Sprite添加了一些不错的用户功能。屏幕允许用户调整亮度,音量以及加载或重置ROM。由于主板上没有大容量存储,因此小型Game Boy只能同时存储几个游戏。Sprite利用芯片的WiFi功能来解决这个问题。当您想要加载新游戏时,它会广播一个接入点并运行一个网络服务器,允许任何手机或计算机上传新游戏。

一开始很糟糕

在构建像这样的史诗般的硬件时,总会出现问题。对我们来说幸运的是,Sprite 非常乐意分享他所遇到的挫折,而且这样做非常有趣。

音频是一个棘手的问题,也是演讲中技术最有趣的部分之一。他注意到扬声器的温度比它应该的还要高......大概是90摄氏度。他正在使用H桥电机驱动芯片(BD6211)驱动它,这看起来没啥问题,但是似乎芯片一直在驱动扬声器,没有停止过。

为了解决这个问题,他开始研究滤波技术并发现了两种被称为AD调制和BD调制的设计。事实证明,BD调制使用0V两侧的正负电压驱动作为中心线。这是解决散热问题的方法,但提出了另一个挑战:如何从微控制器产生负电压?他最初的音频技术使用了I2S外设,但只输出一个引脚。他开始使用具有两个引脚的RMT外设,使用它来切换负电压电路。这个解决方案非常聪明,Sprite建议查看RMT外设(这是驱动WS2812 LED的一个)。

我们听到人们抱怨使用外部闪存的微控制器,这有时是一个非常好的功能。例如,Sprite想要更多的程序存储器,而ESP32支持它,但是WROOM模块有一个焊接在电路板上的金属盒屏蔽所有电路。它确实如此,它也负责拆卸其他的车载组件。使用新模块进行了另一次尝试,他可以使用最大的闪存芯片。

这不仅仅是一个Game Boy

实践是真正的检验。小Game Boy的示范令人非常愉快,如果你在周末期间与Sprite交谈过,他可能愿意让你尝试一下。这和最初的Game Boy一样有效。尽管缺少像素,但屏幕看起来很棒!用户控制感觉正常并且声音也是可以接受的,虽然存在一点延迟但是他在他的待办事项列表上有修复计划。

黑客游戏系统的 kitsch基准长期以来一直是DOOM,这一传统在Sprite上并没有丢失。他证明了DOOM运行良好,但帧速率很差 - 这仍然是一个教科书般的胜利。他还展示了他的钥匙链大小的掌上电脑玩Witcher 3。有些东西听起来不可思议,对吗?当然微控制器无法处理当代游戏,但它可以像charm一样处理VNC转发。一个非常酷的技巧,如果Game Boy仿真并没有完全推动我们的微型技术走了多远,而这个演示应该完成这项壮举。

Sprite一旦整理完就会在GPL下发布代码,他正在计划PCB和外壳设计文件。如果你想要其中之一,并且喜欢自己做一点制作,那你可以自己尝试一下。更多更详细的内容介绍,可以看上文视频的演讲。

 

版权声明:Hackaday授权,电路城原创翻译视频,谢绝转载!

如果你也喜欢开源的项目,并想分享你自己开源的作品,为开源世界贡献你的力量!

视频内容投放通道:yanfen.mo@supplyframe.cn

加入微信技术交流群

技术交流,职业进阶

关注电路设计技能公众号

了解最新技术方案

加入电路城 QQ 交流群

与技术大牛交朋友

讨论