摘 要: 設(shè)計(jì)了一款基于集條形碼技術(shù)、嵌入式系統(tǒng)及語(yǔ)音芯片技術(shù)于一體、結(jié)構(gòu)緊湊、操作簡(jiǎn)單方便的盲人撲克游戲輔助儀。該裝置設(shè)計(jì)了常見(jiàn)的撲克游戲程序,使用者可根據(jù)興趣方便地選擇游戲種類。其主要特點(diǎn)是利用語(yǔ)音技術(shù)能夠?qū)崟r(shí)播報(bào)其他人的出牌信息并可根據(jù)需要耳機(jī)播報(bào)本人手中牌的信息,讓盲人用“聽(tīng)”牌代替了“摸”牌,使盲人以及不懂盲文的低視力人群能像正常人一樣打撲克、玩橋牌等,克服了現(xiàn)有低視力群體打牌游戲中常見(jiàn)的問(wèn)題,如盲文識(shí)別錯(cuò)誤等。
關(guān)鍵詞: 盲人;撲克游戲;紅外掃描儀;WT588D語(yǔ)音模塊;STC89C52單片機(jī)
0 引言
盲人在我國(guó)是一個(gè)龐大的弱勢(shì)群體,他們也和正常人一樣需要豐富多彩的業(yè)余生活。中國(guó)特色的盲人撲克游戲就是一種在盲人群體中很流行的娛樂(lè)活動(dòng)。特別是近年來(lái)各省市還舉辦了很多別開(kāi)生面的盲人撲克大賽。盲人玩撲克是通過(guò)手摸撲克牌背面拓有的盲文識(shí)別牌的大小和花色,所以懂盲文的盲人常聚在一起,就能玩“跑得快”、“斗地主”、“80分”等撲克游戲。但目前盲人玩撲克仍然需要三方面的配合:(1)識(shí)別牌,需靠手摸紙牌上的盲文;(2)捋牌,需要心記自己手中每張牌的大小和握在手中的位置;(3)出牌,需要耳聽(tīng)別人打牌時(shí)所報(bào)的牌的大小和花色。這種配合存在很多問(wèn)題:(1)不懂盲文的朋友,撲克游戲無(wú)法進(jìn)行;(2)懂盲文的盲人也可能會(huì)摸錯(cuò)盲文,繼而報(bào)錯(cuò)牌;(3)撲克游戲中,因?yàn)槊と丝床灰?jiàn),只能聽(tīng)牌,特別在盲人撲克比賽中,無(wú)法監(jiān)督作弊行為,就會(huì)影響撲克比賽的公平性;(4)盲人為了打出一張合適的牌,需要回想自己手中每張牌的大小、花色和握在手中的位置,還要手摸牌上的盲文來(lái)進(jìn)一步確認(rèn)是否正確,出牌速度慢。該盲人撲克游戲輔助儀,是克服了目前打牌游戲中存在的種種不足而提出的一種游戲輔助裝置。
1 系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)框圖
盲人撲克游戲輔助儀系統(tǒng)主要包括兩部分,如圖1所示。虛線右側(cè)是盲人撲克游戲輔助儀部分,主要由條形碼掃描模塊、STC89C52單片機(jī)控制器和WT588D語(yǔ)音模塊組成。STC89C52常用于系統(tǒng)控制裝置中[1-2],WT588D常用于語(yǔ)音播報(bào)系統(tǒng)的設(shè)計(jì)[3]。虛線左側(cè)是貼有條形碼的盲人撲克牌部分。撲克牌上的條形碼與牌的花色、大小一一對(duì)應(yīng)。在條形碼掃描模塊掃過(guò)牌上的條碼后進(jìn)行如下步驟:(1)在默認(rèn)揚(yáng)聲器模式下,將條碼信息發(fā)送給STC89C52單片機(jī)控制器,控制器結(jié)合發(fā)來(lái)的條碼信息,發(fā)送相應(yīng)的指令控制WT588D語(yǔ)音模塊,將相應(yīng)的語(yǔ)音信號(hào)在控制器選通繼電器的同時(shí)傳送到音頻放大器,音頻放大器將放大后的語(yǔ)音信號(hào)再輸送到揚(yáng)聲器,以完成牌的內(nèi)容、確認(rèn)打牌完畢以及悔牌等功能的語(yǔ)音播報(bào)。(2)在耳機(jī)選通模式下,語(yǔ)音信號(hào)無(wú)需經(jīng)過(guò)音頻放大器,而是在控制器選通繼電器的情況下直接將語(yǔ)音信號(hào)傳輸給耳機(jī)。這樣使盲人用“聽(tīng)”牌代替了“摸”牌,從而簡(jiǎn)化了低視力群體的打牌難度,豐富了他們的業(yè)余生活。圖1中的主按鍵用來(lái)選擇語(yǔ)言模式和游戲模式等功能;耳機(jī)選通按鍵用來(lái)實(shí)現(xiàn)不懂盲文的盲人戴上耳機(jī),以獲取自己手中牌的隱私信息。
2 條形碼盲文撲克牌設(shè)計(jì)
廣泛應(yīng)用的CoreLDRAW軟件自帶了一個(gè)專門(mén)制作條形碼的工具。本系統(tǒng)采用的是Code128標(biāo)準(zhǔn)的兩位字符的條形碼(也可以采用其他標(biāo)準(zhǔn))[4],第1位字符標(biāo)識(shí)對(duì)應(yīng)紙牌的大小,第2位字符標(biāo)識(shí)對(duì)應(yīng)紙牌的花色。用該軟件所制作的帶有條形碼的撲克牌如圖2所示。
每個(gè)條形碼唯一標(biāo)識(shí)了每張紙牌的信息。為了提高掃描的靈敏度,方便盲人操作,將條形碼做成兩個(gè)并令其相互垂直,其上方有“JIANGNAN UNIVERSITY”、下方有“江南大學(xué)”的字樣,其右方有顯示該條碼對(duì)應(yīng)的撲克大小及花色的字符組合(如J3:“J”代表鉤,“3”代表梅花),控制器接收到條形碼掃描模塊發(fā)來(lái)的紙牌信息后,通過(guò)程序控制,可實(shí)現(xiàn)從條形碼中截取這兩位信息,并分析處理,提取“J”和“3”。
3 輔助儀內(nèi)部硬件設(shè)計(jì)
3.1 按鍵、開(kāi)關(guān)接口設(shè)計(jì)
主按鍵依次與控制器引腳相連;耳機(jī)選通按鍵依次與控制器引腳相連。按鍵采用查詢方式,控制程序?qū)崟r(shí)檢測(cè)每個(gè)按鍵的狀態(tài),以實(shí)現(xiàn)不同的功能。這里特別強(qiáng)調(diào),選通耳機(jī)是為了確認(rèn)自己手中的牌,具有隱私性,所以參與玩牌的每個(gè)人都有一個(gè)耳機(jī)選通按鍵,該按鍵具有互斥性,即一個(gè)人選通耳機(jī)按鍵時(shí),其他耳機(jī)的選通按鍵無(wú)效。
3.2 條形碼掃描模塊接口設(shè)計(jì)
條形碼掃描模塊的接口標(biāo)準(zhǔn)為PS/2,其中CLK引腳與控制器P32中斷引腳INT0相連,條碼掃描采用中斷方式。DATA引腳與控制器P33數(shù)據(jù)引腳SDA相連,控制器隨時(shí)準(zhǔn)備接收條形碼掃描模塊以中斷方式發(fā)來(lái)的條形碼信息。
3.3 語(yǔ)音模塊設(shè)計(jì)及其工作原理簡(jiǎn)述
WT588D語(yǔ)音芯片是一款功能強(qiáng)大的可重復(fù)擦除燒寫(xiě)的高度集成的語(yǔ)音單片機(jī)芯片[3]。配套WT588D VoiceChip上位機(jī)操作軟件可隨意更換WT588D語(yǔ)音單片機(jī)芯片的任何一種控制模式,把信息下載到SPI-Flash上即可。為此本系統(tǒng)選用的語(yǔ)音模塊型號(hào)即為WT588D。WT588D共有220個(gè)語(yǔ)音地址,每個(gè)地址里最多可以組合85段語(yǔ)音,也可以在某語(yǔ)音段之間插入靜音(延遲時(shí)間)。多個(gè)地址調(diào)用同一個(gè)語(yǔ)音,以及插入靜音都不占用存儲(chǔ)器空間,只有音頻裝載區(qū)的語(yǔ)音數(shù)據(jù)才占用存儲(chǔ)器的空間。語(yǔ)音芯片與STC89C52單片機(jī)控制器之間為三線串口連接方式,主要使用了其中的6個(gè)引腳:VCC、GND、P01、P02、P03、DAC。P03作為時(shí)鐘CLK引腳與STC89C52的P22引腳相連,P02作為片選CS引腳與STC89C52的P21引腳相連,P01作為串行數(shù)據(jù)SDA引腳與STC89C52的P20引腳相連。DAC為語(yǔ)音播報(bào)的語(yǔ)音信號(hào)接口。語(yǔ)音可以用“朗讀女”軟件制作,也可以人工錄制(實(shí)驗(yàn)證明人工錄制效果更好些)。利用與WT588D配套的開(kāi)發(fā)軟件VoiceChip(語(yǔ)音芯片公司提供),可將制作好的WAV格式的語(yǔ)音下載到語(yǔ)音芯片。圖3為本系統(tǒng)軟件組合語(yǔ)音的一個(gè)截圖。
圖3上半部是VoiceChip軟件編輯界面的語(yǔ)音裝載區(qū),下半部是語(yǔ)音編輯區(qū)。先將所有游戲中可能用到的語(yǔ)音裝載在裝載區(qū),再在編輯區(qū)的“地址序號(hào)”處順序選定一個(gè)地址,然后把語(yǔ)音裝載區(qū)的語(yǔ)音按需要拖曳過(guò)來(lái),這些被選定的地址就存有相應(yīng)的語(yǔ)音。例如在地址0bH里拖曳入撲克牌中的“J-鉤”,這樣在觸發(fā)0bH地址的時(shí)候就能播放“J-鉤”的語(yǔ)音。STC89C52所觸發(fā)的單個(gè)地址,就是STC89C52以三線串口方式向語(yǔ)音芯片發(fā)送的指令代碼,WT588D按照該指令代碼就能按照已組合好的順序播放不同的語(yǔ)音。
3.4 繼電器接口設(shè)計(jì)
本系統(tǒng)用了5個(gè)電磁繼電器,分別控制1個(gè)揚(yáng)聲器模式和4個(gè)耳機(jī)模式的選通。繼電器模塊引腳均與語(yǔ)音芯片的語(yǔ)音信號(hào)接口DAC引腳相連,其選通端IN1~IN5分別與STC89C52的引腳相連。STC89C52通過(guò)對(duì)各個(gè)繼電器選通端的控制,將來(lái)自語(yǔ)音模塊的語(yǔ)音信號(hào)分別傳輸給揚(yáng)聲器和耳機(jī)。
3.5 音頻放大器及繼電器控制電路的設(shè)計(jì)
揚(yáng)聲器音頻放大電路是放大從語(yǔ)音模塊傳來(lái)的語(yǔ)音信號(hào),它的輸入端與語(yǔ)音芯片的語(yǔ)音引腳DAC相連,DAC輸出外接音頻功放,音質(zhì)好。本系統(tǒng)采用的音頻功放使用的運(yùn)算放大器型號(hào)為L(zhǎng)M386。放大以后的信號(hào)通過(guò)選通繼電器模塊,將來(lái)自語(yǔ)音模塊的聲源信號(hào)傳輸給揚(yáng)聲器,如圖4所示。IN1端為繼電器的選通端,連接著控制器的P23引腳,控制器通過(guò)對(duì)該繼電器DJ1選通端的控制,將來(lái)自語(yǔ)音模塊的聲源信號(hào)分別傳輸給揚(yáng)聲器。其他電磁繼電器模塊控制耳機(jī)插孔選通的電路圖與本繼電器的控制電路類似,不再贅述。
4 系統(tǒng)軟件總體流程圖
系統(tǒng)軟件總體流程圖如圖5所示。游戲模式選擇可以根據(jù)軟件的不同有多種選擇,這里只羅列了其中常用的“跑得快”、“斗地主”、“五十K”3種。
5 結(jié)論
本系統(tǒng)采用了廣泛應(yīng)用且售價(jià)低廉的STC89C52單片機(jī)控制器、唯創(chuàng)WT588D語(yǔ)音模塊和條形碼激光掃描模塊以及自制的PCB板和貼有自制專用條形碼的盲人撲克紙牌;考慮到盲人的不便,各個(gè)不同功能的按鍵形狀、大小均不同,方便盲人識(shí)別;輔助儀掃描區(qū)域?yàn)閽呙璋疾凵戏?~10 cm,掃描范圍大,方便盲人掃牌。該輔助儀實(shí)現(xiàn)了:(1)在游戲過(guò)程中通過(guò)耳機(jī)播報(bào)牌的內(nèi)容來(lái)獲取自己手中牌的信息,使不懂盲文的盲人朋友也能像懂盲文的盲人一樣方便打牌;(2)用客觀的“播報(bào)”牌代替了“摸”牌出牌,不存在虛報(bào)牌的可能性;(3)出牌速度加快和報(bào)牌的無(wú)誤性,明顯提高了紙牌游戲的進(jìn)行速度;(4)在比賽過(guò)程中,能很好地代替裁判工作,更能體現(xiàn)比賽的公平性;(5)操作過(guò)程簡(jiǎn)單易學(xué),普通盲人經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí)即可參與游戲;(6)掃描區(qū)域刻有凹痕標(biāo)記,方便盲人掃牌;(7)支持三種語(yǔ)言,通過(guò)下載軟件可支持多種游戲,滿足不同用戶的需求;(8)有軟件檢測(cè)重牌和報(bào)警的功能,從根本上杜絕作弊行為的發(fā)生;(9)對(duì)紙牌要求低,只要普通盲文撲克貼上自制條形碼即可使用;(10)體積小巧,普通適配器和移動(dòng)電源都可為其供電,尤其滿足戶外的需求。
參考文獻(xiàn)
[1] 周鵬.基于STC89C52單片機(jī)的多功能測(cè)溫儀設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2013,32(1):26-29.
[2] 朱利洋,吳夏來(lái),胡葉民.基于單片機(jī)的門(mén)控系統(tǒng)硬件設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2013,32(2):16-18.
[3] 王春武,劉春玲,秦政坤,等.基于WT588D模塊的語(yǔ)音播報(bào)系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2012,38(1):115-121.
[4] 劉志海.條形碼技術(shù)與程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010.