快捷搜索:  网络  后门  CVE  渗透  扫描  木马  黑客  as

厉害吧!Python都能做指纹识别播报了

指纹识别手艺是目前最成熟且价格便宜的生物特征识别手艺。目前来说指纹识其它手艺应用最为广泛,我们不仅在门禁、考勤体系中可以看到指纹识别手艺的身影,市场上有了更多指纹识其它应用:如笔记本电脑、手机、汽车、银行支付都可应用指纹识其它手艺。

指纹识别手艺把一小我私人同他的指纹对应起来,通过比较他的指纹以及预先保存的指纹进行比较,就可以验证他的真实身份。每一小我私人(包括指纹在内)皮肤纹路在图案、断点以及交叉点上各不相同,是唯一的,依赖这类唯一性以及稳定性,我们才能创造指纹识别手艺。每一小我私人包括指纹在内的皮肤纹路在图案、断点以及交叉点上各不相同,呈现唯一性且终身不变。

下面带人人做一个本人的指纹识别体系——包括指纹图像获取、处理、特征提取以及比对,把现场采集到的指纹与一个己经登记的指纹进行一对一的比对,从而来确认身份。

1、实验东西

1.TPYBoard v 102开发板   1块

2.指纹识别模块  1块

3.语音播报模块  1块

图片.png

二、AS608光学指纹识别模块

图片.png

指纹模块为集成了光路以及指纹处理部分的一体化指纹处理模块,具有体积小、功耗低、接口简单的特点,可靠性高、识别速率快、干湿手指适应性好,指纹搜索速率快。通信接口为USB以及UART两种通讯接口。

一、指纹特征

指纹算法从获取的指纹图像中提取的特征,代表了指纹的信息。指纹的存储、比对以及搜索等都是通过操作指纹特征来实现的。

2、指纹处理包含两个过程:指纹登录过程以及指纹匹配过程[其中指纹匹配分为指纹比对(1:1)以及指纹搜索(1:N)两种方式] 。

指纹登录时,对每枚指纹录入 2 次,将 2 次录入的图像进行处理,合成模板存储于模块中。

指纹匹配时,通过指纹传感器,录入要验证指纹图像并进行处理,然后与模块中的指纹模板进行匹配比较(若与模块中指定的一个模板进行匹配,称为指纹比对方式,即 1:1 方式;若与多个模板进行匹配,称为指纹搜索方式,即1:N方式) ,模块给出匹配效果(通过或失败) 。

三、手艺参数

供电电压: DC  3.3V

供电电流: 工作电流:<60mA

峰值电流:<60mA

指纹图像录入时间:<1.0秒

窗口面积: 15.3╳ 18.2 妹妹

分辨率:500dpi

3、SYN6288语音播报模块

图片.png

SYN6288语音模块是通过异步串口接收待合成文本,完成文本到声音(TTS)的转换。它有下列功能特点:

支持任意中文文本的合成,可以采用GB23十二、GBK、BIG5 以及Unicode 四种编码方式;

具有文本智能阐发处理功能,对常见的数值、电话号码、时间日期、度量衡符号等格式的文本;

可以自动对文本进行阐发,鉴别文本中多音字的读法并合成正确的读音;

可完成10级数字音量控制,音量更大,工控黑客 ,更广;

内集成了77首声音提示音以及14首以及弦音乐;

支持多种文本控制标记,抬举文本处理的正确率;

支持多种控制命令,包括:合成、休止、停息合成、继续合成、改变波特率等;

支持多种方式查询芯片的工作状态;

两种通信模式:芯片支持UART、SPI两种通信方式;

支持Power Down 模式。使用控制命令可以使芯片进入Power Down 模式;

支持的通信波特率:4800bps,9600bps,57600bps、115200bps。

4、硬件接线图

下面带人人先把指纹模块以及语音播报模块接起来,接线要领很简单,人人可以按照下面的接线方式将硬件连接起来。

TPYBoard v102 AS608光学指纹识别模块 SYN6288语音播报模块
3V3 U+  
GND GND  
X1 RX  
X2 TX  
VIN   VDD
Y1   RXD
Y2   TXD
GND   G

5、下手写代码

我们接线成功后,就要编写代码了,因为我们用到了指纹识别模块以及语音播报模块,所以我们要下手编写AS608.py、syn6288.py以及main.py。

1. 编写AS608.py脚本

from pyb import UART

from pyb import delay

import syn6288

import  pyb

class FIG:

def __init__(self,uart):

self.uart = UART(uart, 57600)

self.sendcmd(link)

self.sendcmd(readflash)

self.sendcmd(readmould)

self.sendcmd(readindex)

self.sendcmd(readindex1)

delay(500)

def sendcmd(self,cmd):

self.uart.write(head)

self.uart.write(cmd)

def searchfig(self):

hc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

self.uart.read()

self.sendcmd(cmd_search)

hc=self.uart.read()

while hc[11]!=0xa:

self.sendcmd(cmd_search)

hc=self.uart.read()

self.sendcmd(cmd_upload)

def savefig(self,addr):

print('请按手指')

syn6288.sendspeak(6,9600,'请按手指'.encode('utf-8'))

self.searchfig()

self.sendcmd(cmd_gen1)

pyb.delay(2000)

print('请再按手指')

syn6288.sendspeak(6,9600,'请再按手指'.encode('utf-8'))

pyb.delay(1000)

self.searchfig()

self.sendcmd(cmd_gen2)

self.sendcmd(cmd_reg)

add=cmd_save+bytearray([addr,0,addr+0xe])

self.sendcmd(add)

print('存入成功')

syn6288.sendspeak(6,9600,'存入成功'.encode('utf-8'))

pyb.delay(1500)

def disfig(self):

print('请按手指')

syn6288.sendspeak(6,9600,'请按手指'.encode('utf-8'))

self.searchfig()

print('识别中')

syn6288.sendspeak(6,9600,'正在识别'.encode('utf-8'))

self.uart.read()

pyb.delay(20)

self.sendcmd(cmd_gen1)

self.sendcmd(cmd_dis)

pyb.delay(10)

hc=self.uart.read()

pyb.delay(10)

if hc[9]==9:

return 0

else :

return hc[11]

2. 编写syn6288.py脚本

from pyb import UART

def sendspeak(uart,baud,data):

u2=UART(uart,baud)

eec=0

buf=[0xfd,0x00,0,0x01,0x01]

buf[2]=len(data)+3

buf+=list(data)

for i in range(len(buf)):

eec^=int(buf[i])

buf.append(eec)

u2.write(bytearray(buf))

3. 编写main.py脚本

import pyb

import AS608

from pyb import UART

import syn6288

 buf=[0xFD,0x00,0x07,0x01,0x01,0x5B,0x74,0x35,0x5D,0xBD]

u6=UART(6,9600)

u6.write(bytearray(buf)) 

fig=AS608.FIG(4)

fig.savefig(37)

user=fig.disfig()

if(user==0):

syn6288.sendspeak(6,9600,'读取失败'.encode('utf-8'))

print('读取失败')

else :

syn6288.sendspeak(6,9600,'读取成功'.encode('utf-8'))

print('找到用户',user)

模块以及代码都预备好了,你只要要接起线来将代码写入即可,TPYBoard v102的程序写入要领超级简单,插入电脑会有个盘符,只要要将这3个脚本直接拖进盘符即可,然后rst开发板就完事了。

6、成果铺示

这就是我们生活中的指纹识别体系的道理,通过采集指纹,保存指纹,把采集到的指纹同指纹数据库中的指纹逐个对比,从中找出与现场指纹相匹配的指纹的过程,用python开发一个应用真的是无譬喻便,说话简洁,上手快,库的种类很多,这只是很简单的硬件应用,再做一个页面,进行一些逻辑判定,就是很好玩的产品啦,人人可如下手一块儿来顽耍。

*

您可能还会对下面的文章感兴趣: