邵星宇,陳偉華,方婉婷,趙旭輝,楊慧敏
(湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,湖北 武漢430070)
中國(guó)盲人協(xié)會(huì)2019-05的數(shù)據(jù)顯示,目前全國(guó)共有1731萬(wàn)視力殘疾人士。由于中國(guó)無(wú)障礙設(shè)施的不完善,殘疾人保障制度的不健全,導(dǎo)盲犬?dāng)?shù)量少成本高昂,視障人士出行難的問(wèn)題并沒(méi)有得到很好的解決。據(jù)調(diào)查,約30%的視障人士基本不出家門(mén),社會(huì)圈子封閉,無(wú)法進(jìn)一步融入社會(huì)。隨著智能手機(jī)的不斷普及,各大主流操作系統(tǒng)都研發(fā)了無(wú)障礙操作系統(tǒng),讓視障人士方便使用手機(jī)成為可能,但應(yīng)用商城上針對(duì)視障人士應(yīng)用數(shù)量還很少,多為聊天、閱讀等功能。目前中國(guó)交通管理設(shè)施已實(shí)現(xiàn)物聯(lián)網(wǎng)大數(shù)據(jù)管理,因此開(kāi)發(fā)一款可導(dǎo)航視障人士出行,保障視障人士安全過(guò)馬路,適合視障人士家屬和社會(huì)監(jiān)護(hù)的可移動(dòng)設(shè)備十分有必要也具有可行性[1]。因此,本文基于APIcloud設(shè)計(jì)了一款幫助盲人出行并保障其出行安全的導(dǎo)盲軟件——芒果智行APP。APIcloud平臺(tái)具有低代碼開(kāi)發(fā)優(yōu)勢(shì),且自身提供了許多界面類(lèi)、菜單類(lèi)、功能類(lèi)、設(shè)備類(lèi)等原生模板[2],減少部分代碼的重復(fù)編譯,大大提高了芒果智行APP開(kāi)發(fā)的效率。
本文使用開(kāi)放的APICloud移動(dòng)應(yīng)用服務(wù)平臺(tái)與“墨刀”原型設(shè)計(jì)協(xié)同工具,進(jìn)行APP開(kāi)發(fā)。APICloud Studio能夠基于HTML/CSS和JavaScript等Web技術(shù),通過(guò)擴(kuò)展API來(lái)進(jìn)行低代碼客戶(hù)端開(kāi)發(fā),基于NoSQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)模型設(shè)計(jì)和軟件API調(diào)試分析,并自動(dòng)生成REST接口[3]。開(kāi)發(fā)者可以在APICloud提供的開(kāi)放SDK模塊基礎(chǔ)上進(jìn)行開(kāi)發(fā),簡(jiǎn)化了開(kāi)發(fā)過(guò)程,提高了開(kāi)發(fā)效率。開(kāi)發(fā)者還可以在APICloudStudio平臺(tái)上進(jìn)行XU、UI、代碼、AppLoader管理[4],進(jìn)而實(shí)現(xiàn)對(duì)軟件開(kāi)發(fā)、測(cè)試、發(fā)布、管理和運(yùn)營(yíng)等全周期管理?;凇澳丁逼脚_(tái)具有豐富的組件庫(kù)、圖標(biāo)庫(kù)、動(dòng)效庫(kù)和設(shè)計(jì)模板,并且可通過(guò)拖拽和設(shè)置操作即可讓開(kāi)發(fā)者快速完成界面UI設(shè)計(jì)、頁(yè)面交互邏輯、Demo預(yù)覽演示[5]等。
本文開(kāi)發(fā)的芒果智行APP主要包括“步行”“搭公交”“我的”三大主要界面,以語(yǔ)音播報(bào)、手機(jī)跌落報(bào)警、緊急聯(lián)系人作為輔助功能方便視障人士使用,芒果智行APP功能流程如圖1所示,其界面效果如圖2所示。該APP不僅能夠幫助視障人士使用者獨(dú)立過(guò)馬路、乘坐公交、完成出行活動(dòng),還可以讓視障人士的監(jiān)護(hù)人遠(yuǎn)程及時(shí)了解到視障人士當(dāng)前的活動(dòng)信息,發(fā)現(xiàn)問(wèn)題能夠及時(shí)聯(lián)系,確保出行安全。此外,還可通過(guò)本APP收集掌握視障人士出行安全信息,更有針對(duì)性地保障殘疾人權(quán)益,方便視障人士出行,利用大數(shù)據(jù)對(duì)殘疾人實(shí)現(xiàn)智慧化、精準(zhǔn)化幫扶。
圖1 芒果智行APP導(dǎo)航流程圖
圖2 芒果智行APP界面圖
在“步行”界面中,用戶(hù)可以利用雙擊任意音量鍵呼出語(yǔ)音鍵盤(pán)功能,語(yǔ)音輸入想要到達(dá)的地點(diǎn),芒果智行APP根據(jù)地圖數(shù)據(jù)匹配最佳路線(xiàn),為用戶(hù)提供語(yǔ)音導(dǎo)航。其中,APP通過(guò)Wi-Fi將自動(dòng)與紅綠燈模擬系統(tǒng)進(jìn)行連接,為用戶(hù)及時(shí)通報(bào)紅綠燈情況,讓用戶(hù)安全過(guò)馬路?!安叫小睂?dǎo)航界面如圖3所示。
圖3 “步行”界面
在“搭公交”界面中,當(dāng)用戶(hù)選擇出行方式為公交地鐵時(shí),芒果智行APP會(huì)根據(jù)地圖數(shù)據(jù)匹配應(yīng)該搭乘的公交線(xiàn)路,APP會(huì)為用戶(hù)語(yǔ)音播報(bào)公交站當(dāng)前來(lái)車(chē)、公交車(chē)當(dāng)前到站等信息,幫助盲人正確乘坐公交車(chē)線(xiàn)路,避免出現(xiàn)誤站、錯(cuò)誤乘車(chē)等情況?!按罟弧睂?dǎo)航界面如圖4所示。
圖4 “搭公交”界面
在“我的”界面當(dāng)中,針對(duì)視障人士出行的特殊性,用戶(hù)可以設(shè)置監(jiān)護(hù)人、手機(jī)跌落報(bào)警、盲人語(yǔ)音播報(bào)。在設(shè)置監(jiān)護(hù)人后,監(jiān)護(hù)人可以實(shí)時(shí)查看視障人士出行信息。當(dāng)用戶(hù)長(zhǎng)按任意音量鍵時(shí)可喚醒緊急聯(lián)系監(jiān)護(hù)人,芒果智行APP將自動(dòng)撥打電話(huà)向監(jiān)護(hù)人進(jìn)行聯(lián)系;當(dāng)手機(jī)跌落報(bào)警打開(kāi)時(shí),若手機(jī)陀螺儀檢測(cè)到手機(jī)出現(xiàn)跌落碰撞時(shí),揚(yáng)聲器會(huì)自動(dòng)發(fā)出聲音進(jìn)行報(bào)警并向監(jiān)護(hù)人發(fā)送提示消息,以此來(lái)防范手機(jī)跌落、行路摔倒的情況。用戶(hù)還可以在“我的”界面設(shè)置的昵稱(chēng)、賬號(hào)等用戶(hù)信息并進(jìn)行軟件設(shè)置。“我的”界面如圖5所示。
圖5 “我的”界面
ttsModule模塊:封裝了本地安卓的TTS語(yǔ)音合成模塊,實(shí)現(xiàn)文字轉(zhuǎn)換為語(yǔ)音的功能。部分代碼如下。
bMap模塊:bMap模塊封裝了原生地圖的SDK,與普通的js地圖相比有很多無(wú)可比擬的優(yōu)點(diǎn),能夠?qū)崿F(xiàn)定位、導(dǎo)航、搭公交、路線(xiàn)規(guī)劃等功能。在使用之前必須單獨(dú)申請(qǐng)各自的apiKey,并同時(shí)配置在config文件中。使用此模塊之前必須先配置config文件,ios配置代碼如下。
wifiProxy模塊:wifiProxy封裝了設(shè)置Wi-Fi代理和取消Wi-Fi代碼的接口,調(diào)用該接口可以修改安卓手機(jī)“設(shè)置”里面的Wi-Fi代理信息。
示例代碼:
apk模塊:通過(guò)apk通訊模塊實(shí)現(xiàn)軟硬件的交互。
示例代碼:
本文利用STM32f103zet6單片機(jī)來(lái)模擬紅綠燈系統(tǒng),且單片機(jī)上裝有Wi-Fi模塊用來(lái)實(shí)現(xiàn)紅綠燈系統(tǒng)與手機(jī)APP的信號(hào)連接。
如圖6所示,ESP8266是一款超低功耗的UART Wi-Fi透?jìng)髂K,可將智能設(shè)備連接到無(wú)線(xiàn)網(wǎng)絡(luò)上,進(jìn)行網(wǎng)絡(luò)通信,實(shí)現(xiàn)聯(lián)網(wǎng)功能。因?yàn)閮r(jià)格較低,性能穩(wěn)定等受到很大關(guān)注。該模塊支持串口轉(zhuǎn)Wi-FiSTA、串口轉(zhuǎn)AP和Wi-FiSTA+Wi-FiAP的模式,可通過(guò)AT指令對(duì)系統(tǒng)參數(shù)進(jìn)行更改設(shè)置,從而建立串口-Wi-Fi數(shù)據(jù)傳輸方案,做到設(shè)備通過(guò)互聯(lián)網(wǎng)傳輸數(shù)據(jù)。本文采用正點(diǎn)原子的ESP-01模塊,與開(kāi)發(fā)板配合實(shí)現(xiàn)Wi-Fi傳輸功能。
圖6 ESP8266模塊
如圖7所示,在信號(hào)燈電路中,東南西北4個(gè)方向的信號(hào)燈以E、S、W、N表示,顏色用G(綠色)、Y(黃色)、R(紅色)表示,兩條車(chē)道的斑馬線(xiàn)綠燈用G1、G2表示。當(dāng)紅燈ER和WR亮起時(shí),綠燈G1亮起,同樣當(dāng)紅燈NR和SR亮起時(shí),綠燈G2亮起。當(dāng)G1或者G2亮起時(shí),STM32會(huì)通過(guò)串口控制ESP8266模塊向與其連接的手機(jī)的APP發(fā)送代碼,以告知東西方向或南北方向的行人可以通過(guò)路口。程序采用KeiluVision5編寫(xiě),并通過(guò)FlyMcu燒錄開(kāi)發(fā)板的STM32芯片中。
圖7 信號(hào)燈電路圖
測(cè)試時(shí),當(dāng)裝有芒果智行APP的手機(jī)靠近該單片機(jī)時(shí),芒果智行APP和單片機(jī)會(huì)通過(guò)Wi-Fi模塊自動(dòng)連接。單片機(jī)將信號(hào)燈信息通過(guò)Wi-Fi模塊發(fā)送給手機(jī)APP,并語(yǔ)音播報(bào)實(shí)現(xiàn)交互功能,用戶(hù)根據(jù)紅綠燈信息可判斷當(dāng)前是否可通行。芒果智行APP還可加載百度地圖,雙擊任意音量鍵呼出語(yǔ)音輸入鍵盤(pán)搜索功能,語(yǔ)音輸入目的地后,此APP可以及時(shí)匹配到最佳路線(xiàn)并語(yǔ)音播報(bào);語(yǔ)音輸入搭乘公交后,APP可語(yǔ)音播報(bào)當(dāng)前公交信息;打開(kāi)“我的”界面,設(shè)置列表某一聯(lián)系人為監(jiān)護(hù)人后,監(jiān)護(hù)人可接收到來(lái)自用戶(hù)的邀請(qǐng)。
芒果智行APP通過(guò)Wi-Fi模塊實(shí)現(xiàn)與紅綠燈信息的交互,并進(jìn)行語(yǔ)音播報(bào)。芒果智行APP還可以結(jié)合百度地圖的導(dǎo)航功能使盲人的外出安全得到有效保障,并且加入其他封裝好的模塊能使芒果智行APP的功能更加齊全,方便盲人快速掌握和使用此APP。