基于ESP32的便携式游戏机

ops/2024/10/19 10:54:01/

基于ESP32的便携式游戏机

  • 一、项目说明
  • 二、项目材料
  • 三、程序测试
  • 四、设置LCD屏幕
  • 五、控制设置
  • 六、测试电路
  • 七、外壳制作
  • 八、结果

视频:

ESP32 pro

一、项目说明

欢迎来到复古游戏的世界!你是否曾经想要以便携格式重温童年的经典游戏?在这个教程中,我将指导你完成制作自己的手持复古游戏机的激动人心之旅。我们将使用Raspberry Pi Zero 2W、一个3.5英寸的TFT显示屏,以及其他一些容易获得的组件,来创建一个紧凑、便携的游戏设备,它将唤起你所有的怀旧记忆。

这个项目非常适合初学者和有经验的爱好者。它结合了软件设置、硬件集成以及在制作游戏机机身时的一点创意。通过本指南的学习,你不仅将拥有一个功能齐全的游戏机,还将更深入地了解不同组件如何协同工作。
实物图:
在这里插入图片描述
在这里插入图片描述

二、项目材料

电子组件:

  • Raspberry Pi Zero 2W
  • 3.5英寸TFT显示屏
  • 触摸开关
  • 按钮
  • 摇杆模块
  • ESP32C3微控制器
  • 跳线

制作材料:

  • 纸板
  • 旧报纸
  • 胶水
  • 水(用于制作胶水混合物)

电源和连接:

  • 移动电源(用于为游戏机供电)
  • USB数据线(用于连接外设)
  • 蓝牙扬声器或耳机(用于音频输出)

软件:

  • RetroPie操作系统(从RetroPie网站下载)

工具:

  • 烙铁
  • 面包板(用于原型设计)
  • 工艺刀(用于切割纸板)
  • 剪刀

三、程序测试

要开始,我使用Raspberry Pi Imager在microSD卡上安装了RetroPie。以下是我的做法:

  • 下载并安装Raspberry Pi Imager:首先,我从官方Raspberry Pi网站下载了Raspberry Pi Imager并安装到我的电脑上。
  • 选择RetroPie操作系统:我将microSD卡插入电脑并启动了Raspberry Pi Imager。我选择了“选择操作系统”,导航到“仿真和游戏操作系统”部分,并选择了“RetroPie”。我选择了与Raspberry Pi Zero 2W兼容的版本。
  • 写入镜像:选择RetroPie后,我将microSD卡作为存储设备,并点击了“写入”。然后该工具下载并安装了RetroPie到microSD卡上。

安装完成后,我将microSD卡插入Raspberry Pi Zero 2W并开机。RetroPie启动了,我准备为我的手持游戏机配置系统。

四、设置LCD屏幕

在这里插入图片描述
为了将3.5英寸TFT LCD与RetroPie设置在一起,我需要通过终端安装必要的驱动程序。以下是我的做法:

首先,我通过在RetroPie中按F4键访问了终端。一旦进入终端,我通过输入git clone https://github.com/goodtft/LCD-show.git并按回车键,从goodtft的GitHub仓库下载了LCD驱动程序。下载完成后,我使用cd LCD-show/命令进入了下载的目录。在这个目录中,我找到了几个不同型号TFT显示屏的安装脚本。为了安装我的特定TFT显示屏型号的驱动程序,我运行了相应的脚本。对于我的LCD35型号,我输入了sudo ./LCD35-show并按了回车键。

我按照安装过程中的屏幕提示进行操作,这个过程花了几分钟。安装完成后,系统提示我重启我的Raspberry Pi Zero 2W。重启后,RetroPie自动检测并配置了TFT显示屏。我通过连接的外设导航RetroPie界面来测试显示屏。这个设置使我的3.5英寸TFT显示屏能够与我的Raspberry Pi Zero 2W上的RetroPie无缝协作,提供了极佳的复古游戏体验。

关于你提到的GitHub链接,如果你在尝试访问时遇到了问题,可能是因为网络原因或者链接本身的问题。请确保链接是正确的,并且你的网络连接是稳定的。如果问题仍然存在,可能需要稍后再试,或者检查是否有任何网络限制导致你无法访问GitHub。如果你需要进一步的帮助来解决这个问题,我可以提供支持。

五、控制设置

在这里插入图片描述
最初,我使用触摸开关来测试控制。在最终构建时,为了更好的便利性和耐用性,我换成了按钮。然而,我面临D-pad按钮的短缺。幸运的是,我在组件盒中发现了一个摇杆模块,并决定使用它。由于Raspberry Pi不支持通过GPIO引脚的模拟数据,我使用了一个ESP32C3微控制器作为模拟到数字的转换器。

首先,我校准了摇杆模块以确保输入准确。我将摇杆模块连接到ESP32C3微控制器,然后将微控制器与Raspberry Pi进行接口连接。这个设置允许摇杆作为D-pad使用,为我的游戏提供了精确的控制。

六、测试电路

在这里插入图片描述
在将组件组装到最终的外壳之前,我在面包板上测试了整个电路。我将Raspberry Pi、3.5英寸TFT LCD、按钮、摇杆模块和ESP32C3微控制器连接在面包板上。在为Raspberry Pi通电后,我验证了所有组件是否能够正确协同工作。我确保显示屏能够显示RetroPie界面,按钮能够准确响应,摇杆模块能够作为D-pad工作。这一步骤对于在最终组装前识别和解决任何问题至关重要。

七、外壳制作

在这里插入图片描述
为了制作我的手持游戏机的外壳,我使用了用胶水和旧报纸加固的纸板。首先,我将纸板剪成适合所有组件所需的形状和大小。我将胶水和水混合成糊状,然后涂在纸板上,并用几层报纸覆盖。这种技术增强了纸板的强度,使其足够坚固,能够保护组件。一旦胶水干透,纸板变得坚固,我就直接在纸板上组装了电路。我确保所有组件,包括Raspberry Pi、LCD、按钮和摇杆,都牢固地连接在一起。这种方法为我提供了一个简单而有效的手持游戏机外壳。

八、结果

在这里插入图片描述
外壳完成后,我通过固定所有组件来组装最终产品。虽然内置锂离子电池会是理想的选择,但我最初使用了一个移动电源来为游戏机供电。这种设置是功能性和方便的,让我能够在不担心内部电源的情况下享受游戏。

为了测试最终产品,我通过USB数据线将移动电源连接到Raspberry Pi并打开了游戏机。移动电源有足够的容量为我的游戏会话提供足够的运行时间。我玩了一系列NES和GBA游戏,包括“口袋妖怪绿宝石”、“龙珠Z”、“超级马里奥”、“魂斗罗”、“Zippy Race”和“大金刚”。游戏机表现良好,游戏玩法流畅且响应灵敏。

尽管游戏机没有内置扬声器,但它能够连接到蓝牙扬声器和耳机进行音频输出。这增加了手持游戏机的便携性和便利性,使其成为一个真正多功能的设备,适合随时随地进行复古游戏。最终产品是我努力的令人满意的成果,将各种组件结合成一个功能性和愉快的手持游戏机。

希望你喜欢这个项目,并在构建过程中找到乐趣!如果你有任何问题或需要帮助,欢迎在评论区交流。

作者:Svan.


注意:本博文为不得在未经本人同意进行转载或者二次创作,违者必究!!!


http://www.ppmy.cn/ops/126702.html

相关文章

Shades of Gray 算法

免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。 读者在使用本文信息时,应…

特斯拉Robotaxi发布会2024:自动驾驶未来的开端

引言 2024年10月,特斯拉在洛杉矶举行了一场引发全球科技界高度关注的发布会,主题为“We Robot”。这场发布会展示了特斯拉的最新自动驾驶技术,包括无人驾驶出租车Cybercab和无人驾驶厢式货车Robovan,并且还展示了人形机器人Optim…

智能家居安全系统和使用卷积神经网络的活性检测

论文标题:Smart Home Security System and Liveness Detection using Convolutional Neural Networks(智能家居安全系统和使用卷积神经网络的活性检测) 作者信息: Amith Kumar N1, Satheesh Kumar.G.R1, Sreedhar.V1, Surya.S.S…

论文笔记 ICLR 2024 MogaNet: Multi-Order Gated Aggregation Network

配图中有2个分支,一个是subtract的输出和缩放因子(γs)相乘之后的结果,另一个是11卷积输出的结果,这两个分支的输出进行element-wise addition,这两个分支的输出分别代表什么? 为什么”增强局部…

科技云报到:大模型时代下,向量数据库的野望

科技云报到原创。 自ChatGPT爆火,国内头部平台型公司一拥而上,先后发布AGI或垂类LLM,但鲜有大模型基础设施在数据层面的进化,比如向量数据库。 在此之前,向量数据库经历了几年的沉寂期,现在似乎终于乘着Ch…

Linux :at crontab简述

at命令 在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务系统服务的名称:/etc/init.d/atd存放一次性计划任务的文件:/var/spool/at/^a 依靠 /etc/at.allow(白名单)和 /etc/at.deny&#xff08…

WebSocked基础

一. WebSocket 基本概念 WebSocket是什么? WebSocket 是基于 TCP 的一种新的应用层网络协议。它提供了一个全双工的通道,允许服务器和客户端之间实时双向通信。因此,在 WebSocket 中,浏览器和服务器只需要完成一次握手&#xff…

RestClient查询文档排序、分页和高亮

目录 排序、分页 高亮 高亮请求构建 高亮结果解析 排序、分页 搜索结果的排序和分页是与query同级的参数,因此同样是使用request.source()来设置。 对应的API如下: 完整代码示例: Test void testPageAndSort() throws IOException {// …