OV7725+广州创龙OMAPL138开发板调试(从选型到出图像)

2023-11-22 22:59

本文主要是介绍OV7725+广州创龙OMAPL138开发板调试(从选型到出图像),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        最近项目需要做一个精巧的小设备,需要一个体积小巧,功能较强大的cpu核心板。考虑到后期开发过程中可能会遇到比较多的问题,客服给不给力也是一个重要的考虑方面。CPU的选型上,因为后期视频帧率需要达到50帧以上,而且要做视频处理,所以一般的arm(如stm32,2410)也不予考虑。有了以上指导原则,开始在各大论坛及网店搜罗符合要求的核心板,首先备选的是树莓派,最终由于以下几个方面的原因放弃了该方案:1、针对驱动开发的开放性较差(也可能是由于本人的技术不过关,呵呵);2、当时选的时候没有还没有针对树莓派的屏可以使用,尝试使用网上的方法将帧率提高,会造成偏色,CPU占用率过高等问题;3、最重要的选配摄像头使用preview的帧率只能到10帧左右,多方调试未果。后来又考虑了我们之前用的9x35的平台,由于核心板尺寸的问题,也放弃了。后来锁定了TI的omapl138的cpu,双核,运算速度也行,做简单的图像处理绰绰有余。在电商搜索基于该芯片的核心板,不是很多,就那几款。最终考虑尺寸的因素选了创龙的,其核心板大小只有两个一元硬币那么大(当然,因为尺寸小,后面做底板的时候也是累煞我们的硬件工程师,此为后话)。

        摄像头的选型,因为产品有体积的限制,所以最终需要显示的图像分辨率不是很高,但是帧率要求高,所以低分辨率,高帧率是指标。选来选去最终锁定在ov7725上,给予该sensor的摄像头电商也有不少,前前后后共有4款摄像头被我拿来试用。分别是蓝宙的,火眼的,鹰眼的,还有一个不知名的反正是一个带晶振的ov7725。因为对图像的实时性还有一点要求,所以不能带fifo,还有因为接口电路的问题(这个比较关键,后面会说),前几款摄像头在创龙OMAPL138的平台上无法使用。最后使用的是哪个不知名的ov7725.

        LCD的选型,体积还是体积,选择了一个2.2寸的分辨率为320*240,RGB+SPI接口的小屏。

        首先需要搭建开发环境,这个是现成的,OMAPL138的开发环境是CCS,这个大家都知道。虽然本人平时安装软件无数,自认不算是个高手但也差不多了,但是装CCS的时候还是出了问题,调试器不识别啊,我用的创龙自带的v3的调试器,相应的驱动也装了,必要库也装了。几番折腾未果,求助客服,通过qq远程协助,问题完美解决,这个种客服应该点赞。

        开发环境好了,其次就需要搭个程序的框架,我是拿来主义者,有现成的就用,没有现成的,改改用。我们的东西就是图像采集+视频处理,就开始在开发板提供的几千个例程中搜索(几千个例程啊,而且打开就能用……这绝对不是吹的)。最终选定了四个例程,其中创龙例程堆里的有人脸识别,ov2640,imageprocess;还有ti的vpif_loopback。规划如下,在现有平台上及例程中验证算法和处理流程,其次更改优化程序框架,再次开发目标器件的驱动和硬件,最后联调出图。首先在创龙OMAPL138的开发板上验证我们的算法和思路,例程是现成的,摄像头模块也是创龙的ov2640,这一步很顺利,验证的过程也没有出什么大问题。有几个小问题,也是创龙工程师通过qq和论坛给解决的,很及时。主要问题是在更换摄像头的过程中出现的,理论上不应该有这么多的问题,但是问题还是不少。图像出现的问题及解决办法罗列如下,没有图片见谅:

        1)图片颜色不对

        由于需要摄像头输出YUV的图像,而屏幕又是RGB的,需要做色彩空间转换,我遇到的第一个问题是没有做色彩空间转换(别拍砖),第二个问题由于我在做色彩空间转换加速的时候,表有问题,导致部分偏色,第三个问题线路问题,这也是硬件上很难确定的问题,这个问题的主要原因是摄像头接口不兼容,我们用杜邦线接的。

       2)图像有等高线

       这个是硬件接线的问题比较多一些,好好检查一下线问题一般能解决,还有线如非必要,不要太长。

      3)图像像水洗的油画一样

      这个问题困扰了好久,也问了创龙的工程师,但是最终都没有解决该问题。后来在不断的试验中发现,摄像头接口和创龙板子的接口的电阻不匹配,换了电阻,就好了。这个问题最终的解决办法可以参考一下我在www.51dsp.net的帖子。

      4)直方图不太好看

      

      据说是要调动态范围,但是ov7725怎么调,没有找到,有知道的高手,告知一下,谢谢。

      5)图像显示不完整,还闪

      说白了,这个问题是一个很弱智的问题,就是buffer的问题。

      最后出图像是这样的

      

      焦距没有对上,请忽略。

      最后列两篇神级文章供大家参考:

     CMOS图像传感器调试问题汇总(百度文库里找)

     榨干OV7725寄存器

      其次就是结合上述文章仔细看ov7725的手册,这个应该好找.

      最后,由于时间问题就写这么多,关键的问题都写到了,有不清楚的可以留言。

      PS:感谢创龙的工程师们,技术服务到位,例程丰富,解答及时。

这篇关于OV7725+广州创龙OMAPL138开发板调试(从选型到出图像)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/413524

相关文章

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O