一个自由度超高的游戏机


只需完成硬件设计!


你就能根据我的软件架构,一句话生成游戏


说“我想玩超级玛丽”


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了



“直接生成游戏”


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了


是的!想要什么游戏,都可以DIY!都可以自定义!


01


怎么设计硬件?


很简单!


首先,准备一块立创·ESP32-S3 R8N8开发板。


接着,嘉立创EDA启动!


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了


原理图


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了


PCB图


开源了!一句话,生成一个游戏!这个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 打印一体化机壳,主壳 + 底壳 + 摇杆帽 + 按键帽四件套


  • 其他:五向弯脚开关 TSX101G100,10kΩ × 9 按键上拉电阻


02软件怎么设计?



软件栈


  • 固件: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 生成:与大模型对话,自然语言一句话生成完整可玩游戏代码


如果你想做完硬件立刻用上,你可以直接烧录固件↓


固件烧录


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


方式一:esptool 命令行


FULL COMMAND · 完整命令


python -m esptool

--chip esp32s3 -b460800

--before default_reset

--after hard_reset write_flash

--flash_mode dio

--flash_size8MB

--flash_freq80m

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 · 图形化烧录工具


  • 打开 ESP-Flash-Download-Tool,芯片类型选择 ESP32-S3,工作模式选 Develop(或 Load Mode)
  • 在 SPIDownload 页签逐行加载 7 个 .bin 文件,按下表填入对应地址并勾选
  • 底部参数设置:CrystalFreq 80MHz · FlashMode DIO · FlashSize 8MB
  • 选择正确的 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 重试


如果你想进一步研究其源码……


源码结构


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_tlcd_panel_factory_entry_t(esp_lcd_panel_io_handle_t io,
constesp_lcd_panel_dev_config_t *panel_dev_config,
esp_lcd_panel_handle_t *ret_panel)
{
returnesp_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: 4000000

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







































所以


我只需要说“我要玩坦克大战,给我生成”


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了


我就能玩上了??


能通过五向摇杆控制坦克移动


还支持A键开火,B键放炸弹,破坏砖墙


……


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了


!!!


这么好玩!


小编也要做一个!


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了


03开源网址



怎么样?你喜欢这个项目吗?想不想做一个玩玩?


如果你想给作者点赞or深入学习,欢迎前往开源网址~


开源网址:


https://oshwhub.com/course-examples/project_daxlolei


开源了!一句话,生成一个游戏!这个AI游戏机,太好玩了



文章来自于微信公众号 “立创开源硬件平台”,作者 “立创开源硬件平台”