朱慧媛 房云龍 趙順 吳旭東 高夢(mèng)婷
摘 ?要:該設(shè)備是基于單片機(jī)和Android的一款輔助盲人使用智能手機(jī)的設(shè)備,硬件端通過藍(lán)牙模塊接收Android APP發(fā)送過來的信息,通過盲文轉(zhuǎn)譯系統(tǒng)轉(zhuǎn)譯成特定的編碼,進(jìn)而控制微電機(jī)運(yùn)動(dòng),推動(dòng)頂針,顯示盲人可以識(shí)別的盲文。盲人端Android APP除了可以將短消息轉(zhuǎn)換為盲文外,還可以將盲人語音轉(zhuǎn)換為文字發(fā)送到硬件端顯示,還具有短消息讀出、求助等功能。該設(shè)備可以幫助盲人使用智能手機(jī),讓盲人融入移動(dòng)互聯(lián)網(wǎng)時(shí)代。
關(guān)鍵詞:盲人;藍(lán)牙通信;人機(jī)交互
中圖分類號(hào):TN912.34 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)21-0152-04
Design of Auxiliary Interactive Equipment for Blind Use Smart Phone
ZHU Huiyuan,F(xiàn)ANG Yunlong,ZHAO Shun,WU Xudong,GAO Mengting
(Suzhou Vocational University,Suzhou ?215104,China)
Abstract:The device is a device based on MCU and Android to assist the blind to use smart phones. The hardware terminal receives the information sent by Android APP through Bluetooth module,and translates it into a specific code through Braille translation system,so as to control the movement of the micro-motor,push the thimble,and display the Braille that the blind can recognize. Android APP for the blind can not only convert short messages into Braille,but also convert the voice of the blind into text and send it to the hardware for display. It also has the functions of reading short messages and asking for help. The device can help the blind use smart phones and integrate them into the mobile internet era.
Keywords:blind;Bluetooth communication;human-computer interaction
0 ?引 ?言
目前,人類社會(huì)已經(jīng)跨入了21世紀(jì),隨著科學(xué)技術(shù)的迅猛發(fā)展,我們都享受到了科技給我們帶來的便捷,但盲人卻很難享受到科技發(fā)展帶來便利。中國(guó)有著數(shù)量龐大的盲人群體,據(jù)統(tǒng)計(jì),2018年我國(guó)視力殘疾患者人數(shù)達(dá)到1 700多萬,相當(dāng)于每80人中就有一個(gè)“黑暗中的行者”。而這些“黑暗中的行者”中還有無健康聽力的人群。這個(gè)群體的在信息獲取和信息交流方面都面臨巨大困難。雖然現(xiàn)在的智能產(chǎn)品可以在一定程度上幫助到他們,例如說手機(jī)上的盲用語音播報(bào)功能、盲人模式為盲人這個(gè)大群體帶來了極大的方便,但是信息更新迭代的較快,盲人群體并不能很好的享受這些智能產(chǎn)品發(fā)展帶來的便利。例如盲人群體在無人輔助時(shí)會(huì)出現(xiàn)在電子產(chǎn)品上的輸入信息存在困難或進(jìn)行信息閱讀困難、無健康聽力的盲人群體無法接受語音播報(bào)信息和盲文閱讀器價(jià)格昂貴難以購買等情況。針對(duì)盲人群體可能遇到的困難進(jìn)行分析,設(shè)計(jì)一款面向盲人群體,能與智能手機(jī)進(jìn)行交互,使盲人群體在大多數(shù)情況下無需他人輔助就能對(duì)智能手機(jī)進(jìn)行信息獲取,發(fā)送信息給他人,就顯得尤為必要。對(duì)此,本文設(shè)計(jì)了一種盲用智能手機(jī)輔助交互設(shè)備,為盲人群體提供了一款更便攜,價(jià)格更低且功能更好的盲用智能手機(jī)輔助交互設(shè)備[1,2]。
本設(shè)備可以幫助盲人獨(dú)立使用智能手機(jī),自主發(fā)送信息、自由選用語音或觸摸盲文點(diǎn)顯器來獲取信息,無需擔(dān)心會(huì)在公共場(chǎng)合泄露個(gè)人隱私。本設(shè)備研發(fā)團(tuán)隊(duì)是蘇州市職業(yè)大學(xué)企業(yè)項(xiàng)目合作研發(fā)的重要組成部分,承擔(dān)過多款電子產(chǎn)品的研發(fā),在研發(fā)智能產(chǎn)品方面有一定的基礎(chǔ)。
1 ?總體設(shè)計(jì)
盲用智能手機(jī)輔助交互設(shè)備包括硬件端和Android APP端,硬件端和Android APP端通過藍(lán)牙進(jìn)行連接和通信,本設(shè)備總體架構(gòu)如圖1所示。
盲人Android手機(jī)將收到的文本消息或文本資料轉(zhuǎn)換為特定的編碼,通過藍(lán)牙將編碼發(fā)送給硬件端,硬件端通過單片機(jī)控制相應(yīng)的微型電機(jī)彈起,實(shí)現(xiàn)盲文顯示。盲人Android APP端也實(shí)現(xiàn)了語音合成,即盲人也可以選擇將文本轉(zhuǎn)換為語音,直接聽取信息。此外,盲人還可以通過Android APP發(fā)送語音消息,也可以將對(duì)方發(fā)送的語音消息播放或者轉(zhuǎn)換為盲文讀出。最后盲人端Android APP還設(shè)計(jì)了求助功能,在緊急情況下,盲人可以通過求助功能將當(dāng)前位置發(fā)送給家人。
2 ?硬件端設(shè)計(jì)
2.1 ?硬件端構(gòu)成
硬件端主要由STM32單片機(jī)、藍(lán)牙模塊、微型電機(jī)驅(qū)動(dòng)、微型電機(jī)、電源等構(gòu)成。硬件端的整體架構(gòu)如圖2所示。
STM32單片機(jī)作為主控制器,主要負(fù)責(zé)藍(lán)牙模塊的配置,接收藍(lán)牙模塊的消息,控制微型電機(jī)的升降。該設(shè)備選用了STM32F103C8T6芯片作為主控制器,該芯片基于ARM Cortex-M3內(nèi)核,該芯片價(jià)格便宜,性能強(qiáng)大,支持串口、PWM、定時(shí)器等,可以滿足該設(shè)備的需求。藍(lán)牙模塊本設(shè)備選用的是HC05,該模塊支持經(jīng)典藍(lán)牙2.0協(xié)議,且可以串口收發(fā),控制比較方便,通信速率可以滿足本設(shè)備的需求。微型電機(jī)采用微型絲桿滑臺(tái)行星減速電機(jī),微型電機(jī)驅(qū)動(dòng)則采用L298N為主控的模塊[3]。
2.2 ?STM32單片機(jī)程序設(shè)計(jì)
硬件端結(jié)合Android APP的需求和設(shè)計(jì)原則的要求,設(shè)計(jì)了如圖3所示的主控制器流程圖。首先是對(duì)脈沖寬度PWM和串口進(jìn)行初始化。由于HC05具有串口透?jìng)鞯奶攸c(diǎn),初始化完成后,Android APP與設(shè)備端一旦建立藍(lán)牙連接,串口即可以收到Android APP端發(fā)送過來的信息。串口收到Android APP端發(fā)送過來的信息,接著將進(jìn)行數(shù)據(jù)處理,將收到的編碼信息與已存儲(chǔ)的數(shù)據(jù)進(jìn)行比對(duì),得出需要升降的電機(jī),接著控制電機(jī)升降就可以將盲文顯示出來了。
2.3 ?盲文點(diǎn)顯設(shè)計(jì)
盲文是專為盲人設(shè)計(jì)、靠觸覺感知的文字。這樣顯示信息的方式可以讓盲人精準(zhǔn)的獲取信息,當(dāng)盲人在公共場(chǎng)合或者嘈雜的環(huán)境中時(shí),依舊能幫助到盲人獲取信息,并且保護(hù)了盲人的隱私,不必為個(gè)人信息泄露而擔(dān)憂。一般一個(gè)盲文點(diǎn)字是由六點(diǎn)組成,左側(cè)從上到下為123,右側(cè)為456。因此,本設(shè)備的盲文點(diǎn)顯器也是由6個(gè)點(diǎn)構(gòu)成,需要6個(gè)微型電機(jī)來控制6個(gè)點(diǎn)是否突出。圖4是本設(shè)備盲文點(diǎn)顯器觸點(diǎn)工程圖。
本設(shè)備已研制出樣品,樣品工作穩(wěn)定,實(shí)現(xiàn)了文中所述功能,圖5是設(shè)備硬件端展示“你”字時(shí)的頂針工作狀態(tài)。
2.4 ?數(shù)據(jù)處理流程
如圖6所示的交互流程是本設(shè)備的數(shù)據(jù)處理流程。盲人端Android APP上位機(jī)與硬件端建立連接后,可以自動(dòng)接收數(shù)據(jù)。盲人端Android APP接收到短消息后,會(huì)將消息轉(zhuǎn)換為獨(dú)特的編碼,然后通過藍(lán)牙發(fā)送十六位進(jìn)制數(shù)給硬件端。硬件端收到消息后,可以選擇何時(shí)閱讀消息,等待盲人讀取完當(dāng)前信息后再進(jìn)行下一個(gè)音節(jié)的讀取,如果有需要,也可以退回上一步再讀取信息[4]。
3 ?盲人端Android APP的設(shè)計(jì)
盲人端Android APP使用Android Studio軟件進(jìn)行編程,程序設(shè)計(jì)語言采用Java。本APP主要使用對(duì)象為盲人,由于盲人看不見,所以本盲人端APP的界面設(shè)計(jì)較為簡(jiǎn)易,將手機(jī)屏幕分為四個(gè)區(qū)域,對(duì)應(yīng)四個(gè)不同功能的按鈕,分別為“摸”“聽”“說”“助”,如圖7所示。按下“聽”功能按鈕后Android手機(jī)能將親友發(fā)送過來的短信轉(zhuǎn)換成對(duì)應(yīng)的編碼并通過藍(lán)牙向硬件端傳輸,再由硬件端轉(zhuǎn)換成盲文顯示。按下“聽”功能按鈕后,Android手機(jī)會(huì)自動(dòng)播報(bào)出親友發(fā)送過來的信息。由于盲人無法自己在Android手機(jī)上打字,所以本APP設(shè)計(jì)了“說”這一功能,當(dāng)按下“說”這一功能按鈕時(shí),Android手機(jī)會(huì)自動(dòng)聽盲人說的話,并轉(zhuǎn)化為文字。當(dāng)按下“助”這一功能時(shí),Android手機(jī)會(huì)自動(dòng)撥打電話給預(yù)先設(shè)定好的電話號(hào)碼。
盲人端Android APP主要包括語音合成模塊、語音輸入模塊、手機(jī)短信轉(zhuǎn)編碼模塊、一鍵撥號(hào)模塊。盲人端Android APP的設(shè)計(jì)采用自上而下的方法。盲人Android APP工作流程圖如圖8所示,首先是軟件初始化,進(jìn)入到APP界面,初始化過程中會(huì)啟動(dòng)短消息的廣播接收者,一旦收到短消息廣播,手機(jī)會(huì)將收到的信息呈現(xiàn)在APP的顯示框中,接著會(huì)自動(dòng)將信息文字轉(zhuǎn)化為拼音,再將拼音轉(zhuǎn)化為自定義編碼,最后將自定義編碼傳輸?shù)接布恕?/p>
“聽”分為兩種情況,如果本身是語音消息,則直接將原本語音消息播出;如果本身是文本消息,則采用科大訊飛的語音合成技術(shù),將文本轉(zhuǎn)換為語音,然后再播出??拼笥嶏w語音合成API通過Speech Synthesizer類來實(shí)現(xiàn)語音合成。首先需要?jiǎng)?chuàng)建合成器,設(shè)置合成參數(shù),然后設(shè)置合成監(jiān)聽器Synthesizer Listener,實(shí)現(xiàn)合成監(jiān)聽器Synthesizer Listener,合成監(jiān)聽器的關(guān)鍵方法有:
onEvent(int eventType,int arg1,int arg2,android.os.Bundle obj):合成會(huì)話事件,擴(kuò)展應(yīng)用接口,由業(yè)務(wù)進(jìn)行約定;
onCompleted(SpeechError error):結(jié)束SDK回調(diào)此接口,通知應(yīng)用,將結(jié)束會(huì)話;
onSpeakProgress(int progress,int beginPos,int endPos):播放進(jìn)度SDK回調(diào)此接口,通知應(yīng)用,當(dāng)前的播放進(jìn)度。
“說”功能主要是將語音轉(zhuǎn)化為文字并進(jìn)而轉(zhuǎn)化為盲文。文字轉(zhuǎn)盲文在“摸”功能里已經(jīng)實(shí)現(xiàn),語音轉(zhuǎn)文字,即語音識(shí)別,本APP也是采用科大訊飛的技術(shù),科大訊飛提供了Speech Recognizer類來實(shí)現(xiàn)語音識(shí)別。首先需要先調(diào)用SpeechUtility.createUtility(Context context,String string)進(jìn)行SDK初始化,然后通過createRecognizer(Context context,InitListener listener)創(chuàng)建識(shí)別器,然后設(shè)置語音識(shí)別監(jiān)聽器Recognizer Listener,實(shí)現(xiàn)語音識(shí)別監(jiān)聽器Recognize rListener,語音識(shí)別監(jiān)聽器的關(guān)鍵方法有:
onResult(RecognizerResultresult,booleanislast):返回的語音識(shí)別結(jié)果,一次識(shí)別會(huì)話的結(jié)果可能會(huì)多次返回,通過參數(shù)islast,判斷是否是最后一個(gè)結(jié)果,true時(shí)為最后一個(gè)結(jié)果,否則不是;
onVolumeChanged(int volume,byte[] data):識(shí)別開始后該方法會(huì)一直監(jiān)聽音量變化直到識(shí)別接收,用于告知應(yīng)用層當(dāng)前的音量值;
onError(SpeechError error):錯(cuò)誤回調(diào),當(dāng)次會(huì)話出現(xiàn)錯(cuò)誤時(shí)會(huì)調(diào)用該方法,會(huì)話錄音均會(huì)自動(dòng)結(jié)束。
“助”功能主要是盲人在需要幫助的時(shí)候,會(huì)發(fā)送盲人的當(dāng)前位置到緊急聯(lián)系人的手機(jī),并會(huì)撥打緊急聯(lián)系人的電話。獲取位置主要通過Location Manager類中的方法來實(shí)現(xiàn)。
4 ?結(jié) ?論
本設(shè)備主要基于Android應(yīng)用技術(shù)、單片機(jī)技術(shù)、電機(jī)技術(shù)等,基本實(shí)現(xiàn)了輔助盲人使用智能手機(jī)的功能,本設(shè)備不僅可以讓一般的盲人通過語音播報(bào)來聽世界,還可以讓自身缺陷更為嚴(yán)重的聾啞盲人通過觸摸來了解世界。
參考文獻(xiàn):
[1] 劉鑫,秦富康.盲人使用點(diǎn)字打印機(jī)及標(biāo)示系統(tǒng)設(shè)計(jì) [J].藝術(shù)科技,2016,29(2):275-276.
[2] 王一,滕召勝,溫和,等.適合于盲人使用的信息輸入方法的研究與實(shí)現(xiàn) [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009,18(12):117-120.
[3] 梁小廷.單片機(jī)技術(shù)的發(fā)展及應(yīng)用研究 [J].民營(yíng)科技,2018(6):9.
[4] 姚越,吳寶慶.關(guān)于單片機(jī)技術(shù)應(yīng)用的研究 [J].科技資訊,2018,16(9):112-113.
作者簡(jiǎn)介:朱慧媛(2000—),女,漢族,江蘇淮安人,本科在讀,主要研究方向:電子與通信技術(shù)。