王孜 俞曉鋒 趙玉美 王效靈
摘 要:基于數(shù)字中國的物聯(lián)網(wǎng)概念,文中設(shè)計了基于安卓平臺的智能停車系統(tǒng)。為緩解大中城市停車難的問題,依托全向輪技術(shù)設(shè)計了一種全新的采用紅外測距傳感器避障的全向移動機器人。基于Bmob云構(gòu)建了安卓平臺,實現(xiàn)了傳感器到管理端的藍牙數(shù)據(jù)無線傳輸以及通過用戶手機終端遠程與管理端進行信息交互。本系統(tǒng)的用戶可在手機APP上隨時搜索附近的停車場;發(fā)送命令遠程調(diào)配機器人停車;在手機APP上在線繳費。該系統(tǒng)結(jié)合全向移動機器人和安卓平臺,通過手機滿足用戶快速停車的需求,實現(xiàn)了停車系統(tǒng)的智能化、互聯(lián)網(wǎng)化。
關(guān)鍵詞:物聯(lián)網(wǎng);安卓平臺;全向輪;Bmob云;智能停車
中圖分類號:TP319 文獻標識碼:A 文章編號:2095-1302(2018)08-00-04
0 引 言
隨著家庭車輛擁有量的快速上漲,“停車難”已經(jīng)成為很多城市的通病,困擾著人們的出行。當前階段,城市中大多數(shù)停車場均為傳統(tǒng)模式,車主需要刷卡進出場、自行倒車入位,取車時需要走到停車處,找到自己的車輛后再將車子駛出車庫。而停車更是一件對駕駛?cè)藛T停車技術(shù)、安全意識要求較高的事情。同時考慮到車輛雙向通行的現(xiàn)狀,對停車場空間要求也較高。可以看出,傳統(tǒng)停車模式占地空間大、效率低,已遠遠不能滿足大中型城市中人們的停車需求[1]。
本項目針對傳統(tǒng)停車模式的缺點,結(jié)合最新的物聯(lián)網(wǎng)概念,開發(fā)了基于安卓平臺的用戶端APP、管理端APP,研發(fā)并封裝了全向移動機器人,這三者通過藍牙、Bmob云結(jié)合,成為一個完整的停車系統(tǒng),使得用戶操作流程更加人性化、管理者故障檢測更加輕松、管理者系統(tǒng)調(diào)配更加合理。
1 設(shè)計方案
基于安卓平臺的智能停車系統(tǒng)包括全向移動機器人、安卓平臺APP、Bmob云服務器、停車臺四個主體部分,其組成如圖1所示。
(1)全向移動機器人的組成包括鋰電池、直流電機、全向輪、Arduino主控板、紅外測距傳感器、藍牙通信模塊、L298N電機驅(qū)動模塊、M0300舵機、升降平臺;
(2)安卓平臺APP包括管理端APP、用戶端APP。
基于安卓平臺的智能停車系統(tǒng)的總體結(jié)構(gòu)如圖2所示。
系統(tǒng)主要實現(xiàn)如下功能:
(1)自動避障:通過紅外測距傳感器檢測數(shù)據(jù),并通過Arduino板、藍牙通信模塊傳送至管理端,當距離小于設(shè)定的安全距離時,機器人停止運動,實現(xiàn)自動避障。
(2)控制全向移動機器人:管理端根據(jù)用戶的停車需求,將管理端APP與機器人的藍牙連接,操作APP控制4個全向輪的運動及升降平臺的抬升和下降。
(3)智能停取車:用戶通過用戶端APP發(fā)送“開始停車”命令,通過Bmob云服務器將該命令傳輸至管理端,使其迅速調(diào)配、控制機器人停車;取車時,發(fā)送“結(jié)束停車”命令通知管理端控制全向移動機器人取車。
(4)找停車場:用戶可以使用手機APP的“找停車場”按
鍵,開啟內(nèi)置的百度地圖功能,迅速找到附近停車場。
(5)線上繳費:采用計時器記錄停車時間,再通過換算轉(zhuǎn)化為停車費用展示給用戶,實現(xiàn)在線快速繳費。
2 系統(tǒng)各部分工作原理
2.1 全向移動機器人
全向移動機器人的組成包括全向輪、Arduino主控板、紅外測距傳感器、藍牙通信模塊等部件。紅外測距傳感器將檢測到的距離信息傳輸給主控板。主控板一方面將數(shù)據(jù)通過藍牙模塊發(fā)送到管理端,另一方面通過L298N電機驅(qū)動模塊控制全向輪運動。
2.1.1 紅外測距傳感器
紅外測距傳感器為三線制,其主要功能為距離檢測。紅外測距傳感器體積小,響應時間短,功耗較低,在無反光板和反射率低的情況下能測量較遠的距離,其很高的頻率響應適合惡劣的工業(yè)環(huán)境,可實時測量距離。
其輸出電壓與實際距離的關(guān)系表達式經(jīng)過測算、擬合如下:
2.1.2 Arduino主控板
Arduino是一款便捷靈活、方便上手的開源電子原型平臺。本系統(tǒng)采用的Arduino主控板以ATmega328 MCU控制器為基礎(chǔ),具備14路數(shù)字輸入/輸出引腳(其中6路可用于PWM輸出)、6路模擬輸入、1個16 MHz的陶瓷諧振器、1個USB接口、
1個電源插座、1個ICSP接頭和1個復位按鈕[2]。
(1)Arduino數(shù)據(jù)上傳
ATmega328內(nèi)置的UART通過數(shù)字口0(RX)和1(TX)與外部實現(xiàn)串口通信,將數(shù)據(jù)傳送到藍牙通信模塊中。管理端通過藍牙發(fā)送指令給主控板,使其控制機器人運動。
(2)Arduino閾值控制
ATmega16U2可以訪問數(shù)字口實現(xiàn)USB上的虛擬串口,核心程序代碼燒錄在主控板中,可通過藍牙獲取管理端的指令閾值并接受傳感器檢測的距離信息。通過對設(shè)定的閾值和實際檢測到的距離數(shù)值進行比較,判斷是否控制L298N電機驅(qū)動模塊使全向輪停止運動,由此實現(xiàn)自動避障。
2.1.3 全向輪
本系統(tǒng)采用全向輪代替一般車輪實現(xiàn)機器人的全向運動,它是一種結(jié)構(gòu)簡單、適用范圍廣,可以在較差路況上運動的車輪。全向輪實物如圖3所示。
采用全方位運動車輪可以有效解決一般車輪由于不能左右側(cè)滑而帶來的非完全約束問題。它可以向任意一個方向作直線運動而不需要提前作旋轉(zhuǎn)運動,并且當其沿著直線運動到目標點的過程中還可以調(diào)整自身旋轉(zhuǎn)角度與姿態(tài),實現(xiàn)最終所需角度[3]。
本系統(tǒng)設(shè)計的全向移動機器人共采用4個全向輪,且相互之間的連線可構(gòu)成一個正方形。機器人俯視圖如圖4所示。
2.1.4 藍牙通信模塊
藍牙通信模塊的主要功能是實現(xiàn)遠程通信,具有實時性強、可遠程控制、覆蓋范圍廣、抗干擾能力強等優(yōu)點。本系統(tǒng)采用HC-05藍牙通信模塊,該模塊是主從一體的藍牙串口模塊。當藍牙設(shè)備之間配對連接成功后,可以忽視藍牙內(nèi)部的通信協(xié)議,直接將藍牙當做串口使用。
本系統(tǒng)的藍牙通信模塊主要實現(xiàn)與管理端進行數(shù)據(jù)交互的功能。在每輪數(shù)據(jù)交互中,管理端發(fā)送一個代表運動方向的字符給藍牙,藍牙將該字符傳輸給Arduino主控板,主控板更新字符并與程序預設(shè)的代表不同運動方向的字符進行比較,啟動L298N電機驅(qū)動模塊控制全向輪運動,由此實現(xiàn)管理端控制機器人全向移動。若在數(shù)據(jù)交互中沒有管理端的運動命令,則機器人不再運動。
全向移動機器人的各部件連接方式如圖5所示。
2.2 Bmob云服務器
安卓平臺的開發(fā)以及云端數(shù)據(jù)的存儲均需服務器的支持,開發(fā)者首先需搭建好公網(wǎng)服務器,本文系統(tǒng)選用Bmob云服務器。Bmob云服務器是一款為移動應用提供后端集成功能的云平臺,具有網(wǎng)絡數(shù)據(jù)下載、儲存功能以及信息通知功能[4]。Bmob云服務器數(shù)據(jù)交互示意圖如圖6所示,Bmob云服務器停車指令傳遞流程如圖7所示。
本文系統(tǒng)的實現(xiàn)使得用戶可在手機APP端查看附近停車場的情況,還可以通過手機APP與管理端實現(xiàn)信息交互,調(diào)配機器人智能停車或在線繳費。因此服務器端需要完成如下三個方面的設(shè)計:
(1)連接用戶端APP;
(2)連接管理端;
(3)在數(shù)據(jù)庫中存儲用戶個人登錄信息、用戶停車信息、安全距離閾值等狀態(tài)信息。
2.3 安卓平臺APP
安卓是一種基于Linux的自由及開放源代碼的操作系統(tǒng),本文系統(tǒng)的所有程序開發(fā)均在Android Studio上進行,主要面向智能手機。本文系統(tǒng)中的安卓平臺APP分為管理端和用戶端兩部分:
(1)管理端用于獲取用戶停車信息,控制全向移動機器人,實現(xiàn)系統(tǒng)控制與用戶管理;
(2)用戶端用于登錄賬號、停車場搜索、發(fā)送停取車指令、繳費等,同時與管理者對接,進行數(shù)據(jù)交互[5]。
2.3.1 管理端
本系統(tǒng)的管理端通過藍牙與機器人對接,負責控制其全向的移動、旋轉(zhuǎn)和平臺升降。在機器人遇到障礙物時,電機會停止運轉(zhuǎn)進行保護,系統(tǒng)會通過彈窗形式提醒管理者,達到安全作業(yè)的目標。
同時,用戶信息會通過Bmob云服務器上傳至管理端,便于信息的管理、操控、反饋。
2.3.2 用戶端
本文系統(tǒng)的用戶端APP名稱為“易停車”,具有尋找停車場、停車繳費、當前訂單查詢?nèi)笾饕δ躘6-7]。
(1)“找停車場”功能
主要調(diào)用百度地圖實現(xiàn)此功能,具體步驟如下:
① 下載百度地圖移動版API(Android)開發(fā)包;
② 申請API Key;
③ 創(chuàng)建一個Android工程;
④ 在布局文件中添加地圖控件。
(2)“停取車”功能
在平臺停車后,用戶輸入平臺號,再通過手機APP發(fā)送“開始停車”命令。該命令先傳輸至Bmob云,再由云端傳輸至管理者端,使其迅速控制機器人停車。取車時,發(fā)送“結(jié)束停車”命令通知管理者控制機器人取車。
(3)“繳停車費”功能
系統(tǒng)采用計時器記錄停車時間,再通過換算轉(zhuǎn)化為停車費用展示給用戶,達到在線快速繳費的目標。部分代碼如下:
……
public class Pay extends MainActivity{
TextView parkmoney;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pay);
Intent intent=getIntent();
String time = intent.getStringExtra("extra_time");
parkmoney=(TextView)findViewById(R.id.money);
parkmoney.setText(String.valueOf(time));
}
}
同時,為了加強用戶端與管理端的溝通,本系統(tǒng)將用戶登錄信息、訂單信息、停車信息上傳至管理端,實現(xiàn)實時信息交互功能,優(yōu)化用戶體驗,使停車過程變得快速、便利、智能。其啟動頁、登錄界面、主界面如圖8所示。
2.4 停車臺
停車臺用于放置所停車輛。每個停車臺對應一個停車臺號,用戶先將車輛停于外部的停車臺上,再通過用戶端APP發(fā)送停車臺號與停車指令給管理端,管理端控制機器人將停車臺整體抬起,進入內(nèi)部停車場進行停車操作,到達指定停車位后將停車臺整體放下,然后機器人可以離開繼續(xù)執(zhí)行停車任務;待用戶發(fā)送取車指令后,再找到相應位置,將停車臺整體抬起,送至外部。停車臺的俯視圖略大于機器人。
3 系統(tǒng)的整體操作流程
首先,登錄用戶端APP,之后點擊“找停車場”按鍵,打開內(nèi)置地圖找到附近的停車場。
接下來點擊“停取車”按鍵,輸入停車臺號,點擊“開始停
車”按鍵(此時開始計費),此命令通過Bmob云服務器傳輸至管理端,管理端將收到對應停車臺的停車請求。管理端通過與藍牙通信模塊的連接,可發(fā)送代表運動方向的字符給藍牙,藍牙將字符傳輸至Arduino主控板,主控板更新字符并與程序預設(shè)的代表不同運動方向的字符進行比較,啟動L298N電機驅(qū)動模塊控制直流電機帶動全向輪,操作全向移動機器人駛?cè)胪\嚺_下;之后發(fā)送代表抬升的字符給藍牙,藍牙將字符傳輸給主控板,主控板更新字符并與程序預設(shè)的代表升降的字符進行比較,啟動舵機控制升降平臺,使其抬升停車臺;管理端控制機器人駛?cè)雰?nèi)部停車場,到達停車位后將下放平臺,放置停車臺至地面。
用戶取車時,點擊“結(jié)束停車”按鍵(此時結(jié)束計費),此命令通過Bmob云服務器傳輸至管理端APP,管理端收到取車請求后,控制機器人將車輛移至用戶等待位置。
最后用戶點擊“支付”按鍵在線繳納停車費方可取車離開停車場。
4 安卓用戶端APP效果圖
安卓用戶端APP使用界面如圖9所示。用戶可通過APP搜索附近停車場、發(fā)送命令遠程調(diào)配機器人停車、在線繳
費等。
5 結(jié) 語
本文設(shè)計實現(xiàn)的智能停車系統(tǒng)結(jié)合全向輪技術(shù)和物聯(lián)網(wǎng)概念,基于安卓平臺開發(fā),使得用戶操作流程更加人性化、管理者故障檢測更加輕松、管理者系統(tǒng)調(diào)配更加合理。
該系統(tǒng)不僅為人們的生活提供了便利,更有效緩解了城市停車空間不足的問題。全向移動停車機器人在經(jīng)過工業(yè)級設(shè)計投產(chǎn)后,可以迅速滿足一個智能停車場的車輛停放需求,實現(xiàn)真正意義上的智能化停車[8]。在可持續(xù)發(fā)展方面,該系統(tǒng)在進行停取車作業(yè)時汽車均處在熄火狀態(tài),能夠真正實現(xiàn)零排放。
因此,該系統(tǒng)在停車模式的智能化、互聯(lián)網(wǎng)化、環(huán)保化等方向均具有良好的應用價值和前景。
參考文獻
[1]云賀.城市"停車難"如何破局[J].財經(jīng)國家周刊,2017(9).
[2]李國豪,翁柏濤,楊曉冰,等.基于Arduino的AGV小車設(shè)計[J].中國科技信息,2018(5):82.
[3]許松清,吳海彬,楊興裕.兩輪驅(qū)動移動機器人的運動學研究[J].電子機械工程,2005,21(6):31-34.
[4]周冉,高玉竹.Bmob云平臺在Android APP開發(fā)中的應用[J].微型機與應用,2015,34(1):26-28.
[5]劉學.移動智能終端停車系統(tǒng)APP用戶體驗研究與設(shè)計[D].天津:天津科技大學,2015.
[6]宋超.手機停車APP系統(tǒng)的設(shè)計與實現(xiàn)[D].長春:吉林大學,2016.
[7]陳飛,羅文廣.基于Android的智能交互APP設(shè)計[J].廣西科技大學學報,2017,28(2):29-34.
[8]鄒丹,馬向莉.全向輪智能移動平臺前景展望[J].軍民兩用技術(shù)與產(chǎn)品,2012(2):56-58.