最近项目需要做一个精巧的小设备,需要一个体积小巧,功能较强大的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:感谢创龙的工程师们,技术服务到位,例程丰富,解答及时。