0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

雅特力AT32 MCU基于Zbar解码库的QR Decode应用程序

雅特力 AT32 MCU 2023-10-10 09:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。二维码由于自身设计特点,可包含更多的信息量,编码信息范围更广,并且由于二维码具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、以及处理图形旋转变化点,二维码译码更加准确,其误码率为千万分之一。下图为QR二维码构造框图。图1. QR码符号的结构671212c2-670f-11ee-9788-92fbcf53809c.png1) 位置探测图形、位置探测图形分隔符:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;这些黑白间隔的矩形块很容易进行图像处理的检测。2) 定位图形:这些小的黑白相间的格子就好像坐标轴,在二维码上定义了网格。3) 格式信息:表示该二维码的纠错级别,分为L、M、Q、H。4) 数据区域:使用黑白的二进制网格编码内容。8个格子可以编码一个字节。5) 版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本每边增加4个模块。6) 纠错码字:用于修正二维码损坏带来的错误。

二维码解码流程

了解了QR二维码的构造,下面我们来了解解码流程,QR二维码的解码流程如下图2所示。图2. QR码译码步骤67276b22-670f-11ee-9788-92fbcf53809c.png1) 定位并获取符号图像。深色与浅色模块识别为“0”与“1”的阵列。2) 识读格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别纠错等级与掩模图形参考)。3) 识读版本信息,确定符号的版本。4) 用掩模图形参考,从格式信息中得出对编码区的位图进行异或处理消除掩模。5) 根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。6) 用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。7) 根据模式指示符和字符计数指示符将数据码字划分成多个部分。8) 最后,按照使用的模式译码得出数据字符并输出结果。二维码的解码流程具体实现的步骤和方法是比较复杂,涉及到了QR二维码的标准规则及相对应的算法,知识点很多,网络上相关资料充足,这里就不再赘述。

QR decode快速使用方法

硬件资源

1) USB2) LCD 93413) Sensor OV5640 or OV26404) Buzzer(PE3)5) USER Key6) AT32F435_DVP_EVB_V1.0实验板图3. 硬件资源图67443900-670f-11ee-9788-92fbcf53809c.png

硬件连接及数据流

本例程中主要使用到的外设包括:DVP、I2C、XMC、DMA和USB,其中DVP用于摄像头数据接收,I2C用于初始化摄像头,XMC用于发送LCD显示数据至LCD设备,DMA用于DVP至buffer和buffer至XMC的数据传输,USB用于将数据发送至PC端。摄像头数据会以Y8的格式用DVP进行采集,通过DMA传输至内存buffer,此buffer会用于LCD显示和Zbar解码。在LCD显示部分,由于LCD无法直接显示Y8格式数据,所以首先会将Y8格式转换为RGB格式,然后通过DMA将数据传输到XMC用于LCD显示摄像头画面;在Zbar解码部分,解码成功后会将解析结果通过USB传输至PC端,并通过XMC将结果显示到LCD上。硬件连接以及数据流如下图所示:图4. 硬件连接及数据流图676d6e56-670f-11ee-9788-92fbcf53809c.png

QR decode demo使用

由于该demo运行占用了256KB的SRAM,而AT32F435/437的SRAM大小是可配置的(SRAM默认大小为384KB),为了方便使用,demo已经在启动文件中将SRAM修改为了默认大小,亦可自行在extend_sram()函数中进行SRAM大小的配置。图5. 修改SRAM大小67756f7a-670f-11ee-9788-92fbcf53809c.png1) 连接USB线到PC,通过上位机可以识别到该设备:Artery Virtual COM Port,注意需要安装USB驱动:Artery_VirtualCOM_DriverInstall.exe。2) 根据LCD显示信息,查看摄像头初始化是否成功,demo提供的初始化代码可自动识别OV5640或OV2640两种摄像头,若想更换其他摄像头请自行修改摄像头初始化代码。3) 初始化成功后,将摄像头对准二维码,LCD显示当前抓取的摄像头图像,此时芯片一直在通过Zbar进行二维码解码。4) 若芯片解析到数据,蜂鸣器会进行提示并将解析次数及解析结果显示在LCD底部,如图6所示。同时如果连接了USB至PC端并识别到了Artery Virtual COM Port,还会将解析到的数据通过USB传输到PC端,如图7所示。当解析到新的图码数据时会将解析次数清零,并更新解析结果。5) 若芯片未解析到图码数据,LCD将无结果显示,或保留上次解析的结果及次数。6) 蜂鸣器提示音可以通过USER Key进行开关。7) 可通过以下宏定义来对摄像头输出数据大小进行设置,为了兼顾成像效果和资源占用,建议输出大小设置为160至240(pixel)之间:#define CAMERA_SIZE 2408) 可通过以下宏定义来选择是否开启LCD显示:#define LCD_DISPLAY9) 应用效果展示视频链接如下:https://b23.tv/Y4nhMNR图6. LCD显示解析数据67905632-670f-11ee-9788-92fbcf53809c.png图7. USB传到上位机数据67a6af4a-670f-11ee-9788-92fbcf53809c.png

关于雅特力雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器(MCU)创新趋势的芯片设计公司,专注于ARM Cortex-M4/M0+的32位微控制器研发与创新,全系列采用55nm先进工艺及ARM Cortex-M4高效能或M0+低功耗内核,缔造M4业界最高主频288MHz运算效能,并支持工业级别芯片工作温度范围(-40°~105°)。雅特力目前已累积相当多元的终端产品成功案例:如微型打印机、扫地机、光流无人机、热成像仪、激光雷达、工业缝纫机、伺服驱控、电竞周边市场、断路器、ADAS、T-BOX、数字电源、电动工具等终端设备应用,广泛地覆盖5G物联网、消费、商务及工控等领域。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19160

    浏览量

    404334
  • 雅特力
    +关注

    关注

    1

    文章

    197

    浏览量

    9486
  • AT32
    +关注

    关注

    1

    文章

    121

    浏览量

    3232
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AT-Link Commander,拓展自动化开发调试“芯”体验

    与脚本化控制,开发者可通过PC端USB接口连接AT-Link,实现对全系列MCU的调试与分析,简化开发流程。AT-LinkCommander是一款基于命令行的应
    的头像 发表于 04-29 11:35 231次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT-Link Commander,拓展自动化开发调试“芯”体验

    TinyUSB加持!AT32 MCU助力嵌入式系统实现高效USB通信

    随着嵌入式应用日益复杂,USB已成为设备通信与数据传输的核心接口之一。为了更好地满足开发者对高效、灵活USB功能的需求,AT32MCU官方现已支持TinyUSB,为广大工程师带来
    的头像 发表于 04-29 11:35 231次阅读
    TinyUSB加持!<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>助力嵌入式系统实现高效USB通信

    科技通过ISO 26262汽车功能安全ASIL D认证

    近日,科技正式通过ISO26262汽车功能安全ASILD流程认证,并由国际公认的测试、检验和认证机构SGS颁发认证证书。此次认证标志着
    的头像 发表于 02-06 18:33 1023次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技通过ISO 26262汽车功能安全ASIL D认证

    工业级MCUAT32F455RCT7核心技术解析

    AT32F455RCT7基于192MHz Cortex-M4F内核,集成丰富通信接口与硬件加密单元,具备-40℃~105℃工业级工作温度范围,为工业控制、电机驱动及物联网网关提供高性能、高可靠性的单芯片解决方案。
    的头像 发表于 01-29 09:53 851次阅读
    工业级<b class='flag-5'>MCU</b><b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F455RCT7核心技术解析

    国产MCU替代优选!AT32系列凭高性能+高兼容,横扫工控/消费/AIoT多场景

    在国产化替代加速背景下,AT32系列MCU成工程师优选。该系列基于ARM Cortex-M4/M0+内核,具备高主频、丰富外设及工业级
    的头像 发表于 01-07 17:15 2016次阅读

    力推出AT32 Edge AI Sensor开发平台,加速AI终端生态布局

    延迟、提升隐私保护并减少能耗。特别适用于手势操控、动作识别及设备监测等对反应速度高度敏感的场景。科技凭借AT32MCU的高效能、丰富外设与完善开发生态,并结
    的头像 发表于 12-12 18:32 755次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b>力推出<b class='flag-5'>AT32</b> Edge AI Sensor开发平台,加速AI终端生态布局

    AT32 MCU推动低空经济发展

    AT32系列MCU凭借288MHz主频与高精度外设,为无人机飞控、电调及云台提供核心算
    的头像 发表于 12-04 09:53 1902次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>推动低空经济发展

    喜讯!科技荣获“电机创新设计先锋企业”

    旨,覆盖电机全产业链。凭借在电机控制领域的持续创新与卓越表现,科技荣获“电机创新设计先锋企业”殊荣。在电机控制领域,传统MCU普遍存在主频不足、存储受限、算法支持
    的头像 发表于 11-04 11:51 793次阅读
    喜讯!<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技荣获“电机创新设计先锋企业”

    活动预告|与您相约2025电机控制先进技术研讨会

    11月6日,由电子发烧友主办的2025电机控制先进技术研讨会将在深圳益田威斯汀酒店召开。本次研讨会现场,科技将展示基于AT32MCU的多款高效电机应用方案,涵盖机器人、无人机、出
    的头像 发表于 11-04 11:51 2852次阅读
    活动预告|<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>与您相约2025电机控制先进技术研讨会

    AT32F421吊扇控制芯助力绿色节能

    AT32F421 MCU 主打吊扇控制器,凭无感 FOC、高集成、多保护优势,满足工程师降本提效、用户舒适节能需求,适配智能家居与能效趋势。
    的头像 发表于 10-22 09:45 597次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F421吊扇控制芯助力绿色节能

    AT32F421定义高速吹风机控制新标准​

    AT32F421 MCU为高速吹风机提供方案,支持10000-120000rpm转速,采用无感FOC控制,低噪高效且有过流保护,解决传统吹风机痛点,推动行业技术升级。
    的头像 发表于 09-24 09:35 946次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F421定义高速吹风机控制新标准​

    MCU智能监测系统为电钻提供全链路保护

    AT32M412EBP7以240 MHz Cortex-M4F硬核驱动无刷FOC,65 N·m零速启停,4 MSPS ADC精检电流,-40~105 ℃宽温运行,动态功耗仅80 μA/MHz,为工业与家用智能电钻提供极致算
    的头像 发表于 09-10 09:25 1332次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>MCU</b>智能监测系统为电钻提供全链路保护

    MCU -40℃~105℃宽温认证保障两轮车全气候运行​

    AT32F421G4U7 MCU基于Cortex-M4内核,120MHz主频,集成16KB Flash与8KB SRAM,支持FOC矢量控制与2MSPS ADC采样,显著提升电动
    的头像 发表于 08-29 09:55 2523次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b><b class='flag-5'>MCU</b> -40℃~105℃宽温认证保障两轮车全气候运行​

    ​​AT32F435:240MHz多轴伺服控制成本最优解​

    AT32系列以“纳米级精度、微秒级响应、全栈式生态”重构伺服控制系统边界,其算架构、实时控制链及安全机制精准匹配工业自动化高可靠性需
    的头像 发表于 07-25 10:35 1088次阅读
    ​​<b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32F435:240MHz多轴伺服控制成本最优解​

    科技精彩亮相2025 MCU及嵌入式技术论坛

    7月24日,由AspenCore主办的2025MCU及嵌入式技术论坛,在深圳科兴科学园圆满落幕。在此次论坛上展示了覆盖电机控制、智能家电、AIoT等众多场景的创新产品与应用方案。
    的头像 发表于 07-25 08:14 1859次阅读
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>科技精彩亮相2025 <b class='flag-5'>MCU</b>及嵌入式技术论坛