基于802.11b與安卓手機(jī)操控機(jī)器魚的研究
3 Wi—Fi模塊
Wi—Fi無線網(wǎng)絡(luò)包括兩種類型的拓?fù)湫问?,基礎(chǔ)網(wǎng)(Infra)和自組網(wǎng)(Adhoc)。要說明無線網(wǎng)絡(luò)的拓?fù)湫问?,需要首先了解兩個基本概念:
AP:也就是無線接入點(diǎn),是一個無線網(wǎng)絡(luò)的創(chuàng)建者,是網(wǎng)絡(luò)的中心節(jié)點(diǎn)。我們一般家庭或辦公室使用的無線路由器就一個AP。
STA:即站點(diǎn),每一個連接到無線網(wǎng)絡(luò)中的終端(如筆記本電腦、PDA及其它可以聯(lián)網(wǎng)的用戶設(shè)備)都可稱之為一個站點(diǎn)。
Infra也稱為基礎(chǔ)網(wǎng),是由AP創(chuàng)建,眾多STA加入所組成的無線網(wǎng)絡(luò)。這種類型的網(wǎng)絡(luò)的特點(diǎn)是AP是整個網(wǎng)絡(luò)的中心,網(wǎng)絡(luò)中所有的通信都通過AP來轉(zhuǎn)發(fā)完成:Adhoc也稱為自組網(wǎng),是僅由兩個及兩個以上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ī)器魚都各自是一個STA,當(dāng)手機(jī)發(fā)出控制命令后,每一條機(jī)器魚(即每一個STA)都會接收到這個控制命令,從而做出相應(yīng)的動作實(shí)現(xiàn)對多魚的控制。
由于數(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ǎng)絡(luò)標(biāo)準(zhǔn)的嵌入式模塊,內(nèi)置無線網(wǎng)絡(luò)協(xié)議IEEE802.11協(xié)議棧以及TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口數(shù)據(jù)到無線網(wǎng)絡(luò)之間的轉(zhuǎn)換。通過Uart-Wifi模塊,傳統(tǒng)的串口設(shè)備也能輕松接入無線網(wǎng)絡(luò)。當(dāng)Uart-Wifi模塊接收到網(wǎng)絡(luò)上傳輸過來的數(shù)據(jù)幀時它會將這些數(shù)據(jù)從幀格式轉(zhuǎn)換成流格式,這是比較容易的,也是大多數(shù)普通Wi—Fi模塊都能夠?qū)崿F(xiàn)的,但當(dāng)模塊從串口接收單片機(jī)返回的數(shù)據(jù)即接收到流格式數(shù)據(jù)要將其轉(zhuǎn)換成幀格式發(fā)送出去時就比較困難了,它需要一定的規(guī)則進(jìn)行約束。而Uart-Wifi模塊使用“自動組幀長度”和“自動組幀周期”來進(jìn)行約束,能夠輕易的將數(shù)據(jù)從流的形式轉(zhuǎn)換成幀的形式。因此應(yīng)用Uart-wifi模塊作為中間模塊進(jìn)行手機(jī)和單片機(jī)間的通信能夠輕易地解決數(shù)據(jù)類型轉(zhuǎn)換難的問題(見圖3)。本文引用地址:http://www.ex-cimer.com/article/170998.htm
4 單片機(jī)模塊
本項(xiàng)目采用MSP430F149單片機(jī)作為魚體控制芯片,它是一種高性能、低功耗的16位控制器,廣泛應(yīng)用于通訊控制設(shè)備中。作為控制芯片,MSP430F149單片機(jī)顯著特點(diǎn)是高效、低耗。它的數(shù)據(jù)處理能力非常強(qiáng)大,雖然尋址方式廣泛(7種源操作數(shù),4種目的操作數(shù)),但只需要簡潔的27條指令即可完成,而且耗電量非常少,能夠有效延長機(jī)器魚下水的時間,非常適合做機(jī)器魚控制芯片。
MSP430F149單片機(jī)作為“魚體”的主控MCU,主要用來接收米自Uart-Wifi模塊的數(shù)據(jù)流和控制機(jī)器魚舵機(jī)的運(yùn)轉(zhuǎn)。我們用的機(jī)器魚為三關(guān)節(jié)桿系機(jī)器魚,這種利用桿系結(jié)構(gòu)來模擬真魚的運(yùn)動的操作比較簡單,只需要頭尾部的配重和魚尾各個關(guān)節(jié)轉(zhuǎn)動的角度即可。
機(jī)器魚的動力來自舵機(jī)部分,三關(guān)節(jié)機(jī)器魚有三個舵機(jī),每個舵機(jī)由十五位的不同占空比的PWM波控制轉(zhuǎn)動不同的角度,繼而控制“魚體”擺動形成魚體波。魚體波是利用桿系機(jī)器魚對真實(shí)魚游動形態(tài)的擬合,可以認(rèn)為魚體波曲線是魚體波幅包絡(luò)線和正弦曲線的合成,它開始于魚體的慣性。根據(jù)魚體波原理我們編寫下位機(jī)程序讓單片機(jī)計(jì)算出各個關(guān)節(jié)的轉(zhuǎn)動角度,產(chǎn)生相應(yīng)的控制信號控制舵機(jī)的運(yùn)作,使三個舵機(jī)相互配合產(chǎn)生相應(yīng)的魚體波,推動機(jī)器魚前進(jìn)。主控芯片的流程如圖4所示。
評論