喻 盈,文小玲,張 川
(武漢工程大學 電氣信息學院,武漢430205)
水質(zhì)監(jiān)測對保護水資源和促進水產(chǎn)養(yǎng)殖都具有十分重要的意義。 傳統(tǒng)的水質(zhì)監(jiān)測方法有人工現(xiàn)定點采樣和建立自動監(jiān)測站點,但不能全面反映整個水域的水質(zhì)狀況。 隨著嵌入式和無線通信網(wǎng)絡的快速發(fā)展,水質(zhì)監(jiān)測技術也逐漸自動化、智能化和網(wǎng)絡化[1]。 仿生機器魚將仿生學結合到水質(zhì)監(jiān)測領域,使監(jiān)測設備模擬魚類游動,體積小,相較于使用螺旋槳推進的監(jiān)測設備更靈活高效、低污染、無擾動,能在不同的水域環(huán)境中進行水質(zhì)監(jiān)測。 本文設計了一種基于STM32 的水質(zhì)監(jiān)測仿生機器魚,魚體搭載各種傳感器和控制器,采用雙關節(jié)二自由度尾鰭控制游動,在目標水域進行自動巡航與避障,將采集的水質(zhì)參數(shù)通過無線傳感器網(wǎng)絡傳輸?shù)缴衔粰C,完成對水質(zhì)的實時監(jiān)測和管理。
基于STM32 的水質(zhì)監(jiān)測仿生機器魚總體結構如圖1所示。
圖1 水質(zhì)監(jiān)測仿生機器魚總體結構框圖Fig.1 Overall structure block diagram of biomimetic robot fish for water quality monitoring
仿生機器魚主要由機器魚實體模型、STM32 控制模塊、水質(zhì)傳感器模塊、機器魚運動模塊、紅外避障模塊、GPS 定位模塊、Lora 無線模塊和電源模塊等幾部分組成。 規(guī)劃目標監(jiān)測點后,仿生機器魚通過GPS 定位技術確定與目標點之間的方位,紅外傳感器檢測周圍障礙物,由STM32 微控制器驅(qū)動舵機和水泵使機器魚前進轉(zhuǎn)向、上浮下潛,到達目標點后水質(zhì)傳感器模塊進行采樣,將檢測的水質(zhì)數(shù)據(jù)使用Lora 無線通信模塊傳輸?shù)缴衔粰C進行顯示。
仿生機器魚在水下工作必須具有良好的穩(wěn)定性,因此將機器魚的重心維持在浮心下方,并保證機器魚的密封防水性。 自然界中大部分魚類包括鰻鱺科、鲹科、鮪科等魚類[2],借助魚體和尾鰭的擺動進行推進,這種方式稱之為BCF(body and/or caudal fin)推進模式。所設計的仿生機器魚采用雙關節(jié)尾鰭,使用2 個舵機控制尾部擺動,與魚體協(xié)調(diào)來實現(xiàn)巡游和轉(zhuǎn)向,比單關節(jié)尾鰭的機器魚游動更靈活,轉(zhuǎn)向角度更大。 仿生機器魚的機械結構如圖2所示。
圖2 仿生機器魚機械結構Fig.2 Mechanical structure of biomimetic robot fish
仿生機器魚控制模塊采用的主控芯片為STM32F103ZET6,是意法半導體公司推出的基于ARM Cortex-M3 內(nèi)核的低功耗、低成本和高性能MCU,主頻可達72 MHz,存儲器最高具有512 kB Flash 和64 kB SRAM,內(nèi)置3個12位A/D 轉(zhuǎn)換器,2個12位D/A轉(zhuǎn)換器,12 通道DMA和8個定時器,同時擁有13 個通信接口(包括I2C,USART,SPI,CAN,USB 以及SDIO),兼容各種外圍設備,在該系統(tǒng)中可用于舵機控制PWM 輸出、水質(zhì)傳感器數(shù)據(jù)485 通信、LCD 顯示等,完全滿足仿生機器魚的控制要求。
水質(zhì)數(shù)據(jù)采集模塊采用八合一多參數(shù)傳感器,可同時檢測pH 值、溶解氧、溫度、電導率、濁度、鹽度、ORP(氧化還原電位)、氨氮共8 種參數(shù)。 傳感器采用RS-485 通訊接口與STM32 進行串口通信,需要MAX485 作為轉(zhuǎn)換芯片,芯片原理如圖3所示。
圖3 MAX485 芯片原理Fig.3 MAX485 chip schematic
RS-485 是一種半雙工的異步串行通信方式,不能同時進行數(shù)據(jù)的收發(fā),因此需要控制MAX485 芯片的收發(fā)工作狀態(tài)。當RE 引腳為低電平時,芯片處于接收狀態(tài),接收來自傳感器采集的數(shù)據(jù);當DE 為高電平時,芯片處于發(fā)送狀態(tài),向傳感器發(fā)送采集指令。
GPS 定位模塊采用u-blox 公司的NEO-6M 模組方案,其體積小、高性能、低功耗,搜星能力強,定位精度高,可以直接通過串口向單片機系統(tǒng)輸出GPS 定位信息。 這些信息采用NMEA-0183 標準協(xié)議,輸出常見格式為“GGA”,包含了經(jīng)緯度、海拔、時間、速度等參數(shù)。 模塊工作電壓為3.3~5 V,含有EEPROM,掉電后仍可保存GPS 定位信息。
組成局域網(wǎng)的無線傳輸技術有WiFi,ZigBee,藍牙,等;組成廣域網(wǎng)的有2G,3G,4G,等。在該系統(tǒng)中,將水質(zhì)數(shù)據(jù)從仿生機器魚傳輸?shù)缴衔粰C采用Lora 無線通信技術,其工作頻段為(410~441)MHz,最大發(fā)射功率20 dBm,最大通信距離3000 m,為一種遠距離、低功耗、低成本的無線傳輸技術,可以實現(xiàn)點對點、點對多傳輸。
Lora 無線模塊工作電壓為3.3~5 V,通過串口與STM32 傳輸數(shù)據(jù),改變模塊的地址和信道,可以實現(xiàn)點對點之間的定向傳輸。
仿生機器魚在巡游過程中可分為直線游動、轉(zhuǎn)向游動和上浮下潛。
游動時借助雙關節(jié)二自由度尾鰭的擺動來實現(xiàn)推進,魚體和尾鰭由2 個舵機單元連接而成。 在直線游動過程中,單個關節(jié)在側方向上擺動的幅度相等,為正弦運動;第2 個關節(jié)為相位滯后的正弦運動。 尾部擺動的運動學模型如圖4所示。
圖4 尾部擺動運動學模型Fig.4 Kinematic model of tail swing
忽略環(huán)境因素的影響,對仿生機器魚做運動行為分析。 其數(shù)學模型為
式中:Ka為振幅系數(shù),表示關節(jié)振幅與最大振幅的比值;Kb為偏斜系數(shù),表示關節(jié)擺動對稱軸與魚體軸的偏斜程度;A1m為第1 個關節(jié)的振幅;A2m為第2個關節(jié)與第1 個關節(jié)之間的振幅;f 為擺動頻率;φ為第2 個關節(jié)與第1 個關節(jié)之間的相位差。
根據(jù)對魚類的實際觀察,直線游動時關節(jié)角度α 和β 的最佳角度為20°,周期約為0.25 s[3]。
轉(zhuǎn)向游動時,控制尾部偏向左側,則機器魚依靠慣性進行左轉(zhuǎn)向;尾部偏向右側,機器魚進行右轉(zhuǎn)向。
仿生機器魚在游動的過程中同樣會模仿魚類進行上浮下潛,常用的方法有改變重力法、改變重心法、魚鰾法和魚鰭法[4]。 該系統(tǒng)采用改變重力法,在魚體內(nèi)嵌入水箱,由控制系統(tǒng)驅(qū)動繼電器實現(xiàn)水泵的開關,進行抽水和排水控制水箱儲水量,改變機器魚的重力,進而實現(xiàn)上浮下潛。
為實現(xiàn)自動化水質(zhì)監(jiān)測,仿生機器魚在目標水域使用GPS 定位模塊進行自主導航,監(jiān)測任務完成后自動返航。 首先,以正北和正東方向建立平面二維坐標系,如圖5所示。
圖5 二維坐標下仿生機器魚的自主導航路線Fig.5 Autonomous navigation route of biomimetic robot fish in two-dimensional coordinates
由于GPS 輸出的是經(jīng)緯度坐標,因此利用墨卡托投影變換將經(jīng)緯度坐標(L,B)轉(zhuǎn)換為平面坐標(x,y)[5]。 其轉(zhuǎn)換過程如下:
其中
式中:L0為原點經(jīng)度;B0為基準緯度;e 為第一偏心率;a 為橢球體長半軸。
用戶設定需要監(jiān)測的目標位置經(jīng)緯度,平面坐標為(x,y),機器魚獲取起始位置坐標(x1,y1),計算出向目標位置巡游的航向角度為
游動過程中實時獲取當前定位坐標,計算出當前位置距目標位置的航向角度,與起始位置的航向角度θ 相對比,并調(diào)整機器魚的游動方向。 當仿生機器魚游動到(x2,y2)位置時,θ1<θ,控制系統(tǒng)驅(qū)動機器魚向右調(diào)整游動方向;當位于(x3,y3)位置時,θ2>θ,向左調(diào)整游動方向,直至達到目標位置。為避免機器魚頻繁修正航向角度,設置可允許的角度偏差為5°,當θ-θ1≤5°或θ2-θ≤5°時機器魚不做方向調(diào)整。
水下的環(huán)境復雜且多變,仿生機器魚在巡游的同時必須具備自主避障的能力。 機器魚頭部搭載紅外傳感器,通過發(fā)射和接收反射回來的紅外線來判斷前方有無障礙物,傳感器最大檢測距離為30 cm,檢測角度為35°。 由于單個傳感器具有局限性,故在此使用了5 個紅外傳感器,分別為魚體前側的M,左前側的L,右前側的R,上側的S1 和下側的S2。其空間分布如圖6所示,全方位檢測機器魚運動路徑上存在的障礙物。
圖6 紅外傳感器網(wǎng)絡分布Fig.6 Infrared sensor network distribution
紅外傳感器檢測到障礙物時,會輸出低電平信號,控制系統(tǒng)接收到信號后進行相應避障決策。 仿生機器魚在游動過程中,首先判斷紅外傳感器M,L,R 的信號,當檢測到魚體左前側、右前側都存在障礙物而無法前行時,再利用傳感器S1 和S2 來檢測機器魚的上側、下側有無障礙物,沒有則上浮下潛后繼續(xù)前行。 其避障策略見表1。
表1 仿生機器魚的避障策略Tab.1 Obstacle avoidance strategy of biomimetic robot fish
系統(tǒng)軟件由水質(zhì)數(shù)據(jù)采集、無線傳輸、GPS 自主導航與紅外避障等幾部分組成,主程序流程如圖7所示。
圖7 主程序流程Fig.7 Main program flow chart
系統(tǒng)初始化完成后,計算起始位置與目標位置的航向角度。 在巡游的過程中實施避障,并調(diào)整當前航向角度,直至到達目標位置,向水質(zhì)傳感器發(fā)出采集指令,控制系統(tǒng)獲取目標點水質(zhì)數(shù)據(jù)后通過Lora 無線模塊遠程傳輸?shù)缴衔粰C進行顯示。
上位機可視化界面使用VC++6.0 軟件開發(fā),實現(xiàn)串口參數(shù)設置、用戶信息管理,對遠程傳輸?shù)乃|(zhì)數(shù)據(jù)進行存儲、顯示和預警,提供歷史數(shù)據(jù)查詢。上位機可視化界面如圖8所示。
圖8 上位機監(jiān)測軟件界面Fig.8 PC monitoring software interface
所設計的仿生機器魚尾部,采用雙關節(jié)二自由度尾鰭作為推進和轉(zhuǎn)向系統(tǒng);以STM32 為主控芯片進行數(shù)據(jù)的通信與運動控制;通過GPS 定位技術實現(xiàn)水下自主定點導航,利用紅外傳感器網(wǎng)絡多方位檢測障礙物進行避障;建立Lora 無線通信網(wǎng)絡傳輸水質(zhì)數(shù)據(jù)。 用戶可在上位機軟件查看水質(zhì)數(shù)據(jù),加強對目標水域的管理,實現(xiàn)水質(zhì)的自動化監(jiān)測。