现在在做一个硬件项目,主要是用“高端的”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与汇编

上拉电阻?

就是一种用来控制空电极的东西?这个还没弄懂

晶振

通过晶体振动提供频率信号

回到主题,怎么在单片机上编程呢?这里使用的是keil,安装教程如下:https://blog.csdn.net/qq_41639829/article/details/81813992

二、详细分析:

第一个问题就是资源占用问题,图像从摄像头弄到板子上需要的是数据空间,对图像数据进行处理,也需要计算空间,那么这些东西究竟需要多少资源呢?

除了以上的问题,还有问题就在于,哪些是在rom上进行,哪些是在ram上进行。

我们先弄清楚哪些在rom上进行,哪些是ram上进行的。

ram(数据存储器)、rom(程序存储器)--------------------确定

那么我们的程序放在rom里。

(插一句,我们的rom和ram分别有多大呢?

说明文档说了T5L芯片是片内64KB的RAM,ROM是32KB)

好,现在能确定的是代码的编码需要存在ROM里面,运算可以在MDU(数学运算单元)中进行。那么现在问题就在于每一帧的图片以及如何选取计算的量应该就是在RAM中进行了。无疑问题就在于我们的图片输出多大。接下来就是ov7060摄像头的研究分析了。

ov7060摄像头

YUV4:2:2

这个是个啥?就是输出的码流,她每一次都会输出Y,每隔一次输出U\V,对于一个这样的[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

51单片机二维码识别相关推荐

  1. 基于STC89C52RC芯片设计的一款酒店服务机器人(包含货物检测、二维码识别功能)

    目录 一:硬件设备 1:主控 2:扫码模块 3:货物检测 4:循迹模块 5:电机驱动模块 6:电源 二:软件代码 三:循迹环PID 四:成品视频 一:硬件设备 1:主控 所选取主控芯片为STC89C5 ...

  2. OpenCV(项目)二维码识别(二维码、条形码)

    目录 过程 1.获取图片中的二维码信息 2.获取视频中的二维码信息 3.检测出二维码框 4.显示数据 5.添加数据,判断二维码是否授权 5-1:.添加数据 5-2.读取文件信息,放入数组 5-3.判断 ...

  3. 第47章 QR-Decoder-OV5640二维码识别—零死角玩转STM32-F429系列

    第47章     QR-Decoder-OV5640二维码识别 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.y ...

  4. 第47章 QR-Decoder-OV5640二维码识别—零死角玩转STM32-F429系列

    第47章     QR-Decoder-OV5640二维码识别 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.y ...

  5. 前端html实现二维码识别

    一.html代码 <!DOCTYPE html> <html><head><meta charset="utf-8"><met ...

  6. 【OpenCV】二维码识别

    文章目录 前言 一.OpenCV自带二维码识别功能 二.使用pyzbar识别 三.串口发送数据 四.播放音乐 总结 前言 最终实现视频动态识别二维码. 一.OpenCV自带二维码识别功能 import ...

  7. 基于MATLAB的条码二维码识别系统

    基于MATLAB的条码二维码识别系统 课题介绍 本设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB实现.其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大 ...

  8. android 图片二维码识别和保存(二)

    续上一篇,开发图片二维码识别功能后,我们对功能进行性能分析内存占用显著提高了,不使用该功能内存占用大约是147M,使用这个功能多次以后,高达203M. 因此对功能进行研究,发现每次生成的图片没有即时的 ...

  9. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码1 1.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.1 1.3. 二维码的样例:2 1.4. 定位图案2 1. ...

  10. 基于机器视觉的Data Matrix二维码识别

    基于机器视觉的Data Matrix二维码识别 二维码识别,这个在视觉应用中占有很重要的比例,各种各样的二维码都有可能需要识别.常见的QR码.Data Matrix码.本方案是识别Data Matri ...

最新文章

  1. seajs学习心得和新产品福利
  2. R语言应用实战系列(六)-基于R的人工神经网络ANN算法和KNN算法(k-Nearest Neighbour)
  3. C++ 如何判断所调用的重载函数
  4. 浏览器兼容--条件样式,选择符前缀,样式属性前缀(转)
  5. Swift5.1 语言参考(十) 语法汇总
  6. redis spring 切面缓存_今日份学习: Spring中使用AOP并实现redis缓存?
  7. 学术大数据在企业专家对接中的应用
  8. php星期和时间获取
  9. sql server中select语句需要申请的锁
  10. Java多线程学习总结(3)——Java线程的6种状态及切换
  11. Spring Boot 集成 Redis 实现缓存机制
  12. js 跨域访问 找了好长时间
  13. 线程同步---互斥锁和读写锁
  14. 5G牌照今日发放!!!
  15. bash shell学习-实践 (自己实现一些小工具)
  16. 低代码搭建医疗企业数字化CRM案例分析
  17. python 新闻摘要_每日新闻摘要:随着机器取代工人,黄金一日即将推出
  18. Qt开发QtQuick程序在编译时报错:0x00007FFE4E60BB6B (ig9icd64.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFF
  19. 听说有人谋求稳定的工作?
  20. 国内首部HTML5技术之拉米牌游戏项目实战(涉及智能AI+HTML5图形+HTML5事件模型+网络通讯)...

热门文章

  1. Java 视频转码(转为MPEG-4格式)
  2. 安卓中如何获取MD5码
  3. 关于内存溢出遇到的两种情况
  4. FFmpeg常用错误码整理
  5. 北京大学王悦博士给学生的话
  6. html 下拉框 value值,HTML Select value用法及代码示例
  7. 新年礼物送什么好?平价实用的蓝牙耳机推荐
  8. [数据库]-- mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间
  9. mysql 实现over函数_mysql 中如何实现over 方法(开窗函数)
  10. 大闹天宫 页游 架设教程 自玩 单机