查看: 1077|回复: 7

如何制作一个带指纹识别的机械键盘

[复制链接]
截图201906171351552757.png

在Windows 10发布时,除了使用传统的登陆密码,操作系统还支持三种Windows Hello类型: PIN,面部识别,和指纹识别。

也许我们在各种智能手机上已经习惯于手指一按或者盯着屏幕就可以解锁直奔主题的感觉,但是对于PC来说,生物识别的普及速度似乎慢了不止半拍。

这其中有很多原因,可以归结于电脑的使用方式不像手机需要频繁解锁,也可以认为PC行业作为老消费电子业创新力匮乏各大厂商没有动力跟进最新技术(只有各大RGB灯厂依然蓬勃发展哈哈),但总之现状就是Windows Hello出现了这么久市面上能够适配的配件依然寥寥可数。

嘛,作为一个呆萌极客,遇到这种问题肯定是要挺身而出的,反正让我敲一长串密码我就难受,连指纹人脸都没有的电脑能算得上是神机吗?我表示强烈摇头。

今天就来教大家如何强势改造自己的键盘,给它添加上指纹模块,一键登录美滋滋。

开始之前,先介绍一下本次DIY的背景,其实个人自己用的台式机是支持人脸识别的,我很早(从RealSense发布的时候)就开始关注Windows Hello了。那时候能买的RealSense摄像头都很贵(现在也不便宜),我最早选择的是SR300这个型号,用是挺好用的,但是故障率奇高,半年时间内用坏了两个,所以当罗技也推出了支持人脸登录的Webcam之后,我毫不犹豫入手了一个,就是下面这个玩意↓

截图201906171352103947.png

来到公司之后,在公司的电脑上我自然也想设置相同的人脸解锁功能,但是很可惜,出于信息安全考虑,公司的电脑登录设置被策略组限制,只能使用密码而无法设置PIN

截图201906171352249867.png

而在使用Windows Hello在设备上启用生物识别之前,必须选择PIN作为初始解锁方式。所以经过一番搜索后,对于是否可以在不设置PIN的情况下使用Windows Hello解锁这个问题,这里的答案是否定的,没有办法禁用PIN,且只有设置PIN后,才可以根据需要添加生物识别。


在Windows 10中,PIN登录是新Microsoft Passport功能的一部分,并且比传统密码更安全,下面的链接是微软官方的介绍↓


PIN 优于密码的原因

道理我都懂,但是这种情况下我要怎么愉快地在公司___呢?

当然难不倒我,既然软件上无法支持,那我们就来造一个物理外挂:直接用Arduino模拟成一个HID键盘,再通过指纹模块来做身份验证。

原理图如下↓

截图201906171541448012.png


其实非常简单,就是在键盘的USB线中间插入了一个USB-Hub,然后Hub的一个口接键盘原来的USB线,一个口接我们的Arduino(这里用的是Micro,因为带USB模拟功能)

截图201906171541583665.png

一拖二的USB-Hub

Arduino这边,选择了一个串口指纹模块,型号是FPM3X,长下面这样↓

截图201906171542164311.png

然后就是键盘的拆解和改造了,这一步比较考验手工,总之就是找一个能塞下模块的位置钻个和传感器一样大小的窟窿。我用的键盘是某宝买的一个茶轴机械键盘(程序员必备),每个按键都带独立可控背光,还很便宜只要不到200块,具体型号就不说了避免广告。

截图201906171542338298.png

键盘原始状态

截图201906171542479785.png

脱下马甲

截图201906171543024405.png

找到一个合适的位置放置指纹传感器

截图201906171543156215.png

标记好孔位尺寸

截图201906171543293738.png

开始打孔…

截图201906171543417341.png
截图201906171543505423.png

冒着生命危险

截图201906171544022389.png

把指纹传感器嵌入,用热熔胶固定

截图201906171544146415.png

接下来就是电路部分了,我买了最小的Arduino Micro,因为这个电路实在太简单,所有没有必要自己做PCB,飞几根线即可

截图201906171544277739.png

截图201906171544349086.png

为了避免短路,用热缩管把电路部分封装好

截图201906171544493116.png

把所有电路都塞进去固定好

截图201906171545024920.png

完成品的效果

最后插上电脑,电脑识别出一个键盘,一个Arduino串口,硬件无误~

下一步是编程,Arduino Micro上的Mega32U4芯片本身就带USB接口,所以官方也提供了USB库可以模拟成键盘和鼠标,这里通过模拟成键盘来实现读取到正确的指纹数据后输入一串密码的功能


截图201906171545216007.png

VS下对Arduino进行编程

经验证,效果完美,而且不仅如此,由于我们可以录入多个指纹,所以可以轻松用代码实现不同指纹输入不同内容的功能;如果在Arduino上添加一些额外传感器,那么还能实现更多自定义宏的触发功能,简直一颗赛艇。

v2-2c8ae42c94e90fd29b09792f42312102_b.gif

结束语

本次DIY主要是解决了无法使用PIN的情况下使用WIndows Hello的问题。对于大家自己的电脑,其实完全可以不需要Arduino这一块板子,直接在Hub的一口接入USB指纹模块即可,也是可以完美兼容的~

Arduino的代码在这里,传感器的链接和引脚的接法都在代码里,需要的同学可以自行尝试,记得给个星星~

[Github] FingerBoard


本文首发于:https://zhuanlan.zhihu.com/p/64809151

gada888  版主

发表于 2019-6-24 09:13:54

这设备,牛
回复 支持 反对

使用道具 举报

#嘉诚欧巴#  中级技师

发表于 2019-6-27 16:34:27

大神,看你的代码是一种享受
回复 支持 反对

使用道具 举报

digi_cow  中级技匠

发表于 2019-7-11 19:17:49

被社区首页大图勾引进来,果然赞!
回复 支持 反对

使用道具 举报

kevinzhang19701  中级技匠

发表于 2019-7-12 10:06:23

果然厉害
回复 支持 反对

使用道具 举报

gada888  版主

发表于 2019-7-14 13:33:21

别人不好盗用你电脑了
回复 支持 反对

使用道具 举报

Liujiasheng  见习技师

发表于 2019-7-14 20:37:28

gada888 发表于 2019-7-14 13:33
别人不好盗用你电脑了

当然
回复 支持 反对

使用道具 举报

haot  见习技师

发表于 2019-7-28 13:50:32

膜拜大佬
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail