1.简述
这个项目是大三下学期暑假(也就是2019年8份)完成的,当时的视频效果已发布在bilibili上,这是我们的省级的科研立项,其实就我一个人负责完成。发布bilibili后很多人比较感兴趣,打算年初回学校完成毕设期间开源的,一直拖到现在,工作后时间也比少了,条件也没在学校实验室好,只能尽力做好吧。
该视频bilibili连接: 双目测距.
2.准备
- 摄像头模块:OV7725(以前是彩色MT9V034)
- FPGA板卡:米联客ZYNQ7020
- SD卡
- 1080P的显示器
- 正红色物体
- 软件版本:vivado2019.1
3.双目硬件结构介绍
我之前一直用的MT9V034摄像头,换成ov7725的后驱动不了,查了很久这个问题没找到原因,为了节省时间直接改米联的例程。包括ARM的硬件结构如图所示,两个摄像头分辨率为640x480的视频流通过VDMA缓存到DDR,然后将视频流输出到OSD IP合成为1080P的视频流,最后送到HDMI在显示上显示。OSD IP可以将多路视频合成到一路视频,实现同屏显示。但是这个IP需要申请license,申请需要注册xilinx账户绑定个人电脑MAC地址就可以免费使用了,这个申请可以参考我的另一篇博客:最新 Xilinx vivado IP许可申请. 而摄像头的配置通过EMIO软件模拟IIC进行配置。
4.SDK软件
如图所示先进行EMIO的配置,其次进行摄像头配置,然后配置VDMA,最后进行按键将图像保存为图片,存到SD卡中,后面导入MATLAB进行算法仿真,也方便进行modelsim功能仿真。其中4个EMIO作为IIC使用,还有2个作为按键使用,用来保存图片。详细可以看代码吧。
5.效果
红色小球的距离大约为50CM,图像质量没有MT9V034的好,但是OV7725很便宜,比较亲民。
6.采集的图片
这个具体代码请参考:zynq SD卡写入摄像头图像(图片格式)
7.总结
现在完成第一步了,开源工程请关注我的公众号:芯王国 获取。下一步进行MATLAB双目测距算法的仿真,并将图片保存为TXT文件方便modelsim仿真使用,尽情期待!!!