
眼睛作家是一臺低成本視線跟蹤裝置,配備有特制軟件,方便那些因肌肉萎縮、偏癱、硬化癥而癱瘓的隨筆作家和藝術(shù)家用他們的眼睛來創(chuàng)作。





下面展示的原型設(shè)計,以一副眼鏡為基本設(shè)備,方便“眼睛創(chuàng)作者”工作:
從第一個視頻展示開始,我們一直深入發(fā)掘和改進裝置,最終我們有個新版本問世–“眼睛作家2.0”。新版本改善了輸入準確度,即使用戶頭部輕微移動也能使用。舊版本眼睛作家是為癱瘓作家而設(shè)計的,是要戴在完全無法運動的頭部上使用的。2.0版本設(shè)計上使用一個攝像頭和LED系統(tǒng),將其遠離頭部放置,于是頭部輕微移動的用戶也能使用了,例如多發(fā)性硬化癥患者、戴眼鏡的人等等。
眼睛作家既廉價又完全開源。現(xiàn)時,零件成本大約200美金,而傳統(tǒng)商用視線跟蹤系統(tǒng)則需9000至20000美金。便宜訂單是巨大吸引力,也是設(shè)計給那些需要視線跟蹤器的人。
這個秋季,我們展出和公測了眼睛作家2.0。我們甚至將其與一個機械臂連接,用來畫出人們用眼睛視線創(chuàng)作的藝術(shù)作品。
http://www./2010/12/13/eyewriter-teams-up-with-robotagger-to-print-kids-ocular-artwork/print/
(2.0版本在設(shè)計過程中,在Ito Takayuki、Kyle McDonald、Golan Levin和Parsons大學“眼睛作家“協(xié)作小組的學生幫助和錄入下得以完成。同時也鳴謝卡內(nèi)基梅隆大學創(chuàng)意調(diào)查工作室為開發(fā)設(shè)立一個部門。)
步驟1:總覽
簡單來說,我們就做了幾件事。首先,我們將發(fā)光LED放在屏幕邊緣和中央。接著,我們拆開利用PS3的攝像頭,用以獲得垂直同步信號(產(chǎn)生于拍攝每幀圖像時),使紅外傳感器探測到。第三步是編程步驟,建立Arduino和電路,控制閃光信號。最后,我們?yōu)檫@個系統(tǒng)做個底層,初步測試軟件。
以技術(shù)角度來看,2.0版本系統(tǒng)以3個紅外發(fā)光器對每幀進行閃頻觀測。在偶數(shù)幀時,瞳孔出現(xiàn)發(fā)光,那是因為紅外光正從你的眼中反射回來,就像常見那種照相機紅眼現(xiàn)象那樣。在奇數(shù)幀時,你的瞳孔則是黯淡的。兩者的差別使我們實時區(qū)別追蹤瞳孔軌跡成為可能。進一步說,探測到由紅外發(fā)光造成的反光,加上瞳孔中的信息,用反光/瞳孔位置映射算法方程的最小二乘法擬合(中文百度百科Least Squares Fitting)進行屏幕位置校正。
步驟2:零件清單

在動工之前,我們需要合理數(shù)目的零件制作這個設(shè)備??纯瓷蠄D,先對我們做的東西有個概念,而詳細零件清單在PDF檔案里已有列明。
步驟3:軟件——開放式框架與眼睛作家


眼睛作家2.0由數(shù)個程序片斷組裝及運行。在這個步驟中,我們講述如何下載安裝集成開發(fā)環(huán)境、程序開放式框架及眼睛作家程序本身。
一、集成開發(fā)環(huán)境(IDE)
· 集成開發(fā)環(huán)境(IDE)是為軟件開發(fā)程序員準備的綜合性開發(fā)工具軟件。
· 如有需要,下面鏈接用以下載安裝一個IDE來運行開放式程序框架。
二、開放式程序框架
· 開放式程序框架以C++庫文件設(shè)計,以簡單直觀的實驗框架為創(chuàng)造過程提供幫助。
· 如有需要,可于下面鏈接下載開放式程序框架。
三、眼睛作家的GitHub
· GitHub是一個基于網(wǎng)頁界面的分布式版本控制系統(tǒng),用戶們在這個平臺上分享交換程序代碼。
· 眼睛作家的源代碼在以下GitHub頁面內(nèi)。
[http://github.com/eyewriter/eyewriter/tree/remoteEyetracker]
(http://github.com/eyewriter/eyewriter/tree/remoteEyetracker)
· 在右上角菜單中下載代碼。
· 選擇ZIP格式。
· 完成下載后,解壓縮文件,將“eyewriter-xxxxxx”文件夾移動到開放式框架的“apps”文件夾中。
· 打開“apps/eyewriter-xxxxxxx/eyeWriterTracker/RemoteEyeTracker.xcodeproj”文件,測試所有安裝程序工作無恙。
· 試運行源代碼,跟蹤調(diào)試窗口應該出現(xiàn)在演示視頻模式中。
步驟4:軟件——攝像頭和Arduino
我們需要為硬件安裝多兩個驅(qū)動。攝像頭驅(qū)動建立起PS3攝像頭和電腦之間的交互,Arduino軟件則提供軟件和硬件之間的接口。
安裝PS攝像頭驅(qū)動
Mac系統(tǒng)下:
· Macam是Mac OS X的USB攝像頭驅(qū)動程序,數(shù)以百計的USB攝像頭通過它能被Mac OS X的視頻捕捉程序所識別。我們用的是PS3攝像頭,那么驅(qū)動程序就是為了讓電腦識別它所要安裝的。
· 從SourceForge鏈接下載攝像頭驅(qū)動程序。
· 下載完成后,解壓縮檔案,將macam.component放入硬盤里 /Library/Quicktime/文件夾中。
PC版本的:
· 下載CL-Eye-Driver并安裝。
Arduino
· Arduino是嵌入式計算機系統(tǒng)的設(shè)計開發(fā)工具,有開源單片機控制硬件、集成了輸入輸出和基本程序語言所組成。
· 從http:///en/Main/Software下載安裝Arduino軟件。
· 不熟悉Arduino環(huán)境的話,http:///en/Guide/HomePage內(nèi)可以參考入門解說。
步驟5:載入Arduino程序框架
在這里,你需要載入Arduino程序框架,以便PS攝像頭工作。
一、Arduino程序框架(僅限PS攝像頭使用)
· 在Arduino IDE軟件內(nèi)載入Arduino眼睛作家程序框架“apps/eyewriter-xxxxxxx/eyeWriterTracker/StrobeEye/StrobeEye.pde”,使眼睛作家軟件能識別硬件。
· 當Arduino板連接上時,將程序框架上載到板內(nèi)。如果你不熟悉這一步,請參閱http:///en/Guide/HomePage內(nèi)的入門解說。
步驟6:硬件:電源適配器

電源適配器
在這里,你需要切下一段電源適配器的導線,用以驅(qū)動面包板電路。
· 剪下7.5伏電源適配器的接口。
· 用電壓計從裸露導線中確定正負極。
· 用一段剝好的紅線和黑線,將紅線焊上適配器的正極導線,黑線焊上負極導線。
· 先單獨捆扎裸露導線,確保正負極分開不會短路,然后再將它們扎在一塊,確保沒有導線裸露。
步驟7:硬件:紅外LED










紅外LED
· 收集8個紅外發(fā)光二極管(IR LED)和一片圓形的印刷電路板(PCB)。
· 在PCB上做一個LED陣列,你需要確定每個LED的正負極引腳。一般來說,長腳陽(正),短腳陰(負)。另外,在鏡頭發(fā)光陰極那邊往往有個扁平斑點。為方便區(qū)分,不妨在導線節(jié)點上標注正負極。
· 串聯(lián)4個LED為一組,下一組也是4個,互相并聯(lián)。將LED的引腳剪短柄焊接在一起。
· 將LED引腳焊接在一起組成電路后,將大約2英尺(約60厘米)的紅綠通信導線分別焊到LED電路的正負兩端。
· 測試LED的PCB電路板,建立下圖所示電路。仔細觀察紅外LED是否發(fā)出黯淡的紅光。
· 確認紅外LED工作無誤后,用熱熔膠固定電路板背后的所有節(jié)點。
· 重復以上1~5步,做多一些LED PCB電路板。
· 用一塊較大的圓形PCB,小心在中間鉆一個洞,如下圖所示。
· 在PCB的外緣,建立一個4個LED串聯(lián)一組共4個互相并聯(lián)電路。LED的放置位置需使PS攝像頭正好吻合,而攝像頭不會阻擋住LED。
· 在焊接好LED引腳組成電路和4對正負極電源導線后,將4組LED并聯(lián)排列。
· 焊接約2英尺(約60厘米)紅綠通信導線至LED電路的正負極端點。
· 建立如下的電路see schematic here來測試較大的LED PCB板,看看紅外LED是否發(fā)出黯淡紅光。
· 確認紅外LED工作無誤后,用熱熔膠固定電路板背后的所有節(jié)點。
步驟8:拆解PS攝像頭——前期準備

在這里我們講解如何取出PS攝像頭。對于替換攝像鏡頭、加裝紅外濾鏡和連接垂直同步信號來說這步是必須的。
· 拿出PS攝像頭。溫馨提示:私拆不保,責任自負。
· 撬開四顆盒子底部的螺帽。

· 扭下四顆螺帽下的螺絲。別丟掉,稍后你要用回它們。

· 拿掉四顆螺絲后,繼續(xù)撬開后半部分盒子,建議使用一字螺絲刀和錘子,或一把尖嘴鉗。使用巧勁,別壞了里面的東西或傷著自己。

· 拉出導線,將塑料座邊上的兩顆底部螺絲扭下來,保留它們備用。


· 拿掉垂直的部分。
· 扭下電路板周圍的五顆螺絲(兩顆在邊上,三顆在上面),同樣保留它們備用。


· 拿掉五顆螺絲后,從盒子前面拿起電路板。
· 有四個麥克風穿過電路板頂部。直接使用剪子剪掉它們,我們用不著它們。



· PS攝像電路板準備完畢,隨時可接線。下一步是將它連接垂直同步信號和接地點。
步驟9:拆解PS攝像頭–垂直同步信號
在這里我們講解獲取攝像頭同步垂直信號流程。同步垂直信號生成取決于攝像頭刷新率,而獲取它對項目來說至關(guān)重要,它是將攝像頭刷新率和紅外LED吻合的唯一辦法。
· 在PS攝像頭電路板上標定接地節(jié)點。有些型號的PS攝像頭在鏡頭座附近有5個節(jié)點(下面左圖),而另外一些型號則有4個(下面右圖)。如果你的型號有5個節(jié)點,那么接地點則是最靠近鏡頭座的那個。如果你的型號有4個節(jié)點,接地點還是在最靠近鏡頭座的那個,只是它的寬度大概是其他節(jié)點的兩倍。

· 剪下約2英尺(60厘米)長4色通訊導線,將紅線和綠線從黑線白線中間分離開來。

· 將紅線和綠線從一端分出約2英寸(5厘米)長,將綠線上面的絕緣層剝開,然后把綠線焊在PS攝像頭的接地點上。
· 將PS攝像頭電路板和綠線夾在一個架子上,準備將它們焊接。可以用一小片厚紙或卡紙夾在夾子和電路板之間防止刮花電路板。

· 將綠線焊接在PS攝像頭接地點上。
· 在電路板上找出垂直同步信號區(qū)域,在下圖圓圈內(nèi)所示。

注意:更新型號的PS攝像頭(可以由電路板外緣的金色滾邊所識別)中,垂直同步信號熱點在PCB板的前面,電阻R19正上方。

而更加新型的攝像頭也已經(jīng)投入市場(v9.2),下圖告訴你如何區(qū)分識別他們,以及在上面怎樣找到垂直同步信號熱點。


· 用一把鋒利的小刀,小心用刀尖在熱點區(qū)上刮下一些絕緣覆膜,將金屬接觸面暴露開來。 
· 紅線要連接在裸露的垂直同步信號區(qū),但導線太粗了,不能很好平整地焊在這塊小區(qū)域上,所以需要用一根30碼導線作為中轉(zhuǎn)。將兩根30碼導線末端剝線。
· 截短紅線,然后將30碼導線其中一端和紅線一端焊接起來。

· 在將30碼導線焊在信號區(qū)之前,先做個測試來確保所有連接正常。建立下圖的電路,當30碼導線接觸到信號區(qū)時,面包板上面的LED應該會快速閃爍。

· 用0.022英寸粗(0.56毫米)的焊錫小心將30碼導線和裸露的信號區(qū)焊接起來,從面包板上閃爍的LED可以確定是否成功。
步驟10:拆解PS攝像頭——完成
這里介紹如何將攝像頭重組一體。
· 松開固定鏡頭的兩顆螺絲,小心操作,垂直同步信號傳輸節(jié)點是很脆弱的。拆開鏡頭,放好螺絲。

· 量度新裝鏡頭架的正方形開口大小。用濾紙裁減一個剛好大小的正方形,將其放入開口處。


· 濾紙到位后,螺接新的鏡頭架。也許需要出一些力,鏡頭架對于電路板來說稍大,導致其中一個螺絲將成角度鉆入。

· 將新的鏡頭旋進電路板新鏡頭架上。

· 灌熱熔膠固定保護垂直同步信號連接。

步驟11:全電路
在這里我們告訴大家如何在面包板上組裝電路,而這是讓Arduino融入眼睛作家的最初過程。
· 用下面電路圖組裝電路。

· 組裝好全部電路后,眼睛作家的代碼已預備妥當,等待攝像機實時輸入。要從演示視頻模式切換回實時圖像模式,打開“apps/eyewriter-xxxxxxx/eyeWriterTracker/bin/data/Settings/inputSettings.xml”,將mode tag選項從1改為0。
· 打開“apps/eyewriter-xxxxxxx/eyeWriterTracker/RemoteEyeTracker.xcodeprof”文件,運行源代碼,跟蹤調(diào)試畫面應該顯示PS的攝像頭拍攝的畫面。
步驟12:制作木頭底座

在這一步,我們討論如何做一個便攜木制底座。做這個蠻有趣的,做出來的硬件系統(tǒng)因此就有個穩(wěn)固外殼可以放置其中,便于測試、調(diào)整及和眼睛作家軟件聯(lián)動。
下面列出底座所需材料零件;
· 兩根約20英寸長5/16木棒。(A)
· 2根約1.5英寸長5/16木棒。(D)
· 1塊20 x 4 x 0.5英寸大小木塊。(B)
· 3塊3 x 1.75 x 1.75英寸木塊。(C)
· 和木棒直徑相若的鉆頭。
· 第一步: 用圖中零件中的第三塊C部件調(diào)整另外兩塊C部件,用臺鉗夾住它們,在離邊緣約0.75英寸處鉆穿它們。

· 第二步: 用兩個已經(jīng)鉆好相同洞眼的C部件,將它們放在B部件的邊緣,將調(diào)整處夾緊,在B部件長鉆進約1.5英寸深。將短木棒插進B部件邊緣的洞眼,穿過C部件的洞眼。

· 第三步:
鉆出一個適合三腳架快裝板固定螺絲的洞眼。

· 第四步:
在底座(B)和邊緣部件(C)安裝好后,將木棒(A)插入洞眼,用底座邊長調(diào)整尺寸。

步驟13:使用眼睛作家軟件——安裝及調(diào)試屏幕

這里我們?yōu)槟憬榻B眼睛作家這款軟件,以便你能安裝它。
· 選擇右面計算機視角面板(CV)第一排的對焦選項以調(diào)節(jié)攝像頭焦距。旋轉(zhuǎn)攝像頭鏡頭,直到圖像變得清晰,接著取消選單返回調(diào)試畫面。

· 選擇右面板第一排的載入視頻設(shè)置。 
PS3攝像頭的設(shè)置:
一般來說,你希望有明亮、平衡的圖像,噪點越少越好。在網(wǎng)絡(luò)攝像頭選項中,調(diào)節(jié)增益和快門選項,直到圖像變得理想。
· 在壓縮選項中,如果你用的計算機速度較快,那就設(shè)置每秒幀數(shù)為30,慢的話就調(diào)到15。
步驟14:用眼睛作家進行屏幕定位
在這步中完成屏幕校正。
· 按下空格鍵出現(xiàn)指引提示,在按下空格鍵開始。當紅點出現(xiàn)時,盯著看吧。

· 在校正后,藍線顯示所有校正誤差范圍。當出現(xiàn)長條藍線時,按下空格鍵重設(shè)校正步驟。
步驟15:用眼睛作家玩抓人游戲

· 盯著“抓我吧”方塊,方塊的顏色將轉(zhuǎn)為綠色。
· 當方塊完全綠色時,意味著捕捉到了,接著它會出現(xiàn)在別的地方。不斷抓取方塊,這用來測試校正視線追蹤功能。
步驟16:使用眼睛作家作畫
字母作畫
· 在你開始作畫前,繪圖模式默認為暫停狀態(tài)。你能調(diào)節(jié)是否使用背景網(wǎng)格。背景網(wǎng)格在暫停時可隨時調(diào)出。
· 盯住暫停按鈕切換到錄制模式以開始繪圖。當你盯住它的時候,按鈕會轉(zhuǎn)為綠色,就切換為錄制模式。
· 繪圖模式使用向量點。盯住畫布某個地方大約一秒鐘,畫一個節(jié)點。綠色的眼球跟蹤圓圈需要停留一會來定點。
· 當你增加節(jié)點時,它們之間就畫上連接。以此,你能畫出不同形狀和字母。新開一條線的話,只需盯住下一筆這個按鈕。
· 要修改你畫的東西,可選擇撤銷節(jié)點,以將上一點移除,或選擇撤銷筆畫,就能將上一筆畫全部去除。
· 要儲存現(xiàn)有形狀或字母,畫一個新的,就盯住下一個字母這個按鈕。剛剛畫好的字母會出現(xiàn)在屏幕上方,一張新畫布等待著你畫新的字母上去。
· 當你完成形狀和字母繪圖時,盯住下個模式,切換到放置模式。
放置模式
· 默認情況下,你畫的所有字母都會用作放置用途。盯住選擇字母按鈕,以選擇特定的一個。
· 選擇旋轉(zhuǎn)按鈕,將你選擇的圖像右轉(zhuǎn)(順時針)或左轉(zhuǎn)(逆時針)。
· 選擇位移,可將你選擇的圖像上下左右移動。
· 選擇縮放,可將你選擇的圖像放大縮小。
· 自動放置則按照你繪圖的順序依次放置你畫的字母。
· 當你完成放置圖形和字母后,盯住下個模式切換到效果渲染模式。
步驟17:使用眼睛作家軟件打字

· 你想按哪個鍵,就盯著哪個鍵。當你盯著的時候,按鍵的顏色變?yōu)榫G色然后閃為藍色。
· 字母鍵閃為藍色后,就等于被按下了。在屏幕上方,你能看到你打了什么字。
· 按下屏幕左下方的SPEAK鍵將說出你打的詞匯。切換語音朗讀開關(guān)在屏幕的中間偏右,在你輸入詞匯并按下空格鍵后將自動閱讀。
· 注意屏幕右下方的大寫開關(guān)。在輸入數(shù)字及特殊字符,例如“!@#$%”等需要手動切換。
步驟18:用眼睛作家玩打乒乓游戲
· 阻擋小球通過屏幕下方你的球拍光標。
· 球拍會滑向你目光移動到的X坐標。因此當你盯住移動小球時,球拍也隨之橫向移動。






