劉剛
摘 要:多數(shù)機(jī)頂盒上只提供上下左右的滑動(dòng)方式在不同選項(xiàng)之間選擇,而設(shè)計(jì)優(yōu)化了一種新的方式,該方式可以讓機(jī)頂盒的用戶做到定點(diǎn)選擇該方式是利用一種多功能觸屏遙控器實(shí)現(xiàn)的遙控器內(nèi)部由單片機(jī)做主控芯片,采集觸摸屏的數(shù)據(jù)并判斷用戶操作的當(dāng)前狀態(tài),如果是滑動(dòng)操作再由量化算法計(jì)算出移動(dòng)距離的量化結(jié)果$最后,自定義一種紅外協(xié)議,將數(shù)據(jù)通過這種紅外協(xié)議發(fā)送給機(jī)頂盒,以達(dá)到控制機(jī)頂盒的目的$實(shí)驗(yàn)結(jié)果表明遙控器的平均正確操作率在95%以上,而且定位精度和有線鼠標(biāo)接近,易操作性良好。
關(guān)鍵詞:觸摸屏遙控器;鼠標(biāo)模式;機(jī)頂盒控制;紅外協(xié)議
一、鼠標(biāo)模式硬件平臺
本文設(shè)計(jì)的觸摸屏遙控器是全觸屏控制鼠標(biāo),就像便攜式計(jì)算機(jī)的觸摸板,控制方便,具有諸多優(yōu)點(diǎn):
(一)由單片機(jī)開發(fā),成本更低廉;
(二)手掌大小的而積,產(chǎn)品更輕便;
(三)鼠標(biāo)模式只有4個(gè)功能觸摸鍵和兩個(gè)操作區(qū),更易學(xué)易用;
(四)功能由軟件編程實(shí)現(xiàn),可重開發(fā);
(五)角蟲摸屏可印刷,可定制;
(六)充電式電池供電,環(huán)保省電,使用成本低。控制器采用HAV 1007型號單片機(jī),此款單片機(jī)集成C* Core和觸控芯片于一身,可以直接連接觸摸屏,是一款專門為觸屏設(shè)備設(shè)計(jì)的功能強(qiáng)大的單片機(jī)。
二、鼠標(biāo)模式軟件設(shè)計(jì)
整個(gè)鼠標(biāo)的實(shí)現(xiàn)可以分為3個(gè)步驟:采點(diǎn)處理,狀態(tài)機(jī),紅外發(fā)送。3個(gè)模塊分3個(gè)函數(shù)模塊,其中以狀態(tài)機(jī)為主體函數(shù),完成操作判斷和作出回應(yīng)。由于機(jī)頂盒多是采用NEC紅外協(xié)議,所以紅外發(fā)送模塊也采用NEC紅外協(xié)議,以便和機(jī)頂盒對接。
(一)采點(diǎn)處理
采點(diǎn)處理的緩沖器是專門為了配合觸屏遙控器而設(shè)計(jì)的。采用定長數(shù)組循環(huán)存放信息,這樣可以節(jié)約單片機(jī)內(nèi)存。采點(diǎn)處理過程把一個(gè)定長的數(shù)組作為緩沖器,記錄坐標(biāo)信息有效點(diǎn)個(gè)數(shù)和總點(diǎn)的個(gè)數(shù)并標(biāo)記當(dāng)前點(diǎn)是否有效。這里的無效點(diǎn)是指第一次操作之后,等待是否有第二次操作時(shí)的(0}0)點(diǎn)。為了便于統(tǒng)一管理,不存放無效點(diǎn)坐標(biāo)信息,而將無效點(diǎn)的個(gè)數(shù)存放在二坐標(biāo)的位置,無效點(diǎn)后接有效點(diǎn)標(biāo)志存放在J坐標(biāo)的位置。這樣也節(jié)省了存儲空間。此外,標(biāo)記信息也能起到計(jì)數(shù)的作用。每一個(gè)坐標(biāo)的標(biāo)記信息都是16位長的數(shù),用32 768 (215,是16位二進(jìn)制數(shù)可表示范圍的一半)以上的數(shù)字表示有效點(diǎn)標(biāo)志,以下的數(shù)字表示無效點(diǎn)標(biāo)志。采集到新點(diǎn)時(shí)從0或32 768開始加1記錄標(biāo)志信息。經(jīng)過對點(diǎn)的標(biāo)識、分類等預(yù)處理后放入緩沖器。連續(xù)的采點(diǎn)將循環(huán)的存儲在緩沖器當(dāng)中,以這樣邊采點(diǎn)邊由其他模塊讀取點(diǎn)信息的方式,完成采點(diǎn)處理的操作。
(二)滑動(dòng)判斷方法
滑動(dòng)判斷的方法較簡單。滑動(dòng)判斷模塊的判斷方法是根據(jù)連續(xù)有效觸摸點(diǎn)的距離差是否大于滑動(dòng)判斷閡值,大于該閡值則有滑動(dòng)發(fā)生,否則沒有滑動(dòng)發(fā)生?;瑒?dòng)判斷閡值是通過輸入變量傳給滑動(dòng)判斷函數(shù)的,所以怎樣才算是滑動(dòng)不是滑動(dòng)判斷模塊決定,而是在狀態(tài)機(jī)調(diào)用滑動(dòng)判斷函數(shù)時(shí),由狀態(tài)機(jī)的當(dāng)前狀態(tài)決定的。主要有觸摸態(tài)(CJ)和滑動(dòng)態(tài)(C_ DM)等調(diào)用。如果是觸摸態(tài)調(diào)用,滑動(dòng)判斷閡值的設(shè)定是為了區(qū)分下一個(gè)狀態(tài)是滑動(dòng)態(tài)還是長按態(tài);如果是滑動(dòng)態(tài),滑動(dòng)判斷閡值的設(shè)定是為了良好的用戶體驗(yàn)。閡值具體的大小要通過多人多次實(shí)驗(yàn)得出。這樣的滑動(dòng)判斷函數(shù)不僅滿足了狀態(tài)機(jī)不同狀態(tài)的需求,而且符合大多數(shù)人的使用習(xí)慣,具有普適性。
(三)鼠標(biāo)量化算法
鼠標(biāo)量化就是將用戶手指在遙控器上滑動(dòng)的速度和距離用合適的數(shù)據(jù)表示出來;即屏幕鼠標(biāo)指針移動(dòng)的方向和距離是由遙控器觸摸屏采集點(diǎn)的變化量和變化速度決定的。 適合人手的遙控器的體積較小,因此,用戶在控制鼠標(biāo)慢滑的時(shí)候,滑動(dòng)判斷模塊判斷出的每一次滑動(dòng)的坐標(biāo)變化量和觸摸屏上的移動(dòng)速度和距離并沒有明顯的關(guān)系,利用距離不能有效區(qū)分鼠標(biāo)指針應(yīng)有的移動(dòng)距離。但是,采集到點(diǎn)的數(shù)目卻和移動(dòng)速度和距離有關(guān)系。因此,鼠標(biāo)量化可分作兩部分理解:慢滑時(shí)根據(jù)滑動(dòng)判斷模塊判斷出一次滑動(dòng)時(shí)的總坐標(biāo)點(diǎn)數(shù)量化出鼠標(biāo)指針的移動(dòng)距離;快滑時(shí)再根據(jù)滑動(dòng)距離量化出屏幕鼠標(biāo)指針移動(dòng)距離。雖然鼠標(biāo)量化分為快滑和慢滑,卻可以用一個(gè)公式表示單方向的移動(dòng)量。
(四)紅外協(xié)議
紅外發(fā)送模塊發(fā)送的數(shù)據(jù)包括兩個(gè)16位二進(jìn)制數(shù)。如果是確定、返回或者開關(guān)機(jī)或者翻頁的鍵值,則發(fā)送的兩個(gè)16位二進(jìn)制數(shù)一個(gè)是固定的系統(tǒng)碼,一個(gè)是鍵值。機(jī)頂盒收到對應(yīng)鍵值就給出回應(yīng)。如果是滑動(dòng)的量化結(jié)果,則一個(gè)表示橫軸移動(dòng)量,一個(gè)表示縱軸移動(dòng)量。兩軸移動(dòng)量配合得出屏幕鼠標(biāo)指針的平而移動(dòng)方向和距離。將鍵值或滑動(dòng)的量化結(jié)果通過紅外模塊發(fā)送給機(jī)頂盒,則機(jī)頂盒就根據(jù)接收的數(shù)據(jù)作出回應(yīng)。這樣就形成了遙控器鼠標(biāo)模式的一組紅外協(xié)議。
三、結(jié)語
無線紅外協(xié)議的數(shù)據(jù)傳輸速率較慢回,但在機(jī)頂盒遙控器上實(shí)現(xiàn)的鼠標(biāo)模式用紅外傳輸數(shù)據(jù)還是取得了較好的結(jié)果。以后,智能機(jī)頂盒和網(wǎng)絡(luò)機(jī)頂盒的普及率會越來越高,遙控器也會越來越多,利用遙控器實(shí)現(xiàn)鼠標(biāo)模式也會與時(shí)俱進(jìn),更加增大人們生活的便捷。另外,遙控器的用戶體驗(yàn)和操作的成功率和觸摸屏的靈敏度有直接關(guān)系,也和操作區(qū)域和觸摸功能的大小有一定關(guān)系。
參考文獻(xiàn):
[1]劉莎莎,張哲. 基于Android平臺的鼠標(biāo)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子器件,2012,01:79-82.
[2]吳廷玉,李雄. 鼠標(biāo)的人機(jī)工學(xué)設(shè)計(jì)分析[J]. 科學(xué)之友,2012,05:11-12.