張超
摘 要:基于Android平臺(tái)的遠(yuǎn)程遙控小車,可以使用智能手機(jī)通過(guò)藍(lán)牙(或wifi)發(fā)出指令。該車可以躲避障礙物,實(shí)時(shí)視頻傳輸,可用于在發(fā)生自然災(zāi)害時(shí)執(zhí)行搜索任務(wù)。經(jīng)過(guò)相關(guān)參數(shù)的測(cè)試,實(shí)驗(yàn)表明該智能小車性能穩(wěn)定、操控性好,視頻傳輸穩(wěn)定。通過(guò)對(duì)各部件電流消耗的分析,提出了優(yōu)化方案。
關(guān)鍵詞:藍(lán)牙;wifi;遙控小車;Android設(shè)備
1 概述
隨著手機(jī)移動(dòng)技術(shù)迅速發(fā)展,智能手機(jī)的功能越來(lái)越強(qiáng)大,從單一通話和收發(fā)短信,發(fā)展到可進(jìn)行移動(dòng)搜索、全球定位導(dǎo)航、手機(jī)電視、實(shí)時(shí)視頻通信等其它強(qiáng)大功能。Android是一種以linux為基礎(chǔ)的開源操作系統(tǒng),基于此平臺(tái)的手機(jī)應(yīng)用滲透到生活的方方面面?;贏ndroid平臺(tái)的無(wú)線遙控汽車,通過(guò)藍(lán)牙(或wifi)發(fā)出指令。該車可以躲避障礙物,實(shí)時(shí)視頻傳輸,可用于在發(fā)生自然災(zāi)害時(shí)執(zhí)行搜索任務(wù),具有一定的實(shí)際意義。
2 系統(tǒng)概述
該系統(tǒng)是由一個(gè)遙控小車單元和一個(gè)運(yùn)行在Android智能手機(jī)的應(yīng)用程序組成。
總體方案設(shè)計(jì):
總體硬件框圖如圖1所示。
主板采用Arduino公司的Mega開發(fā)板,它是一個(gè)開源的單板機(jī)控制器,采用了基于開放源代碼的軟硬件平臺(tái),構(gòu)建于開放源代碼 simple I/O 接口版,并且具有使用類似Java,C 語(yǔ)言的Processing/Wiring開發(fā)環(huán)境。Arduino Mega是一塊以ATmega2560為核心的微控制器開發(fā)板,提供54個(gè)數(shù)字輸入/輸出引腳(其中6可以作為PWM輸出)8個(gè)模擬輸入,2個(gè)UART(硬件串口),一個(gè)16 MHz的晶體振蕩器,一個(gè)USB連接,輸入電壓6-12V 。主板產(chǎn)生1 前進(jìn)/后退,左/右脈沖,通過(guò)直流伺服電機(jī)控制小車運(yùn)行。
副板采用Arduino 公司的UNO板,微處理器是ATmega328,具有14路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入,一個(gè)16MHz晶體振蕩器,一個(gè)USB口,一個(gè)電源插座,一個(gè)ICSP header和一個(gè)復(fù)位按鈕。副板連接一個(gè)距離傳感器,距離傳感器提供2-400厘米的非接觸式測(cè)量功能,精度可達(dá)到3毫米。
一個(gè)VGA攝像頭連接到路由器模塊,該裝置安裝在主控板后面。由攝像頭拍攝的視頻輸入到路由器通過(guò)wifi連接到Android設(shè)備,該視頻實(shí)時(shí)顯示在Android應(yīng)用程序。
3 下位機(jī)軟件設(shè)計(jì)
主程序流程:
本系統(tǒng)的軟件完成以下功能:
(1)系統(tǒng)初始化:包括I/O口工作模式、串口、中斷、PWM的初始化,同步手機(jī)應(yīng)用程序等。
(2)接受上位機(jī)android設(shè)備的控制命令。
(3)控制電機(jī)的運(yùn)轉(zhuǎn)方向和速度。
副板上安裝有距離傳感器,ATmega 328微處理器通過(guò)計(jì)算距離傳感器發(fā)出脈沖和接受信號(hào)之間的間隔時(shí)間來(lái)確定與障礙物的距離,如果此距離小于20厘米,將產(chǎn)生中斷,中斷命令將被發(fā)送到主板的atmega2560微處理器上,主板將關(guān)閉伺服電機(jī),避免可能出現(xiàn)的碰撞。如果計(jì)算出的距離大于20厘米,不產(chǎn)生中斷,小車?yán)^續(xù)前進(jìn)。
4 基于Android智能手機(jī)應(yīng)用程序開發(fā)
4.1 Android系統(tǒng)架構(gòu)
Android系統(tǒng)架構(gòu)由5部分組成,分別是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。
4.2 方向控制
首先我們創(chuàng)建一個(gè)傳感器管理器和一個(gè)傳感器監(jiān)聽器,管理器用來(lái)管理傳感器以及創(chuàng)建各種各樣的傳感器,監(jiān)聽器用來(lái)監(jiān)視傳感器的變化并且進(jìn)行相應(yīng)的操作
private SensorManager sensorManager;private MySensorEventListener mySensorEventListener;
mySensorEventListener= new MySensorEventListener();
這個(gè)監(jiān)聽器當(dāng)然是我們自己定義的,在方向感應(yīng)器感應(yīng)到手機(jī)方向有變化的時(shí)候,我們可以采取相應(yīng)的操作。
private final class MySensorEventListener implements SensorEventListener{
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType()==Sensor.TYPE_ORIENTATION){
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
x表示手機(jī)指向的方位,0表示北,90表示東,180表示南,270表示西
Y表示沿x軸的傾斜度,0表示水平,90表示頭向上垂直,180表示面向下水平,270表示頭向下垂直。
Z表示沿y軸的滾動(dòng)角度,0表示水平,90表示右側(cè)向上垂直,-90表示左側(cè)向上垂直。
應(yīng)用程序首先調(diào)用方向傳感器,獲取手機(jī)和一個(gè)通過(guò)Android傳感器管理器定義的默認(rèn)坐標(biāo)之間的角度信息,然后應(yīng)用程序根據(jù)預(yù)定義的閾值將方向數(shù)據(jù)轉(zhuǎn)換為執(zhí)行命令。
5 系統(tǒng)特性和實(shí)驗(yàn)系統(tǒng)
經(jīng)測(cè)試遙控小車的最大速度約為30厘米/秒,可以攜帶多達(dá)450克負(fù)荷。在開放空間本單元和Android設(shè)備之間通過(guò)藍(lán)牙或Wi-Fi通信的最大范圍為10米和20米。經(jīng)測(cè)量,當(dāng)設(shè)置在20厘米檢測(cè)距離時(shí),本單元與障礙物之間自主停車距離在2厘米至7厘米。小車是由兩個(gè)9伏電池供電,經(jīng)測(cè)量在滿負(fù)荷條件下每個(gè)電池的最大消耗電流約0.73A
6 結(jié)論和改進(jìn)
基于Android平臺(tái)的無(wú)線遙控小車,可以通過(guò)Android設(shè)備(如智能手機(jī)或平板電腦)無(wú)線控制。該系統(tǒng)具有良好的操控性和實(shí)用性,可以通過(guò)狹小的空間執(zhí)行搜索、探查任務(wù)。電流的測(cè)量結(jié)果表明,滿負(fù)荷下系統(tǒng)的功率消耗是比較高的。然而,通過(guò)數(shù)據(jù)分析我們了解哪些組件消耗大部分的能量,這為我們進(jìn)一步優(yōu)化設(shè)計(jì)提供了依據(jù)。
(1)計(jì)劃修改Android應(yīng)用程序?qū)崿F(xiàn)自主控制。例如,當(dāng)小車前面沒(méi)有障礙物的時(shí)候,我們通過(guò)Android應(yīng)用程序?qū)㈥P(guān)閉距離傳感器,這樣可以減少電量消耗。
(2)電流消耗試驗(yàn)還表明,對(duì)于執(zhí)行連續(xù)工作的小車,電量消耗還是比較大的,由于該小車可以攜帶更多的負(fù)載,因此可以安裝更大能量的電池組。
(3)替換更強(qiáng)大和低功耗的單片機(jī)以增加處理能力,并將進(jìn)一步降低功耗。
參考文獻(xiàn)
[1]李寧.Android開發(fā)權(quán)威指南[M].北京:人民郵電出版社,2011.
[2]陳德益.基于嵌入式單片機(jī)的電機(jī)控制系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)仿真,2010,27(1):359-362.
[3]林志翔.新型多功能智能小車的設(shè)計(jì)與應(yīng)用[J].現(xiàn)代電子技術(shù),2011,34(6):134-136.