ESP32 官方提供了一个USB 摄像头的例子,但是他们使用带有 PSRAM 的ESP32,经过研究,不支持 PSRAM的模组可以通过修改代码的方式实现相同的功能。本文以ESP32-S3-WROOM-1-N4模组(DFR0896)【参考1】为例,介绍实现方式。
首先使用这个模组制作一个底板【参考2】
接下来设计给摄像头模块使用的连接器,摄像头选择的是微雪电子的 OV2640模块。OV2640是OmniVision公司生产的一颗1/4寸的CMOS UXGA(1632*1232)图像传感器; 支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹等自动控制功能。 UXGA最高15帧/秒,SVGA可达30帧,CIF可达60帧; 支持图像压缩,即可直接输出JPEG图像数据.
设计的 OV2640 Shield电路图如下,除了一个用于连接摄像头之外,还预留了一个 SD 卡座,让 ESP32 S3 板子有读写 SD 数据的能力。
PCB 设计如下:
3D预览结果:
焊接好之后的板子和 ESP32 S3 以及 OV2640 的照片:
接下来就可以进行代码的编写了。
通过 idf.py menuconfig 设定OV2640 的引脚,然后去掉PSRAM 的支持。.fb_location = CAMERA_FB_IN_DRAM 这里指定摄像头使用 ESP32 内置 RAM 即可。
连接之后即可工作。
工作的测试视频在
本文提到的电路图和PCB 在:
源代码在:
参考:
- https://www.dfrobot.com.cn/goods-3536.html
- https://mc.dfrobot.com.cn/thread-315546-1-1.html