站内搜索
发作品签到
EDA-AI生成式游戏机
专业版

EDA-AI生成式游戏机

简介

基于 立创·ESP32-S3 R8N8 的开源AI生成式游戏机,使用ESP-Claw框架,想玩什么游戏告诉AI,让AI帮你实时开发生成

简介:基于 立创·ESP32-S3 R8N8 的开源AI生成式游戏机,使用ESP-Claw框架,想玩什么游戏告诉AI,让AI帮你实时开发生成
复刻成本:65

开源协议

GPL 3.0

创建时间:2026-06-15 11:54:45更新时间:2026-06-24 18:16:27

描述

AI · ESP32-S3 · GAMEBOX
EDA AI GameBox

一个AI实时生成游戏的智能游戏机

基于 立创·ESP32-S3 R8N8 的开源掌上游戏机,搭载ESP-Claw框架,配套大模型工作流,把硬件描述与玩法需求一起喂给 AI,一次对话产出可烧录运行的完整工程,如 Chrome 恐龙跑酷、坦克大战、超级玛丽、飞机大战等四款经典游戏

ESP32-S3 双核 240MHz8MB Flash + 8MB PSRAM240×320 ST7789 SPI9 键布局AI 生成
EDA AI GameBox
PROJECT OVERVIEW

项目组成

硬件 + 软件 + 外壳一体化,从立创开发板到 3D 打印外壳全部开源,配合 AI 工具链一句话生成可烧录运行的小游戏

硬件平台
主控 · 立创·ESP32-S3 R8N8 开发板,双核 240MHz,8MB Flash + 8MB Octal PSRAM
显示 · 2.0″ ST7789 240×320 SPI 彩屏,PWM 背光控制
输入 · 五向摇杆(SW1) + 4 颗 XYAB 立贴轻触开关,共 9 路独立按键
音效 · 9mm 无源蜂鸣器(QMB-09B-03) + S8550 PNP 三极管驱动
外壳 · 3D 打印一体化机壳,主壳 + 底壳 + 摇杆帽 + 按键帽四件套
软件栈
固件 · ESP-Claw 框架,YAML 描述外设/设备的板级配置
显示驱动 · esp_lcd_panel_st7789,SPI3 @ 40MHz,旋转 90°(swap_xy + mirror_x)
背光与音效 · LEDC PWM @ 5kHz / 2.7kHz,10-bit 分辨率
按键 · 9 路 GPIO 输入,低电平有效,下拉默认电平 1
AI 生成 · 与大模型对话,自然语言一句话生成完整可玩游戏代码
TECHNICAL SPECS

技术规格

一目了然的硬件参数表,每一项都来自原理图、网表、BOM 与板级配置文件的交叉验证

MCU
ESP32-S3 R8N8
双核 Xtensa LX7 · 主频 240MHz · 内置 Wi-Fi 2.4GHz + BLE 5.0
MEMORY
8MB Flash + 8MB PSRAM
QIO 80MHz Flash · Octal 80MHz PSRAM · 自定义 8MB 分区表
DISPLAY
2.0″ ST7789 LCD
物理 240×320 · 旋转后 320×240 横屏 · SPI3 @ 40MHz · 16-bit RGB
BACKLIGHT
LEDC PWM 调光
GPIO 10 · 5kHz · 10-bit 分辨率 · 1024 级灰度
D-PAD
五向弯脚开关 TSX101G100
作用力 250gf · 上下左右中独立 · 10×10×10mm
XYAB BUTTONS
立贴轻触 K2-1102SP × 4
作用力 180gf · 寿命 10 万次 · 6×6mm 立贴 · -25°C ~ +85°C
BUZZER
9mm 无源蜂鸣器 QMB-09B-03
中心频 2.7kHz · 85dB SPL · S8550 PNP 驱动 · GPIO 48 PWM
PULL-UP
10kΩ × 9 按键上拉电阻
±1% 金属膜 · 250mW · 低电平有效 · 默认 active=0
HARDWARE · PCB

硬件电路

围绕立创 ESP32-S3 R8N8 核心板设计的极简单层 PCB —— 五向开关、四颗按键、蜂鸣器驱动电路、LCD 八脚扩展座,全部直插封装便于 DIY

PCB 正面
PCB 背面
PCB 侧面
屏幕分离
CORE
U1 主控
ESP32-S3 R8N8 开发板 · 双核 240MHz · 8MB+8MB
DISPLAY
LCD1 屏幕
2.0″ 240×320 ST7789 · SPI · 8P 排针
INPUT
SW1~SW5 按键
五向摇杆 + XYAB · 共 9 键 · 上拉 10kΩ
AUDIO
BUZZER1 音效
9mm 无源蜂鸣器 · S8550 三极管驱动
原理图
EDA AI GameBox 原理图
电路设计要点
蜂鸣器驱动 · S8550 PNP 三极管搭配 R1 (1kΩ) 基极限流,ESP32 PWM 信号经反相后驱动无源蜂鸣器,避免 GPIO 直推电流不足
9 路上拉 · R2~R10 全部使用 10kΩ 外部上拉,配合按键 active_level=0 低电平触发,防止 ESP32 内部上拉漏电
LCD 跳线 · R11~R18 八颗 0Ω 电阻挂在 SPI 信号 (BL/CS/DC/RST/MOSI/SCK/3V3/GND) 上,便于切换不同的屏幕模组
RST 设计 · 屏幕 RST 直接绑到 ESP32 EN 引脚,省一根线、与系统复位同步
布局与人机工学
横屏 GBA 布局 · LCD 居中,左侧五向摇杆、右侧 XYAB 菱形排列,复刻经典手柄手感
立贴轻触 · XYAB 使用 6×6×10 立贴开关,按键帽从主壳穿出,按压行程清脆不卡键
模块化扩展 · 屏幕通过排针接入主板,便于拆卸/更换不同尺寸 LCD
核心板插座 · ESP32-S3 R8N8 模块通过 DIP-40 插座装入主板,可单独取下做其他项目
GPIO MAPPING

引脚分配

SPI 显示、九路按键、PWM 蜂鸣器与背光的完整 GPIO 映射,定义来自 board_peripherals.yaml

SPI Display · ST7789
MOSIGPIO 13
SCLKGPIO 14
CSGPIO 11
DCGPIO 12
RSTEN (-1)
Backlight (PWM)GPIO 10
Buttons · 9 键布局
D-Pad 上 / 下GPIO 5 / 3
D-Pad 左 / 右GPIO 1 / 4
D-Pad 中GPIO 2
X / YGPIO 8 / 6
A / BGPIO 9 / 7
无源蜂鸣器 (PWM)GPIO 48
按键布局示意
D-PAD · 五向摇杆 (左手)
↑ 上
GPIO5
← 左
GPIO1
● 中
GPIO2
右 →
GPIO4
↓ 下
GPIO3
XYAB · 动作按键 (右手)
Y
G6
X
G8
B
G7
A
G9
触发逻辑 · 按下时 GPIO 拉低 (active_level=0),松开时由 10kΩ 外部上拉电阻拉高至 3.3V。所有按键 default_level=1,软件层只需轮询电平变化即可获取按压事件。
3D PRINT · ENCLOSURE

外壳与按键帽

主壳 + 底壳 + 摇杆帽 + 按键帽四件套,3D 打印一次成型,卡扣装配无需螺丝

3D 整体正面
3D 整体背面
主壳正面
主壳 · 正面
主壳背面
主壳 · 背面
底壳正面
底壳 · 正面
底壳背面
底壳 · 背面
摇杆帽正面
摇杆帽 · 正面
摇杆帽背面
摇杆帽 · 背面
按键帽正面
按键帽 · 正面
按键帽背面
按键帽 · 背面
外壳拆解实物
PCB+外壳拆解
ESP-CLAW · CHAT CODING

用自然语言写嵌入式

ESP-Claw 继承了 Vibe Coding 的理念 —— 你不再需要写大量模板代码、手动搭建工程,也不用反复「编译 → 烧录 → 调试」,直接通过自然语言与它协作完成功能开发

🚫
传统嵌入式开发
写大量模板代码与初始化函数
手动搭建工程、配置 CMake 与依赖
编译 → 烧录 → 调试反复循环
调试问题靠翻寄存器手册与串口日志
ESP-Claw · Chat Coding
用自然语言描述「我要实现什么功能」
它自动生成可运行的完整工程
屏幕效果不理想,告诉它哪里不对
它结合反馈持续迭代优化
Chat Coding 五大核心原则

为了让 ESP-Claw 更高效、更准确地交付结果,建议在对话中遵循以下原则

1
意图优先,而非语法优先
核心资产不是代码,而是清晰的目标。专注描述「想实现什么功能、用户如何交互、设备如何响应」,而不是纠结具体的实现细节
做一个显示天气和时间的桌面屏幕
帮我写一个 while(1) 的 GPIO 控制逻辑
2
先跑通,再优化
ESP-Claw 强调快速原型与迭代开发。别一开始就追求完美架构、极致性能、最优资源占用 —— 先让它「能运行」,再逐步修复问题、优化体验
比起长时间设计,快速验证往往更重要
3
保持反馈循环
Chat Coding 不是「提一个需求就生成完美应用」,而是持续迭代的过程。运行结果不符合预期时,主动反馈屏幕效果、性能问题、行为差异
ESP-Claw 会结合日志与你的反馈,显著提升后续生成质量
4
学会拆分任务
复杂需求不建议一次性提出超大型目标。建议拆分为多个阶段:先点亮屏幕,再接入触摸,再实现 UI,最后接入联网
小步快跑通常比一步登天更稳定
5
明确 ESP32 的能力边界
ESP-Claw 运行在真实硬件之上,既有硬件能力,也受资源限制。设计功能前,先明确哪些可直接完成、哪些需要安装 Skills、哪些需要增加外设、哪些超出能力
FEEDBACK LOOP · 持续迭代闭环
💬
描述目标
⚙️
AI 生成
👀
运行观察
📝
提供反馈
🔄
再次优化
ESP32 能力边界速查

ESP-Claw 与传统云端 AI 最大的区别,在于它运行于真实硬件之上 —— 以下功能请先确认可行范围

✅ 可直接实现
GPIO 控制
点亮屏幕、读按键、驱动蜂鸣器
✅ 可直接实现
本地自动化
事件触发、状态机、定时任务
✅ 可直接实现
云端 AI 协同
Wi-Fi 联网 + 大模型 API 调用
⚠️ 视硬件而定
摄像头识别
取决于是否扩展摄像头模组
🚫 不适合 ESP32
大模型本地推理
算力与内存不足,请走云端协同
🔧 可扩展
安装 Skills + 外设
添加传感器、扩展能力插件
💡
不确定就问它

不确定某个功能是否可行时,直接问 ESP-Claw —— 它会根据当前设备状态、已安装能力与硬件资源,给出合适的实现方案

你当前支持哪些功能?
你能访问哪些硬件资源?
这个需求应该如何实现?
需要安装哪些 Skills?
需要增加哪些外设?
AI · GAMES

AI 一句话生成游戏

上面的五条原则,落到这台掌机上就是一句话描述玩法,ESP-Claw 直接产出可烧录的 ESP-IDF 工程 —— 以下是已成功运行的四款经典游戏实战

Chrome 恐龙跑酷
CHROME DINO
恐龙跑酷
还原 Chrome 离线小恐龙,单键跳跃避开仙人掌,支持加速难度递增
贪吃蛇
SIDE VIEW
贪吃蛇
2.0″ ST7789 240×320 屏幕显示流畅
坦克大战
BATTLE CITY
坦克大战
五向摇杆控制坦克移动,A 键开火,B 键放炸弹,砖墙可破坏
坦克大战 AI 对话
AI PROMPT
生成对话记录
提供硬件描述 + 玩法需求,模型直接产出可编译运行的完整工程
超级玛丽
SUPER MARIO
超级玛丽
横版闯关跳跃,左右移动 + A 键起跳,金币、地块、敌人一应俱全
超级玛丽 AI 对话
AI PROMPT
生成对话记录
物理碰撞、跳跃曲线、卷轴滚动 —— 模型一次生成全部到位
飞机大战
AIR STRIKE
飞机大战
竖版弹幕射击,A 键开火,敌机波次刷新,BOSS 战伴随蜂鸣音效
飞机大战 AI 对话
AI PROMPT
生成对话记录
从空白屏幕到完整可玩,AI 全自动生成图形帧缓冲与游戏循环
BILL OF MATERIALS

物料清单

所有元件均来自立创商城,封装为直插/立贴,新手焊接友好

#
名称
规格描述
数量
位号
立创编号
1
立创·ESP32-S3 R8N8 开发板
DIP-40 · 8MB Flash + 8MB PSRAM
1
U1
C20626143
2
2.0″ TFT 液晶屏 HS20S010B
240×320 ST7789 · SPI
1
LCD1
C5329586
3
五向开关 TSX101G100-250
10×10×10 弯脚插件 · 250gf
1
SW1
C722957
4
立贴轻触开关 K2-1102SP-M3SC-04
6×6×10 立贴 180gf · XYAB
4
SW2~SW5
C2685902
5
无源蜂鸣器 QMB-09B-03
9mm 插件 · 2.7kHz · 85dB
1
BUZZER1
C96256
6
PNP 三极管 S8550
TO-92 · 500mA / 25V · 蜂鸣器驱动
1
Q1
C2931493
7
金属膜电阻 1kΩ
±1% · 250mW · 三极管基极限流
1
R1
C2903245
8
金属膜电阻 10kΩ
±1% · 250mW · 按键上拉
9
R2~R10
C2903232
9
金属膜电阻 0Ω
250mW · LCD 信号跳线
8
R11~R18
C173063
FIRMWARE FLASHING

固件烧录

提供两种烧录方式 —— esptool 命令行一键写入,或 ESP-Flash-Download-Tool 图形化操作,任选其一即可点亮掌机

烧录地址表

7 个分区文件按以下地址依次写入,总占用约 6.7 MB,匹配 8MB Flash 分区方案

文件名
烧录地址
大小
bootloader.bin
0x0
22 KB
partition-table.bin
0x9000
3 KB
ota_data_initial.bin
0x10000
8 KB
edge_agent.bin
0x20000
2.7 MB
emote_assets.bin
0x3d6000
2.4 MB
system.bin
0x692000
900 KB
storage.bin
0x773000
564 KB
方式一 · esptool 命令行
FULL COMMAND · 完整命令
python -m esptool
  --chip esp32s3 -b 460800
  --before default_reset
  --after hard_reset write_flash
  --flash_mode dio
  --flash_size 8MB
  --flash_freq 80m
  0x0 bootloader.bin
  0x9000 partition-table.bin
  0x10000 ota_data_initial.bin
  0x20000 edge_agent.bin
  0x3d6000 emote_assets.bin
  0x692000 system.bin
  0x773000 storage.bin
SHORTCUT · 使用 flash_args
# 文件夹内已附带 flash_args 清单
python -m esptool --chip esp32s3 -b 460800 write_flash "@flash_args"
烧录波特率 460800,DIO 模式 80MHz 8MB Flash,命令执行完自动硬复位
🖱
方式二 · ESP-Flash-Download-Tool
GUI · 图形化烧录工具
1
打开 ESP-Flash-Download-Tool,芯片类型选择 ESP32-S3,工作模式选 Develop(或 Load Mode)
2
SPIDownload 页签逐行加载 7 个 .bin 文件,按下表填入对应地址并勾选
3
底部参数设置:CrystalFreq 80MHz · FlashMode DIO · FlashSize 8MB
4
选择正确的 COM 串口,波特率 115200,点击 START 等待进度条跑完
显示 FINISH 绿色即为成功,掌机自动重启进入游戏画面
💡 也可加载配套的 flash_args 自动填充全部地址,或直接拖入整个固件文件夹,省去手工逐行输入
烧录前的小贴士
· Flash 模式必须为 DIO 80MHz,FlashSize 8MB,PSRAM 配置 Octal 80MHz
· 总占用约 6.7 MB,匹配 partitions_8MB.csv 分区表,不会溢出 8MB Flash
· USB 串口选择 Serial JTAG,Windows 免驱动;首次连接需确认 COM 端口号
· 烧录失败多为波特率过高 —— 可将 -b 460800 降到 -b 115200 重试
SOURCE · BOARD CONFIG

源码结构

ESP-CLAW 版型目录由 4 个 YAML / sdkconfig + 1 个 LCD 工厂入口 C 文件构成,零样板代码即可描述整块板

📄 board_info.yaml
板卡身份信息:芯片型号(esp32s3)、版本、厂商。
本项目标识为 eda_ai_gamebox v1.0.0
⚙ board_peripherals.yaml
外设描述:SPI3 总线 (MOSI=13/SCLK=14)、9 路 GPIO 按键、2 路 LEDC PWM (背光 5kHz / 蜂鸣器 2.7kHz)
🎮 board_devices.yaml
设备配置:display_lcd(ST7789 + swap_xy 旋转)、lcd_brightness、5 路 D-Pad、4 路 XYAB 按键、buzzer。低电平有效,默认上拉 1
🔧 sdkconfig.defaults.board
CPU 240MHz、Flash QIO 80MHz 8MB、PSRAM Octal 80MHz、ST7789 240×320、USB Serial JTAG 控制台
SETUP_DEVICE.C · LCD 工厂入口
#include "esp_lcd_panel_st7789.h"
esp_err_t lcd_panel_factory_entry_t(esp_lcd_panel_io_handle_t io,
 const esp_lcd_panel_dev_config_t *panel_dev_config,
 esp_lcd_panel_handle_t *ret_panel)
{
  return esp_lcd_new_panel_st7789(io, panel_dev_config, ret_panel);
}
BOARD_DEVICES.YAML · LCD 配置片段
- name: display_lcd
  chip: st7789
  type: display_lcd
  config:
    # 顺时针 90° 旋转 → 横屏 320×240
    mirror_x: true
    swap_xy: true
    invert_color: true
    x_max: 320
    y_max: 240
    io_spi_config:
      cs_gpio_num: 11
      dc_gpio_num: 12
      pclk_hz: 40000000
BOARD_PERIPHERALS.YAML · 蜂鸣器 + 按键
- name: ledc_buzzer
  type: ledc
  config:
    gpio_num: 48
    freq_hz: 2700
    duty_resolution: LEDC_TIMER_10_BIT
- name: gpio_btn_a
  type: gpio
  config:
    pin: 9
    mode: GPIO_MODE_INPUT
    default_level: 1
USE CASES

适用场景

这不只是一台掌机 —— 它是 AI 时代嵌入式开发的最小可玩样本,覆盖教学、创客、原型验证三大场景

🎓
教学课程
立创开发板课程项目 · 「硬件 + AI + 嵌入式开发」全流程 · 可对比 AI 输出代码与自己的实现
🔧
创客 DIY
全直插封装 + 3D 打印外壳 · 适合作为新手第一块焊接练手板 · 可在此基础上替换屏幕、增加传感器扩展玩法
🚀
原型验证
用 AI 几分钟产出可运行 Demo · 适合快速验证交互想法 · 屏幕 + 9 键的组合覆盖大多数嵌入式 UI 场景

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
底壳.STL
4
2
顶壳.STL
4
3
按键.STL
4
4
摇杆.STL
4

附件

序号文件名称下载次数
1
eda-ai-gamebox资源包.zip
10
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航