单片机交流
直播中

凌流浪

8年用户 1051经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

怎样使用51单片机连一个摄像头去完成二维码识别呢


在51单片机开发板上面怎么去编程?
怎样使用51单片机连一个摄像头去完成二维码识别呢?

回帖(1)

张红梅

2021-9-6 17:49:03
现在在做一个硬件项目,主要是用“高端的”51单片机连一个摄像头完成二维码识别的问题。
一、解决方案:
现在的需求是:给出二维码(可能存在图像偏移、旋转等问题),输出一个解码的字符串
解决方案目前是这样设计的:

这里有几个点:
1. 选什么摄像头
2. 摄像头怎么连开发板
3. 开发版上面怎么编程?怎么获取io信息
4. 怎么输出
当然,本项目最关键的还是其中的识别过程。
一、选什么摄像头
基本上所有的OV系列的摄像头都差不多,选择了一款比较常规的ov7670摄像头
二、摄像头怎么连接开发板
这个目前打算用杜邦线解决
三、开发版上面怎么编程?怎么获取io信息
这也是本项目的难点,因为一直是做深度学习算法,对于硬件开发根本不会。本节也记录学习历程。
首先,了解一下51单片机的原理:
51单片机是由存储器、控制器、io组成的微型计算机。
所有的引脚可以分为电源、时钟、控制、IO这几种,51单片机属于8位单片机。
单片机基础补充:
(1)电平特性:高电平(5V)低电平(0V)
(2)进制
(3)逻辑运算:0 1
与或非、异或
串口与并口:串口就是速度快的一种直线型传输,并口是指8根通道齐发由于数据间会存在干扰,所以速度会慢。
(4)编程语言
基本上使用C与汇编
上拉电阻?
就是一种用来控制空电极的东西?这个还没弄懂
晶振
通过晶体振动提供频率信号
二、详细分析:
第一个问题就是资源占用问题,图像从摄像头弄到板子上需要的是数据空间,对图像数据进行处理,也需要计算空间,那么这些东西究竟需要多少资源呢?
除了以上的问题,还有问题就在于,哪些是在rom上进行,哪些是在ram上进行。
我们先弄清楚哪些在rom上进行,哪些是ram上进行的。
ram(数据存储器)、rom(程序存储器)--------------------确定
那么我们的程序放在rom里。
(插一句,我们的rom和ram分别有多大呢?
说明文档说了T5L芯片是片内64KB的RAM,ROM是32KB)
好,现在能确定的是代码的编码需要存在ROM里面,运算可以在MDU(数学运算单元)中进行。那么现在问题就在于每一帧的图片以及如何选取计算的量应该就是在RAM中进行了。无疑问题就在于我们的图片输出多大。接下来就是ov7060摄像头的研究分析了。
ov7060摄像头
YUV4:2:2
这个是个啥?就是输出的码流,她每一次都会输出Y,每隔一次输出UV,对于一个这样的[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3],输出是这样的Y0 U0 Y1 V1 Y2 U2 Y3 V3
但是我们需要知道他输出的分辨率,图像的大小,与这个无关,继续看。
他反复提到一个感光阵列(640X480)这个长得很像像素,那么感光阵列是个啥?了解完毕,就是像素。
那么我们又能更新一条有用信息:摄像头的输出是30万像素的。
那么对于空间资源的最后一个问题就是,需要多少RAM来处理这30万像素?

如图所示,图片是进到这个数据寄存器里面,就是那额256KB。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分