鹰眼摄像头的移植(LPLD V3)

关键词:

  • 鹰眼摄像头
  • LPLD V3库
  • OV7725
鹰眼摄像头的优点

1.硬件二值化,二值化效果理想(个人看法不一样)
2.一次传输8个像素,速度可达150帧每秒
3.成像质量、低照度好的OV7725
由于某宙捕食者摄像头停产,不得不换用市面上认为用于智能车比赛较好的摄像头——鹰眼(我也是偷懒的人,能用别人的坚决不自己写)。

鹰眼的驱动步骤
1.了解鹰眼的工作方式(可以参考《OV7725数字摄像头编程基本知识笔记》)

我在驱动鹰眼的时候和山外哥一样,并未使用行中断,而是采用场中断+DMA的方式,可能与大家习惯使用行场中断+DMA采集图像的方式存在差异,不过原理并没有太多区别。
这里写图片描述
注意:①在K60与PCLK、VSYNC连接的IO处加下拉150Ω的电阻进行阻抗匹配,可以有效减少干扰。不过我在测试的时候并没有加,图像也很稳定,并没有异常。
②鹰眼使用3.3V供电,存在因电池电量不够出现图像上下错位的情况。

这里写图片描述

2.搞清楚时序图

这里写图片描述
(忽略图片中的行中断内容)采用场信号上升沿触发中断,开启DMA,根据PCLK的下降沿触发,传输图像。

3.采集图像的思路
使用场中断,DMA传输

①需要采集图像时,开场中断
②判断场中断来了,初始化DMA传输,并启动DMA传输
③每个PCLK下降沿来了都触发DMA传输,把摄像头的输出的值读取到内存数组里。
④DMA停止传输时触发中断,中断里面设置图像采集结束标志,图像采集完毕。

4.使用SCCB

OV7725摄像头的寄存器是EEPRON,有一定单片机基础的同学都知道,其不稳定,数据易丢失,因此程序每次初始化时我们都需要重新写入寄存器设置。下面定义摄像头的各寄存器地址:

#ifndef _OV7725_REG_H_
#define _OV7725_REG_H_

#define OV7725_ID           0x21


#define OV7725_GAIN      0x00
#define OV7725_BLUE      0x01
#define OV7725_RED       0x02
#define OV7725_GREEN     0x03
#define OV7725_BAVG      0x05
#define OV7725_GAVG      0x06
#define OV7725_RAVG      0x07
#define OV7725_AECH      0x08
#define OV7725_COM2      0x09
#define OV7725_PID       0x0A
#define OV7725_VER       0x0B
#define OV7725_COM3      0x0C
#define OV7725_COM4      0x0D
#define OV7725_COM5      0x0E
#define OV7725_COM6      0x0F
#define OV7725_AEC       0x10
#define OV7725_CLKRC     0x11
#define OV7725_COM7      0x12
#define OV7725_COM8      0x13
#define OV7725_COM9      0x14
#define OV7725_COM10     0x15
#define OV7725_REG16     0x16
#define OV7725_HSTART    0x17
#define OV7725_HSIZE     0x18
#define OV7725_VSTRT     0x19
#define OV7725_VSIZE     0x1A
#define OV7725_PSHFT     0x1B
#define OV7725_MIDH      0x1C
#define OV7725_MIDL      0x1D
#define OV7725_LAEC      0x1F
#define OV7725_COM11     0x20
#define OV7725_BDBase    0x22
#define OV7725_BDMStep   0x23
#define OV7725_AEW       0x24
#define OV7725_AEB       0x25
#define OV7725_VPT       0x26
#define OV7725_REG28     0x28
#define OV7725_HOutSize  0x29
#define OV7725_EXHCH     0x2A
#define OV7725_EXHCL     0x2B
#define OV7725_VOutSize  0x2C
#define OV7725_ADVFL     0x2D
#define OV7725_ADVFH     0x2E
#define OV7725_YAVE      0x2F
#define OV7725_LumHTh    0x30
#define OV7725_LumLTh    0x31
#define OV7725_HREF      0x32
#define OV7725_DM_LNL    0x33
#define OV7725_DM_LNH    0x34
#define OV7725_ADoff_B   0x35
#define OV7725_ADoff_R   0x36
#define OV7725_ADoff_Gb  0x37
#define OV7725_ADoff_Gr  0x38
#define OV7725_Off_B     0x39
#define OV7725_Off_R     0x3A
#define OV7725_Off_Gb    0x3B
#define OV7725_Off_Gr    0x3C
#define OV7725_COM12     0x3D
#define OV7725_COM13     0x3E
#define OV7725_COM14     0x3F
#define OV7725_COM16     0x41
#define OV7725_TGT_B     0x42
#define OV7725_TGT_R     0x43
#define OV7725_TGT_Gb    0x44
#define OV7725_TGT_Gr    0x45
#define OV7725_LC_CTR    0x46
#define OV7725_LC_XC     0x47
#define OV7725_LC_YC     0x48
#define OV7725_LC_COEF   0x49
#define OV7725_LC_RADI   0x4A
#define OV7725_LC_COEFB  0x4B
#define OV7725_LC_COEFR  0x4C
#define OV7725_FixGain   0x4D
#define OV7725_AREF1     0x4F
#define OV7725_AREF6     0x54
#define OV7725_UFix      0x60
#define OV7725_VFix      0x61
#define OV7725_AWBb_blk  0x62
#define OV7725_AWB_Ctrl0 0x63
#define OV7725_DSP_Ctrl1 0x64
#define OV7725_DSP_Ctrl2 0x65
#define OV7725_DSP_Ctrl3 0x66
#define OV7725_DSP_Ctrl4 0x67
#define OV7725_AWB_bias  0x68
#define OV7725_AWBCtrl1  0x69
#define OV7725_AWBCtrl2  0x6A
#d
  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
OpenLayers的鹰眼控件(OverviewMap)是一个用于展示地图鸟瞰视图的功能。它可以显示当前地图的位置,并且允许用户通过点击、拖动或移动鹰眼来浏览地图。鹰眼的可见区域比主视区的范围要大,而鹰眼的中心框则代表了主视区的可视范围。 在OpenLayers中,我们可以使用ol.control.OverviewMap来创建鹰眼控件,并通过设置相关参数来定义其样式和行为。其中一些参数包括:layers(鹰眼容器内加载的图层)、collapseLabel(展开时功能按钮上的标识)、label(折叠时功能按钮上的标识)、collapsed(初始加载时是否展开显示)和className(控件的类名,用于定义整个鹰眼控件的样式)。 在代码中,我们可以使用ol-custom-overviewmap来将鹰眼控件设置为右侧顶部显示,并设置鹰眼控件外框以及地图容器和按钮的样式。 总之,OpenLayers的鹰眼控件是用于显示地图鸟瞰视图的工具,可以通过设置参数来自定义其样式和行为。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [OpenLayers3基础教程之实现地图鹰眼以及地图比例尺的添加](https://blog.csdn.net/cj9551/article/details/79122724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值