中國(guó)電信股份有限公司廣東研究院 賴琮霖 黃慶濤
當(dāng)代,全球進(jìn)入了數(shù)字智能時(shí)代,人類與機(jī)器的交互變得越來(lái)越緊密頻繁,人機(jī)交互技術(shù)正向擬人化、智能化、實(shí)體化、自然化方向發(fā)展[1-2]。其中,用戶體驗(yàn)是人機(jī)交互產(chǎn)品設(shè)計(jì)的重要因素[3],好的用戶體驗(yàn)除了滿足用戶的功能性需求外,還要重視其享樂(lè)心理需求,簡(jiǎn)潔優(yōu)雅但又不失驚喜,提升用戶感官體驗(yàn)。傳統(tǒng)的觸摸式交互,例如鍵盤(pán)、鼠標(biāo)、手柄等,已較難進(jìn)一步提升用戶體驗(yàn)。鑒于此,本文設(shè)計(jì)一種無(wú)觸摸式的人機(jī)交互產(chǎn)品,基于超聲波與激光物理媒介,利用Arduino處理器與上位機(jī)通信。用戶只要輕觸光束,便實(shí)現(xiàn)人—光/聲—電—機(jī)的快速聯(lián)系,具有低成本、響應(yīng)快、部署便捷等優(yōu)點(diǎn),為用戶帶來(lái)不一樣的交互體驗(yàn)。
總體設(shè)計(jì)有兩種模式,模式1將用戶是否遮擋光線的動(dòng)作視作“1”,“0”狀態(tài)。模式2在模式1的基礎(chǔ)上增加了遮擋位置的識(shí)別,進(jìn)一步擴(kuò)展了可識(shí)別的操作范圍,從而提升了產(chǎn)品的工作能力。產(chǎn)品硬件部分可分為激光發(fā)射模塊、激光接收識(shí)別模塊、超聲波測(cè)距模塊、音頻播放模塊、微控制器模塊。整機(jī)以5V電源適配器供電,微控制器選用Arduino,光源選用6個(gè)300mw綠色激光管,利用uLn2003進(jìn)行激光管驅(qū)動(dòng)。接收部分利用光敏電阻串入LM324電壓比較器,與基準(zhǔn)電壓2V作比較實(shí)現(xiàn)光-電轉(zhuǎn)換。6路比較器結(jié)果經(jīng)過(guò)74148編碼后送至控制器,以此節(jié)約控制器的引腳資源??刂破髟谀J?開(kāi)關(guān)模式下,直接進(jìn)行下一步控制。在模式2,控制器會(huì)先觸發(fā)超聲波測(cè)距模塊計(jì)算遮光處垂直距離,將垂直距離分成3段,其結(jié)果返回Arduino后通過(guò)USB串口控制上位機(jī),并選擇事先存儲(chǔ)在SD卡內(nèi)不同音調(diào)和音色的音頻。外部開(kāi)關(guān)可選擇不同樂(lè)器,鋼琴音、小提琴音和豎琴音。水平面從左到右依次do re mi fa so la,垂直面低位表示低八度,中位正常音,高位表示高8度。選出的音頻經(jīng)過(guò)74595并串轉(zhuǎn)換和D/A數(shù)模轉(zhuǎn)換器送到喇叭放音。產(chǎn)品框架長(zhǎng)寬高分別為80cm,40cm,50cm(見(jiàn)圖1)。
Arduino UNO是一款便捷靈活、跨平臺(tái)、開(kāi)放性的微處理器,包含32KB的Flash Memory,2KB的SRAM,1KB的EEPROM,支持USB與上位機(jī)通信,封裝了底層硬件驅(qū)動(dòng),支持14個(gè)數(shù)字引腳和6個(gè)模擬引腳,16MHz的晶振頻率。利用Arduino IDE進(jìn)行編程操作簡(jiǎn)單,功能強(qiáng)大。缺點(diǎn)是晶振頻率不夠高,處理音頻較為吃力,并且管腳數(shù)不夠多。前者可以將音頻處理轉(zhuǎn)到硬件上實(shí)現(xiàn),后者則使用兩塊控制板解決,一塊控制激光發(fā)送,一塊控制激光接收(見(jiàn)圖2)。
圖1 產(chǎn)品框圖與功能邏輯圖
圖2 產(chǎn)品模塊圖
圖3 激光驅(qū)動(dòng)電路
LED與激光均可作為光源,在光源選擇上,LED節(jié)能省電,但其散射嚴(yán)重,手遮在光路上對(duì)光敏電阻沒(méi)有明顯效果。激光光路集中亮度高,當(dāng)光敏電阻受光照射,測(cè)試阻值為,無(wú)光照射時(shí)阻值,區(qū)分明顯,對(duì)光亮變化感應(yīng)靈敏。激光屬于大功能器件,為盡可能提高發(fā)射模塊性能,經(jīng)測(cè)試,每路激光需,當(dāng)電源為2.5V180mA時(shí)最亮,180mA*6為1080mA。為同時(shí)驅(qū)動(dòng)6路,需采用功率放大器件,本方案采用高壓大電流達(dá)林頓晶體管陣列電路,其集成芯片uLn2003A的特點(diǎn)是響應(yīng)快,可驅(qū)動(dòng)的功率高,適用本產(chǎn)品(見(jiàn)圖3)。
產(chǎn)品的光-電轉(zhuǎn)換能力靠光敏電阻實(shí)現(xiàn),接收面較小,一般的只有0.5cm。激光具有高度指向性,在發(fā)射端只要有一絲偏移,經(jīng)過(guò)一定距離后,都會(huì)產(chǎn)生較大的偏移。為解決該問(wèn)題,產(chǎn)品利用反光紙制成的接收模具使得激光就算不正對(duì)光敏電阻,也會(huì)在多次的反射后射到電阻產(chǎn)生作用,類似漏斗的原理。以一路接收為例,根據(jù)下圖組建電路,利用LM324電壓比較器將連續(xù)的電壓值轉(zhuǎn)化成高低電平,比較器的基準(zhǔn)電壓選用2V(取和作參考電阻)。接收電路使得當(dāng)有光直射R1時(shí),結(jié)果輸出高電平,反之輸出低電平。之后將6路輸出電壓利用74148進(jìn)行8-3編碼后送至接收控制器(見(jiàn)圖4)。
目前常用的測(cè)距方案有激光測(cè)距、紅外測(cè)距(GP2D12)和超聲波測(cè)距。激光測(cè)距精度高,反應(yīng)時(shí)間快,但對(duì)目標(biāo)顏色和角度敏感,器件價(jià)格高。紅外測(cè)距原理與激光測(cè)距了類似,其發(fā)出紅外光,對(duì)人體較為敏感,但其電壓精度與距離是非線性關(guān)系的,基本測(cè)距范圍在10cm到40cm之間,價(jià)格也較高。超聲波測(cè)距方案較為理想,超聲波發(fā)生裝置和接收裝置可集成到一塊器件上,通過(guò)計(jì)算超聲波的往返時(shí)間,可計(jì)算出距離。超聲波的指向性較強(qiáng),能耗較少,價(jià)格較低,故選用。
圖4 激光接收電路
圖5 超聲波測(cè)距模塊與接收控制板接線圖
Arduino UNO處理器有6個(gè)模擬輸入引腳,接受0-5V的電壓輸入,處理器會(huì)根據(jù)電壓值自動(dòng)做A/D轉(zhuǎn)換成0-1023之間的值。超聲波模塊選用4Pin反射型,其4個(gè)引腳分別是VCC、GND、Trig、Echo。當(dāng)Trig引腳收到一個(gè)大于10ms的高電頻信號(hào),則觸發(fā)8個(gè)超聲波,同時(shí)將Echo置高電平,當(dāng)超聲波接收器接收到8個(gè)超聲波后(見(jiàn)圖5),Echo立即變成低電平。Echo置成高電平的時(shí)間為,聲波速度以進(jìn)行計(jì)算,則聲波從發(fā)射到撞到物體的具體為:
SD卡在產(chǎn)品中用于存儲(chǔ)音頻文件,它可工作在SD模式和SPI模式,這里用SPI模式,與處理器進(jìn)行串行通信。Arduino代碼開(kāi)源,可直接調(diào)用函數(shù)SD.OPEN讀取SD卡,操作性好。音頻文件是WAV格式,以8bit的PCM編碼,可以用脈沖寬度調(diào)制(PWM)進(jìn)行解碼,但其對(duì)濾波電路和晶振要求高,噪聲較大,并且會(huì)占用一部分處理器的能力。而DAC0832硬件解碼方式不會(huì)長(zhǎng)時(shí)占用CPU,音頻的還原度較高,其缺點(diǎn)是I/O占用較多,但可利用74HC595串并轉(zhuǎn)換解決。DAC0832采用單緩沖工作方式,當(dāng)管腳獲得一個(gè)上升沿信號(hào),會(huì)自動(dòng)把數(shù)據(jù)轉(zhuǎn)換相應(yīng)的模擬電壓。但其內(nèi)部運(yùn)放的基準(zhǔn)電壓必須為負(fù),在單電源供電的前提下,需使用IC7660實(shí)現(xiàn)-5V供電(見(jiàn)圖6)。
圖6 SD卡模塊與74HC595串并轉(zhuǎn)換
圖7 產(chǎn)品實(shí)物圖
Arduino具有類Java/C的開(kāi)發(fā)環(huán)境,編寫(xiě)方便,結(jié)構(gòu)清晰。硬件程序利用Arduino IDE完成光線遮擋識(shí)別、距離計(jì)算、開(kāi)關(guān)控制、音頻選擇以及對(duì)上位機(jī)的控制。用Processing工具開(kāi)發(fā)上位機(jī)的應(yīng)用程序,例如貪吃色、推箱子、打磚頭等。
硬件程序通過(guò)持續(xù)監(jiān)聽(tīng)74148的輸出起到識(shí)別激光的遮擋情況的作用。當(dāng)?shù)趎路激光被用戶遮住,控制器會(huì)給超聲波trig管腳置10ms高電平,并開(kāi)始計(jì)時(shí),直到超聲波Echo管腳變成低電平為止。之后利用公式(1)計(jì)算遮住位置的垂直距離,根據(jù)高度歸類第m層。此外,外部開(kāi)關(guān)可選擇樂(lè)器種類。通過(guò)m,n和開(kāi)關(guān)可唯一確定SD內(nèi)的音頻,之后放音,同時(shí)對(duì)上位機(jī)進(jìn)行控制。動(dòng)作完成后繼續(xù)對(duì)輸入口進(jìn)行監(jiān)聽(tīng)。
將超聲波模塊記錄的Echo時(shí)長(zhǎng)值通過(guò)串口輸出至上位機(jī)測(cè)試查看,可在調(diào)整參數(shù)后對(duì)超聲波的使用性能進(jìn)行優(yōu)化。
圖8 硬件程序邏輯
產(chǎn)品設(shè)計(jì)了4種應(yīng)用程序,如圖9所示。其中4根光束可控制動(dòng)作,第6根光束可切換應(yīng)用。
圖9 產(chǎn)品應(yīng)用程序
由于篇幅原因,下面對(duì)“推箱子”的程序設(shè)計(jì)邏輯進(jìn)行描述。圖9(右下)的“笑臉”表示小人,“星星”表示物品,有“X”的正方形表示箱子,其他正方形表示墻壁。推箱子的原理是利用坐標(biāo)關(guān)系,游戲中的每個(gè)元素都有坐標(biāo)。游戲通過(guò)坐標(biāo)的加減乘除來(lái)執(zhí)行和識(shí)別動(dòng)作規(guī)則。小人的動(dòng)作只有“上下左右”,游戲的約束條件是碰到墻壁不能往前推,因此要對(duì)小人的動(dòng)作和箱子墻壁的相對(duì)位置進(jìn)行判斷,而成功條件是物品和箱子坐標(biāo)重合。當(dāng)所有物品都被箱子蓋住的時(shí)候,則通往下一關(guān)。每一關(guān)的原理都相同,僅僅初始參數(shù)設(shè)置不同,這里不再詳述。
圖10 “推箱子”應(yīng)用邏輯
本文設(shè)計(jì)的無(wú)觸摸式人機(jī)交互產(chǎn)品具有交互體驗(yàn)好,控制靈活,擴(kuò)展性強(qiáng),成本低等優(yōu)點(diǎn)。當(dāng)前大多激光類產(chǎn)品還處于“光效”應(yīng)用,僅利用光束應(yīng)用感時(shí)尚前衛(wèi)的特點(diǎn)提升產(chǎn)品視覺(jué)效果。而光作為未來(lái)趨勢(shì)的一種通信方式,具有速度快,干擾小等特點(diǎn),除了視覺(jué)效果提升外,產(chǎn)品還利用激光實(shí)現(xiàn)兩板間無(wú)觸摸式的信息交互,使其脫離了傳統(tǒng)觸摸式的物理?xiàng)l件限制。本設(shè)計(jì)產(chǎn)品的應(yīng)用領(lǐng)域可包含娛樂(lè)、工業(yè)控制、辦公等等,在未來(lái)的數(shù)字城市中,新型人機(jī)交互產(chǎn)品會(huì)給人們帶來(lái)更炫酷的生活體驗(yàn)。
[1]趙永惠.人機(jī)交互研究綜述[J].信息與電腦,2017(23):24-25.
[2]周彥鵬.數(shù)字媒體時(shí)代多媒體終端的人機(jī)交互方式新發(fā)展[J].大眾文藝,2017(8):272.
[3]丁一,郭伏,胡名彩,等.用戶體驗(yàn)國(guó)內(nèi)外研究綜述[J].工業(yè)工程與管理,2014(4):92-97.
[4]童詩(shī)白,華成英.模擬電子線路基礎(chǔ)[M].高等教育出版社,2006.
[5]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].高等教育出版社,1997.
[6]孫駿榮,吳明展.Arduino一試就上手[M].科學(xué)出版社,2012.
[7]O’Reilly.愛(ài)上制作6[M].人民郵電出版社,2010.
[8]譚亮.Processing互動(dòng)編程技術(shù)[M].電子工業(yè)出版社,2011.