技术文档

单片机驱动摄像头 DIY监控工程宝,看看用在了什么项目上

小编 2024-11-25 技术文档 23 0

DIY监控工程宝,看看用在了什么项目上

装监控肯定少不了要调试摄像头,因为主要工作不是安装监控的,所以有些工具不太齐全。之前在某宝买了个迷你的液晶屏,大概是2.7或者3吋。本来是打算装到山地车上当后视镜的,后来这个伟大的项目搁浅,正赶上这次项目要用到,就把他做成了显示器。

这是买来的液晶显示屏和驱动板。驱动板上面有几个调整按键和电位器,右上角的按键是控制图像翻转的,画面可以上下颠倒和左右镜像;两个电位器一个调整画面亮度一个调整图像色彩。

驱动板上有三个芯片,最左侧的是电源IC,用的MPS的芯片,最大输入24V,输出3.3V供整个板子和屏幕工作,中间SOP封装的是个单片机,是控制图像自动翻转和两路信号切换的,最右侧的是一个LCD专用驱动芯片。屏是AUO的。

屏幕和驱动板排线连接好,找了个视频信号测试一下屏,显示正常

成品外壳没有装这么小屏幕的,还且还要装电池,只能找个仪表的壳子了。透明,防水,只是厚度有些厚。

屏幕周圈贴上双面胶,一会准备贴合。

这是当时换手机的触摸屏买的3M双面胶,很薄,也很黏,这一卷估计能用很久。

屏幕已经粘到盒子上盖。

板子上面已经有个电源芯片,用锂电池供电的话因为电压太低就得把它拆掉了,但是查询了一下屏幕驱动芯片的工作电压极限只能到3.6V,直接用锂电池可能会烧掉,手头也没有合适的LDO了,于是干脆升压到了12V直接给板子供电,另外也对外输出电压给测试摄像头供电。

增加了个电源开关,用的普通的自锁按键,也可以用防水开关,室内使用,就用了普通开关。

开关尾部打上热熔胶。

锂电池充电部分,成品4056的充电板,充电电流设置在了400mA,电池容量是2900mAh,使用频率不高,充电电流就设置小一些。

安装开关打孔过程中钻头不小心碰到了锂电池,然后就悲剧了,打了一下火,闻到一股怪怪的味道,立马用热熔胶吧这个洞洞封住,事实证明,这个电池可以充满电,也不会发热,但是存自放电高了很多,放不了几天电压直接就降到0V了,一块电池就这样挂了。

重新换了一块新电池,侧面留了两个插口,左边是直接BNC视频信号输入,右边是航空插头。因为主要工作是和车载设备相关的,车载摄像头采用航空插头的居多。航插内部四根线,两根供电,一根视频信号,一根音频信号。

组装完成的最终效果

这是工作现场测试的画面

下面来几张工作中的照片

现场安装的4G车载视频机

其中一个摄像头安装在车辆侧面。

视频机用的8路的,一个车上总共按装了5个摄像头。

市面上成品的工程宝一般都是多功能合一的,现在网络摄像头用的要多一些,所以一般是集成模拟和网络摄像头信号输入的,有的还有485信号接口用来模拟云台控制。

头条号&数码之家:fire1

OV7670 摄像头使用说明

目录

1.OV7670 一般摄像头模块

1.1 简介

1.2 管脚定义

1.3 控制方式说明

1.4 采集图像的基本方法

2.OV7670 带 FIFO 摄像头模块

2.1 简介

2.2 管脚定义

2.3 控制方式说明

2.4 图像采集的基本方法

3.问题解答

3.1 图像采集难吗

3.2 学习图像方面的知识需要哪些基础

3.3 初学者遇到问题该怎么解决

3.4 模块提供那些资料

3.5 单片机能够真正的采集图像吗

3.6 带 FIFO 和不带 FIFO 的模块到底哪个好,有什么区别

3.7 模块上有晶振好,还是没晶振好

3.8 摄像头寄存器该怎么设置

3.10 如果想真正实现图像的采集并且能够处理图像数据该如何做

3.11 骑飞电子的那个模块能够适合飞思卡尔小车的比赛

3.12 模块输出到底是模拟的还是数字的

3.15 如何检测摄像头模块是否损坏

3.16 摄像头模块和模组的区别是什么

1.OV7670 一般摄像头模块

1.简介:

OV7670 一般模块指低成本数字输出 CMOS 摄像头,其摄像头包含 30w 像素的 CMOS 图像感光芯片,3.6mm 焦距的镜头和镜头座,板载CMOS 芯片所需要的各种不同电源(电源要求详见芯片的数据文件),板子同时引出控制管脚和数据管脚,方便操作和使用。

图 1.OV7670 一般模块

2.管脚定义:

控制传感器所需的管脚定义如下:

3V3-----输入电源电压(推荐使用 3.3,5V 也可,但不推荐使用)

GDN-----接地点

SIO_C---SCCB 接口的控制时钟(注意:部分低级单片机需要上拉控制,和

SIO_D---SCCB 接口的串行数据输入(出)端(注意:部分低级单片机需要上拉控制,和 I2C 接口类似)

VSYNC---帧同步信号(输出信号)

HREF----行同步信号(输出信号)

PCLK----像素时钟(输出信号)

XCLCK---时钟信号(输入信号)

D0-D7---数据端口(输出信号)

RESTE---复位端口(正常使用拉高)

PWDN----功耗选择模式(正常使用拉低)

3.控制方式说明

采集图像数据需要严格按照 OV 公司的芯片时序进行,这些时序包括:

(1) SCCB 通讯时序,其作用是设置芯片内部寄存器,以控制图像的各种所需功能。其时序和一般的 I2C 时序相似,部分低级单片机要接上拉电阻。

(2) 行输出时序

行输出时序可用来控制一行像素的输出情况,HREF 即一行输出的开始和结束信号,同时在像素时钟的同步下,输出 8 位的像素信号

(3) 全帧输出下的时序情况:(VGA 为例)

该图显示的是一副图像输出的情况下,各控制信号和数据信号的输出。图中,VGA=640X480 大小情况下,帧同步信号,行同步信号(HREF 或者 HSYNC,注:HSYNC 在其它场合下使用,CMOS 可以设置,更多时候用HREF 即可)如图:

4.采集图像的基本方法

(1)单片机直接采集:

这种方法是最简单,最直接,但也是最不好实现的方法,原因是多数的 CMOS 芯片(如 ov7670)的时钟速度可高达 24M,一般单片机的 IO 端口速度根本不可能达到,所以需要高速 MCU。这对多数用户来讲有些不现实。但也不是完全没有办法在低速上实现采集,方法也很简单,那么就是降低 CMOS 的输出速度,不过这需要靠外部的晶振和内部的 PLL 电路以及像素时钟速度,帧速等多个寄存器共同设置,并且要和 MCU 的 IO 速度匹配才可实现。但不建议这么做,原因是:这种寄存器设置将带来更多的学习困难和理解困难,并导致硬件图像的采集速度可能下降到0.5帧以下,同时带来图像失真的可能。

注:部分 CMOS 时钟速度不快,可以单片机直接采集,如 OV7660,但该芯片已经停产。

(2)高级 32 位芯片直接使用

某些 32 位的 ARM 核,MIPS 核,x86 核直接带有 camera 接口,可以直接使用,典型的如三星的 arm9,sc2440 等。

该采集方法请参考具体的芯片器件数据手册。

(3)DMA 方式的采集方法

这种方法一般需要具有 DMA 功能的 16 位以上的高级单片机来实现,通过DMA 方式,直接从总线或者 IO 口采集数据送入内存,内存中的数据可以存储,计算,保留,或者供显示使用。

(4) 间接采集并显示的方法(推荐使用)

这种方法是最容易实现,能够直接看到采集的图像内容。实现采集就显示的功能,这种方法具有较高帧速,一般 QVGA 可保证在 30 帧左右的速度。实际上,这种间接的办法其实就是将CMOS输出的数据直接送到显示屏(如TFT 显示器的内存中)进行显示的,数据并不经过 MCU(所以对 MCU 而言是间接采集),也无法经过 MCU,因此可以达到较高的帧速。

2.OV7670 带 FIFO 模块

1.简介:

OV7670 带 FIFO 模块,是针对慢速的 MCU 能够实现图像采集控制推出的带有缓冲存储空间的一种模块。这种模块增加了一个 FIFO(先进先出)存储芯片,同样包含 30w 像素的 CMOS 图像感光芯片,3.6mm 焦距的镜头和镜头座,板载 CMOS 芯片所需要的各种不同电源(电源要求详见芯片的数据文件),板子同时引出控制管脚和数据管脚,方便操作和使用。

2.管脚定义:

控制传感器所需的管脚定义如下:

3V3-----输入电源电压(推荐使用 3.3,5V 也可,但不推荐)

GDN-----接地点

SIO_C---SCCB 接口的控制时钟(注意:部分低级单片机需要上拉控制,和I2C 接口类似)

SIO_D---SCCB 接口的串行数据输入(出)端(注意:部分低级单片机需要上拉控制,和 I2C 接口类似)

VSYNC---帧同步信号(输出信号)

HREF----行同步信号(输出信号)

PCLK----像素时钟(输出信号)

XCLCK---时钟信号(输入信号)

D0-D7---数据端口(输出信号)

RESTE---复位端口(正常使用拉高)

PWDN----功耗选择模式(正常使用拉低)

STROBE—拍照闪光控制端口(正常使用可以不需要)

FIFO_RCK---FIFO 内存读取时钟控制端

FIFO_WR_CTR----FIFO 写控制端(1 为允许 CMOS 写入到 FIFO,0 为禁止)

FIFO_OE----FIFO 关断控制

FIFO_WRST—FIFO 写指针服务端

FIFO_RRST—FIFO 读指针复位端

3.控制方式说明

由于采用了 FIFO 做为数据缓冲,数据采集大大简便,用户只需要关心是如何读取即可,不需要关心具体数据是如何采集到的,这样可减小甚至不用关心 CMOS 的控制以及时序关系,就能够实现图像的采集。

控制时序如下:

4.采集图像的基本方法

(1)单片机直接采集:

用户只需要按时序图控制相关的几个控制引脚即可,可以很方便的使用在低速单片机上,另外一个好处是,可以直接 IO 口读取数据,读出的数据可以直接送屏,也可以经过 MCU 简单处理;当然也可以不经过MCU,直接送到屏等外围器件使用。

3.问题解答

很多用户在使用本公司的模块时,遇到不少问题,这些问题既有技术问题,也和用户本身知识结构相关,针对这些集中的问题,对此进行问题汇总,并一一解答,希望用户在使用时能够了解。

1. 图像采集难吗?

答:这个问题对初次接触的用户来讲经常会遇到。难和容易都是相对的,它和许多相关的基础知识紧密相联系。从涉及到的学科和内容上来讲,图像采集或者图像处理(硬件)可以讲是数字电子学中最难的,因为它涉及到光学,如颜色,白平衡,色空间,镜头(这些概念在设置传感器寄存器的时候会大量出现)等;涉及到传感器基本原理,如 CMOS 和 CCD的原理和区别;涉及到电子学中的难题,如:海量数据量的传输、存储,涉及到主控制芯片的选择问题,如速度,和处理能力;涉及到电路板的高速布板问题;涉及到图像的编码和解码等算法问题。

特别是当像素不断增加的时候,这些问题会更加突出,因此客观的讲,如果和其它的传感器或者模块相比较,例如温度,无线模块等等还是有一定难度的,这些模块只要给出接口,一般都容易知道如何处理,但图像并不如此。然而,难度是和相关基础知识的多少成反比例的,掌握的相关基础知识越多,就会越觉得简单。

2. 学习图像方面的知识需要哪些基础?

答:首先,基本的光学知识要先了解,比如:什么是颜色空间,RGB,YUV是什么,这些基础的必须了解;其次,扎实的电子学基础,比如:单片机基本上运用自如,时序图看起来没有任何难度;另外,较好的编程能力和读程序能力,这也是硬件图像的基础;最后,上位机中对图形图像的画法,处理等也有较深刻的认识。

3. 初学者遇到的问题改怎么解决?

答:很多用户都是初次学习图像硬件采集的相关内容,甚至刚刚开始单片机学习的用户也想学习这方面的内容。而实际上,他们遇到的问题很雷同,比如,图像中的一些基本概念如 RGB,YUV,模拟图像,数字图像等就比较模糊,电子学中如 FIFO 是什么,也经常被问到。其实,这些简单的基础知识或者概念只要 Google 或者 Baidu 一下,就可以快速找到大量的相关资料。

4. 模块提供的是那些资料?

答:提供图像芯片的数据文件(这个很重要),这里要做个说明,那就是相关资料很少,得来不易。原因是:实际上这些数据文件都是 OV 公司不经意间流出的东西,做为个人,OV 公司一般根本不会提供这些内容的,它只和对应的有芯片需求的公司签订协议,提供相关资料,并且有保密协议。我们获得的资料也是网上公开后得到的。除此之外,我们还提供中文的数据资料文件,SCCB 接口、模块定义、模块原理、模块尺寸等资料。此外,提供了一个基于 C8051F330 的驱动程序,该程序的原理是将模块数据直接送屏显示。网上有人做过 AVR,STM32 单片机的驱动,原理类似,请自己搜索,至于用 8051 等单片机的驱动程序,我们没有做过,但触类旁通,只要理解了原理,驱动方法其实都是一样的。

5. 单片机能够真正的采集图像吗?

答:这个明确的讲是不行的,特别是 8 位的单片机那更是不行的,必须寻求两种解决办法,一种是增加一个缓冲,如 FIFO,另外一个就是使用高速,如采用 32 位 MCU。 8 位单片机实现的多数仅仅是提供一个 SCCB总线读取或者设置的功能。即使是 32 位,比如大家都喜欢的 stm32,它也不能直接用 IO 口采集,因为 IO 速度还是不行,骑飞电子家族曾经做过实验,用 IO 采集,实现的刷屏速率不到 1 帧,基本没有适用价值,除非使用 DMA 方式,也就是使用总线的带宽速度,可以实现采集,但这个速度也只能在 5-10 帧左右!另外一个问题就是,即使采集到,由于一副图像的数据量很大,QVGA的数据量是 320x240x2,你放到哪里呢?所以只能寻找 32 位以上的 MCU。

6. 带 FIFO 和不带 FIFO 的模块到底哪个好,有什么区别?

答:按照上述几个问题,基本能够理清一个思路,那就是,如果针对 8位单片机,图像采集是不现实的,只能用更高级的 MCU 或者采取更灵活的处理手段才能实现真正的图像采集。那么这样就容易明白了,用那种摄像头是根据你的需求来确定的,如果你就是想显示下图像,8 位足够,不带 FIFO 的摄像头足矣,带个 TFT显示屏即可! 如果你的芯片是高级 MCU,ARM9 以上或者 DSP,那么也可以选择这个不带 FIFO 模块的,因为本身高档芯片的速度很快,存储空间也很大,足够直接采集图像数据!如果还想对获取的图像数据做些非常简单的处理(注意是非常简单),请选择 FIFO 摄像头,由于 FIFO 不具备地址功能,因此他也就不具备数据的定位(选址)读取功能,所以不可能有真正的数据处理能力!请切记!!!

另外,带 FIFO 摄像头模块避免了需要了解更多图像输入或者采集的原理,降低了学习难度,用户只需知道如何从 FIFO 中读取数据即可,因此更建议初学者使用该模块!

总结一下就是:两种模块的选择,要具体看项目的需求和目标来确定。

7. 模块上有晶振好,还是没晶振好?

答:晶振选择也是根据外围电路的能力来确定的。由晶振提供时钟(注:4-24M 都可,尽量是 4 的倍数,CMOS 内部有 PLL 功能)信号是可行的。但当前大多数的 MCU 都具有直接输出频率信号的能力,比如,有些芯片,如 CYPRESS ,C8051f 等等,而且这个频率信号一般非常稳定,所以强烈建议用这样的时钟信号直接供给摄像头。至少,如果能输出 50%占空比的 PWM,那么这个也是可以直接供给 CMOS 芯片使用的。

所以,带不带晶振根本没有本质区别,至于好坏,除了多增加成本外,别无它用。

8. 摄像头寄存器该怎么设置

答:没有其它简洁的办法,只能参考 OV 公司的写的很烂数据手册,慢慢阅读理解和消化。稍快一点的办法就是按照骑飞电子提供的一个 Demo,针对其中寄存器的初始化设置和与其相对应的数据手册仔细推敲。当然也可以不去理解,直接使用即可!

9. 骑飞电子模块提供的 Demo 输出的数据是什么格式的?

答:是 RGB565,QVGA 格式的。这样能够很好的和 320x240 的显示屏直接相匹配,方便使用和参考!

10.如果想真正实现图像的采集并且能够处理图像数据该如何做?

答:按下面几个方案选择:

(1)如果想用 8 位实现采集和处理,基本不现实,简单处理的话,用带FIFO 的摄像头;

(2)32 位的高速芯片可以,有些直接有图像传感器接口,有些必须寻找一些办法,如骑飞电子基于 stm32f103 的 DMA 方式;

(3)真正的图像采集和处理,使用 DSP 图像采集处理芯片,如 TI 的和ADI 公司的芯片,但这些芯片价格超高,单片都在 80-200 元之间;

(4)FPGA 也可以实现类似功能,但如果要有速度和处理能力,价格也是几何数的增长;

11.模块那个能够适合飞思卡尔小车的比赛?

答:根据不少用户的反应,现在看来,选择带 FIFO 的头还是更现实些!

12.模块输出到底是模拟的还是数字的

答:是数字摄像头,它的输出是标准格式的,具体可以参考数据手册。至于模拟摄像头一般如 AV 输出,有两种制式,使用时需要编码和解码才能和大多数的数字芯片或者屏连接。

13.如何检测摄像头模块是否损坏

答:通电,加时钟信号,REST 端拉高,PSWN 接地,示波器检测数据端是否有输出,如果有,说明 CMOS 是好的。

14. 摄像头模块和模组的区别是什么

答:

模块就是将 CMOS 传感芯片,外围电路集成到一块 PCB 板子上,需要使用的控制管脚引出,装上摄像头,即称之为模块。

模组就是传感器和微型的镜头集成在一起,有软线 FPC 线引出管脚,但没有外围电路,使用时需要主板提供外围电路才能正常工作。

如果模组使用转接板,也可以达到模块的方便使用的效果,转接板上已经设计好了模组的外围电路,引出了和模块定义一样的管脚,方便控制和操作。

相关问答

通过 单片机 采集 摄像头 的图像,用无线发射到传输到电脑VC++上用界面实时的显示图像。图像如何传输呢?

如果说照片在单片机里面的存在形式是一个数组的话,那么摄像头的图像是一直变化的,这时单片机内部的数组数据就一直比变化,所以图像的传输也是数组数据的传输。...

可否利用树莓派或者 单片机 之类的,通过电脑的 摄像头 或外接 摄像头 实现坐姿探查和提示?时而能提醒一下自己?

树莓派贵了,没个100不行,建议用esp32cam,二十几块一个,官方示例程序还可以实现人脸识别,还有针脚可以输出信号,可以接个蜂鸣器。树莓派贵了,没个100不行,建议...

51 单片机 可以读取USB 摄像头 的图像吗?

就是想用51单片机,一块彩色液晶屏,再弄个USB摄像头做一个小型监控,只要能够把摄像头看到的图像显示在液晶屏上就可以了就是想用51单片机,一块彩色液晶屏,再弄...

怎么将 摄像头 接入自己的服务器?

1通过摄像头接入服务器是可行的。2摄像头接入服务器需要以下步骤:首先,需要选择一款适配服务器的摄像头,并按照其说明书连接好设备;其次,需要在服务器上进...

和目C15 摄像头 配置怎么样?

其实从外部看,看不出一个摄像头的好坏来,要看配置,还得拆机来看。拆开下盖后,可以直接看到和目C15智能摄像机的主板,灯板、Sensor板及两个电机有复杂的连线...

如何实现 单片机 与手机的远距离通信?

通过云服务器中转可以实现单片机与手机的远距离通信只要有互联网连接,通过云服务器中转,单片机和手机无论处于地球的哪一个角落都可以进行通信,这就是物联网...

斗鱼直播 摄像头 如何设置?

2.LCD调试法。直接接在单片机SPI口上进行数据传输,能实时刷新显示图片,此模块可以直接搭载在系统上,实时显示系统相关信息。但由于模块分辨率限制,只能显示...

可以用来调 摄像头 模组的自动调焦机有吗

[回答]浩林公司自主研发行业首台全智能摄像头聚焦机!适用全景及半景镜头产品特点:1、通过高精度分割器旋转工号,逻辑运算分工处理,三轴同步运行聚焦、点...

急需了解,成都 摄像头 模块哪家强?

天工测控(SKYLAB)哦,在这一块做了15年的老牌子啦,已推出了很多WiFi模块,USB摄像头WiFi模块WG209,大功率无人机WiFi模块SKW77,物联网WiFi模块WU105、...

老师们!十万火急!正规的智能 摄像头 模组制作,有了解这个智能...

[回答]核心单片机传感器:会有红外,超声波,壁障开关,可能还会有摄像头。。。如果再智能一点。。。就是语音模块,智能充电。。。等等。。。。如果再机械一点...

猜你喜欢