当前位置: 首页 > news >正文

基于ESP32的便携式游戏机

基于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.


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

相关文章:

基于ESP32的便携式游戏机

基于ESP32的便携式游戏机 一、项目说明二、项目材料三、程序测试四、设置LCD屏幕五、控制设置六、测试电路七、外壳制作八、结果 视频: ESP32 pro 一、项目说明 欢迎来到复古游戏的世界!你是否曾经想要以便携格式重温童年的经典游戏?在这个…...

【LeetCode 88. 合并两个有序数组】 java实现

LeetCode 88. 合并两个有序数组 题目描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 的大小等于 m n(即…...

200Kg大载重多旋无人机价格高昂技术分析

200Kg大载重多旋无人机作为一种高度专业化的航空工具,其价格相较于普通无人机显著较高,这主要是由于其在技术设计和生产过程中所需的高要求所致。以下是对其价格高昂的技术分析: 一、高性能材料与结构设计 1. 高强度轻量化材料:…...

快速理解http的get和post

在网络通信中,HTTP 协议扮演着非常重要的角色,而不同的 HTTP 方法决定了客户端与服务器之间的交互方式。 这里讲一下最常用的两种方法——GET 和 POST。 一、GET 方法 GET 方法用于从服务器获取资源。 这就像去图书馆借书——你向图书馆请求一本特定的…...

Mamba学习笔记(3)—S4原理基础

文章目录 Efficiently Modeling Long Sequences with Structured State Spaces0 Abstract1 Introduction2 Background:State Spaces2.1 State Space Models: A Continuous-time Latent State Model2.2 Addressing Long-Range Dependencies with HiPPO2.3 Discrete-t…...

好看的ppt字体推荐!分享3个制作幻灯片的常用软件!

ppt什么字体好看? 好看是一个比较主观的概念,见仁见智,在选用ppt字体时,比起关注好看,字体是否“合适”应该是优先级更高的需求。这里的合适,即PPT所选用字体的风格、呈现效果是否与PPT的主题和使用场景相…...

第6篇:无线与移动网络

目录 引言 6.1 无线网络的基础概念 6.2 无线局域网(WLAN)与IEEE 802.11 6.3 蓝牙与无线个域网(WPAN) 6.4 无线城域网(WMAN)与WiMax 6.5 ZigBee与智能家居 6.6 移动蜂窝网络(3G/4G/5G&…...

【C++标准模版库】unordered_map和unordered_set的介绍及使用

unordered_map和unordered_set 一.unordered_set1.unordered_set类的介绍2.unordered_set和set的使用差异 二.unordered_map1.unordered_map和map的使用差异 三.unordered_multimap/unordered_multiset四.unordered_map/unordered_set的哈希相关接口 一.unordered_set 1.unord…...

深度解析Transformer:从自注意力到MLP的工作机制

深度解析Transformer:从自注意力到MLP的工作机制 以下大部分内容本来自对3Blue1Brown的视频讲解的整理组织 一、Transformer的目标 为了简化问题,这里讨论的模型目标是接受一段文本,预测下一个词。这种任务对模型提出了两大要求:…...

《米小圈动画成语》|在趣味中学习,在快乐中掌握成语知识!

作为一名家长,我一直希望孩子能够在学习的过程中既感受到乐趣,又能获得真正的知识。成语作为中华文化的精华,虽然意义深远、简洁凝练,但对于一个小学生来说,学习和理解这些言简意赅的成语无疑是一个挑战。尤其是有些成…...

linux系统之jar启动脚本

编辑linux启动脚本 执行 vi run_blog 按i 进入编辑,复制以下代码,并根据当前环境修改三个参数。以下是详细完整脚本代码: #!/bin/bash# 配置部分 JAR_PATH"/path/to/your/app.jar" # 替换为你的 JAR 文件的实际路径 L…...

简单认识Maven 2-Maven坐标

Maven坐标 在 Maven 中,坐标(Coordinates)用于唯一标识一个项目或依赖项,就像在现实世界中通过经纬度来确定一个地理位置一样。Maven 坐标由三个主要部分组成:groupId、artifactId 和 version。 groupId(…...

Xilinx UltraScale系列FPGA纯verilog图像缩放,工程项目解决方案,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明FPGA高端图像处理培训 2、相关方案推荐我这里已有的FPGA图像缩放方案本方案在Xilinx Artix7 系列FPGA上的应用本方案在Xilinx Kintex7 系列FPGA上的应用本方案在Xilinx Zynq7000 系列FPGA上的应用本方案在国产FPGA紫光同创系列上的应用本方案在国产…...

React(二) JSX中的this绑定问题;事件对象参数传递;条件渲染;列表渲染;JSX本质;购物车案例

文章目录 一、jsx事件绑定1. 回顾this的绑定方式2. jsx中的this绑定问题(1) 方式一:bind绑定(2) 方式二:使用 ES6 class fields 语法(3) 方式三:直接传入一个箭头函数(重要) 3.事件参数传递(1) 传递事件对象event(2) 传递其他参数 4. 事件绑定…...

前端开发攻略---取消已经发出但是还未响应的网络请求

目录 注意&#xff1a; 1、Axios实现 2、Fetch实现 3、XHR实现 注意&#xff1a; 当请求被取消时&#xff0c;只会本地停止处理此次请求&#xff0c;服务器仍然可能已经接收到了并处理了该请求。开发时应当及时和后端进行友好沟通。 1、Axios实现 <!DOCTYPE html> &…...

韩信走马分油c++

韩信走马分油c 题目算法代码 题目 把油桶里还剩下的10斤油平分&#xff0c;只有一个能装3斤的油葫芦和一个能装7斤的瓦罐。如何分。 算法 油壶编号0&#xff0c;1&#xff0c;2。不同倒法有&#xff1a;把油从0倒进0&#xff08;本壶到本壶&#xff0c;无效&#xff09;&…...

【Linux】Anaconda下载安装配置Pytorch安装配置(保姆级)

目录 Anaconda下载 Anaconda安装 conda init conda --v Conda 配置 conda 环境创建 conda info --envs conda list Pytorch安装配置 检验安装情况 检验是否可以使用GPU Anaconda下载 可以通过两种途径完成Anaconda安装包的下载 途径一&#xff1a;本地windows下…...

渗透测试导论

渗透测试的定义和目的 渗透测试&#xff08;Penetration Testing&#xff09;是一项安全演习&#xff0c;网络安全专家尝试查找和利用计算机系统中的漏洞。 模拟攻击的目的是识别攻击者可以利用的系统防御中的薄弱环节。 这就像银行雇用别人假装盗匪&#xff0c;让他们试图闯…...

鸿蒙学习笔记--搭建开发环境及Hello World

文章目录 一、概述二、开发工具下载安装2.1 下载开发工具DevEco Studio NEXT2.2 安装DevEco Studio 三、启动软件四、第一个应用Hello World4.1 创建应用4.2 创建模拟器4.3 开启Hyper-v功能4.4 启动虚拟机 剑子仙迹 诗号&#xff1a;何须剑道争锋&#xff1f;千人指&#xff0c…...

【ArcGIS风暴】ArcGIS字段计算器公式汇总

在GIS数据处理中,ArcGIS的字段计算器是一个强大的工具,它可以帮助我们进行各种数值计算、文本处理和逻辑判断。本文将为您整合和分类介绍ArcGIS字段计算器中的常用公式,并通过实例说明它们的应用。 文章目录 一、数值计算类二、文本处理类三、日期和时间类四、逻辑判断类五、…...

西门子S7_200PLC与MCGS组态在污水处理控制设计中的应用

西门子S7_200PLC和MCGS组态的污水处理控制设计老铁们今天咱们唠点实在的工业自动化应用&#xff0c;污水处理厂里那套S7-200和MCGS组态配合的骚操作。这玩意儿可不是课本上那些理论&#xff0c;是实打实在某县污水处理站跑了两年的成熟方案。先说核心控制逻辑&#xff0c;五个污…...

破局迷茫:Java 2026行业前瞻、零基础通关路径与理科大学生职业跃迁全攻略

你是否正站在人生的十字路口&#xff0c;被一连串的问题反复拷问&#xff1a;听过Java的大名&#xff0c;却始终搞不懂它到底是什么、能支撑你走多远&#xff1f;想入门编程&#xff0c;却面对海量资料无从下手&#xff0c;怕走弯路、怕投入时间最终竹篮打水&#xff1f;刷到无…...

OpenClaw技能市场巡礼:Top10Qwen3.5-9B增强插件测评

OpenClaw技能市场巡礼&#xff1a;Top10 Qwen3.5-9B增强插件测评 1. 为什么需要关注OpenClaw技能市场&#xff1f; 第一次接触OpenClaw时&#xff0c;我被它"AI操控电脑"的核心能力震撼&#xff0c;但真正让我持续使用的原因是它的技能市场&#xff08;ClawHub&…...

AI辅助开发新思路:让快马AI理解自然语言,自动生成分区数据智能查询系统

今天想和大家分享一个最近用AI辅助开发的实用工具——中科院分区智能查询系统。这个项目的核心思路是让AI理解科研人员的自然语言查询需求&#xff0c;自动转换成数据库操作&#xff0c;大大简化了科研数据检索的流程。 项目背景与需求分析 作为一名经常需要查阅期刊信息的科…...

超离谱!iOS 26.0.1 Filza 管理器发布,有效可用

Filza 内置 DarkSword 利用已发布&#xff0c;支持更多系统版本。 注意&#xff01;System 目录仍然无法修改&#xff0c;仅对 var/mobile 目录。能实现读取、写入、删除等操作。有点离谱&#xff01;Little_34306 作者刚发布网页版授权 Filza 方法&#xff0c;现在又发布 Fi…...

3分钟掌握Windows安卓应用安装:免费轻量级APK安装器完全指南

3分钟掌握Windows安卓应用安装&#xff1a;免费轻量级APK安装器完全指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行安卓应用却不想安装…...

GBase 8a 字符集、排序规则和字符串比较结果偏差

GBase 8a 字符集、排序规则和字符串比较结果偏差 我最近看资料和整理现场问题时&#xff0c;越来越觉得 GBase 8a 里很多“查出来不对”的问题&#xff0c;并不是表没导对&#xff0c;也不是 SQL 逻辑写错了&#xff0c;而是字符集、排序规则、大小写处理和字符串比较语义没有统…...

终极Fuel测试指南:使用MockWebServer编写可靠的Kotlin网络测试

终极Fuel测试指南&#xff1a;使用MockWebServer编写可靠的Kotlin网络测试 【免费下载链接】fuel The easiest HTTP networking library for Kotlin/Android 项目地址: https://gitcode.com/gh_mirrors/fu/fuel Fuel是Kotlin平台最简单易用的HTTP网络库&#xff0c;专为…...

无需安装claude code,在快马平台5分钟构建你的第一个代码生成器原型

最近在研究代码生成工具时&#xff0c;发现Claude Code这个新兴项目挺有意思的。它能够根据自然语言描述生成对应的代码&#xff0c;对于快速原型开发特别有帮助。不过在实际尝试时&#xff0c;我发现本地安装配置过程有点麻烦&#xff0c;需要处理各种环境依赖和版本兼容问题。…...

IntelliJ IDEA 2019安装教程及下载

软件介绍&#xff1a; IntelliJ IDEA 是捷克 JetBrains 公司研发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主打 Java 和 Kotlin 开发&#xff0c;被誉为 “最佳 Java IDE”&#xff0c;适配不同层级开发者需求&#xff1b;它具备智能代码补全、静态分析、一键重…...