本帖最后由 a老怪 于 2024-1-11 12:00 编辑

前期准备

ESP32S3介绍

ESP32-S3是乐鑫(Espressif Systems)推出的一款高度集成的单片机(SoC),专为物联网(IoT)应用而设计。它基于Xtensa LX7内核,采用了高性能的CPU和丰富的外设,并具有低功耗和高可靠性的特点。

以下是ESP32-S3的一些主要特性和功能:

  • 高性能处理器:ESP32-S3搭载了高性能的Xtensa双核32位 LX7处理器,主频高达240 MHz,能够处理复杂的计算任务。

  • 内存和存储:ESP32-S3具有320 KB的SRAM和8 MB的PSRAM,可为应用程序和数据提供充足的存储空间。

  • 丰富的外设:ESP32-S3提供了多种外设和接口,包括GPIO、SPI、I2C、UART、I2S、PWM、ADC等,可以与各种传感器、显示器、外部设备等进行连接和通信。

  • Wi-Fi和蓝牙:ESP32-S3内置了Wi-Fi和蓝牙功能,支持IEEE 802.11b/g/n无线标准和蓝牙4.2 LE(低功耗)协议,可用于建立与互联网和其他设备的无线连接。

  • 安全性:ESP32-S3支持各种安全功能,包括SSL/TLS加密、数字签名、加密存储等,可以提供保护用户数据和应用程序安全的功能。

  • 低功耗:ESP32-S3通过优化的功耗管理机制和睡眠模式,以低功耗运行,延长电池寿命。

  • 开发生态系统:ESP32-S3基于ESP-IDF(ESP32 IoT Development Framework)进行开发,开发者可以使用C语言或MicroPython编程语言进行开发,可以利用丰富的开发工具和资源进行开发。


总之,ESP32-S3是一款功能强大、高度集成和低功耗的单片机,适用于各种物联网应用,包括智能家居、工业自动化、传感器网络、物联网网关等。



OpenMV介绍
OpenMV IDE是一款独特的集成开发环境,可以跨平台使用,支持Windows、Mac OS、Linux和Raspian等操作系统。
OpenMV IDE的界面布局简洁明了,易于使用。左侧是常用的文档编辑操作和代码编写工具,类似于Qt Creator,具有代码高亮和自动补全等功能。右上角是图像区,显示OpenMV镜头捕捉到的图像,可以保存和截图。右下角是图像的三色RGB直方图,可以进行特征提取、阈值处理等图像操作。
OpenMV IDE提供了一个方便易用的开发环境,可以满足开发者的需求。开发者可以通过串口连接、代码执行等功能进行开发和调试。在IDE中,可以通过点击运行按钮,将Python代码复制给OpenMV,并由OpenMV解析运行。同时,IDE还提供了帧缓冲查看器和直方图显示等功能,方便开发者实时查看图像数据和调试程序。
它还拥有强大的图像处理功能。OpenMV IDE提供了丰富的图像处理功能,包括图像采集、预览、保存、截图等。此外,它还支持各种图像处理算法,如特征提取、阈值处理、边缘检测等,这使得开发者可以轻松地实现各种机器视觉任务。
总的来说,OpenMV IDE是一个功能强大、易于使用的开发环境,为开发者提供了方便快捷的机器视觉开发体验。


软件部分准备
  • ESP32S3的OpenMV固件源码:
    github版:https://github.com/Kevincoooool/esp32s3_openmv_lvgl  (大家可以支持一下这一位大佬)
    gitee版:https://gitee.com/Reimages/esp32s3_openmv?_from=gitee_search  (我在国内的gitee上看到了跟上面大佬一样的开源版本,是通用的)
  • ESP32的烧录工具:flash_download_tool
  • OpenMV IDE:下载地址:https://singtown.com/openmv-download/
  • 虚拟机Ubuntu环境:在ubuntu系统中,安装git、python3、gcc、esp-idf、micropython;



硬件部分准备
  • ESP32S3开发板
  • OV2640-FPC式摄像头




固件修改编译

在Windows下使用 VMware Workstation Pro 创建一个 ubuntu虚拟机。
虚拟机的创建参考链接:
环境配置
打开终端,在终端中输入以下命令配置环境:
安装git:需要输入密码
sudo apt-get install git

安装python3:
sudo apt install python3

安装GCC:
sudo apt build-dep gcc

安装cmake:
apt-get install cmake

安装基于arm内核编译的工具链:
sudo apt-get install gcc-arm-none-eabi

下载esp-idf
git clone -b v4.4 --recursive https://github.com/espressif/esp-idf.git

下载micropython:
git clone --recursive https://github.com/micropython/micropython.git

下载ESP32S3_OpenMV固件源码:
git clone https://github.com/Kevincoooool/esp32s3_openmv_lvgl/

也可以尝试以下方法:
git clone https://gitee.com/Reimages/esp32s3_openmv


配置idf的环境变量:执行esp-idf下的export.sh,例如我用户名是 win,我将esp-idf放置在win处。注意点和/之间有空格。
. /home/win/esp-idf/export.sh


去到ESP32S3_OPENMV固件下, esp32s3_openmv_lvgl/project/ksdiy 执行
make

如果编译没有出错,在目录 project/ksdiy/ 中应该可以看到新创建的 build-GENERIC_S3文件夹。我们需要这个目录下的micropython.bin文件,以及/bootloader目录下的bootloader.bin,和/partition_table目录下的partition_table.bin文件。
如果要重新修改固件源码,则需要先清除之前编译的内容(idf.py clean),再make。
idf.py clean
make


烧录固件



提取出这三个文件,使用USB,或是使用串口连接(windows)电脑,二者选一即可。
电脑端打开乐鑫的flash_download_tool软件,从上到下分别勾选bootloader.bin,partition_table.bin,micropython.bin三个文件,地址分别设置为0x0,0x8000,0x10000,点击开始即可烧录。
image.png


移植效果

与OpenMV IDE通信


人脸识别


颜色识别