Linux qt5 摄像 采集,LINUX篇 基于debian9系统 CH21-OV5640-QT采集

本文档详细介绍了在QT环境下配置和使用OV5640摄像头的过程,包括替换设备树、FPGA工程设置、内核配置、驱动编译、QT程序的编写与编译,以及最终在开发板上的运行步骤。内容涵盖从硬件配置到软件应用的完整流程。
摘要由CSDN通过智能技术生成

21.1概述

在上一节课中我们学习了9V034的QT视频采集课程。学习了如何配置设备树、添加驱动、配置9V034的摄像头、配置输出的分辨率等。本节课我们将学习OV5640在QT环境下的使用。

21.1  OV5640的QT采集

1>首先把路径/mnt/workspace/driver_app/drv_code/CH09_5640_qt/drv/的system-top.dts替换掉/mnt/workspace/osrc-lab/boards/MZ7X/debian/drv下的system-top.dts,再把fpga工程替换掉。

e2582b2f9a09a393e3bad86abc79ea02.png

2>打开FPGA工程,我们可以看到数据流的格式是RGB,而9v034的数据格式是Mono/Sensor。

eaddb93b67a747bad25343358be61d2c.png

注意这两个IP核的连线也是明显不同的,数据流9v034是8bit,这里是24bit。

a66b14f1d88f07108783522b4dcb4357.png

对比上一节课的驱动部分,9v034只有一个像素,而5640是三个,所以标注部分都要乘以3。

5eeb743736a14c7987c592a470377102.png

5>注意compatible的内容在驱动中是一致的。

68ef66cb6f7c9b96d70f464ef6b61ef8.png

6>再把路径的/mnt/workspace/driver_app/drv_code/CH09_5640_qt/cfg_kernel/的xilinx_mz7x_defconfig文件内容替换

掉/mnt/workspace/osrc-lab/sources/kernel/arch/arm/configs/下的xilinx_mz7x_defconfig,增加对OV5640寄存器的配置。

73cb0ea7e6ee2a278ded9885ee4edb27.png

7>使用动态加载方式,进入文件夹删除上节课产生的不必要的文件。

1d55785f056b7ea1aa2b07fef988e105.png

8> 修改Kconfig,动态加载删除不需要的内容。

82a7a5e7b6b51437c48a02355874c295.png

9>修改Makefile,动态加载方式删除不需要的内容。

0a9acba5bf092aef4b9df1971e75a2e0.png

10>首先运行source settings64.sh。

feafac227cac6b3fd45b19b7a7034fc2.png

11>进入路径执行make clean,清除编译生成的文件。

098acfcd7de9bf3f4e28103971934df1.png

12>打开makefile,这里的路径一定要正确。

d66c544310412b81df0430eb5d3aaf16.png

13>执行make,编译驱动。

7e67bfcaa188c608536d053336cd15ae.png

14> 进入xilinx路径,执行get_hw_description.sh,更新FPGA的硬件。

a39f69d629a939246b3a361814ccaaf6.png

15>因为uboot内核的配置文件没有做修改,我们可以直接执行make_uboot.sh,编译uboot。如果做了修改,需要先执行cfg_uboot.sh。

15d53a6eabde3b1d0d04f75be7c8724f.png

16>因为我们修改了内核文件下的xilinx_mz7x_defconfig,所以需要执行cfg_kernel.sh,进行配置内核文件。

5b2b69dabcfe1dafdfba38038fa43d4a.png

17>执行make_kernel.sh,编译内核。

2f5082920226b80ebe56185f3d9c736a.png

18>执行create_image.sh脚本。

7847a120c17c2f65c98050ecdddeb912.png

19>SD卡接入电脑,把生成的boot文件内的内容拷贝到SD卡的boot内。

3a6dcdf2ccf0294bc1ca16e102f274fb.png

20>接下来我们需要编译qt程序,首先进入如下路径,重新打开一个控制台执行settings64.sh脚本。

17922da1653584286c99b1151794a08d.png

21>进入如下路径。

8dc24672aaa4d4f0f757cee4f75d512e.png

22>QT打开本节课工程文件,可以看到检测到按键按下会定义一个定时器,用途是定时刷新图像(也可以开启一个线程进行刷新图像的操作),再对相关内容做初始化,再对5640初始化,对5640的初始化是通过sccb模拟IIC对摄像头寄存器进行配置,再对VDMA进行初始化。

3a733e539252f5d5a8614ed7bd5743aa.png

23>执行make clean命令。

c13ceecfe658b2f39910fddac21fe4c1.png

24>再执行编译命令,等待应用程序编译完成。

3115279

f5e598385695250a25fd67da989d6325.png

25>拷贝编译好的qt程序到/mnt/workspace/driver_app/app_code/CH09_5640_qt/sdcard/5640_qt/。

5cedaf9a1ded7dda6371998d39c88479.png

0eec559d69f6cf529f78a2c6c45a4ff5.png

26>修改run_arm_app.sh,主要是添加挂载三个驱动和执行5640的qt程序。

19cbb992182ef5463f0f31dc591ddbae.png

27>复制sdcard内5640 qt工程的内容到/home/osrc路径下,复制完成退出TF卡。

992b402371575c181577427592f8c5dd.png

28>准备好开发板,插入TF卡,接入5640摄像头、鼠标等,打开串口控制台,上电启动开发板,进入系统后输入osrc,密码root进入用户,再输入sudo su,密码root进入管理员模式。

df2ad8ec8a6a4e964190e767de5138a0.png

29>进入5640_qt路径执行应用程序。

a98b41a5a613d0d6ca4ea5e3e4fb9655.png

30>观察串口控制台显示。

08fcecf43ed1e39f427ee3d690370bcd.png

31>观察液晶屏显示。

8302f9cb0b7c8048afe509d7517c507a.png

32>鼠标点击open,摄像头状态正常。

1eae2ef1d1be94b37669ace9d1f7f3d2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值