
当前, 运用了指纹识别的技术, 是生物特征识别里面最成熟的, 并且价格比较便宜。市面上, 指纹识别技术的应用是最为广泛的时期到了, 在门禁系统里, 能看见指纹识别技术, 考勤系统中, 亦是如此。市场上面, 出现了更多指纹识别的应用, 像笔记本电脑、手机、汽车、银行支付这些方面, 都能够应用指纹识别的技术。把一个人跟他的指纹对应起来的那个指纹识别技术, 是通过把他的指纹和预先留存的指纹作比较, 借此就能够验证他的真实身份的。每个人的包括指纹那部分在内的皮肤纹路啊, 在图案、断点以及交叉点这些方面都是不一样的, 是具有唯一性的, 正是靠着这种唯一性还有稳定性, 我们才得以创造出指纹识别技术。每个人的包括指纹在内其皮肤纹路, 在图案、断点和交叉点上彼此不同, 呈现出唯一性而且一辈子都不会改变。下面带领大家去做一个属于自身的指纹识别系统, 该系统涵盖指纹图像获取、处理、特征提取以及比对这些环节, 将现场采集得到的指纹与一个已然登记的指纹展开一对一的比对, 借此来确认身份。一、 实验器材1. v 102开发板 1块2.指纹识别模块 1块3.语音播报模块 1块二、 AS608光学指纹识别模块指纹模块, 是那种集成了光路以及指纹处理部分的一体化指纹处理模块, 它有着体积小的特性, 还有功耗低的特点, 并且接口简单, 有着可靠性高的优势, 识别速度快, 对于干湿手指的适应性良好, 指纹搜索速度也快, 通讯接口包含USB和UART这两种通信接口。1、指纹特征特征, 是指纹算法, 从所获取的指纹图像里提取所得, 其代表着指纹的信息。指纹的存储, 以及指纹的比对, 还有指纹的搜索等, 这些皆是借助操作指纹特征来予以完成的。2、过程涉及处理指纹要包含两个方面, 一方面为指纹登录进程, 另一方面是指纹匹配进程, 当中指纹匹配又划分成两种模式, 一种是指纹比对模式, 即1:1的方式, 另一种是指纹搜索模式, 也就是1:N的方式。指纹实施登录操作之际, 针对每一枚指纹, 要进行两次录入, 把这两次录入所产生的图像予以处理, 进而合成模板, 存储在相关模块内部。在进行指纹匹配之际, 借助指纹传感器, 录入那需要验证的指纹图像, 接着展开处理, 随后同模块里的指纹模板开展匹配比较, 要是和模块中所指定的一个模板去进行匹配, 这被称为指纹比对方式, 也就是1:1方式, 若是与多个模板进行匹配, 这被称为指纹搜索方式, 也就是1:N方式罢了, 模块会给出匹配结果, 是通过或者失败呢。3、技术参数供电电压 DC 3.3V供电电流 工作电流峰值电流指纹图像录入时间1.0秒窗口面积 15.3╳ 18.2 mm分辨率三、语音播报 模块通过异步串口接收待合成文本, 进而实现文本到声音TTS转换的是语音模块, 它具备以下功能特点。能够支持任意中文文本进行合成, 其可以采用GBK编码方式, 还能够采用BIG5编码方式, 并且还能够采用四种其一的编码方式。具备文本智能分析处理的能力, 针对常见格式的文本, 比如数值, 以及电话号码, 还有时间日期, 另外还有度量衡符号等。能够以自动的方式, 针对文本开展分析工作, 辨别文本里多音字的具体读法, 进而达成合成正确读音这一目的。可实现10级数字音量控制音量更大更广内集成了77首声音提示音和14首和弦音乐支持多种文本控制标记提升文本处理的正确率能支持好些种控制命令, 其中涵盖了像合成, 停止, 暂停合成行为, 继续进行合成动作, 改变波特率那样的情况。支持多种方式查询芯片的工作状态两种通讯模式芯片支持UART、SPI两种通讯方式对于Power Down模式予以支持, 倘若运用控制命令, 那么能够促使芯片进入Power Down模式。支持的通讯波特率、。四、 硬件接线图下面带领大家, 先把指纹模块连接起来, 还要把语音播报模块连接起来, 接线的方法并不复杂, 大家能够依照下面所提及的接线方式, 将硬件彼此连接起来。v10⑵ AS68〇光学指纹识别模块, 语音播报模块, 有着3V⑶, 有着U, 有着GND, 另一处GND, 还有X⑴, RX, 还有X⑵, TX, 还有VIN, VDD, 还有Y⑴, RXD, 还有Y⑵, TXD, 另一个地方是GND, 还有G, 接下来要动手写出代码。接到线成功之后, 就要着手编写代码, 鉴于用到了指纹识别模块以及语音播报模块, 故而要动手去编写AS608.py, 接下来还有.py, 最后还要去编main.py, 最终达到编写完成。1. 编写AS608.py脚本from pyb UARTfrom pyb delaypybclass FIG:def (self,uart):self.uart UART(uart, 57600)self.(link)self.()self.()self.()self.()delay(500)def (self,cmd):self.uart.write(head)self.uart.write(cmd)def (self):hcself.uart.read()self.()hcself.uart.read()while hc11!0xa:self.()hcself.uart.read()self.()def (self,addr):print(请按手指).(6,9600,请按手指.(utf-8))self.()self.()pyb.delay(2000)print(请再按手指).(6,9600,请再按手指.(utf-8))pyb.delay(1000)self.()self.()self.()add(addr,0,addr0xeself.(add)print(存入成功).(6,9600,存入成功.(utf-8))pyb.delay(1500)def (self):print(请按手指).(6,9600,请按手指.(utf-8))self.()print(识别中).(6,9600,正在识别.(utf-8))self.uart.read()pyb.delay(20)self.()self.()pyb.delay(10)hcself.uart.read()pyb.delay(10)if hc9:0else :hc112. 编写.py脚本from pyb UARTdef (uart,baud,data):u2UART(uart,baud)eec0buf0xfd,0x00,0,0x01,0x01buflen(data)3buflist(data)for i in range(len(buf)):eec^int(bufbuf.(eec)u2.write((buf))3. 编写main.py脚本pybAS608from pyb UARTbuf零xFD, 零x00, 零x07, 零x01, 零x01, 零x5B, 零x74, 零x35, 零x5D, 零xBD。u6UART(6,9600)u6.write((buf))figAS608.FIG(4)fig.(37)userfig.()if(user0):.(6,9600,读取失败.(utf-8))print(读取失败)else :.(6,9600,读取成功.(utf-8))print(找到用户,user)模块已然准备妥当, 代码也已就绪, 你仅需把线连接上, 进而将代码写入就行, v102的程序写入方式极为简易, 插入电脑后会出现一个盘符, 只需将这3个脚本直接拖拽到盘符当中, 而后rst开发板便大功告成了。六、成果展示这便是我们于生活里的指纹识别系统的原理, 借助采集指纹, 留存指纹, 将采集所得的指纹跟指纹数据库中的指纹逐个进行对比, 从中找寻出与现场指纹相匹配的指纹的进程, 运用开发一个应用着实是极为便利的, 语言简洁, 上手速度快, 库的种类繁多, 这仅是颇为简单的硬件应用, 再打造出一个页面, 开展一些逻辑判断, 便是饶有趣味的产品啦, 大家能够动手一同来玩乐。