許圣鈞 徐天翔 李軍平
設(shè)計(jì)目的
隨著社會(huì)的發(fā)展,科技水平的不斷提高,傳統(tǒng)的鍵盤已不能夠滿足左右人的要求。傳統(tǒng)鍵盤具有體積大、便攜性差、使用噪聲大、壽命短的缺點(diǎn),而筆記本電腦的鍵盤也存在泛用性差、無法通用等缺點(diǎn),因此有了激光鍵盤的問世。然而普通的激光鍵盤在投影平面的選擇上存在一定的不足,在特殊情況下的適應(yīng)性較差,無法選擇想要的任意平面做為投影面,由此,我們提出可穿戴式激光鍵盤這一概念,希望能夠解決這一問題。
設(shè)計(jì)概述
本設(shè)計(jì)基于FPGA實(shí)現(xiàn),使用Pynq-Z2開發(fā)平臺(tái)搭載Zynq7020芯片。使用虛擬鍵盤激光組件投影鍵盤外形,同時(shí)使用一字線性感應(yīng)激光器,投射紅外光于投影區(qū)域。當(dāng)手指敲擊鍵盤時(shí),會(huì)在紅外投射區(qū)域觸發(fā)光斑。由攝像頭采集投影平面圖像,通過藍(lán)牙模塊傳輸給FPGA進(jìn)行處理。在Zynq7020上調(diào)用opencv處理采集到的圖像,確定光斑位置,轉(zhuǎn)換為對(duì)應(yīng)二進(jìn)制信息,再通過轉(zhuǎn)碼生成對(duì)應(yīng)的ASCII碼,傳輸給電腦。該系統(tǒng)分為兩個(gè)部分,將小型攝像頭、一字線性感應(yīng)激光頭和虛擬鍵盤激光組件封裝在一起,背面可安裝彈簧夾,可以根據(jù)使用者需要安置在眼鏡,衣領(lǐng)或者任意合適的位置,經(jīng)行佩戴課根據(jù)自己的需要進(jìn)行調(diào)節(jié)。通過藍(lán)牙模塊和剩余部分FPGA進(jìn)行連接,從而連接至電腦。
系統(tǒng)組成和各部分模塊介紹
1.系統(tǒng)組成
本設(shè)計(jì)共由Pynq-Z2開發(fā)平臺(tái)、攝像頭AN5640、一字線性感應(yīng)激光頭、虛擬鍵盤激光組件、藍(lán)牙模塊HC-05等部分組成。
2.各部分模塊介紹
(1)Pynq-Z2
PYNQ-Z2 開發(fā)板是Xilinx 大學(xué)計(jì)劃支持PYNQ開源框架的第二代最新開發(fā)平臺(tái),根據(jù)第一代的反饋?zhàn)龉δ苌?jí)。PYNQ開源框架可以使嵌入式編程用戶在無需設(shè)計(jì)可編程邏輯電路的情況下充分發(fā)揮Xilinx ZYNQ SoC的功能。PYNQ-Z2除支持傳統(tǒng)ZYNQ開發(fā)方式外,還可支持Python進(jìn)行SoC編程,并且代碼可直接在PYNQ-Z2上進(jìn)行開發(fā)和調(diào)試。
(2)攝像頭AN5640
OV5640 攝像頭模組采用美國 OmniVision(豪威)CMOS 芯片圖像傳感器OV5640,支持手動(dòng)調(diào)焦的功能。OV5640 芯片支持 DVP 和 MIPI 接口, OV5640攝像頭模組通過 DVP 接口和 FPGA 連接實(shí)現(xiàn)圖像的傳輸。用以采集手指點(diǎn)擊過程中觸發(fā)的紅外光斑,反饋給FPGA進(jìn)行處理。
(3)藍(lán)牙HC-05
該藍(lán)牙由兩模塊組成,一端與攝像頭連接,接收采集到的圖像信息,通過RXD端發(fā)送到另一模塊的TX端,與FPGA連接,進(jìn)行圖像信息的無線傳輸,在FPGA的SOC系統(tǒng)上調(diào)用opencv庫,對(duì)于采集進(jìn)行處理確定光斑位置。
(4)中值濾波模塊
由于成像系統(tǒng)、傳輸介質(zhì)和記錄設(shè)備等的不完善,數(shù)字圖像在其形成、傳輸記錄過程中往往會(huì)受到多種噪聲的污染。另外,在圖像處理的某些環(huán)節(jié)當(dāng)輸入的像對(duì)象并不如預(yù)想時(shí)也會(huì)在結(jié)果圖像中引入噪聲。中值濾波對(duì)脈沖噪聲有良好的濾除作用,特別是在濾除噪聲的同時(shí),能夠保護(hù)信號(hào)的邊緣,使之不被模糊。這些優(yōu)良特性是線性濾波方法所不具有的。此外,中值濾波的算法比較簡單,也易于用硬件實(shí)現(xiàn)。在這里使用中值濾波對(duì)于攝像頭采集到的圖像進(jìn)行處理,提高識(shí)別精度。
(5)一字線性激光頭
在投影平面上投射一字線性紅外激光,在手指敲擊過程中,會(huì)在投影平面觸發(fā)光斑,以供攝像頭采集。
(6)紅色激光發(fā)射器
鍵盤的外形以及用戶所能看到的鍵盤按鍵都是由紅色激光發(fā)射器投影而成的,并且根據(jù)投影平面的大小和形狀,可以對(duì)于鍵盤的外形和鍵位位置進(jìn)行更改,內(nèi)置多種模式供用戶切換。
工作原理
首先,由一字線性激光頭發(fā)出的激光選擇紅外線,并且波長選擇在攝像頭可以識(shí)別但是人眼不可識(shí)別的范圍內(nèi),以仿擾亂視線。人眼可見的范圍大約在780nm以下,780nm以上屬于紅外線范圍,而在800nm到850nm左右的紅外屬于攝像頭可捕捉的紅外光,所以我們選擇了可以發(fā)出這一范圍激光的一字線性激光頭。
當(dāng)手指敲擊某個(gè)按鍵時(shí),攝像頭會(huì)捕捉到圖像,并將其通過藍(lán)牙傳回FPGA進(jìn)行圖像處理。在捕捉之前,在攝像頭之前加上濾光片,盡量只保留紅外光斑,避免其他雜光的干擾。
這里我們在FPGA的片上系統(tǒng)上調(diào)用opencv計(jì)算機(jī)視覺庫跟蹤光斑位置。在這里我們調(diào)用現(xiàn)成的Cvblob第三方庫,在視覺追蹤上擁有不錯(cuò)的效果。首先從捕捉的圖像中扣出紅色激光區(qū)域,在根據(jù)鍵盤的邊緣確定光斑于區(qū)域邊緣的位置。但是由于投射的角度不同,鍵盤有很大程度上出現(xiàn)變形的可能性,距離判斷會(huì)出現(xiàn)不準(zhǔn)確的情況。所以對(duì)于任意平面投影的誤差處理是有必要的,需要根據(jù)攝像頭采集到的鍵盤鄰邊的夾角角度來確定鍵盤的變形情況以調(diào)整光斑的位置所對(duì)應(yīng)的信息。同時(shí)在人使用的過程中,如果鍵盤佩戴部位出現(xiàn)晃動(dòng),使用同樣的原理進(jìn)行修正。
將采集到的位置信息轉(zhuǎn)換為FPGA可以識(shí)別的二進(jìn)制信息,通過預(yù)先編好的轉(zhuǎn)碼模塊,不同的二進(jìn)制信息進(jìn)入查找表獲取對(duì)應(yīng)的ASCIl碼信息。
為了適應(yīng)不同的平面,不同的投影情況和用戶需求。我們根據(jù)對(duì)于所需要鍵盤的尺寸鍵位排布設(shè)計(jì)多套類似的系統(tǒng),甚至在平面位置不夠的情況下,可以舍棄一些不重要的按鍵。我們將多套系統(tǒng)例化到同一頂層模塊中,使用外置按鈕控制選擇投影模式。
應(yīng)用領(lǐng)域
本設(shè)計(jì)是在原本的激光投影鍵盤的基礎(chǔ)上進(jìn)行改良和增加功能而出現(xiàn)的,所以可以滿足原本的激光投影鍵盤的全部功能。同時(shí),在戶外、演示宣講等不方便常規(guī)使用鍵盤的場合,可以將鍵盤投影于墻面、手掌等平面簡單使用。同時(shí)可以在此基礎(chǔ)上可以設(shè)計(jì)激光投影觸控板,進(jìn)行完全的無實(shí)物操作。在照明不良的情況下,也能夠正常使用,調(diào)節(jié)紅外激光發(fā)射器調(diào)節(jié)亮度,在白天光照較強(qiáng)的情況下也可以使用。可以以平躺、站立等各種不同的使用姿勢使用,解決長期保持坐姿使用疲勞的問題。
設(shè)計(jì)優(yōu)勢
本作基于FPGA實(shí)現(xiàn),具有較快的處理速度,有效解決普通紅外激光鍵盤響應(yīng)延遲的問題。采用的Pynq開發(fā)平臺(tái)可以同時(shí)使用FPGA和ARM,有效解決圖像處理時(shí)資源不夠的問題。同時(shí)Pynq可以使用Python語言驅(qū)動(dòng),擁有較好的泛用性和擴(kuò)展性,在增加擴(kuò)展功能時(shí)具有一定優(yōu)勢。相比傳統(tǒng)的激光鍵盤,可穿戴式激光鍵盤的適應(yīng)性好,可用于不同的使用情況。將原本的一體分為兩個(gè)部分,通過藍(lán)牙傳輸,輕便小巧,便于佩戴。由于調(diào)用了cvblob第三方庫,可以同時(shí)追蹤多個(gè)光斑,在加上FPGA具有并行處理的能力可以輕易實(shí)現(xiàn)組合按鍵,例如:alt+ctrl+del。
存在問題
雖然使用無線傳輸來達(dá)到可穿戴的目的,但是無線傳輸?shù)乃俣冗€是存在一些問題,并且存在時(shí)而不穩(wěn)定的情況。同時(shí)使用購買現(xiàn)成的模塊,在體積和重量上還不完全滿足可穿戴的舒適性要求,需要進(jìn)一步精簡,減輕重量,縮小體積。
同時(shí),由于佩戴部位和投影面無法保持長期的相對(duì)靜止,所以會(huì)出現(xiàn)晃動(dòng)的問題,影響操作體驗(yàn),需要在后期繼續(xù)改進(jìn),嘗試加入自穩(wěn)的技術(shù)手段,減輕因?yàn)槿梭w輕微移動(dòng)所帶來的負(fù)面影響。
濾光片在濾除不需要的雜光時(shí),不能做到完全濾除,在環(huán)境光較強(qiáng)時(shí),會(huì)出現(xiàn)位置跟蹤不準(zhǔn)確的情況,使使用受到了一定的局限性,線性激光頭和濾光片的選擇還需要進(jìn)一步考量。
總 結(jié)
可穿戴式激光鍵盤的概念在2013年已成為Google對(duì)谷歌眼鏡的一種設(shè)想,但是我們在這基礎(chǔ)上使用FPGA實(shí)現(xiàn),提高了速度和并行處理的可靠性,并且希望能夠讓用戶根據(jù)實(shí)際情況自行調(diào)節(jié)鍵盤的大小尺寸和鍵位布局。這一設(shè)想在實(shí)際操作中還有很多很多現(xiàn)實(shí)的問題沒有解決,我們的會(huì)進(jìn)一步進(jìn)行嘗試,希望能最終研發(fā)出成熟的產(chǎn)品。