林向南,何嶺松
(華中科技大學(xué) 機(jī)械科學(xué)與工程學(xué)院,湖北 武漢 430074)
隨著移動終端平臺技術(shù)的飛速發(fā)展和智能手機(jī)的日益普及,越來越多的服務(wù)已經(jīng)向終端轉(zhuǎn)移。Android系統(tǒng)作為目前主流的移動設(shè)備操作系統(tǒng),以其免費(fèi)的特征,和強(qiáng)大的功能,已經(jīng)受到越來越多的終端廠家的廣泛使用[1]。如何利用Android平臺實(shí)現(xiàn)更多的日常應(yīng)用,特別是移動化便攜式醫(yī)療設(shè)備[2],成為一個(gè)重要的研究領(lǐng)域。我國正步入人口老齡化社會階段,同時(shí)也擁有數(shù)量龐大的下肢殘障人士,為他們提供實(shí)用性的代步工具是一個(gè)亟待解決的問題。因此,智能輪椅的研究受到了廣泛關(guān)注[3-4]。
本文針對以上特點(diǎn),研究開發(fā)了基于Android的智能輪椅。將普通操縱桿按鈕控制模式的智能輪椅通過電路改造成可用Android手機(jī)或平板電腦無線控制的智能輪椅,控制模式兼具操縱桿控制、按鈕控制、觸摸屏控制、語音控制等多種控制方式的特點(diǎn),同時(shí)利用智能手機(jī)自身的特點(diǎn),更是具有摔落跌倒短信報(bào)警、GPS定位等諸多功能,適用于殘疾程度較輕,肢體能動性較高且意識較好的人群。此款智能輪椅相比其他高性能智能輪椅,廉價(jià)許多,在人手一臺的Android智能手機(jī)或平板電腦上安裝輪椅控制軟件即可實(shí)現(xiàn)對輪椅的操作控制,便宜方便。
一般的智能輪椅主要是為殘障人士以及行為不便的老年人們提供代步使用,有的兼具導(dǎo)航、緊急報(bào)警等功能。本文智能輪椅由于人機(jī)接口采用Android智能手機(jī),使得其功能更加強(qiáng)大。結(jié)合智能手機(jī)自身特點(diǎn),可提供的功能有:觸屏按鈕控制、觸屏滑動控制、重力傳感器控制、語音控制、短信報(bào)警、GPS定位等諸多功能。
本文智能輪椅的總體方案設(shè)計(jì)如圖1所示,對市場上一般的操縱桿按鈕控制模式的智能輪椅進(jìn)行了改造,安裝了C51單片機(jī)進(jìn)行底層控制,通過繼電器對輪椅驅(qū)動器進(jìn)行控制;在單片機(jī)上通過串口連接Wi-Fi模塊,從而與Android手機(jī)進(jìn)行Wi-Fi無線連接交互,用戶通過手機(jī)客戶端對輪椅進(jìn)行控制操作,客戶端也可以對用戶使用過程中出現(xiàn)的一些緊急情況進(jìn)行定位以及短信報(bào)警,如發(fā)生摔倒、碰撞等。
圖1 智能輪椅總體結(jié)構(gòu)圖Fig.1 Structure diagram of the intelligent wheelchair
由于現(xiàn)有的輪椅是由上海威之群機(jī)電制品有限公司生產(chǎn)的Safeman操縱桿按鈕控制模式的智能輪椅,若想利用智能手機(jī)進(jìn)行控制,就需要對輪椅進(jìn)行電氣化改造。在熟悉了輪椅的基本工作原理之后,根據(jù)所改造的起始點(diǎn),本文起初提出了4種改造方案。在綜合對比后,決定通過輸入等效信號代替操縱桿:保留原有輪椅電機(jī)驅(qū)動器不變,采用繼電器和線圈來模擬原先按鈕和操縱桿操作(操縱桿是基于互感原理運(yùn)作的)。通過控制單片機(jī)引腳電平高低來控制繼電器,進(jìn)而控制電源通斷以及線圈通斷電,繼而控制電機(jī)驅(qū)動器,最終控制輪椅行進(jìn)。主要改造有去掉操縱桿及按鈕,增加單片機(jī)、繼電器及線圈、無線模塊。
單片機(jī)作為底層處理器,主要用來接收無線模塊傳送來的手機(jī)操作命令,解析命令,然后對繼電器電路進(jìn)行控制,控制繼電器開關(guān)。由于采用AT89C52單片機(jī),其輸出引腳電流太弱,無法驅(qū)動繼電器,采用NPN三極管電路進(jìn)行功率放大。而輪椅采用2塊+12 V蓄電池供電,遠(yuǎn)高于單片機(jī)引腳輸出電壓,為保護(hù)單片機(jī),采用了MOC3022光電耦合器隔離單片機(jī)和放大電路。隔離和放大電路如圖2所示。
繼電器主要用來控制操縱桿線圈以及其他按鈕電路的通斷。采用OMI-SH-212L繼電器,+12 V電源供電。為避免2個(gè)繼電器連接到同一個(gè)電源時(shí)造成短路,采用2個(gè)繼電器互鎖電路設(shè)計(jì)。線圈用來模擬操縱桿操作,其選擇需要考慮選擇合適的電感和匝數(shù)來產(chǎn)生所需的感應(yīng)電壓,以及選擇放置到合適的位置。最后,采用1.8 nH電感線圈,滿足要求。
無線模塊主要用作無線熱點(diǎn)(服務(wù)器),接受移動終端無線連接請求,建立無線局域網(wǎng),通過無線信號與UART信號之間的相互轉(zhuǎn)換,實(shí)現(xiàn)無線終端(手機(jī))與底層(單片機(jī))之間的通信。在對比藍(lán)牙和Wi-Fi兩種常見的無線模塊之后,決定采用Wi-Fi模塊,模塊選用ST-MW-08S。模塊內(nèi)置完整的TCP/IP 協(xié)議棧,支持 ARP、IP、ICMP、UDP、TCP、DHCP 客戶端和DHCP服務(wù)器等多種協(xié)議;提供4路通用I/O接口(O1、O2、O3、O4)和 2 路 PWM 接口(PWM1、PWM2),并提供通用串口實(shí)現(xiàn)與單片機(jī)的串口通信;網(wǎng)絡(luò)結(jié)構(gòu)上,支持基礎(chǔ)網(wǎng)絡(luò)(infra)和特殊的Ad-hoc網(wǎng)絡(luò)結(jié)構(gòu);擁有更低的功耗和較高的數(shù)據(jù)吞吐率。
1)開發(fā)單片機(jī)應(yīng)用程序:Keil uVision4 for C51
圖2 隔離和放大電路圖Fig.2 Circuit diagram of isolation and amplification
Keil uVision4主要用來開發(fā)單片機(jī)嵌入式控制軟件,構(gòu)建單片機(jī)與Wi-Fi模塊信息交互,對單片機(jī)引腳進(jìn)行定義,完成信息命令解析,對輪椅進(jìn)行實(shí)時(shí)控制。
2)開發(fā)Android終端應(yīng)用程序:Eclipse+JDK+Android SDK+ADT插件
Eclipse是Android應(yīng)用程序開發(fā)主流使用的集成開發(fā)環(huán)境。安裝Eclipse Android開發(fā)環(huán)境,首先需要安裝Java開發(fā)工具包JDK,然后安裝Eclipse和Android SDK,最后安裝Android開發(fā)工具ADT[5-6]。
Android終端軟件功能設(shè)計(jì)流程圖如圖3所示。本文的設(shè)計(jì)優(yōu)點(diǎn)主要有重力感應(yīng)控制、語音控制、GPS定位、碰撞跌倒短信報(bào)警或語音報(bào)警。此外,還有觸屏按鈕控制及滑動控制、指南針、速度切換以及軟件使用指南等功能。
3.2.1 控制模塊設(shè)計(jì)
本文設(shè)計(jì)的智能輪椅的控制模式除了傳統(tǒng)的按鈕控制外,還結(jié)合智能手機(jī)自身的特點(diǎn),設(shè)計(jì)了觸屏滑動控制、重力感應(yīng)控制以及語音識別控制。這里主要介紹下重力感應(yīng)控制機(jī)語音識別控制。
圖3 終端軟件功能流程圖Fig.3 Flow chart of the Android terminal software
重力感應(yīng),是利用壓電效應(yīng)實(shí)現(xiàn),簡言之就是測量內(nèi)部一片重物(與壓電片做成一體)重力正交兩個(gè)方向的分力大小,來判斷水平方向。目前,智能手機(jī)發(fā)展迅速,基本上都安裝有重力感應(yīng)芯片。本文通過實(shí)現(xiàn)SensorListener接口,調(diào)用onSensorChanged(int sensor, float[]values)方法,利用重力感應(yīng)芯片,將智能手機(jī)變身為移動手柄,前傾輪椅前進(jìn),后傾后退,左傾左轉(zhuǎn),右傾右轉(zhuǎn),端平則停止,操作簡單方便。
電話語音是手機(jī)最初的功能,也是最主要的功能,語音功能也越來越多的應(yīng)用在其他的程序中。本文通過start Activity For Result(intent, VOICE_RECOGNITION_REQUEST_CODE)方法調(diào)用google語音識別程序,并返回識別結(jié)果。對識別結(jié)果進(jìn)行判斷,若為真,則發(fā)送相應(yīng)控制命令,若為假,則發(fā)送輪椅停車命令。比如,若識別結(jié)果為“前進(jìn)”、“向前”、“往前”或“朝前”,則發(fā)送控制輪椅前進(jìn)的命令“FORWARD(值為1)”。語音控制使得上肢不便的老人及殘疾人也可以方便的控制輪椅,為這類人群提供了更多的選擇和便利。
3.2.2 GPS定位模塊設(shè)計(jì)
GPS是Global Positioning System (全球定位系統(tǒng))的簡稱,可以提供車輛定位、防盜、路線導(dǎo)航等功能。在Android平臺中,已給出GPS相關(guān)的底層結(jié)構(gòu)和接口定義,可以從GPS位置信息中獲取當(dāng)前所在的經(jīng)緯度、海拔、速度及方位。本文通過調(diào)用 Location類的 getLongitude()和 getLatitude()獲取當(dāng)前位置經(jīng)緯度。
電子地圖是利用計(jì)算機(jī)技術(shù)來數(shù)字式存儲或訪問地圖,電子地圖可用來尋找不熟悉的位置、制定路徑規(guī)劃等。本位結(jié)合GPS和電子地圖,可以提供更加直觀、更加便捷的定位信息。相比google地圖,百度更加易于設(shè)置和開發(fā),因此,本文采用GPS和百度地圖相結(jié)合實(shí)現(xiàn)定位功能。載入baidumapapi.jar,創(chuàng)建繼承MapActivity的自定義地圖Acitivity,用得到的經(jīng)緯度構(gòu)造一個(gè)GeoPoint,并以此設(shè)置地圖中心,實(shí)現(xiàn)地圖定位。
3.2.3 報(bào)警模塊設(shè)計(jì)
緊急報(bào)警是本文另一大特點(diǎn),利用手機(jī)加速度傳感器,當(dāng)輪椅(手機(jī))發(fā)生碰撞或摔倒時(shí),加速度發(fā)生劇烈變化,此時(shí)自動向親友發(fā)短信求助。監(jiān)測加速度X、Y、Z 3個(gè)方向的加速度值。X、Y方向主要為水平加速度,發(fā)生劇烈變化時(shí),可能發(fā)生碰撞,發(fā)布碰撞警報(bào);Z方向主要為垂直加速度,發(fā)生劇烈變化時(shí),可能發(fā)生摔倒,發(fā)布摔倒警報(bào)。結(jié)合GPS地圖,同時(shí)發(fā)送當(dāng)前所在地。
短信是一種非常普遍和可靠的通信方式,也是手機(jī)的移動通信業(yè)務(wù)之一,利用短信發(fā)送緊急情報(bào)非常安全可靠。本文調(diào)用 SmsManager對象的 sendTextMessage(phoneNumber,null, msg, sentPI, deliverPI)方法發(fā)送緊急短信(其中 msg 為報(bào)警內(nèi)容:如“我發(fā)生碰撞,目前所在地為XX,收到請打電話確定是否安全?!保?,使用BroadcastReceiver通知用戶短信是否發(fā)送成功以及對方是否成功收到短信,并在已發(fā)送短信里進(jìn)行記錄。
單片機(jī)控制軟件設(shè)計(jì)流程圖如圖4所示。單片機(jī)控制軟件主要完成硬件初始化,循環(huán)接收輪椅控制命令,解析命令并控制相關(guān)引腳電平高低及時(shí)間從而對繼電器做出相應(yīng)控制。
圖4 單片機(jī)軟件流程圖Fig.4 Flow chart of the MCU software
本文對所設(shè)計(jì)的這款智能輪椅的每項(xiàng)功能進(jìn)行了調(diào)試實(shí)驗(yàn),特別是重力感應(yīng)控制模式和語音識別控制模式。其他功能如Wi-Fi無線通信、速度切換、按鈕及滑動觸屏控制模式、指南針等功能正常,GPS定位報(bào)警功能經(jīng)過調(diào)節(jié)合適的加速度閾值能夠?qū)σ话愕呐鲎埠退さ惯M(jìn)行報(bào)警。
重力感應(yīng)控制模式實(shí)際測試的曲線圖如圖5所示,從圖中可看出,手機(jī)重力感應(yīng)傳感器較靈敏,由手機(jī)前后傾斜角度(前+后-)和左右傾斜角度(左+右-)可較準(zhǔn)確合成出控制命令(前進(jìn)+2,后退-2,左轉(zhuǎn)+1,右轉(zhuǎn)-1,停止 0),且合成實(shí)時(shí)性較高,能夠?qū)喴芜M(jìn)行較實(shí)時(shí)準(zhǔn)確的控制。
語音識別控制模式實(shí)際測試效果如表1所示,對8個(gè)測試者進(jìn)行了每人20次各命令的測試。語音識別采用標(biāo)準(zhǔn)普通話庫,測試結(jié)果主要與測試者的普通話水平有關(guān),普通話好的識別率基本在95左右,而普通話較差的則低于90%,甚至低于80%。有些測試者初始測試時(shí)識別率較差,經(jīng)過稍加控制命令口令的訓(xùn)練后,識別正確許多。測試整體識別率達(dá)到90%以上,效果較好。從測試結(jié)果可看出,只要對用戶稍加進(jìn)行控制命令的普通話訓(xùn)練,語音識別率即可滿足正常的日??刂菩枨?。
圖5 重力感應(yīng)控制測試曲線圖Fig.5 Curves chart of gravity sensing control test
表1 語音識別控制模式識別準(zhǔn)確率測試Tab.1 Accuracy rate test of the voice recognition control
本文所設(shè)計(jì)的基于Android[7]的智能輪椅,在傳統(tǒng)操縱桿按鈕式智能輪椅的基礎(chǔ)上,通過電氣化改造,設(shè)計(jì)為可用Android手機(jī)或平板電腦無線Wi-Fi控制的智能輪椅。除了提供觸屏按鈕和觸屏滑動控制方式外,還提供了重力感應(yīng)控制和語音識別控制方式,使用戶操作輪椅更加方便及多樣化。此外,還提供了GPS定位和短信報(bào)警功能,使用戶出行更加安全。通過將智能手機(jī)與輪椅相結(jié)合,提供給用戶一款廉價(jià)、方便、多功能、安全的智能輪椅,為肢體殘疾的病人或行動不便的老年人提供便利,具有。經(jīng)調(diào)試,智能輪椅軟硬件工作均基本正常,不過GPS導(dǎo)航及路徑規(guī)劃等功能在以后的工作里需要進(jìn)一步研究。
[1]劉旭東,何涇沙.基于Android的BATMAN協(xié)議應(yīng)用框架協(xié)議的研究[J].電子設(shè)計(jì)工程,2013,21(20):10-13.LIU Xu-dong,HE Jing-sha.A BATMIN protocol research on Android[J].Electronic Design Engineering,2013,21(20)10-13.
[2]張莉,張子龍.基于Android智能手機(jī)平臺的便攜式心電監(jiān)護(hù)儀的設(shè)計(jì)[J].中南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2012,31(4):88-92.ZHANG Li,ZHANG Zi-long.Design of a portable ECG monitor based on Android smartphone platform[J].Journal of South-Central University for Nationalities:Nat.Sci.Edition,2012,31(4):88-92.
[3]羅元,孔維熙,張毅.基于Android手機(jī)的智能輪椅戶外導(dǎo)航方法[J].計(jì)算機(jī)工程,2013,39(6):312-316.LUO Yuan,KONG Wei-xi,ZHANG Yi.Intelligent wheelchair outdoor navigation method based on Android mobile phone[J].Computer Engineering,2013,39(6):312-316.
[4]郝付英.智能輪椅控制系統(tǒng)研究與設(shè)計(jì)[D].濟(jì)南:山東大學(xué),2012.
[5]金林珠,庫流亨.基于Android的VoFi語音系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2013,21(17):37-40.JIN Lin-zhu,KU Liu-heng.Design and implementation of VoFi voice communication system based on Android[J].Electronic Design Engineering,2013,21(17):37-40.
[6]王國輝,李偉.Android開發(fā)寶典[M].北京:機(jī)械工業(yè)出版社,2012.
[7]楊濤,李隱峰,胡秋玲.基于Android的電話號碼查詢系統(tǒng)設(shè)計(jì)[J].電子科技,2013(12):131-134.YANG Tao,LI Yin-feng,HU Qiu-ling.Telephone number inquiry system design based on android[J].Electronic Science and Technology,2013(12):131-134.