梁燦杰 楊馥彰 林楷濤 陳俊填 萬智萍
摘要:隨著科學技術不斷發(fā)展革新,社會對盲人關注不斷提高,針對全球盲人數(shù)量眾多,關愛的角度出發(fā),該文基于Arduino和STM32F429IGT6芯片作為核心控制模塊,GPS模塊和遠程終端APP能夠令家人實時跟蹤確定盲人的準確起始位置和目的地。在規(guī)劃行走路線所感知的障礙物上,我們使用HC-SR04超聲波測距模塊和蜂鳴器有機結合來令盲人知道前方有障礙物,通過SIM900A模塊來實現(xiàn)一鍵撥號,及時聯(lián)系家人。盲人的日常生活需要借助其他工具的感知與判斷周圍的空間事物從而構成本項目的實現(xiàn)出發(fā)點。如何讓盲人更方便的出行,更好的讓他們家人得以安心是本次研究的難點所在。本項目所設計的導盲器搭載APP定位功能和打電話功能、超聲波測距震動功能,它符合盲人的出行需求,也更加的貼近正常人的生活。
關鍵詞:導盲;超聲波;GPS;Arduino
中圖分類號:TN2 文獻標識碼:A 文章編號:1009-3044(2018)24-0190-04
Abstract: With the continuous development of science and technology innovation, the society is paying increasing attention to blind people. In view of the large number of blind people around the world and the love of care, this article is based on Arduino and STM32F429IGT6 chip as the core control module, GPS module and remote terminal APP can enable family members to track and determine in real time. The exact starting position and destination of the blind person. In planning the obstacles perceived by the walking route, we use the HC-SR04 ultrasonic ranging module and the buzzer to combine organically to make blind people know that there are obstacles in front of them and use the SIM900A module to implement one-touch dialing to promptly contact the family. The daily life of the blind needs to use other tools to perceive and judge the surrounding space things to form the starting point for the realization of this project. How to make it easier for the blind to travel and to make their family members feel more comfortable is the difficulty of this study. The guidance device designed by this project is equipped with an APP positioning function and a call function, and an ultrasonic ranging vibration function. It is in line with the travel needs of the blind and is more close to the normal life.
Key words: Guided blind; Ultrasonic; GPS; Arduino
“盲人的世界到底是一片黑色,還是連黑色都不存在?”這是社會大多數(shù)正常人都存在的疑問。他們對于陽光的渴望,遠遠超出了我們的想象。根據(jù)英國《柳葉刀·全球衛(wèi)生》2017年8月新刊載的一篇研究報告中提出,若不加強對眼疾的治療,那么全球盲人數(shù)量2050年將增至1.15億,比現(xiàn)有的3600萬多2.2倍。本文所采用的GPS/GPRS(全球衛(wèi)星定位/導航系統(tǒng))早在20世紀80年代,歐洲、日本廣泛使用汽車車載導航,經(jīng)過多年的發(fā)展,隨著中國的道路設施、工業(yè)一體化規(guī)模不斷增加,GPS的應用大大得到了發(fā)展,其產(chǎn)品大大深入我們的實際生活中。在中國涉及定位的智能導盲儀器屈指可數(shù),在這方面不同于外國的,導盲杖縱觀全世界,依舊是領導性首選地位,若能在這方面投入眾多先進科技,同時要控制成本,節(jié)約成本,能為更多人所使用。目前市面上,只局限于傳統(tǒng)的導盲杖,只有普通的支撐輔助作用,僅僅只是一根拐杖,這種價格便宜,功能單一的拐杖,已經(jīng)遠遠不能滿足具有視力障礙的人的需要,人們對其要求越來越高。本文所設計的系統(tǒng)不僅能利用超聲波測量前方障礙物,還通過語音震動提醒使用者,各方面功能也有比較全面的進步。
1 主控板
本系統(tǒng)中所采用的主控模塊Arduino Uno rev3和使用搭載cortex-m4內核的STM32F429IGT6芯片,作為一款大眾所實用的平臺模板,其處理器核心是ATmega328系列,具有14路數(shù)字輸入/輸出端,其中6路模擬輸入,能夠很好地駕馭,同時作為一款具有高處理速度、低功耗、超強抗干擾以及高速率等特點的單片機也是其經(jīng)久不衰的原因,發(fā)展到r3系列,改進了前兩代許多的缺點,同時指令簡單,易于操作,管腳端口數(shù)量多且良好的兼容性,而且電容量足夠大,也能很好地滿足該系統(tǒng)對耗電量的續(xù)航的要求,使得該款單片機很好的符合了本文的需求。如圖1所示為Arduino Uno rev3電路原理圖。
2 GPS衛(wèi)星定位
現(xiàn)代的GPS系統(tǒng)主要由地球空間部分、地面控制端部分、用戶終極端部分三部分所構成。其主要是由GPS接收終端機所組成,根植于移動端,其能夠很好地分析傳來的地理信息,內置供導航計算的算法方案,計算出終端機的經(jīng)緯度進而顯示出來,通過借助高德API來轉變格式形成地圖上的定位點,這就形成了用戶所看見的定位信息。其定位原理是差分定位,前者是定位精度較高而且也是常用的,正常來講,三點確定一線,即一個GPS接收器,但在正常使用時候,往往需要多一個,來更好地確定傳輸距離。本系統(tǒng)設計中,需要知道三個量,“經(jīng)”“緯”“高”三度。在編程中,通過GetLocation()函數(shù)來獲得這些量,而且需要四組數(shù)據(jù),保證在定位過程中的準確性。在進行GPS模塊設計時,把GPS模塊的串口1與Arduino Uno rev3的串口PC0相連接,模塊與天線的連接根據(jù)情況可以添加一級前置放大器當作電壓信號處理。
3 超聲波測距與震動提醒
本模塊采用HC-SR04普通超聲波和kt40-1602高壓超聲波共同實現(xiàn)測距功能。其中所使用的測距方法稱為回聲探測法,即超聲波的發(fā)射器向一個方向發(fā)射超聲波,當超聲波在傳播的途中碰到障礙物便會立刻反射回來,接收到反射的超聲波的時間與發(fā)射時間的差值除以二便是測距模塊與障礙的距離。為了更好理解測距模塊其中是如何工作,首先要了解其工作的原理,首先Arduino Uno r3通過外部引腳P3.0輸出電平脈沖,進行復位電路,控制程序使其輸出相應的載波頻率到超聲波發(fā)射器,于是開始工作,計數(shù)器同時在計數(shù),檢測一個來回的檢測時間與接收脈沖波形的瞬間,正常超聲波傳播期間,接觸到障礙物馬上停止前進并折返回來,超聲波接收器馬上感應,即收到反射波,下令計數(shù)器馬上停止工作。測距模塊最遠可測量距離為10m,測距精度可達到3mm。該模塊包括控制中樞電路、發(fā)射器以及信號接收器,圖2為超聲波測距工作示意圖。
基本工作原理包括:
(1) I/O口的TRIG能夠開始啟動測距功能,提供不少于10us的信號,而且是高電平的;模塊自動發(fā)送8個40Hz的方波,自動檢測是否有信號返回;
(2) 一旦信號折返,I/O口的ECHO就會發(fā)送高電平信號,其能夠持續(xù)的時間,就是我們所理解的從發(fā)射到返回所需要的時間,其中所需距離 =(高電平時間*聲速(340m/s))/2。
震動提醒作為本系統(tǒng)的一部分,震動提醒和蜂鳴器模塊是當作一種用來提醒盲人行進前方有障礙物的提示方式,當通過超聲波模塊感應到前方的障礙物時,經(jīng)過外部引腳I/O口流入電流,蜂鳴器就會發(fā)出聲響,震動器就會發(fā)生微微的震動。當夜間出行的時候,為了更好讓路人和車輛注意到使用者,避免碰撞,能起到很好的提示作用。其低電壓、低電流的工作不會對人體造成傷害,所以被廣泛用于很多場合。
4 系統(tǒng)軟件設計
4.1 系統(tǒng)流程圖設計
本節(jié)中,闡述服務器模塊的構建和后臺APP界面內部的設計,其中包括定位功能、基于TCP協(xié)議的Socket通信信號構建、數(shù)據(jù)庫表的建立、Android與MySQL的數(shù)據(jù)連接以及高德API的構建鏈接。
本系統(tǒng)中軟件設計的部分,實現(xiàn)了一種基于Android的遠程定位結合SIM900A芯片、GSM/GPS模塊和服務器LAMP共同獲取定位信息的一種設計思路,并內嵌高德云圖API使其接收準確位置的信息。系統(tǒng)的軟件設計流程圖如下圖5所示。
4.2 服務器與數(shù)據(jù)表模塊設計
從系統(tǒng)的構建需求,需要使用一臺服務器能夠支持多用戶同時服務,這就要求服務器的結構設計能夠穩(wěn)定的正常運行。本系統(tǒng)中,選擇了LAMP來搭建后臺服務器,用作數(shù)據(jù)傳輸和獲取。
LAMP為Linux+Apache+Mysql+PHP多方組合的英文縮寫,是一組常用做搭建動態(tài)網(wǎng)站或者服務器的開源軟件,但是我們這里并沒有全部都使用這其中的功能,只是借鑒了其中一部分開發(fā)者功能。即MySQL是作為一類為LAMP系統(tǒng)所提供的數(shù)據(jù)存儲端,其強大簡單的功能能夠很好地適合運行本系統(tǒng)運作的數(shù)據(jù)庫管理器。
在設計數(shù)據(jù)庫中,該系統(tǒng)是使用了Navicat for MySQL軟件來創(chuàng)建三個數(shù)據(jù)表,分別是Account、user info、user password作為登陸APP的賬號、用戶名、密碼的信息庫,同時在Eclipse上建立一個類DBUTIL和利用try catch()與getConnect()的方法來說明并再新建另一個類來使用doGet()方法獲取數(shù)據(jù)庫的信息。
數(shù)據(jù)庫表的設計,首先要從其設計的項目大小出發(fā),即系統(tǒng)的容量,根據(jù)你所需要的擴展大小做出的相應調整。需要從設計開發(fā)的角度去著手,從自己的最終目標考慮,然后看自己需要什么功能就設計相應的數(shù)據(jù)表。在本系統(tǒng)中,由于需要的量不多,故只需要設計三個表即可,命名也要遵循一定的規(guī)則,按照官方的要求,盡可能的方便開發(fā)者所讀懂就可以,避免出現(xiàn)連自己都看不懂的名稱,這一定程度上,能夠節(jié)省開發(fā)設計時間。
4.3 基于TCP協(xié)議的Socket通信
基于TCP協(xié)議的Socket通信可分為客戶端和服務端之間的通信,這其中又可以分為幾部分,分別由建立Server Socket與Socket連接、開啟輸出輸入流、協(xié)議讀寫程序、結束資源入口這四部分所構成。
Socket通信能夠在雙方建立起連接后,通過一定的方法,可以直接進行數(shù)據(jù)的無縫連接,連接的時候可以實現(xiàn)信息數(shù)據(jù)的主動推送,而免去了每次由客戶端向服務器發(fā)送請求命令,其為通信雙方提供了數(shù)據(jù)傳輸?shù)耐ǖ?,即為Socket連接。尤其他數(shù)據(jù)率丟失率低、使用簡單和易于移植的強大特點使得能夠穩(wěn)定運行于本系統(tǒng)之中。
在實現(xiàn)通信過程中,Server端需要聲明一個Server Socket對象并指定端口號,接著調用Server Socket的accept()方法來接收Android端數(shù)據(jù)信息。Android端需要創(chuàng)建一個Socket對象并指定Server端IP地址和端口號,通過input stream讀取數(shù)據(jù),獲取服務器發(fā)出數(shù)據(jù),最后將要發(fā)送數(shù)據(jù)寫入到output stream,開始實現(xiàn)TCP協(xié)議的Socket數(shù)據(jù)傳輸。以下圖7清晰的講述了Socket通信的基本流程。
在實際操作中,建立了Socket通信接收就能夠由Sim900A芯片、GSM/GPRS模塊經(jīng)TCP發(fā)送經(jīng)緯度信息并存入MySQL數(shù)據(jù)庫中,接著Android客戶端讀取MySQL數(shù)據(jù)庫中存放的經(jīng)緯度信息。
5 系統(tǒng)測試
5.1 硬件模塊與超聲波測距模塊的程序測試
程序的測試需要是系統(tǒng)的最后一步,也是檢驗能否成功的關鍵一步。把寫好的程序燒進開發(fā)板里就好比向一個小孩灌輸知識,所以整個系統(tǒng)連接完成后就是靠程序的正常運行,由kell C51該款軟件來進行調試與編譯的工作,最下方的方框顯示了程序運行的錯誤和警告,若沒出現(xiàn)任何錯誤提示,則說明可以正常燒進,并可以編譯成功。程序測試如圖9所示:
對于感測行走過程中障礙物的距離,超聲波測距模塊起著重要的作用。首先該系統(tǒng)猶如一雙指引幫助盲人前進的眼睛,在程序中設定距離障礙物某一個距離時就可以感應到并做出通過蜂鳴器來發(fā)出聲響,這是它的基本原理。
這部分是由Arduino來控制實現(xiàn)功能的,連接蜂鳴器的四個端口,其中gnd、trig、vcc、echo分別連接Arduino的四個特定端口,該測試與前一部分緊密結合,共同構成一個完整的整體。
5.2 整體系統(tǒng)測試
基于各模塊分開的測試,測試到的只是每一部分所起到的作用,所以結合一個整體的時候的測試很有必要。整體系統(tǒng)如圖10所示,圖中有3-4個按鈕,通過按下不同顏色的按鈕,分別對應不一樣的模塊起作用,簡單的設計為了方便盲人使用,所以盡可能使其合理,操作簡化,易于上手。經(jīng)過調試與測試,本系統(tǒng)功能正常,可實現(xiàn)超聲波測距震動提醒功能。
6 結語
盲人是一個特殊的社會群體,如何幫助保護并尊重他們是一個重要的課題。盲人的日常生活需要借助其他媒介的感知與更好判斷周圍的空間事物輔助出行從而構成本項目的實現(xiàn)出發(fā)點。
為了提高盲人行走的安全性和方便性,綜合各方因素設計了本系統(tǒng)。其創(chuàng)新性、實用性、合理性高度貼近生活的需要,將會大大影響盲人出行的方式。
參考文獻:
[1] 蔡睿妍.Arduino的原理及應用[J].電子設計工程,2012,20(16):155-157.
[2] 于紅利.盲人導行輔助系統(tǒng)中信息采集及優(yōu)化研究[D].南華大學,2013.
[3] 謝敬仁.彭霞光.中國盲人定向行走訓練的現(xiàn)狀與發(fā)展對策[J].中國特殊教育,2008(8),53-56,40.
[4] 秦瑞超.邵向楠.盛慶偉,等.國內外主要衛(wèi)星導航定位系統(tǒng)的發(fā)展分析[J].黑龍江科技信息,2010,(24):11-12.
[5] 朱筱虹.徐瑞.孫妍,等.GPS標準現(xiàn)狀及體系分析[J].無線電工程,2012,42(8):28-31.
[6] 郭竹.當前GPS行業(yè)發(fā)展及產(chǎn)業(yè)化分析[J].科技信息,2009(10):356.
[7] 翟順.王衛(wèi)紅.張衎,等.基于SIM900A的物聯(lián)網(wǎng)短信報警系統(tǒng)[J].現(xiàn)代電子技術,2012,35(5):86-89.
[8] 張維文.孫耀杰.王彬宇,等.基于 Android和 SIM900A 模塊位置實時監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].中國礦業(yè),2014,(z2):362-365.
[9] 姚旭禹.湯莉莉,黃思嘉,等.智能盲人拐杖的研究與設計[J].科技創(chuàng)新導報,2015(27):61-62.
[10] 郭明欣.實時GPS定位應用中定位數(shù)據(jù)的提取[J].科技風,2010(8):255.
胡延蘇.高昂.超聲波測距誤差分析及校正研究[J].計算機測量與控制,2015,23(8):2820-2823.
[11] 童峰.許天增.一種移動機器人超聲波導航系統(tǒng)[J].機器人,2002,24(1):55-57,61.
[12] 余琴,趙振華.基于GPRS的SOCKET通信的應用研究[J].單片機與嵌入式系統(tǒng)應用,2005(11):52-53,57.
[13] 李庭威,王峰,汪進,等.高精度差分在高德地圖上的多點實時定位[J].電腦知識與技術,2017,13(23):200-201.
[14] Wen Da Huang. Remote Monitoring of Environment by Android Smartphone through Secure Sockets Layer[J]. Applied Mechanics and Materials,2014,3013(522).
[15] Jing Li,George Taylor,David B. Kidner. Accuracy and reliability of map-matched GPS coordinates: the dependence on terrain model resolution and interpolation algorithm[J]. Computers and Geosciences,2004,31(2).
【通聯(lián)編輯:梁書】