自從蘋果的iPhone手機引入了多點觸摸功能之后就引發(fā)了一股“多點觸摸”的熱潮,不僅手機紛紛克隆,易PC的觸摸板也開始支持多點觸摸了。微軟也將推出Surface系統(tǒng),這家伙使用多點觸摸屏,操作很炫,當(dāng)然費用也是相當(dāng)可觀:需要花費接近1萬美元,有錢還不一定能買到。為了一個功能換一臺電腦顯然劃不來,本文將教大家用攝像頭來實現(xiàn)多點觸摸功能,成本很低;堪稱窮人的法拉利!攝像頭又多了一個有趣的應(yīng)用。
前期材料準(zhǔn)備
1.攝像頭一個。要求不算太高:30萬或者更高像素、成像能看得清五官就行。我自己做的觸摸板就用了一個一般畫質(zhì)的30萬像素的攝像頭,效果還行。當(dāng)然,更好的攝像頭無疑效果會更好。攝像頭要求鏡頭能90度垂直擺放,如果鏡頭部分能自由調(diào)整就最好了。
2.紙箱或者能拼成容器的材料若干。
3.不干膠若干。
4.平板玻璃(或者硬質(zhì)透明塑料片、毛玻璃之類半透明的材料)和白紙。如果你的電腦桌是玻璃做的,且桌面是毛玻璃,那再好不過了。
動手DIY部分
第一步:固定攝像頭
1.把攝像頭固定在紙箱底部,或者用材料圍成缺失一面的容器。要求四周不透光??紤]大家(包括我本人)的“木工”技術(shù)都不咋的,以最容易找的紙箱為例子介紹。
2.把紙箱豎立起來,在底部(就是平放的側(cè)面之一)固定好攝像頭,居中放置(圖1)。要是鏡頭自身不能垂直擺放,可以給它墊點東西輔助它平躺。數(shù)據(jù)線用不干膠固定好,往棱角走線。
3.用美工刀或者剪刀切掉攝像頭對面的那個面。建議用尺子+美工刀操作,這樣切的面比較平整。
第二步:調(diào)整攝像頭焦距
打開攝像頭,觀察預(yù)覽窗口,要求紙箱開口處不能阻擋攝像頭的視野,也就是說把攝像頭預(yù)覽窗口中看到的紙箱邊框部分都切掉,最好恰好讓開口部分能適應(yīng)攝像頭的視野,不能有暗角。在開口處放一張有圖案的紙或者一本書,調(diào)整攝像頭的焦距,讓它在這個位置的成像最清晰。
有的攝像頭可以自動調(diào)整焦距,有的需要手動調(diào)整。除了特別的調(diào)整旋鈕外,部分攝像頭的鏡頭可以旋轉(zhuǎn)(圖2),通過旋轉(zhuǎn)鏡頭就可以調(diào)整焦距。
第三步:拼合紙箱
除了切掉的那一面,把紙箱用不干膠拼起來。把可能漏光的部分封掉,一定不能在側(cè)面漏光(圖3)。如果有條件,可以在箱子內(nèi)壁糊一層黑紙,或者用黑墨汁涂黑。如果箱子內(nèi)壁不反光,不做處理也可以。
第四步:用玻璃板和白紙做個蓋子
把玻璃板和白紙放在開口的地方,這個面就是觸摸板的操作平面。玻璃板和白紙面積要略大于開口,同樣也不能讓接觸縫隙有明顯的漏光。我曾用較軟的掛歷紙玩了一下,實際用起來很難精確控制光標(biāo)移動,所以這部分材料需要一定的硬度、不容易形變??梢允褂脙蓧K玻璃板將白紙夾在中間。如果使用毛玻璃(毛的,不是那種有紋路、光滑的那種),可以不用白紙,直接將毛玻璃蓋上去就行了(圖4)。如果你的電腦桌表面是玻璃的,那么可把箱子和桌面整合在一起,用起來就方便多了。
我們需要的軟件,可以在這里下載:http://www.cbifamily.com/download/200829.html。這是國外高手制作的免費軟件,大部分界面是英文的。不過不必擔(dān)心語言障礙,因為界面很簡單。有編程基礎(chǔ)的朋友也可以看看壓縮包帶有的源程序,可以稍加改造讓它更適合自己。
調(diào)整設(shè)置
解壓軟件包,運行其中的“1)Configuration.bat”;這時出現(xiàn)一個命令提示符的黑框和一個窗口,這里可以調(diào)整攝像頭的輸出大小和幀率(圖5),一般不需要調(diào)太高,選擇默認就可以。點擊“確定”之后就出現(xiàn)一堆窗口,把手指放在玻璃板上,立即就能看到圖像了。需要調(diào)整那些滑塊,例如噪聲之類的。那些滑塊的具體含義可以不用關(guān)心,調(diào)整到rectify*窗口(圖6)中只出現(xiàn)平滑的和你的手指對應(yīng)的點就可以了;*代表數(shù)字,不一定為一個定值,可能是6或者7。調(diào)整完成后,按ESC退出。
1.如果環(huán)境的光照變化比較大或者比較暗,可能需要適當(dāng)?shù)难a光;例如多開一盞燈。
2.要想了解各個窗口的用途和每個滑塊的實際含義,可以閱讀壓縮包中的MTmini - Getting Started.pdf,全英文的。
3.如果玻璃板不墊白紙,透明度太高容易受到干擾,反而效果不好。
4.軟件支持Vista,我就是在Vista X86版本下面完成DIY的。
玩一下Windows示例程序
運行Demos/C++ Demos里面的Smoke_Demo.bat;把你的“爪子”放上玻璃板,看到手指對應(yīng)的“煙霧點”了吧,按B可以重新進行背景捕捉,如果效果不好需要重復(fù)上一步操作繼續(xù)設(shè)置軟件;如果覺得效果可以接受了,就按Q鍵退出。這個程序本身效果就挺炫,開始覺得多點觸摸好玩了吧?這只是一個開始而已(圖7)。
再來看看Flash示例
目前Windows下面完美支持多點觸摸的程序不是很多,可以先玩一玩Flash示例,開個胃。這些示例程序其實很好玩。
要玩Flash示例,需要先運行Server.bat,出現(xiàn)一個命令提示符窗口和一個沒有圖像的灰色窗口。把手指按在玻璃板上,直到命令提示符窗口出現(xiàn)“Blob Detected:X:0.493456……”,然后運行Gateway.bat,出現(xiàn)一個命令提示符窗口和一個名稱為“FLOSC 2.0”的窗口(圖8);如果沒有這個窗口,需要安裝Java runtime 1.6以上的版本。點擊“Start”,直到命令提示符的黑窗口出現(xiàn)“server started”,這時就可以玩Flash示例了。
運行Demos\ Flash Demos\MultiKey.exe,這是一個電子鍵盤示例(圖9)。這下可以發(fā)揮多點觸摸的威力了,羨慕用iPhone組建樂隊的朋友這下心理應(yīng)該會少許有些平衡了。來,我們來演奏一把,多個手指一起點果然比用鼠標(biāo)一個一個點要爽多了。
1.有的Flash示例默認以全屏方式運行,按下ESC鍵可以退出全屏模式。
2.這個示例需要給本機發(fā)送UDP數(shù)據(jù)包,如果防火墻提示訪問網(wǎng)絡(luò),請允許它通過。否則也是玩不了的。
最后一步:替代鼠標(biāo)操作
運行Demos/C++ Demos里面的Windows_Mousedriver.bat,在命令提示符窗口中出現(xiàn)“recap”之后,就可以使用DIY的多點觸摸板替代鼠標(biāo)操作了;關(guān)閉命令提示符窗口之后,“鼠標(biāo)”功能自動停止。假如使用毛玻璃電腦桌,用起來可不是一個爽字能形容的。如果需要重啟之后自動運行Windows_Mousedriver.bat,可以將它添加到開始菜單的啟動項目中。
小結(jié)
成功DIY的關(guān)鍵在于當(dāng)你的手指按上玻璃板的時候攝像頭能否捕捉到手指留下來的陰影,所以它對攝像頭的要求并不高。當(dāng)然也可以預(yù)見,如果設(shè)置得好,玩一把“隔空點穴”操縱觸摸板也能做到哦。需要注意一點,如果周圍環(huán)境光照變化比較大,使用前最好重新設(shè)置一下。它的配置文件是Touchlib_Tracking_Software\config.xml,根據(jù)每種環(huán)境備份/恢復(fù)配置文件也可以。假如覺得箱子有點丑,可以用畫筆或者壁紙修飾一下,相信這不是什么難事。
后記
要是覺得不過癮,可以用紅外攝像機和投影儀等大家伙DIY一個可以玩的Surface
桌面,效果近似于超過30寸的觸摸屏,成本預(yù)計8000-10000元人民幣左右,比Surface(預(yù)計5000-10000美元)系統(tǒng)便宜多了。