(三)ESP-VISION环境搭建实战:30分钟从零编译你的第一个固件
ESP-VISION环境搭建实战30分钟从零编译你的第一个固件文章目录ESP-VISION环境搭建实战30分钟从零编译你的第一个固件一、别被环境搭建吓到二、前置条件2.1 你需要什么2.2 ESP-IDF环境三、克隆ESP-VISION仓库四、构建、烧录与监视4.1 prepare-micropython 做了什么4.2 常见idf.py命令五、运行第一个脚本5.1 测试摄像头5.2 通过USB CDC预览画面六、常见问题与解决问题1idf.py: command not found问题2Serial port /dev/ttyACM0 not found问题3git submodule update 失败问题4编译报错 CMAKE_C_COMPILER not set问题5烧录后设备无限重启七、开发板串口识别参考链接总结与下篇预告一、别被环境搭建吓到环境搭建这三个字劝退过多少嵌入式新人我见过有人装了三天ESP-IDF没装成功最后放弃。也见过有人被Python版本、CMake版本、工具链版本绕晕最后留下一句搞嵌入式太难了。但ESP-VISION的环境搭建其实就三步装ESP-IDF → 克隆仓库 → 编译烧录。如果你已经有ESP-IDF环境五分钟就能跑起来。今天这篇文章我会把所有坑都填上。二、前置条件2.1 你需要什么物品要求备注电脑Ubuntu 20.04/22.04 或 macOSWindows用户建议WSL2开发板ESP32-P4X-EYE推荐其他板子见上篇USB线Type-C数据线不要用充电线网络能访问GitHub或配置镜像2.2 ESP-IDF环境ESP-VISION需要一个配置好的ESP-IDF环境且idf.py在PATH中。当前分支兼容性请查看项目README。如果你还没装ESP-IDF这有个最简流程# 1. 安装依赖Ubuntusudoapt-getinstallgitwgetflex bison gperf python3 python3-pip\python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util\libusb-1.0-0# 2. 克隆ESP-IDFmkdir-p~/espcd~/espgitclone--recursivehttps://github.com/espressif/esp-idf.gitcdesp-idfgitcheckout v5.4# 确认与ESP-VISION兼容的版本# 3. 安装工具链./install.sh esp32p4 esp32s3# 按你需要的芯片装# 4. 激活环境每次新终端都要执行source~/esp/esp-idf/export.sh提示把source ~/esp/esp-idf/export.sh加到你的.bashrc里省得每次手动source。三、克隆ESP-VISION仓库# 克隆仓库注意 --recursive子模块很多gitclone--recursivehttps://github.com/espressif/esp-vision.gitcdesp-vision这一步会下载MicroPython、ulab、ZXing-C等子模块取决于你的网络可能需要5-15分钟。如果子模块克隆失败单独执行gitsubmodule update--init--recursive四、构建、烧录与监视ESP-VISION使用板级感知的idf.py扩展通过--board参数指定目标开发板。# 构建、烧录并打开监视器一条命令搞定idf.py--boardESP32_P4X_EYE-p/dev/ttyACM0 build flash monitor这条命令实际上做了四件事prepare-micropython应用MicroPython Overlaybuild编译固件flash烧录到开发板monitor打开串口监视器4.1 prepare-micropython 做了什么这个步骤在后台默默完成了大量工作校验lib/micropython已检出到固定的 MicroPython v1.28.0 提交在build/micropython/下导出干净的MicroPython构建副本将overlay/micropython/应用到该副本将每个boards/BOARD/port/投射到构建副本的ports/esp32/boards/BOARD/lib/micropython始终保持干净不受构建影响4.2 常见idf.py命令命令说明什么时候用idf.py --board BOARD build仅构建固件修改代码后重新编译idf.py --board BOARD -p PORT flash构建并烧录首次烧录或更新固件idf.py --board BOARD -p PORT monitor打开串口监视器调试、查看日志idf.py --board BOARD menuconfig打开menuconfig修改固件配置idf.py --board BOARD -p PORT erase-flash擦除Flash固件出问题时重置idf.py --board BOARD clean清理构建输出编译异常时idf.py --board BOARD fullclean删除完整构建目录彻底重新编译五、运行第一个脚本烧录完成后你会看到串口监视器中出现MicroPython的REPL提示符MicroPython v1.28.0 on 2025-xx-xx; ESP32-P4 module with ESP32-P4 Type help() for more information. 5.1 测试摄像头直接在REPL中输入importsensor# 初始化摄像头sensor.reset()sensor.set_pixformat(sensor.RGB565)# 设置像素格式sensor.set_framesize(sensor.QVGA)# 320x240# 跳过前几帧等待自动曝光/白平衡稳定importtime sensor.skip_frames(time2000)# 拍一张照片imgsensor.snapshot()print(f图片尺寸:{img.width()}x{img.height()})如果看到输出图片尺寸: 320x240恭喜你摄像头跑通了5.2 通过USB CDC预览画面importsensor,image,time sensor.reset()sensor.set_pixformat(sensor.RGB565)sensor.set_framesize(sensor.QVGA)sensor.skip_frames(time2000)whileTrue:imgsensor.snapshot()img.flush()# 通过USB CDC发送到主机预览time.sleep_ms(50)运行后可以在VSCode扩展或Web IDE中看到实时画面。不需要WiFi不需要SD卡USB线就够了。六、常见问题与解决问题1idf.py: command not found原因没source ESP-IDF的export.sh。解决source~/esp/esp-idf/export.sh问题2Serial port /dev/ttyACM0 not found原因开发板没被识别或者端口号不对。解决# 查看USB设备ls/dev/tty*|grep-EACM|USB# 或者dmesg|grep-iusb|tail-5# 如果没有设备检查# 1. USB线是不是数据线充电线不行# 2. 有没有装驱动问题3git submodule update失败原因GitHub在国内访问不稳定。解决配置代理或使用镜像gitconfig--globalurl.https://ghproxy.com/https://github.com/.insteadOfhttps://github.com/问题4编译报错CMAKE_C_COMPILER not set原因工具链没装全。解决确保执行了./install.sh esp32p4并且source了export.sh。问题5烧录后设备无限重启原因可能是电源不足或Flash损坏。解决# 擦除Flash后重新烧录idf.py--boardESP32_P4X_EYE-p/dev/ttyACM0 erase-flash idf.py--boardESP32_P4X_EYE-p/dev/ttyACM0 flash七、开发板串口识别不同开发板的串口名称可能不同开发板典型串口备注ESP32-P4X-EYE/dev/ttyACM0USB CDCESP32-S3-EYE/dev/ttyUSB0CP210xAtomS3R-M12/dev/ttyACM0USB CDC如果多个设备同时连接用ls /dev/tty*逐个确认。参考链接ESP-VISION 快速入门ESP-IDF 编程指南ESP-VISION GitHub总结与下篇预告环境搭建本质上就三步装ESP-IDF → 克隆仓库 →idf.py build flash monitor。真正花时间的是等待编译首次编译约15-20分钟后续增量编译快很多。如果你卡在了某个步骤大概率是网络问题或者USB线的问题——这两个坑占了90%的求助。下篇我们玩REPL交互和调试技巧——怎么在MicroPython的命令行里快速验证想法怎么用VSCode远程调试ESP32上的Python代码以及几个让你效率翻倍的小技巧。作者码农阿虎运行环境ESP-VISION (MicroPython v1.28.0), ESP32-P4X-EYE, Ubuntu 22.04关键词ESP-VISION、环境搭建、ESP-IDF、MicroPython、固件编译