ESP32S3编译Micropython固件camera支持OV2640

ESP32S3编译固件支持ov2640

前置准备

  1. linux系统centos8
  2. esp32s3
  3. esp-idf工具
  4. micropython源码
  5. idf相机驱动:
  6. micropython的camera模块

环境配置

  1. esp-idf 安装
    1. 创建目录并下载esp-idf
      	 cd /root
      	 mkdir esp #创建目录
      	 cd esp #进入目录
      	 git clone https://github.com/espressif/esp-idf.git #下载esp-idf
      
    2. 安装esp-idf
      	cd esp-idf #进入esp-idf目录
      	git checkout v5.2 #切换到v5.2分支,具体使用版本要查看micropython源码ports\esp32中的readme确定。此处使用的是5.2版本
      
    3. 更新子模块
      	 git submodule update --init --recursive #更新子模块
      
    4. 安装
      	 ./install.sh #安装esp-idf,会下载一些内容,时间略长
      
    5. 添加环境变量
      	 source export.sh #将esp-idf加入到环境变量,有效范围为本次会话,终端关闭后需重新执行此命令。
      
    6. 结果验证
      	 idf.py ---version # 查看idf版本,此处版本号为
      
      此处结果为:
      在这里插入图片描述
      这里踩过的坑:socket报错
  2. micropython准备
    1. 创建目录下载源码
      	 cd /root/esp/ #进入之前创建的esp目录中
      	 git clone https://github.com/micropython/micropython.git #克隆源码
      
    2. 进入并更新子模块
      cd micropython #进入克隆的源码
      git submodule update --init --recursive #更新子模块
      
  3. esp-idf相机驱动安装
    1. 安装
      cd /root/esp/esp-idf/components/ #此处根据先前安装的esp-idf目录确定
      git clone https://github.com/espressif/esp32-camera #克隆idf相机驱动
      
  4. micropython的camrea模块安装
    1. 安装
    	cd /root/esp/micropython/examples/usercmodule/ #切换到micropython的自定义模块路径
    	mkdir cam #创建个自定义的文件夹名称
    	cd cam
    	git clone https://github.com/lemariva/micropython-camera-driver
    
    源码目录结构如下:
    在这里插入图片描述
    将上图src目录中的四个文件复制到/root/esp/micropython/examples/usercmodule/cam目录下,然后删除其他部分即可。

参数配置

  1. 预编译
    cd /root/esp/micropython/ #切换到micropython目录
    make -C mpy-cross   #预编译
    
  2. 配置编译的型号
    cd /root/esp/micropython/ports/esp32/ #进入esp32对应目录
    vim Makefile 修改文件中对应型号,如下图:
    
    在这里插入图片描述
    上图中修改为ESP32S3的型号,具体填什么可以查看boards/ 目录下的文件夹。
    完成以后可以编译一下当前这个不包含camera模块的固件尝试一下。
    make #执行编译,验证是否正常编译
    
  3. 配置camera模块
    • 启用模块
      vim /root/esp/micropython/ports/esp32/mpconfigport.h #将模块配置启用到此文件
      #在文件中加入一行:#define MODULE_CAMERA_ENABLED               (1)
      
      关于以上配置可以查看micropython/examples/usercmodule/cam/modcamera.c文件中代码可知,若未定义则不执行后续逻辑。
    • 配置自定义模块路径
      vim /root/esp/micropython/examples/usercmodule/micropython.cmake #编辑这个顶层cmake文件,将自定义的模块路径配置进去
      #加入此语句:	include(${CMAKE_CURRENT_LIST_DIR}/cam/micropython.cmake)
      

编译

  1. 编译
    make USER_C_MODULES=~/esp/micropython/examples/usercmodule/micropython.cmake 
    #此处使用USER_C_MODULES指定自定义模块顶层cmake路径,若上一步中未配置则此参数可以直接配置为/esp/micropython/examples/usercmodule/cam/micropython.cmake
    
    此处 遇到modcamera.c文件关键字大小写报错,解决方案:STATIC报错
  2. micropython准备
    编译完成即可
### ESP32-S3 98N 使用教程或配置方法 对于ESP32-S3 98N模块,在启动并运行特定应用如摄像头功能之前,需确保正确初始化硬件资源和软件环境。该过程涉及多个方面,包括但不限于安装开发工具链、设置项目构建系统以及编写必要的驱动程序代码。 #### 开发环境搭建 为了支持ESP32-S3系列芯片的开发工作,建议采用由Espressif Systems提供的集成开发平台——ESP-IDF (Espressif IoT Development Framework)[^1]。通过此框架可以方便快捷地完成从源码编译固件烧录的一整套流程操作。 #### 配置堆内存分配 针对ESP32-S3设备而言,合理规划其内部RAM空间至关重要。由于这类微控制器通常配备有限量级的工作存储器,因此在设计应用程序时应当充分考虑到这一点,并采取适当措施来优化内存利用率。具体来说,可以通过调整`menuconfig`中的选项实现对不同区域大小的手动指定: ```bash make menuconfig ``` 进入菜单后找到“Component config” -> “ESP System Settings”,这里可以根据实际需求修改默认参数设定。 #### 安装Camera库文件 要使ESP32-S3能够正常控制OV9650传感器(即文中提到的'98N'),还需要引入专门用于处理图像采集任务的相关函数集合。这些API接口已被封装成独立组件形式提供给开发者调用,只需简单几步即可将其加入现有工程之中: 1. 打开项目的CMakeLists.txt文件; 2. 添加如下语句以声明依赖关系: ```cmake require_components(esp_camera) ``` 3. 接着按照官方指导手册指示完成剩余步骤直至成功链接目标二进制映像。 以上便是关于如何基于ESP32-S3平台部署带有OV9650相机模组解决方案的大致介绍。需要注意的是,上述内容仅作为入门指引而非详尽的操作指南;更多细节部分请参照对应产品数据表和技术白皮书获取最新最权威的信息来源。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值