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

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

3天内不再提示

【EsDA应用】如何5分钟快速实现指纹采集与检测

AGk5_ZLG_zhiyua 来源:未知 2023-05-11 20:16 次阅读
如今,指纹信息的采集已成为产品安全系统中验证身份的重要手段之一。本文主要介绍如何通过EsDA开发套件,快速实现指纹信息的采集与验证。 d0aaf5c8-e672-11ed-ab56-dac502259ad0.jpg  简介指纹是人体的一项具有唯一特征性的信息之一,是可以识别身份的可靠标识之一,因此指纹信息的采集和验证成了很多嵌入式产品实现安防功能的基础需求。在嵌入式开发中,我们时不时便要采集指纹信息进行记入、保存、以及验证,从而为产品登入认证、安全检测、身份验证等功能,提供信息依据与支撑。本文主要讲述如何在EsDA技术支持下,使用AWFlow Designer中的指纹节点(zn101)与按键节点(button)以及按键处理节点(button_expand),实现对指纹信息进行采集与检测验证。信号处理过程,如下:d0b0bb70-e672-11ed-ab56-dac502259ad0.jpg  d0c4c5d4-e672-11ed-ab56-dac502259ad0.jpg  入门基础本章内容,除了讲解如何使用指纹节点以外,还需使用到基础的button节点、button_expand节点、fscript节点、以及log节点。同时,还需具备一定基础的AWFlow Designer开发经验。若刚开始接触,可阅读以下文章,进行基础知识的学习。
  • EsDAMPC-ZC1入门(一)——软件安装

  • EsDAMPC-ZC1入门(二)——LED控制

  • 基于EsDAMPC-ZC1快速实现——按键高级应用

d0c4c5d4-e672-11ed-ab56-dac502259ad0.jpg  硬件前提

1. MPC-ZC1开发套件(其中物联网卡与4G天线,本章未使用)

d0cfa24c-e672-11ed-ab56-dac502259ad0.png2. 基础按键模块(使用普通按键模块即可,未必要与本章相同)

d0e4e1fc-e672-11ed-ab56-dac502259ad0.png

3.zn101指纹模块(FPM383C型号)

d0ed24a2-e672-11ed-ab56-dac502259ad0.png

4.USB转TTL模块(使用普通模块即可,未必要与本章相同)d111889c-e672-11ed-ab56-dac502259ad0.png5.硬件连接如下图所示

d1272c2e-e672-11ed-ab56-dac502259ad0.jpg

d0c4c5d4-e672-11ed-ab56-dac502259ad0.jpg  本章流图解析

具体功能流图如下:

d137f5ea-e672-11ed-ab56-dac502259ad0.png

本流图分别由一个button节点、5个button_expand节点(显示名称分别为:单击、双击、三击、四击、五击)、6个fscript节点(显示名称分别为:录入指纹、检测指纹、删除第一个指纹、清空指纹数据库、获取指纹模板、结果处理)、一个zn101节点、一个log节点组成。其中button_expand节点通过对button节点所产生的信号信息进行处理判断,识别是单击还是多击操作,进而触发对应fscript节点向zn101节点发送对应的命令。zn101节点根据对应指令,执行对应操作,并向log节点输出指令操作结果。

d0c4c5d4-e672-11ed-ab56-dac502259ad0.jpg  节点解析

1. button节点

d146f0b8-e672-11ed-ab56-dac502259ad0.png

此处我们选用引脚P4.6,触发方式为下降沿触发。

2. button_expand节点

本章中,我们使用button_expand节点来处理从button节点中传递而出的信号,从而做到识别单击、双击、三击、四击、五击等操作。各button_expand节点配置如下。2.1 单击

d15aca8e-e672-11ed-ab56-dac502259ad0.png

此处配置,我们统一使用continuous mode(trigger)操作模式与动作间隔为1000ms,改变按键次数配置分别为1,即相邻两次按下间隔在1000ms以内时,重新开始计数,超时则停止,当计数值达分别达到1时,触发后续节点。

该节点的具体使用规则以及模式讲解,请参考基于 EsDA MPC-ZC1 快速实现——按键高级应用2.2双击d171126c-e672-11ed-ab56-dac502259ad0.png此处配置,我们统一使用continuous mode(trigger)操作模式与动作间隔为1000ms,改变按键次数配置分别为2,即相邻两次按下间隔在1000ms以内时,重新开始计数,超时则停止,当计数值达分别达到2时,触发后续节点。

该节点的具体使用规则以及模式讲解,请参考基于EsDA MPC-ZC1 快速实现——按键高级应用

2.3三击

d1842d84-e672-11ed-ab56-dac502259ad0.png

此处配置,我们统一使用continuous mode(trigger)操作模式与动作间隔为1000ms,改变按键次数配置分别为3,即相邻两次按下间隔在1000ms以内时,重新开始计数,超时则停止,当计数值达分别达到3时,触发后续节点。

该节点的具体使用规则以及模式讲解,请参考基于EsDA MPC-ZC1 快速实现——按键高级应用

2.4四击

d1949fc0-e672-11ed-ab56-dac502259ad0.png

此处配置,我们统一使用continuous mode(trigger)操作模式与动作间隔为1000ms,改变按键次数配置分别为4,即相邻两次按下间隔在1000ms以内时,重新开始计数,超时则停止,当计数值达分别达到4时,触发后续节点。

该节点的具体使用规则以及模式讲解,请参考基于EsDA MPC-ZC1 快速实现——按键高级应用

2.5五击

d1a5a680-e672-11ed-ab56-dac502259ad0.png

此处配置,我们统一使用continuous mode(trigger)操作模式与动作间隔为1000ms,改变按键次数配置分别为5,即相邻两次按下间隔在1000ms以内时,重新开始计数,超时则停止,当计数值达分别达到5时,触发后续节点。

该节点的具体使用规则以及模式讲解,请参考基于EsDA MPC-ZC1 快速实现——按键高级应用

3. zn101节点

该节点为指纹模块节点,可根据上一个节点所发送的命令,进行相应的数据操作,并向下一个节点返回数据应答。其使用串口通信协议,实际数值用户可根据实际修改,此处我们使用MPC-ZC1板上的串口二。其余波特率、字节数、奇偶检验位、停止位、流控位,均与硬件设备配置参数有关,此处设置为576000、8、N、1、N。Awaken_Gpio为gpio唤醒模式配置引脚,但此参数暂不生效。接收命令与反馈如下。

3.1 录入指纹命令3.1.1 输入d1babb06-e672-11ed-ab56-dac502259ad0.png3.1.2输出d1d436f8-e672-11ed-ab56-dac502259ad0.png

cmd为命令参数,值为"add",如果添加成功,节点输出result参数值为"ok",以及存储位置参数stormb_id值为无符号16进制数值,否则输出result参数值为"error"。如果存储数量已达最大可存储数,则输出result参数值为"full"。若发送命令后,无手指按压进行指纹采集,则节点不触发输出。

其中,output、msg等对象为的实际意义可参照fscript节点的帮助信息,如下:
  • msg. 访问当前消息对象的属性。
  • flow. 访问其它节点的属性。
  • output. 访问输出的对象的属性。
  • global. 访问全局对象的属性。
  • app_conf. 访问配置对象的属性(可持久保存)。
  • 如果设置了output的属性,则将output对象分发给后继节点,否则将msg对象分发给后继节点。

3.2 检测指纹

3.2.1 输入d1f02ca0-e672-11ed-ab56-dac502259ad0.png3.2.2 输出d1f699f0-e672-11ed-ab56-dac502259ad0.png同理,命令参数值为"check",如果检测通过,则输出result参数值为"ok",以及模板页面ID位置参数pageid和匹配分数参数score,两参数数值均为无符号16进制数值,否则输出result参数值为"error"。若发送命令后,无手指按压进行指纹采集,则节点不触发输出。

3.3删除对应位置与数量的指纹

3.3.1 输入d20dadd4-e672-11ed-ab56-dac502259ad0.png3.3.2 输出d224a732-e672-11ed-ab56-dac502259ad0.png

同理,命令参数为"delete",配置附加参数为页面ID参数pageid与删除数量num,两参数数值均为无符号16进制数值,否则输出result参数值为"error"。

3.4清空指纹数据库

3.4.1 输入d23bbba2-e672-11ed-ab56-dac502259ad0.png3.4.2 输出d2450b76-e672-11ed-ab56-dac502259ad0.png同理,命令参数为"delete_all",若删除成功,则输出result参数值为"ok",否则输出result参数值为"error"。

3.5获取有效模板数

3.5.1 输入d24eadac-e672-11ed-ab56-dac502259ad0.png3.5.2 输出d26103e4-e672-11ed-ab56-dac502259ad0.png

同理,命令参数为"get_num",若获取成功,则输出result参数值为"ok",模板数量参数值num为无符号16进制数值,否则输出result参数值为"error"。

4. fscript节点

该节点主要用于对zn101(指纹模块)节点进行命令下发与结果处理。若对fscript脚本语法不了解,可参考FScript脚本引擎语法规则。下图为向zn101节点发送录入指纹命令的代码段语句,以及所填配置,即显示名称为录入指纹(1)的fscript节点的配置信息。

录入指纹:

d276a4ba-e672-11ed-ab56-dac502259ad0.png

同理,亦可配置其余fscript节点,分别向zn101节点输入不同的指令。具体命令代码段汇总如下:
//显示名称为 录入指纹(1) 的fscript节点代码段
output.cmd = "add";


//显示名称为 检测指纹(2) 的fscript节点代码段
output.cmd = "check";


//显示名称为 删除第一个指纹(3) 的fscript节点代码段
output.cmd = "delete";
output.pageid = 0;
output.num = 1;


//显示名称为 清空指纹数据库(4) 的fscript节点代码段
output.cmd = "delete_all";


//显示名称为 获取指纹模板数量(5) 的fscript节点代码段
output.cmd = "get_num";
其中,output、msg等对象为的实际意义可参照fscript节点的帮助信息,如下:
  • msg. 访问当前消息对象的属性。
  • flow. 访问其它节点的属性。
  • output. 访问输出的对象的属性。
  • global. 访问全局对象的属性。
  • app_conf. 访问配置对象的属性(可持久保存)。
  • 如果设置了output的属性,则将output对象分发给后继节点,否则将msg对象分发给后继节点。

5. 结果处理(fscript节点)

该脚本文件主要实现,对zn101节点所输出的结果数据进行处理,同时向log节点发送对应的打印变量,同时串口输出对应于不同命令的参数值。具体实现如下。

if(msg.cmd == "add"){
    if(msg.result == "ok"){
        print(msg.stormb_id);
        output.payload = "get_ok";
    } else if(msg.result == "error"){
        output.payload = "get_error";
    } else if(msg.result == "full"){
        output.payload = "get_full";
    }
}else if(msg.cmd == "check"){
    if(msg.result == "ok"){
        print(msg.pageid);
        print(msg.score);
        output.payload = check_ok;
    }else if(msg.result == "error"){
        output.payload = "check_error";
    }
}else if(msg.cmd == "delete"){  
    if(msg.result == "ok"){
        output.payload = "clean_one_ok";
    }else if(msg.result == "error"){
        output.payload = "clean_one_error";
    }
}else if(msg.cmd == "delete_all"){   
    if(msg.result == "ok"){
        output.payload = "clean_all_ok";
    }else if(msg.result == "error"){
        output.payload = "clean_all_error";
    }
}else if(msg.cmd == "get_num"){
    if(msg.result == "ok"){
        print(msg.num);
        output.payload = "get_num_ok";
    }else if(msg.result == "error"){
        output.payload = "get_num_error";
    }
}
6. log节点d2827754-e672-11ed-ab56-dac502259ad0.png该节点主要用于将上一个节点所传递数据展示于调试窗口或打印于串口。

d0c4c5d4-e672-11ed-ab56-dac502259ad0.jpg  效果展示

注意:Debug串口窗口配置为波特率921600、数据为8、停止位1、无校验与流控位。具体COM口根据实际情况而定,若用户不知道串口是多少,可打开设备管理器,重新插拔电源,查看COM口新增情况来确定。

1. 按一下按钮,并将手指按在指纹模块上,录取指纹成功,串口窗口显示如下:

d29e495c-e672-11ed-ab56-dac502259ad0.png2. 连续按两下按钮,同一手指按在指纹模块上,验证通过,串口窗口显示如下:

d2a8ce86-e672-11ed-ab56-dac502259ad0.png

3. 连续按三下按钮,删除第一个指纹成功,串口窗口显示如下:

d2b81a94-e672-11ed-ab56-dac502259ad0.png

4. 再次重复操作二,此时验证未通过,串口窗口显示如下:d2c6a064-e672-11ed-ab56-dac502259ad0.png5. 连续多次重复操作一和操作二,录入与验证指纹均通过,串口窗口显示同上。d2d57986-e672-11ed-ab56-dac502259ad0.png6. 连续按下五次按钮,获取指纹模板数成功,串口窗口显示数据如下:

d2e362da-e672-11ed-ab56-dac502259ad0.png

7. 连续按四下按钮,清空指纹空成功,串口窗口显示如下:d2f79110-e672-11ed-ab56-dac502259ad0.png8. 再次重复操作二,此时验证未通过,串口窗口显示与操作二相同。d3068cc4-e672-11ed-ab56-dac502259ad0.png  d0c4c5d4-e672-11ed-ab56-dac502259ad0.jpg技术交流长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。d316b57c-e672-11ed-ab56-dac502259ad0.png  

【版权声明】本文为ZLG开发者社区用户原创内容,未经授权不得转载。欢迎更多用户到社区交流互动、创作博文,一经采用,可获得百元京东E卡。

d31f7360-e672-11ed-ab56-dac502259ad0.png

d3288298-e672-11ed-ab56-dac502259ad0.jpg

d32fdcb4-e672-11ed-ab56-dac502259ad0.jpg


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

    关注

    13

    文章

    406

    浏览量

    31301

原文标题:【EsDA应用】如何5分钟快速实现指纹采集与检测

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ST NPI 新上架产品【ESDA5WY】Datasheet

    ESDAxxWY系列:汽车应用中的ESD保护。在确保汽车应用安全性的同时缩减PCB尺寸对于需要稳健保护功能的系统,选择ESDAxxWY可确保实现高可靠性和高质量。这类器件用于防止敏感电
    发表于 10-21 10:46 0次下载

    国产人工智能教学实验箱操作案例分享:5-27 指纹识别实验

    的设计实现:LCD显示界面以及与用户的交互; (3)编辑控制代码; (4)编译程序; (5)运行程序。 Qt程序 指纹识别的Qt程序主要包括GUI的设计实现
    发表于 10-15 16:43

    EsDA,一站式嵌入式软件

    EsDA是一套面向工业智能物联领域的嵌入式系统设计自动化工具集,包含实时操作系统AWorksLP、低代码开发平台AWStudio、资源管理平台AXPI、跨平台GUI引擎AWTK和云服务平台ZWS
    的头像 发表于 09-15 08:10 280次阅读
    <b class='flag-5'>EsDA</b>,一站式嵌入式软件

    RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5检测-迅为电子

    RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5检测-迅为电子
    的头像 发表于 08-23 14:58 691次阅读
    RK3588 技术分享 | 在Android系统中使用NPU<b class='flag-5'>实现</b>Yolov<b class='flag-5'>5</b><b class='flag-5'>分</b>类<b class='flag-5'>检测</b>-迅为电子

    使用AD620和IOS124采集电流,工作约1分钟后幅值开始下降,为什么?

    使用AD620和IOS124采集电流,输入电流范围+-50mA,采样电阻100欧,增益为2倍,+-15V供电。 现象为:输入50mA电流,AD620刚上电输出正常9.95V,工作约1分钟后幅值开始下降,稳定后为8.5V左右, 10mA,20mA现象类似,请教下什么原因?
    发表于 08-16 07:06

    艾迪沃德指纹采集模块介绍

    指纹采集模块是一款高性能的嵌入式指纹模块,以专用高性能 ARM-Cortex 处理器为核心, 具备体积小、功耗低、采集快速、干湿手指适应性
    的头像 发表于 06-20 11:02 504次阅读
    艾迪沃德<b class='flag-5'>指纹</b><b class='flag-5'>采集</b>模块介绍

    国轩高科发布G刻电池,可实现充电9.8分钟补能80%

    近日,国轩高科在第13届科技大会上发布超快充产品G刻电池,这款电池采用了先进的5C超级快充技术,可实现充电9.8分钟补能80%,充电一刻钟补能90%,能够在极短的时间内为电动汽车提供高效的能量补充。
    的头像 发表于 05-19 10:36 1092次阅读

    ESD管 AZ5825-01F型号ESDA05CPX参数对比

    ESD管 AZ5825-01F型号ESDA05CPX参数对比
    的头像 发表于 05-11 08:03 864次阅读
    <b class='flag-5'>ESD</b>管 AZ5825-01F型号<b class='flag-5'>ESDA</b>05CPX参数对比

    岚图发布“琥珀电池”,续航达900km,10分钟充电即可满足450km续航 

    琥珀电池基于800V平台研发,具备5C超快速充电性能,能实现10分钟内为车辆补充450公里续航里程。此外,该电池在-10℃至40℃的宽泛温度范围内均能正常工作。
    的头像 发表于 04-24 17:38 1373次阅读

    谷歌为iOS用户提供&quot;快速删除&quot;功能,快速清理15分钟浏览记录

    当前,iOS版Chrome浏览器提供“过去1小时”、“过去24小时”、“过去7天”、“过去4周”及“无限制”等多种清除浏览数据选项,现已细化至“15分钟”。
    的头像 发表于 04-23 14:10 6290次阅读

    指纹挂锁方案——采用ACH512或ACM32FP4指纹芯片和88*112传感器,指纹识别速度快,BOM成本低

    :ACH512或ACM32FP4• 传感器分辨率:88*112点阵(推荐)• 指纹识别速度:平均0.8秒• 指纹库大小:30枚指纹• 待机电流(手指检测):10uA• 工作电流(
    发表于 03-12 11:46

    理想5C超充桩启用,12分钟可充电500公里

    据悉,目前每个超充站配有1-2根理想5C桩和2-7根理想2C桩供顾客选择。拥有理想MEGA车辆的消费者,若使用理想5C桩,只需短短12分钟便可达到充电500公里的效果;而如果选择2C桩,仅需25
    的头像 发表于 03-01 11:19 1176次阅读

    3分钟快速实现串口PLC远程下载程序操作说明

    3分钟快速实现串口PLC远程下载程序操作说明 搜索蓝蜂物联网官网,即可免费领取样机使用!!先到先得!!! 一. 适用产品型号 其余型号网关此功能正在开发中,敬请期待。 二. 远程下载功能使用流程
    的头像 发表于 02-26 15:38 881次阅读
    3<b class='flag-5'>分钟</b><b class='flag-5'>快速</b><b class='flag-5'>实现</b>串口PLC远程下载程序操作说明

    如何利用AWFlow快速使用无线模组ZM602

    在物联网快速发展的今天,无线模组成为连接各种设备于互联网的关键组件。本文旨在介绍如何通过EsDA开发套件快速使用本公司自研的ZM602无线模组的内容。项目简介无线模组可以使设备通过无线网络
    的头像 发表于 01-26 08:25 1062次阅读
    如何利用AWFlow<b class='flag-5'>快速</b>使用无线模组ZM602

    如何基于EsDA开发套件快速使用射频读卡器模块

    无线射频读写卡技术在门禁系统,电子支付领域和物联网等领域中具有越来越广泛的应用。本文将基于EsDA开发套件讲解如何快速上手并开发射频读卡器模块的相关业务,为开发者大大缩短了学习和开发时间成本。项目
    的头像 发表于 01-11 08:24 703次阅读
    如何基于<b class='flag-5'>EsDA</b>开发套件<b class='flag-5'>快速</b>使用射频读卡器模块