Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

my-pet

ESP32-P4 + 7" MIPI 1024×600 触摸屏虚拟宠物。

目录结构

my-pet/
├── firmware/    板子工程(ESP-IDF v5.5.x,从 02_lvgl_transplant 复制改造)
├── simulator/   PC 模拟器(CMake + SDL2 + LVGL 8.4 via submodules)
└── shared/      平台无关业务代码(两边都用,不许 #include ESP-IDF 头)

技术选型决策

主题 选择 备注
GUI 库 LVGL 8.4(不要 9.x) 厂家例程锁的版本,9.x API 完全不兼容
屏幕分辨率 1024×600 模拟器 simulator/lv_drv_conf.h 已对齐
宠物形象动画 PNG 序列帧 + LVGL 原生(首选) 模拟器+板子代码一致;性能不够再升级
备选动画方案 EAF (esp_emote_gfx) 性能最佳但模拟器无法预览,谨慎
备选视频方案 MJPEG/AVI 适合长视频/cutscene,参考 25_video_player
日志 shared/pet_log.h PC 走 printf,板子走 ESP_LOG
定时器 lv_timer_create() LVGL 自带,跨平台一致,不要用 esp_timer/SDL_AddTimer

硬件引脚(ESP32-P4 CB V1.2)

外设 引脚
MIPI LCD 背光 GPIO23
MIPI LCD 复位 GPIO22
触摸 INT GPIO15
触摸 RST GPIO18
I2C SDA / SCL(触摸用) GPIO17 / GPIO16
LED0 / LED1 GPIO14 / GPIO13
ES8311 音频 (I2S BCK/WS/DO/DI/MCK) IO4/6/3/5/2
SD 卡 SDIO (CMD/CLK/D0~D3) IO44/43/39/40/41/42

详细见 firmware/components/BSP/*/ 头文件,以及 D:\Projects\esp-p4\慧勤智远 ESP32-P4 CB V1.2小系统板\2. 原理图\ESP32-P4 CB V1.2_SCH.pdf

参考源码索引

这些是慧勤智远厂家给的官方例程,已解压到 D:\Projects\esp-p4-work\(不在本仓库内)。当我们需要参考具体外设/特性怎么用时,按下面索引去翻:

板子工程基底来源

  • D:\Projects\esp-p4-work\LVGL_MIPILCD\02_lvgl_transplant\本仓库 firmware/ 就是从它复制改造的
  • 01_lvgl_official_transplant 是另一个等价工程(结构稍乱,已弃用)

LVGL 控件用法(写虚拟宠物 UI 时翻这些)

D:\Projects\esp-p4-work\LVGL_MIPILCD\ 下:

  • 06_lvgl_arc 圆弧(适合做心情/饥饿值环形进度)
  • 07_lvgl_bar 进度条
  • 08_lvgl_btn 按钮
  • 13_lvgl_img 图片显示 ← PNG 序列帧动画用这个
  • 14_lvgl_label 文字
  • 17_lvgl_slider 滑块
  • 18_lvgl_switch 开关
  • 其它见目录列表,每个例程的 main/APP/lvgl_demo.c 是核心 demo 代码

视频/动画方案参考

  • PNG 序列帧(首选):LVGL 原生 lv_img_set_src + lv_timer_create 切帧,无需第三方组件
  • EAF 动画格式
    • 组件位置:D:\Projects\esp-p4-work\wks_p4_xiaozhi_50inch_70inch_80inch_101inch_mipilcd\managed_components\espressif2022__esp_emote_gfx\
    • README:同目录下 README.md(API 完整文档)
    • 示例 .eaf 文件:同组件 emoji_large/emoji_small/
    • 在线转换工具:https://esp32-gif.espressif.com/(输入 GIF)
    • 在 firmware 中使用:#include "gfx.h",调 gfx_anim_create / gfx_anim_set_src / gfx_anim_set_segment / gfx_anim_start
    • 注意:EAF 不是 LVGL 体系,是独立的 esp_emote_gfx 框架
  • MJPEG/AVI 视频:参考 D:\Projects\esp-p4-work\basic__routines\25_video_player\,含 AVI 解析 + MJPEG 解码 + 同步音频
  • H.264 硬件解码:参考 17_mipicamera22_photograph,managed_components 下有 espressif__esp_h264

其它常用外设参考

需要做的事 看哪里
SD 卡读写 basic__routines/18_sdcard
SPIFFS 文件系统 basic__routines/19_spiffs
中文字库显示 basic__routines/20_chinese_display
图片显示(JPEG/PNG) basic__routines/21_picture_display
音乐播放(ES8311 codec) basic__routines/23_music
录音 basic__routines/24_recoding
WiFi 联网 wifi__routines/ 整个目录
全外设综合 demo comprehensive_routine_70inch_mipilcd/(7 寸版)

资料文件位置

  • 用户手册:D:\Projects\esp-p4\慧勤智远 ESP32-P4 CB V1.2小系统板\1. 用户手册\
  • 原理图:同上\2. 原理图\
  • 芯片 datasheet:同上\5. 芯片资料\
  • 屏幕模块(EK79007 + GT911)资料:D:\Projects\esp-p4\WKS70WSV114-WCT产品资料\
  • CH343 USB 串口驱动:同上\7. 软件开发工具\CH343驱动.rar(板子到了再装)

工作流

模拟器(日常 UI 开发)

依赖:MSYS2 MinGW64 已装 gcc cmake ninja SDL2 pkgconf git

# MSYS2 MinGW x64 终端
cd /d/Projects/my-pet/simulator
cmake -G Ninja -B build      # 首次或改了 CMakeLists
cmake --build build          # 增量编译
./bin/main.exe               # 运行

修代码循环:编辑 shared/*.ccmake --build build./bin/main.exe

板子(功能验证 / 真机调试)

依赖:ESP-IDF v5.5.x,已装在 C:\.espressif\v5.5.4\,从开始菜单 ESP-IDF 5.5.4 PowerShell 启动

cd D:\Projects\my-pet\firmware
idf.py set-target esp32p4    # 首次(sdkconfig 里其实已写)
idf.py build
idf.py -p COMx flash monitor # COMx 见设备管理器(需先装 CH343 驱动)

注意:firmware 工程路径必须全英文无空格(IDF 工具链限制)。

共用代码约定

shared/ 里的代码必须只依赖标准 C + LVGL。不能 #include "freertos/...""esp_log.h""esp_timer.h" 等。需要平台相关功能时新增抽象层(见 pet_log.h 模式)。

仓库

About

Based on esp32-P4

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages