# EDA-AI生成式游戏机 文档:https://wiki.yang17.top/products/oshwhub/oshw-5c99a1ed973746a48c81422e9a6edb47/ 项目来源:https://oshwhub.com/course-examples/project_daxlolei 分类:硬件项目 更新时间:2026-10-16T02:03:59.000Z 基于 立创·ESP32-S3 R8N8 的开源AI生成式游戏机,使用ESP-Claw框架,想玩什么游戏告诉AI,让AI帮你实时开发生成 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 生成 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 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 三极管驱动 原理图 电路设计要点 蜂鸣器驱动 · 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 打印一次成型,卡扣装配无需螺丝 主壳 · 正面 主壳 · 背面 底壳 · 正面 底壳 · 背面 摇杆帽 · 正面 摇杆帽 · 背面 按键帽 · 正面 按键帽 · 背面 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 DINO 恐龙跑酷 还原 Chrome 离线小恐龙,单键跳跃避开仙人掌,支持加速难度递增 SIDE VIEW 贪吃蛇 2.0″ ST7789 240×320 屏幕显示流畅 BATTLE CITY 坦克大战 五向摇杆控制坦克移动,A 键开火,B 键放炸弹,砖墙可破坏 AI PROMPT 生成对话记录 提供硬件描述 + 玩法需求,模型直接产出可编译运行的完整工程 SUPER MARIO 超级玛丽 横版闯关跳跃,左右移动 + A 键起跳,金币、地块、敌人一应俱全 AI PROMPT 生成对话记录 物理碰撞、跳跃曲线、卷轴滚动 —— 模型一次生成全部到位 AIR STRIKE 飞机大战 竖版弹幕射击,A 键开火,敌机波次刷新,BOSS 战伴随蜂鸣音效 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 场景 RELATED LINKS 相关资源 PROJECT WIKI EDA AI GameBox 项目文档 立创开发板课程项目页:完整教程、教学视频、配套资料 SOURCE CODE · GITEE EDA AI GameBox 源码仓库 板级配置 YAML · 固件工程 · 烧录脚本 · flash_args 全部开源,欢迎 Star / PR ✨ AI GENERATED · POWERED BY SKILL 本展示页面由 AI 自动生成 基于 oshw-readme-skill 开源技能,AI 阅读项目的 BOM 表、网表与板级配置源码后,自动产出本产品介绍页的 HTML