基于802.11b與安卓手機(jī)操控機(jī)器魚的研究
摘要:本文介紹了一種以“安卓智能手機(jī)”和“802.11b技術(shù)”為基礎(chǔ)的新型機(jī)器魚操控系統(tǒng)。該系統(tǒng)以安卓平臺(tái)下的智能手機(jī)為操作平臺(tái),通過對(duì)手機(jī)端編寫socket程序與802.11b模塊建立無(wú)線通訊連接,經(jīng)Wi—Fi轉(zhuǎn)串口模塊轉(zhuǎn)碼后將手機(jī)發(fā)出的控制指令傳送給單片機(jī),單片機(jī)在接收到控制指令后通過編程產(chǎn)生PWM波實(shí)現(xiàn)對(duì)舵機(jī)的控制,從而實(shí)現(xiàn)對(duì)機(jī)器魚的操控。
關(guān)鍵詞:安卓手機(jī);802.11b;socket;430單片機(jī);機(jī)器魚
隨著科技的進(jìn)步與技術(shù)的發(fā)展,手機(jī)已成為生活中不可或缺的一部分。增強(qiáng)手機(jī)功能方便人們的生產(chǎn)生活成為各大手機(jī)制造商的共同目標(biāo)。目前安裝有Android (安卓系統(tǒng))的手機(jī)越來越受到消費(fèi)者的喜愛,調(diào)查顯示Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場(chǎng)52.5%的份額,中國(guó)市場(chǎng)占有率為68.4%,安卓平臺(tái)下的智能手機(jī)已經(jīng)超越塞班成為全球最具影響力的手機(jī)操作平臺(tái)之一。
802.11b(即Wi—Fi技術(shù))是一種可以將個(gè)人電腦、手持設(shè)備(如PDA、手機(jī))等終端以無(wú)線方式互相連接的技術(shù),它具有傳輸速度快、傳輸距離遠(yuǎn)、網(wǎng)絡(luò)穩(wěn)定性和可靠性高、方便與以太網(wǎng)整合和組網(wǎng)成本低等特點(diǎn)?;谶@些特點(diǎn)Wi—Fi技術(shù)發(fā)展相當(dāng)迅速,如今Wi—Fi技術(shù)已經(jīng)相當(dāng)成熟并且廣泛應(yīng)用于手機(jī)電腦等終端設(shè)備。
以往機(jī)器魚都是用PC機(jī)來控制,但是靈活性差,且控制起來不方便,我們用安卓手機(jī)與Wi—Fi技術(shù)相結(jié)合的方法來控制機(jī)器魚,其靈活性得到了大大增強(qiáng)。隨著機(jī)器魚技術(shù)的深入發(fā)展,多魚協(xié)調(diào)操作會(huì)慢慢成為研究的熱點(diǎn),而日益成熟的Wi—Fi技術(shù)可以實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)的控制,并且Wi—Fi技術(shù)也有功耗低、傳輸速度快等優(yōu)點(diǎn),可以實(shí)現(xiàn)多魚協(xié)調(diào)操作。
1 系統(tǒng)總體架構(gòu)
系統(tǒng)的主體分為四大模塊,嵌有安卓操作系統(tǒng)的手機(jī)模塊、Uart-wifi模塊、單片機(jī)模塊和電源及驅(qū)動(dòng)模塊。系統(tǒng)的總體構(gòu)架如圖1所示。
Android手機(jī)模塊主要完成基于安卓平臺(tái)下的應(yīng)用程序的編寫及控制界面的生成,其作為客戶端,能夠被用戶控制,是人機(jī)信息交換平臺(tái);Uart-wifi模塊主要進(jìn)行無(wú)線通信,接收手機(jī)發(fā)出來的信號(hào)并將MSP430F149單片機(jī)返回的信號(hào)發(fā)送給手機(jī);單片機(jī)模塊作為主控單元主要完成串口通信,并通過識(shí)別Wi—Fi模塊傳來的信號(hào)對(duì)執(zhí)行部件做出相應(yīng)控制;電源及驅(qū)動(dòng)模塊主要完成對(duì)各個(gè)硬件模塊的供電和穩(wěn)壓。這四大模塊相互配合構(gòu)成一個(gè)完整的系統(tǒng),各個(gè)模塊間的聯(lián)系都非常緊密,缺一不可,每一模塊必須正常運(yùn)行,才能保證整個(gè)系統(tǒng)準(zhǔn)確高效運(yùn)轉(zhuǎn)。
[!--empirenews.page--]
2 安卓手機(jī)模塊
首先介紹一下安卓平臺(tái)和socket通信原理。
Android是以Linux為核心的開放式手機(jī)操作平臺(tái),系統(tǒng)架構(gòu)和其它操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux核心層。目前Android已經(jīng)允許開發(fā)者使用多種編程語(yǔ)言來開發(fā)Android應(yīng)用程序,而不再是以前只能使用Java開發(fā)Android應(yīng)用程序的單一局而,因而受到眾多開發(fā)者的歡迎,成為真正意義上的開放式操作系統(tǒng),被大多數(shù)的開發(fā)者視為最有潛力的手機(jī)操作系統(tǒng)。
Socket簡(jiǎn)稱套接字,用于實(shí)現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接,也就是說網(wǎng)絡(luò)上兩個(gè)或兩個(gè)以上雙工方式通信的進(jìn)程之間總有一個(gè)連接,這個(gè)連接的端點(diǎn)稱為套接字(見圖2)。套接字相當(dāng)于由其名字連接起來的通信線路的端點(diǎn),這種連接不僅適用于本地進(jìn)程之間的通信,而且也適用于異地進(jìn)程之間的通信。用套接字連接的兩個(gè)進(jìn)程可雙向通信,且兩通信端點(diǎn)的工作方式是不同的,一端工作于服務(wù)方,另一端工作于客戶方。
手機(jī)模塊作為客戶端,主要完成人機(jī)信息的交換、控制命令的發(fā)出以及返回信息的接收。首先在安卓平臺(tái)的應(yīng)用層編寫上位機(jī)程序,創(chuàng)建操作界面,以實(shí)現(xiàn)人機(jī)信息的交換并把控制指令轉(zhuǎn)化為數(shù)據(jù)幀,然后Socket再把數(shù)據(jù)幀以數(shù)據(jù)流的形式傳送給傳輸層繼而傳送給網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層,最后數(shù)據(jù)流傳送至物理層由手機(jī)Wi—Fi模塊發(fā)送出去,實(shí)現(xiàn)信息的發(fā)送。以下是socket通信的部分程序:
[!--empirenews.page--]
3 Wi—Fi模塊
Wi—Fi無(wú)線網(wǎng)絡(luò)包括兩種類型的拓?fù)湫问?,基礎(chǔ)網(wǎng)(Infra)和自組網(wǎng)(Adhoc)。要說明無(wú)線網(wǎng)絡(luò)的拓?fù)湫问?,需要首先了解兩個(gè)基本概念:
AP:也就是無(wú)線接入點(diǎn),是一個(gè)無(wú)線網(wǎng)絡(luò)的創(chuàng)建者,是網(wǎng)絡(luò)的中心節(jié)點(diǎn)。我們一般家庭或辦公室使用的無(wú)線路由器就一個(gè)AP。
STA:即站點(diǎn),每一個(gè)連接到無(wú)線網(wǎng)絡(luò)中的終端(如筆記本電腦、PDA及其它可以聯(lián)網(wǎng)的用戶設(shè)備)都可稱之為一個(gè)站點(diǎn)。
Infra也稱為基礎(chǔ)網(wǎng),是由AP創(chuàng)建,眾多STA加入所組成的無(wú)線網(wǎng)絡(luò)。這種類型的網(wǎng)絡(luò)的特點(diǎn)是AP是整個(gè)網(wǎng)絡(luò)的中心,網(wǎng)絡(luò)中所有的通信都通過AP來轉(zhuǎn)發(fā)完成:Adhoc也稱為自組網(wǎng),是僅由兩個(gè)及兩個(gè)以上STA自己組成,網(wǎng)絡(luò)中不存在AP,這種類型的網(wǎng)絡(luò)是一種松散的結(jié)構(gòu),網(wǎng)絡(luò)中所有的STA都可以直接通信。
基于自組網(wǎng)中所有的STA都可以直接通信的特點(diǎn),本文采用了自組網(wǎng)的形式建立手機(jī)與Uart-wifi模塊之間的通信。手機(jī)和所有裝有Uart—wifi模塊的機(jī)器魚都各自是一個(gè)STA,當(dāng)手機(jī)發(fā)出控制命令后,每一條機(jī)器魚(即每一個(gè)STA)都會(huì)接收到這個(gè)控制命令,從而做出相應(yīng)的動(dòng)作實(shí)現(xiàn)對(duì)多魚的控制。
由于數(shù)據(jù)在網(wǎng)絡(luò)上是以數(shù)據(jù)幀的形式傳輸?shù)模诖谥惺且宰止?jié)流的形式傳輸?shù)?,我們要想把手機(jī)傳送的網(wǎng)絡(luò)數(shù)據(jù)通過串口傳送給單片機(jī)就要先進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。所以我們采用了嵌入式Uart-Wifi模塊。Uart-wifi模塊是基與Uart接口的符合Wi—Fi無(wú)線網(wǎng)絡(luò)標(biāo)準(zhǔn)的嵌入式模塊,內(nèi)置無(wú)線網(wǎng)絡(luò)協(xié)議IEEE802.11協(xié)議棧以及TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口數(shù)據(jù)到無(wú)線網(wǎng)絡(luò)之間的轉(zhuǎn)換。通過Uart-Wifi模塊,傳統(tǒng)的串口設(shè)備也能輕松接入無(wú)線網(wǎng)絡(luò)。當(dāng)Uart-Wifi模塊接收到網(wǎng)絡(luò)上傳輸過來的數(shù)據(jù)幀時(shí)它會(huì)將這些數(shù)據(jù)從幀格式轉(zhuǎn)換成流格式,這是比較容易的,也是大多數(shù)普通Wi—Fi模塊都能夠?qū)崿F(xiàn)的,但當(dāng)模塊從串口接收單片機(jī)返回的數(shù)據(jù)即接收到流格式數(shù)據(jù)要將其轉(zhuǎn)換成幀格式發(fā)送出去時(shí)就比較困難了,它需要一定的規(guī)則進(jìn)行約束。而Uart-Wifi模塊使用“自動(dòng)組幀長(zhǎng)度”和“自動(dòng)組幀周期”來進(jìn)行約束,能夠輕易的將數(shù)據(jù)從流的形式轉(zhuǎn)換成幀的形式。因此應(yīng)用Uart-wifi模塊作為中間模塊進(jìn)行手機(jī)和單片機(jī)間的通信能夠輕易地解決數(shù)據(jù)類型轉(zhuǎn)換難的問題(見圖3)。
4 單片機(jī)模塊
本項(xiàng)目采用MSP430F149單片機(jī)作為魚體控制芯片,它是一種高性能、低功耗的16位控制器,廣泛應(yīng)用于通訊控制設(shè)備中。作為控制芯片,MSP430F149單片機(jī)顯著特點(diǎn)是高效、低耗。它的數(shù)據(jù)處理能力非常強(qiáng)大,雖然尋址方式廣泛(7種源操作數(shù),4種目的操作數(shù)),但只需要簡(jiǎn)潔的27條指令即可完成,而且耗電量非常少,能夠有效延長(zhǎng)機(jī)器魚下水的時(shí)間,非常適合做機(jī)器魚控制芯片。
MSP430F149單片機(jī)作為“魚體”的主控MCU,主要用來接收米自Uart-Wifi模塊的數(shù)據(jù)流和控制機(jī)器魚舵機(jī)的運(yùn)轉(zhuǎn)。我們用的機(jī)器魚為三關(guān)節(jié)桿系機(jī)器魚,這種利用桿系結(jié)構(gòu)來模擬真魚的運(yùn)動(dòng)的操作比較簡(jiǎn)單,只需要頭尾部的配重和魚尾各個(gè)關(guān)節(jié)轉(zhuǎn)動(dòng)的角度即可。
機(jī)器魚的動(dòng)力來自舵機(jī)部分,三關(guān)節(jié)機(jī)器魚有三個(gè)舵機(jī),每個(gè)舵機(jī)由十五位的不同占空比的PWM波控制轉(zhuǎn)動(dòng)不同的角度,繼而控制“魚體”擺動(dòng)形成魚體波。魚體波是利用桿系機(jī)器魚對(duì)真實(shí)魚游動(dòng)形態(tài)的擬合,可以認(rèn)為魚體波曲線是魚體波幅包絡(luò)線和正弦曲線的合成,它開始于魚體的慣性。根據(jù)魚體波原理我們編寫下位機(jī)程序讓單片機(jī)計(jì)算出各個(gè)關(guān)節(jié)的轉(zhuǎn)動(dòng)角度,產(chǎn)生相應(yīng)的控制信號(hào)控制舵機(jī)的運(yùn)作,使三個(gè)舵機(jī)相互配合產(chǎn)生相應(yīng)的魚體波,推動(dòng)機(jī)器魚前進(jìn)。主控芯片的流程如圖4所示。
[!--empirenews.page--]
5 電源及驅(qū)動(dòng)模塊
電源模塊主要分為供電電源和穩(wěn)壓模塊,供電電源主要為機(jī)器魚的硬件部分提供電能,穩(wěn)壓模塊主要完成對(duì)各硬件模塊進(jìn)行供電和穩(wěn)壓。
對(duì)于此項(xiàng)目穩(wěn)壓模塊主要完成3.3V和5V穩(wěn)壓。我們采用7805穩(wěn)壓器組成的輸出5V的電源電路完成5V穩(wěn)壓;采用M5237L外接晶體管VT1構(gòu)成的輸出1A/3.3V穩(wěn)壓電源電路完成3.3V穩(wěn)壓。其各部分穩(wěn)壓需求如圖5所示。
7805穩(wěn)壓器是一個(gè)輸出正5V直流電壓的穩(wěn)壓電源電路(穩(wěn)壓電路如圖6所示)。它具有使用方便、價(jià)格低廉、穩(wěn)壓精度高等特點(diǎn),其輸出的電壓基本保持不變。選用它作為機(jī)器魚舵機(jī)的穩(wěn)壓電路能夠有效保證電壓的穩(wěn)定,為舵機(jī)提供穩(wěn)定的工作環(huán)境。M5237L是日本三菱公司生產(chǎn)的輸出電壓可變型穩(wěn)壓器驅(qū)動(dòng)電路,通過與外接PNP型三極管的組合,可以構(gòu)成輸入輸出壓差小的三端穩(wěn)壓電路,其輸出電壓可在1.5—36V之間任意調(diào)節(jié),輸出電流可通過選擇不同的外接三極管來文現(xiàn)(穩(wěn)壓電路如圖7所示)。應(yīng)用M5237L來為Wi—Fi模塊穩(wěn)壓,極大的提高了供電電池和Wi—Fi模塊的工作效率,為整個(gè)系統(tǒng)的正常運(yùn)轉(zhuǎn)提供了保障。
6 結(jié)束語(yǔ)
如今安卓智能手機(jī)和Wi—Fi都已非常普遍,甚至美國(guó)聯(lián)邦政府總務(wù)署都采購(gòu)Android手機(jī)供政府人員使用,Android平臺(tái)已經(jīng)成為最具影響力的操作平臺(tái)之一。Wi—Fi技術(shù)的發(fā)展也相當(dāng)成熟,如今已經(jīng)廣泛的應(yīng)用于各個(gè)領(lǐng)域。本文應(yīng)用這兩項(xiàng)先進(jìn)技術(shù)提出了一種以安卓平臺(tái)下的智能手機(jī)和Wi—Fi技術(shù)為基礎(chǔ)的操控系統(tǒng),該系統(tǒng)成功控制機(jī)器魚正常運(yùn)轉(zhuǎn),且控制效果良好,可以相信該操控系統(tǒng)在軍用、民用和其他領(lǐng)域都有廣闊的應(yīng)用前景。我們對(duì)它的控制方法的研究只是一個(gè)開始,但已經(jīng)向前邁出了重要的一步,相信在不久的將來一定會(huì)有廣泛的發(fā)展。
雖然我們?cè)谶@方面取得了一些成果,但由于經(jīng)驗(yàn),技術(shù)以及經(jīng)費(fèi)等各方面的原因,我們的研究還有許多計(jì)劃沒有實(shí)現(xiàn)(例如:我們希望在機(jī)器魚上安裝傳感設(shè)備和自動(dòng)控制設(shè)備,使機(jī)器魚具有自動(dòng)控制能力,希望通過手機(jī)聯(lián)網(wǎng)實(shí)現(xiàn)實(shí)時(shí)遠(yuǎn)程控制),而且目前的研究成果也存在許多不太理想的地方,希望在下次設(shè)計(jì)中得以改進(jìn)和完善。