【个人作品】无线网络图传模块

一个学习硬件四层板设计的小作品,目前看还是非常受欢迎的,购买链接:

https://x.jlc.com/platform/detail/55fee4af9a464fe1848dc9988446860a

一、作品简介

一款可通过命令行自行适配多种摄像头且支持 HTTP 、UDP 传输视频流的无线网络图传模块。 

【个人作品】无线网络图传模块_第1张图片

二、应用场景

  1. 玩具场景,如遥控车上,实时传输视频流,便于观察小车所在环境。
  2. 视频监控,可以安装在室内或室外,实时监控室内室外的状态。
  3. 图像识别,可以进行人脸识别、行人识别、车牌识别等等。

三、作品功能

网络配置、摄像头配置、网络视频流配置均通过串口命令行控制台配置。

  1. 指示灯,闪烁表示尚未联网,常亮表示联网成功。
  2. 看门狗,出现某些意外异常,会自行重启并恢复配置。
  3. 网络配置,支持串口配置无线网络,支持 STA 和 AP 模式。
  4. 自动配置,系统启动时会根据上一次设置的配置信息,自动配置模块。
  5. 网络视频流,支持 UDP、HTTP 视频流,其中 UDP 需上位机、 HTTP 只需要浏览器即可。
  6. 图像效果可配置,根据摄像头模组 Sensor 手册,可通过串口指令在线实时调试图像效果。
  7. 摄像头模组可配置,模块采用通用的引脚顺序,可以替换不同的摄像头模组,再通过串口动态配置。
  8. 持久化存储配置信息,网络配置、网络视频流配置、摄像头模组配置均可存储在模块上的 Flash 上。
  9. 提供 udp 图传上位机源码,内含非常简单的只需要十几行代码的 udp 组包功能,非常容易移植到其它程序中。

主控采用的是芯之联 XR872,官方SDK深度开放,拥有丰富的应用级示例代码和文档,有兴趣的话可以进行二次开发。

四、硬件参数

  1. 供电范围:3.3V ~ 5.5V。
  2. 串口参数:波特率:115200 数据位:8 停止位:1 校验位:无。
  3. 采用 DVP 接口,输出码流为 YUV422 或 JPEG 的摄像头模组。
  4. 支持非常规的分辨率,需要摄像头模组也支持,当然也支持常规分辨率。
  5. 分辨率和帧率:640x480@60、1280x720@40,最大支持分辨率为 1920x1088。

五、使用说明

初级玩法:使用配套摄像头模组 gc0308,简单配置即可使用。

首次拿到模块之后,按照如下配置,启动上位机即可完成初始配置。

  • 网络配置命令,例如要连接名称为 dream、密码为 12345678
net sta disable
net sta config dream 12345678
net sta enable
  • 开启 udp 视频推流,指定上位机的 IP 地址和端口号
video udp start,192.168.123.110:8080

配置完成后,配置信息会记录到 flash 中,重启或重上电自动配置。

高级玩法:调整摄像头的默认配置,或自行适配新的摄像头模组。

  • 配置摄像头模组的芯片地址为 0x21、分辨率为 320x240、压缩质量为 64(1~99)
cam cfg 0x21,320,240,64
  • 读取摄像头模组的寄存器,如读取 gc0308 的 0x00 寄存器得到 chip id
cam get 0x00
  • 读取摄像头模组的多个寄存器
cam get 0x00,0x12,0x23,0x55...
  • 写入多组寄存器,用于初始化摄像头模组,也可以启动视频流时在线调试视频效果
cam set FE=00,01=0A,02=0C,E3=7D,E4=02,E5=71...
  • 保存寄存器配置序列,便于上电自动配置生效
cam save clear
cam save add FE=00,01=0A,02=0C,E3=7D,E4=02,E5=71...
cam save add ......
cam save submit

当需要一次性操作的寄存器过多时,命令行缓冲区不足以处理,则可以省略掉 0x 符号,如上述 cam set 指令的示例。

自行适配新的摄像头模组需核对原理图引脚顺序和供电,如果引脚刚好顺序颠倒,可以选用支持上下接的前插后压座子。

更多玩法:可以通过执行 help、cam help、video help 帮助指令查看其它指令的示例。

六、备注说明

自行适配条件:

  1. 摄像头模组供电电压可以支持 2.8V\1.8V。
  2. 摄像头模组输出格式为 YUV422 或 JPEG。
  3. 摄像头模组引脚顺序必须与本模块一致,顺序颠倒的可以采用前插后压的座子,可正反插。
  4. 摄像头模组可用的寄存器初始化列表,一般商家都会提供,然后通过串口命令进行下发配置即可。

注意事项说明:

  1. HTTP 视频流为试验性功能,建议使用 360 极速浏览器体验。
  2. HTTP 目前最佳的体验分辨率是 320x240(或提高分辨率降低质量也行),UDP 分辨率则是 640x480。
  3. 看产品热度,会考虑后续在产品中增加新功能,如自适应不同摄像头模组、二维码识别、串口图传等。

附件包含如下:

  1. 深度开放的 SDK 源码以及相关开发文档链接地址。
  2. 包含本模块所需的固件、烧录软件、烧录文档。
  3. 包含本模块所需的摄像头模组购买地址。
  4. 包含本模块的电子元器件位置图。
  5. udp 视频流上位机源码和可执行程序。

七、演示视频

无线网络图传模块演示视频

  1. 演示时,使用 xshell 的快速命令栏的功能,节省输入指令的时间。
  2. 演示了网络配置、HTTP 推流、UDP 推流、在线实时切换分辨率等功能。
  3. 在视频的最后,为了演示可以在线调试摄像头,做了两次切换分辨率的动作,可以看到视频流也随之变化。

八、固件更新记录

v1.0.2(net_image_transmission_v1.0.2_20220519.img)

  1. 修复:调整错误的分辨率配置,仍会将配置信息保存到 flash 的问题
  2. 新增:支持检测网络断开15秒后自动重连的功能

v1.0.1(net_image_transmission_v1.0.1_20220515.img)

发布的首个版本,支持本文描述的所有功能。

九、硬件更新记录

  • V1.3:新增支持某些需要 DVDD 1.8V 的摄像头模组(如 GC2145)
  • V1.2:发布的首个版本

十、已调试的摄像头模组列表

  1. GC0308:系统默认配置的模组
  2. GC2145:请使用附件 GC2145_640x480.txt 的命令更新一下即可

若你有更优或者点亮了其它类型的摄像头模组命令参数,也可以在评论区一起分享出来喔。

你可能感兴趣的:(硬件作品展示,udp,网络,网络协议)