简介:
基于ESP32 和 OV2640的低延时图传(原理:WIFIBroadcast)
应用场景:
航模/车模/船模/各种RC场景
一、产品简介
基于ESP32 和 OV2640的低延时图传
二、应用场景
航模/车模/船模/各种RC场景
三、产品概述
一个专注于降低延时的图传。主要特点:
- 摄像头每输出一部分数据,即可马上发送一部分数据,不需要等一整帧出来再发送。
- 基于WIFIBroadcast,与一般的wifi图传区别在于,这种方式不需要建立wifi连接,即使超出wifi连接的距离,仍然能收到一定的数据包,因此虽然帧率会降低,但至少不会断开而卡住好几秒
四、产品参数
- 分辨率在320*240 下,可以到80帧输出(也取决于ov2640,有的ov2640视场角比较大,一帧的数据较大,达不到80帧)
- 延迟可以达到40ms
- 可以修改分辨率(需要自行修改代码),ov2640最高支持200W像素(800*600 的延迟大概在 60ms左右)
- 带宽最高可达54Mbps
- 在空旷位置地面测试,距离可达200米(320*240分辨率,帧率30fps)。在空中预计可以获得更远距离。
- PCB阻容封装均采用0603,便于手焊
五、使用说明:
- 天空端烧写:按住按键上电,进入下载模式
- 按照图示操作:
3. 如果作为图传天空端使用,需要地面站配合,以下为地面站运行说明,需要有一定的Linux编程基础。请根据该说明评估难度,以确定是否需要购买!
- 下载地面站源码
- 需要运行在Linux上(windows 可能可以,不确定windows的pcap是否支持monitor)
- 安装rust,安装libpcap-dev等依赖库
- 编译地面站:cargo build --release
- 将网卡设为monitor模式: 运行 scripts 下的set_netcard.sh 网卡设备名(2.4G网卡,推荐AR9271)
- 运行地面站:
sudo ./esp-vtx-gs-rs --dev 网卡设备名
g. 推流:运行scripts下的 gst_stream.sh (需要安装gstreamerl)
h. 播放:运行scripts下的 gst_play.sh
六、备注
- 如果linux报网卡无法设置为monitor模式的错(常见于ubuntu20以后), 需要重新编译一下libpcap的库
- 需要自行购买2.4G天线,接口为IPEX1代,注意天线要买好点的,有的天线阻抗比较离谱,反射比较严重,会导致信号发不出去,严重影响接收的帧率。
- 原理图中U2(PSRAM) 和 U4(SD Nand) 相关电路可以不焊,这些是为了后期支持DVR的。
- 原理图中,SDIO 相关的上拉电阻都可以不焊,也是为了后期DVR支持用的。
- 成本:PCB+物料 50 + ov2640 20
- 附件主要有3个,分别时编译好的固件(.bin文件),以及天空端与地面站的源码。天空端使用idf4.3.3编译, 地面站需安装rust 及cargo 以及libpcap库。
七、 测试视频
帧率测试: 发射端的帧率输出在70fps左右(刚上电时可以到80fps,芯片发热后最终会稳定在65-70 fps)
接收端运行在ubuntu22.04 ,使用网卡AR9271 测试:
点赞
描述
PCB
元件清单
原理图
附件
讨论