这是一台极简的掌机:一块 Heltec ESP32 LoRa(自带 0.96“ OLED)、一颗按键、几颗 LED 和一个有源蜂鸣器,就能跑 3 款小游戏;菜单、选择、游玩全靠 一颗按键 完成,做工从面包板到 3D 外壳一应俱全,源码开放,适合动手热身。

项目亮点
- 单按键交互:短按切换菜单项,长按启动或退出游戏(>1s 进入所选游戏,>2s 返回菜单),LED 与蜂鸣器提供“开始/赢/输”反馈。
- 硬件极简:主控采用 Heltec ESP32 LoRa 显示模块,通过 USB 取电;板载 3.3V 稳压给按键和灯供电。使用 BC557 PNP 晶体管 驱动蜂鸣器和 LED,避免 IO 直接带载。LED 并联实现同步闪烁。
- 三款小游戏内置:
- Hamba Match(定格对齐)
- Hamba Run(类似 Chrome 小恐龙,跳跃躲障)
- Number Hold(数字定点匹配)
- OLED 特性:Heltec 板载 OLED 屏需要在初始化时将 GPIO16 拉高 才能点亮。
- 按键中断 + 硬件去抖:按键采用中断读取,并使用 100nF 电容去抖,上拉电阻 1kΩ。
- 外壳友好:配套 3D 模型文件(前盖与后壳),内部还预留小电池空间,便于独立供电。
材料清单
- Heltec ESP32 LoRa 显示模块 ×1
- 有源直流蜂鸣器 ×1
- 轻触按键 ×1
- BC557 PNP 晶体管 ×2
- 1kΩ 电阻 ×5
- 红色 LED ×3、蓝色 LED ×3
- 100nF 电容 ×1
所有元件都是常见基础器件,可直接面包板搭建。

电路与装配
- 供电部分:通过 USB 提供 5V 输入,模块板载稳压输出 3.3V。
- 驱动部分:用 PNP 晶体管控制蜂鸣器和 LED 组,避免 IO 电流过大。LED 并联,同步闪烁。
- 按键部分:按键上拉 1kΩ,空闲电平为高,旁并 100nF 电容防抖。
- 装配结构:模块置于面包板中央,两侧布置外设,最后配合 3D 打印外壳固定。



软件与交互逻辑
- 代码结构:主程序集中在
main.cpp,菜单显示函数 drawMenu(),执行函数 menuAction()。
- OLED 启动:Heltec 板载 OLED 需在初始化时手动拉高 GPIO16 才能工作。
- 按键中断:按键中断触发响应,需加上
IRAM_ATTR 修饰符以防止复位。
- 交互规则:
- 短按:菜单中移动光标
- 长按 >1s:进入当前游戏
- 游戏内长按 >2s:退出并回到菜单
GitHub链接: https://github.com/AlAminAshik/Mini-game-consol-using-lora-display-esp32.git
开发与编译
- Arduino IDE:可直接将
main.cpp 内容复制到 IDE,安装依赖库后上传。依赖为 Adafruit SSD1306(作者示例版本 ^2.5.13)。
- PlatformIO(作者实测配置):
[env:heltec_wifi_loRa_32_v2] #using heltec_wifi_kit_v2 board will not work
platform = espressif32
board = heltec_wifi_loRa_32_v2
framework = arduino
monitor_speed = 115200
upload_speed = 115200
lib_deps =
adafruit/Adafruit SSD1306@^2.5.13
三款小游戏简介
- Hamba Match:屏幕上有移动图像与固定轮廓,玩家需在对齐时按下按键,关卡越高速度越快。
- Number Hold:屏幕上循环显示数字,目标数字出现时按下即可得分。
- Hamba Run:一款迷你“恐龙跳跃”游戏。随机生成障碍,按键控制角色起跳,碰撞即结束并显示分数。


图像素材的生成
为了在 SSD1306 上显示小图标/像素牛等,作者用 Image2CPP 将 Illustrator 导出的 PNG 转为 C 数组;网页上可以调整阈值、尺寸与输出格式。作者也提示:低分辨率图案效果一般。

小结
这是一台“用最少外设做最完整交互体验”的极简掌机。单按键控制结合灯光与蜂鸣器反馈,让交互自然又富有节奏感。Heltec 模块自带 LoRa 与 OLED,但在此项目中只使用了显示部分。
未来可以尝试扩展 LoRa 功能,实现两台掌机间的无线对战或积分同步。如果加入 18650 电池供电方案,便携性和可玩性都会更上一层。
对于电子工程师或嵌入式爱好者来说,这是一个极具练手价值的小开源实战项目:从硬件到代码都简洁明了,却能完整体现交互设计、输入响应、显示控制等核心要素。简单、有趣、可拓展——正是那种能带来成就感的“指尖工程”。
如果你也喜欢捣鼓这类软硬结合的创意项目,欢迎来云栈社区的开发者广场分享你的想法或作品,一起聊聊硬件、代码和那些有趣的灵感。
|