鍵盤DIY一個指紋識別

 

今天就來教大家如何強勢改造自己的鍵盤,給它添加上指紋模塊,一鍵登錄美滋滋……

在Windows 10發佈時,除了使用傳統的登陸密碼,操作系統還支持三種Windows Hello類型: PIN,面部識別,和指紋識別。

 

也許我們在各種智能手機上已經習慣於手指一按或者盯着屏幕就可以解鎖直奔主題的感覺,但是對於PC來說,生物識別的普及速度似乎慢了不止半拍。

這其中有很多原因,可以歸結於電腦的使用方式不像手機需要頻繁解鎖,也可以認爲PC行業作爲老消費電子業創新力匱乏各大廠商沒有動力跟進最新技術(只有各大RGB燈廠依然蓬勃發展哈哈),但總之現狀就是Windows Hello出現了這麼久市面上能夠適配的配件依然寥寥可數。

嘛,作爲一個呆萌極客,遇到這種問題肯定是要挺身而出的,反正讓我敲一長串密碼我就難受,連指紋人臉都沒有的電腦能算得上是神機嗎?我表示強烈搖頭。

今天就來教大家如何強勢改造自己的鍵盤,給它添加上指紋模塊,一鍵登錄美滋滋。

開始之前,先介紹一下本次DIY的背景,其實個人自己用的臺式機是支持人臉識別的,我很早(從RealSense發佈的時候)就開始關注Windows Hello了。那時候能買的RealSense攝像頭都很貴(現在也不便宜),我最早選擇的是SR300這個型號,用是挺好用的,但是故障率奇高,半年時間內用壞了兩個,所以當羅技也推出了支持人臉登錄的Webcam之後,我毫不猶豫入手了一個,就是下面這個玩意↓

來到公司之後,在公司的電腦上我自然也想設置相同的人臉解鎖功能,但是很可惜,出於信息安全考慮,公司的電腦登錄設置被策略組限制,只能使用密碼而無法設置PIN

 

而在使用Windows Hello在設備上啓用生物識別之前,必須選擇PIN作爲初始解鎖方式。所以經過一番搜索後,對於是否可以在不設置PIN的情況下使用Windows Hello解鎖這個問題,這裏的答案是否定的,沒有辦法禁用PIN,且只有設置PIN後,纔可以根據需要添加生物識別。

在Windows 10中,PIN登錄是新Microsoft Passport功能的一部分,並且比傳統密碼更安全,下面的鏈接是微軟官方的介紹↓

PIN 優於密碼的原因

道理我都懂,但是這種情況下我要怎麼愉快地在公司___呢?

當然難不倒我,既然軟件上無法支持,那我們就來造一個物理外掛:直接用Arduino模擬成一個HID鍵盤,再通過指紋模塊來做身份驗證。

原理圖如下↓

其實非常簡單,就是在鍵盤的USB線中間插入了一個USB-Hub,然後Hub的一個口接鍵盤原來的USB線,一個口接我們的Arduino(這裏用的是Micro,因爲帶USB模擬功能)

 

                                                            一拖二的USB-Hub

Arduino這邊,選擇了一個串口指紋模塊,型號是FPM3X,長下面這樣↓

 

然後就是鍵盤的拆解和改造了,這一步比較考驗手工,總之就是找一個能塞下模塊的位置鑽個和傳感器一樣大小的窟窿。我用的鍵盤是某寶買的一個茶軸機械鍵盤(程序員必備),每個按鍵都帶獨立可控背光,還很便宜只要不到200塊,具體型號就不說了避免廣告。

 

鍵盤原始狀態

 

脫下馬甲

 

找到一個合適的位置放置指紋傳感器

 

標記好孔位尺寸

 

開始打孔…

 

 

冒着生命危險

把指紋傳感器嵌入,用熱熔膠固定

 

接下來就是電路部分了,我買了最小的Arduino Micro,因爲這個電路實在太簡單,所有沒有必要自己做PCB,飛幾根線即可

 

爲了避免短路,用熱縮管把電路部分封裝好

 

把所有電路都塞進去固定好

 

完成品的效果

最後插上電腦,電腦識別出一個鍵盤,一個Arduino串口,硬件無誤~

下一步是編程,Arduino Micro上的Mega32U4芯片本身就帶USB接口,所以官方也提供了USB庫可以模擬成鍵盤和鼠標,這裏通過模擬成鍵盤來實現讀取到正確的指紋數據後輸入一串密碼的功能

 

                                                         VS下對Arduino進行編程

經驗證,效果完美,而且不僅如此,由於我們可以錄入多個指紋,所以可以輕鬆用代碼實現不同指紋輸入不同內容的功能;如果在Arduino上添加一些額外傳感器,那麼還能實現更多自定義宏的觸發功能,簡直一顆賽艇。

結束語

本次DIY主要是解決了無法使用PIN的情況下使用WIndows Hello的問題。對於大家自己的電腦,其實完全可以不需要Arduino這一塊板子,直接在Hub的一口接入USB指紋模塊即可,也是可以完美兼容的。

Arduino的代碼在這裏,傳感器的鏈接和引腳的接法都在代碼裏,需要的同學可以自行嘗試。

[Github] FingerBoard

 

轉載自微信公衆號電子森林

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章