陳增志 朱現(xiàn)場
(上海海事大學(xué)商船學(xué)院 中國 上海 201306)
為利用水池實(shí)驗(yàn)室執(zhí)行相關(guān)的水池實(shí)驗(yàn),通過船舶相似性原理研究船舶性能,首先需要實(shí)現(xiàn)船模系統(tǒng)。 本文詳細(xì)介紹了如何實(shí)現(xiàn)該船模系統(tǒng),利用ZigBee 無線數(shù)據(jù)透明傳輸[1-2]系統(tǒng)傳輸PC 機(jī)的控制信號及船模的狀態(tài)信息,51 單片機(jī)小系統(tǒng)[3]實(shí)現(xiàn)船模狀態(tài)傳感數(shù)據(jù)的采集及直接控制船模的運(yùn)動狀態(tài)。
船模系統(tǒng)主要由一臺PC 機(jī)、一對ZigBeeCC2430 無線數(shù)據(jù)收發(fā)模塊、51 單片機(jī)系統(tǒng)板模塊、 電機(jī)驅(qū)動模塊及DS18B20 測溫模塊組成。系統(tǒng)總框圖如下圖1 所示。
圖1 無線智能船模系統(tǒng)框圖
ZigBee 無線透明傳輸接口可實(shí)現(xiàn)雙向無線數(shù)據(jù)傳輸[1-2], 符合IEEE802.15.4 標(biāo)準(zhǔn)。 可實(shí)現(xiàn)點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)或者多點(diǎn)之間的數(shù)據(jù)傳輸。 上位機(jī)與ZigBee 模塊進(jìn)行信息的交換的數(shù)據(jù)格式, 沒有指令字頭、結(jié)束符等數(shù)據(jù)包信息,只要上位機(jī)串口有數(shù)據(jù)輸出,模塊就把串口的數(shù)據(jù)以無線方式編碼發(fā)送,當(dāng)接收模塊接收到發(fā)射模塊發(fā)送的無線數(shù)據(jù)信號后進(jìn)行解碼, 把解碼后的數(shù)據(jù)按發(fā)送端的格式從串口輸出,也是就是說模塊對使用者來說是開放的透明的。 實(shí)際使用時,使用一對集成了處理器模塊和無線通信模塊的CC2430 為核心的ZigBee 模塊, 只要將控制信息通過串口軟件通過RS232 接口發(fā)送到ZigBee 協(xié)調(diào)器模塊, 協(xié)調(diào)器便將控制信息以無線的形式發(fā)送給路由器模塊,路由器接收到數(shù)據(jù)包后進(jìn)行解析,提取出控制信息,再通過RS232 接口將這些信息發(fā)送給51 單片機(jī)系統(tǒng)板,51 單片機(jī)便通過這些控制信息控制船模的狀態(tài)。 同樣的,51 單片機(jī)所采集到到船模狀態(tài)信息如溫度以同樣的方式反向傳輸返回給PC 機(jī), 便可以根據(jù)PC 機(jī)顯示的狀態(tài)信息控制船模的運(yùn)動狀態(tài)。透傳部分的軟件主要實(shí)現(xiàn)協(xié)調(diào)器與路由器綁定及綁定綁定完成后查詢是否有數(shù)據(jù)發(fā)送過來,若有數(shù)據(jù)則將發(fā)送過來的數(shù)據(jù)封裝成ZigBee 數(shù)據(jù)幀,傳輸?shù)侥繕?biāo)節(jié)點(diǎn)。
船模系統(tǒng)主要由單片機(jī)系統(tǒng)模塊、ZigBee 無線數(shù)據(jù)收發(fā)模塊,螺旋槳電機(jī)驅(qū)動模塊及DS18B20 測溫模塊組成。 單片機(jī)系統(tǒng)模塊采用51+avr 最小系統(tǒng)板并與DS18B20 模塊集成, 通過RS232 接口與ZigBee 無線數(shù)據(jù)收發(fā)模塊相連,電源由電機(jī)驅(qū)動模塊輸出的5V 電源供給,51 單片機(jī)的P1.0-P1.3 口分別與電機(jī)驅(qū)動模塊的OUTA1、OUTA2、OUTB1、OUTB2 相連, 這樣就可以通過對51 單片機(jī)編程測量船模內(nèi)部環(huán)境的溫度以及控制船模的狀態(tài)了。
螺旋槳電機(jī)驅(qū)動模塊模塊電路原理圖如圖2 所示。采用性能穩(wěn)定驅(qū)動電流足夠的驅(qū)動芯片L298N,可以控制兩個帶動螺旋槳的直流電機(jī)。 增加了為ZigBee 模塊供電的3.3V 電源及為51 系統(tǒng)板供電的5V電源。同時LED 可指示電機(jī)的運(yùn)行情況。POWER-IN 接入12V1800mAh的蓄電池。 這樣通過51 單片機(jī)輸出的控制信號便可以控制兩個螺旋槳電機(jī)的狀態(tài)了。例如,當(dāng)兩個電機(jī)都正轉(zhuǎn)時船模前進(jìn),都反轉(zhuǎn)時船模時船模后退,一正轉(zhuǎn)一反轉(zhuǎn)、一轉(zhuǎn)一?;蛞豢煲宦龝r船模轉(zhuǎn)彎,使用PWM 信號調(diào)節(jié)船模速度。
圖2 螺旋槳電機(jī)驅(qū)動模塊模塊電路原理圖
DSl8B20 測量精度高, 測量范圍從-55℃到125℃, 增值量為0.5℃。 只要簡單的編程,就可以分別在93.75ms 和750ms 內(nèi)把溫度轉(zhuǎn)化成9 位和12 位的數(shù)字量, 測得的溫度值存儲在兩個八位的RAM中,單片機(jī)直接從中讀出數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制就是溫度值。 DSl8B20 共有3 個引腳:GND(接地)、DQ(數(shù)據(jù)輸入輸出)、VDD(電源),數(shù)據(jù)的讀與寫只要經(jīng)過數(shù)據(jù)線DQ 連接就行。 可以直接通過單總線與51 單片機(jī)I/O 口連接。 此外每一次讀寫之前都要對DSl8B20 進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM 指令,最后發(fā)送RAM 指令,這樣才能對DSl8B20進(jìn)行預(yù)定的操作。51 單片機(jī)對DSl 8B20 的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DSl8820(復(fù)位)——執(zhí)行ROM 功能指令——執(zhí)行存儲器操作指令——處理數(shù)據(jù)。 最后將溫度信息發(fā)送到ZigBee 無線數(shù)據(jù)收發(fā)模塊傳回PC 機(jī)顯示。
利用CC2430ZigBee 模塊及單片機(jī)系統(tǒng)等實(shí)現(xiàn)了無線智能船模系統(tǒng),該系統(tǒng)不僅能夠?qū)崿F(xiàn)船模的無線控制還能夠傳輸船模的部分狀態(tài)信息,如水溫信息。 將進(jìn)一步研究如何利用合適傳感器與算法測得船模的航速、航向、航跡向信息等通過該系統(tǒng)傳PC 機(jī),以跟蹤船模的狀態(tài)。
[1]劉彥飛,王成,余成波,等.基于ZigBee 的數(shù)據(jù)透明傳輸系統(tǒng)的設(shè)計[J].計算機(jī)科學(xué),2009,36(4A):76-77.
[2]高守偉,吳燦陽.ZigBee 技術(shù)實(shí)踐教程[M].北京航空航天大學(xué),2009:354-369.
[3]張俊謨.單片機(jī)中級教程原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.