采用安信可 ESP32S3 系列模组的 USB 主机功能,实现对 USB 摄像头 MJPEG 数据流读取、Wi-Fi 图传,支持以下功能:
- 支持 USB Camera 数据流获取和解析
- 支持设置为 Wi-Fi AP 或 STA 模式
- 支持 HTTP 图传,可使用移动设备或 PC浏览器查看实时画面
硬件准备
该示例支持的摄像头,需要满足以下必要参数:
- 摄像头兼容 USB1.1 全速模式
- 摄像头自带 MJPEG 压缩
- 摄像头支持设置接口为 wMaxPacketSize 为 512
- 图像数据流USB 传输总带宽应小于 4 Mbps (500 KB/s) 受制于 USB
- 总线带宽,图像帧率和单帧图像大小相互制约,若图像单帧 25KB,帧率可到 20 FPS.
- 该示例由于无需本地解码,可支持满足以上条件的任意分辨率
USB 摄像头硬件接线:
- USB 摄像头 VBUS 请使用 5V 电源独立供电,亦可使用 IO 控制 VBUS 通断
- USB 摄像头 D+ D- 数据线请按常规差分信号标准走线
- USB 摄像头 D+ (绿线) 接 安信可 ESP32S3 系列模组 GPIO20
- USB 摄像头 D- (白线)接 安信可 ESP32S3 系列模组 GPIO19
编译代码
该示例代码需要额外添加 2M PSRAM,建议使用安信可 ESP32S3 系列模组开发板,如 ESP-S3-12K-Kit 开发板:
- 添加 ESP-IDF 环境变量,Linux 方法如下,其它平台请查阅 Set up the environment variables
. $HOME/esp/esp-idf/export.sh
- 添加 ESP-IOT-SOLUTION 环境变量,Linux 方法如下,其它平台请查阅 readme
export IOT_SOLUTION_PATH=$HOME/esp/esp-iot-solution
- 根据摄像头配置描述符,修改摄像头配置项
- 设置编译目标为
esp32s3
idf.py set-target esp32s3
- 编译、下载、查看输出
idf.py build flash monitor
使用说明
- PC 或手机接入 ESP-S3-12K-Kit 开发板发出的热点,SSID:
ESP32S2-UVC
默认无密码 - 浏览器输入
192.168.4.1
打开操作窗口 - 点击
Start Stream
开启视频流 - 点击
Get Still
拍摄照片 - 点击预览窗口
Save
可保存当前图像
性能参数
总带宽限制下,不同分辨率图像压缩率与帧率对应关系:
- 在压缩率 15:1 下,320*240 图像吞吐率可达到 33 帧每秒,每一帧图像大小约 15 KB:
- 在压缩率 25:1 下,640*480 图像吞吐率可达到 15 帧每秒,每一帧图像大小约 36 KB:
更多资料
以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,以上提供的驱动源码联系我们可以免费提供;
源码获取:usb/host/usb_camera_wifi_transfer
官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
公司地址: 深圳市宝安区西乡固戍华丰智慧创新港C栋410