錢平 周宣宇 胡建梅 楊彩蝶 于歡成




摘要:該文設計了一款可實現上浮下潛、轉彎等功能小型的ROV。該系統是基于Arduino Mega 2560為核心控制器,控制六個推進器實現ROV的基本運動,并搭載水下LED和水下攝像頭作為視頻傳輸模塊,以數字壓力傳感器作為水深探測,以及搭載溫度傳感器進行溫度的測試,所有信號通過有線臍帶纜與上位機通信。該小型ROV可實現基本運動和視頻圖像的傳輸。
關鍵詞: ROV;Arduino Mega 2560;信號傳輸
中圖分類號:TP242 ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)02-0074-02
近年來,隨著海洋科學的不斷發展,國家層面也對海洋事業的發展不斷重視,并且海底蘊藏著豐富的礦產、海洋生物等重要資源。因此人類對海洋或者是水下的開發有著可持續發展的重要意義。而水下機器人作為專用的水下工具,在水下作業有著不可或缺的地位。特別是水下有纜線的機器人(Remotely Operated Vehicle, ROV)也成為水下開發的重要工程技術裝備。而小型的ROV可以作為水下工程(比如水質監測、水下探測等)有著至關重要的作用。所以小型的ROV可以作為開放平臺,為后續的工程作業提供開放的重要載體。
1 整體的硬件系統設計
1.1整體系統組成概況
硬件的整體控制系統框圖如圖1所示,其中采用主要的控制器是一款Arduino的單片機,Arduino 2560是基于ATmega的微控制芯片。該微控制器是AVR單片機,最大特點是54路數字輸入/輸出端口(其中15個可以作為PWM輸出),16路模擬輸入端口,4路UART串口,16MHz的晶振,USB連接口,電池接口,ICSP頭和復位按鈕。Mega2560使用Arduino IDE環境編程,簡單明了。通過引腳6、7、8、12、45、46六個引腳提供輸出PWM波控制相應的六個推進器,實現ROV的基本運動。電源模塊通過變壓模塊給主芯片和其他部件供電。數字壓力傳感器作為系統的壓力傳感器,溫度傳感器作為測試系統內部溫度的模塊。水下的LED燈和水下攝像頭組成水下探測模塊。所有信號通過以太芯片網口連接臍帶纜傳至上位機,達到信號傳輸的目的。
1.2推進器模塊
推進器是ROV的重要動力模塊,本系統采用的都是直流無刷電機作為推進器的推進電機,螺旋槳采用的是三葉螺旋槳。根據流體力學原理,本系統采用經典的六個推進器模式,示意圖如圖2所示,其中前后兩個推進器分別連接D12和D6兩個I/O口,用于控制整個ROV的上浮下潛。左右四個推進器分別連接D7、D8、D45、D46四個I/O口,并且互相配合用于控制整個ROV的前進后瑞以及左轉右轉。推進器上的L標志表示逆時針旋轉表示正漿,R表示順時針旋轉表示反漿,前后左右相對方向的三對推進器是不同的旋轉方式是因為軟件設計都是兩兩控制,且用于正反漿間周向力的相互抵消。
1.3傳感器模塊
本系統涉及的傳感器都是安裝在核心艙內部測試系統參數的傳感器,分別為用于測試水深和溫度數字壓力傳感器,用于測試水深和溫度一體化數字傳感器測試水溫。壓力傳感器采用的是MS5803,該傳感器是一款高分辨率的專業測量高度的新一代傳感器,具有SPI和I2C 總線接口。壓力傳感器模塊內含標定系數,該標定系數具有線性關系,便于單片機數據處理。該模塊提供的是一個較為精確的24位數字的壓力運作模式。該模塊通用度較高、通訊協議較為簡單,也適合本系統采用的單片機,并且不需要在內部寄存器編程,壓力信號穩定性高。本系統采用的是SPI通信來獲得數據,通過氣壓值來換算成水的深度。另一個傳感器則為溫度傳感器,本系統采用的是DHT11溫度傳感器,該傳感器也是一款數字傳感器,并且含有溫度和濕度集合在一起,可以同時測量溫濕度。DHT11傳感器和所采用的單片機之間只采用單總線的模式相連,彼此之間通信只需要占用一個通用的輸入輸出口,本系統采用了D28引腳與溫濕度傳感器相連。傳感器接收到的數據通過單總線傳送給單片機,接收到的數據也會通過校驗方式保證數據的正確性。
1.4視頻傳輸模塊
本系統采用的水下LED探照燈最大亮度100流明,最大射程100m,防水深度達50m。LED探照燈信號線與D44引腳相連,受單片機輸出高低電平控制。攝像頭采用的是OpenMV4 H7智能模塊,可以采用Python語言編輯腳本,調用庫函數方便控制攝像頭,視頻數據是通過串口傳輸給單片機。
以太網芯片W5500是一款性能比較高的芯片,里邊是采用硬件的TCP/IP協議棧,采用硬件協議棧的好處是利用硬件的邏輯電路實現軟件的協議簇。不需要再通過特殊的軟件編程與單片機連接,并且采用該方式傳輸信號時,單片機的硬件電路也變得比較簡單,降低了硬件成本,使用這種方案和設計使得兩者相連變得快捷、效率高。傳感器信息傳輸、單片機與上位機溝通通過臍帶纜進行通信。
2 系統的軟件設計
因為主控芯片采用了Arduino Mega 2560,所以開發環境是Arduino 開發板專用的IDE。Arduino開發板是開源的平臺,具有開發方便、使用簡單、編程簡易等優點,并且屬于C 語言的開發環境。圖3為軟件設計流程圖,上電后小型ROV完成整個系統包括電量等自檢功能,接下來是利用void ROV_CONTROL:: PWM_init(void) 函數進行PWM信號初始化;利用void ROV_SENSOR::DHT11_GetData(TempHumiMsg_t *temphum)溫度傳感器初始化,利用float ROV_SENSOR::GetCurrent(void) 進行數字壓力傳感器初始化;利用void ROV_NETWORK::Udp_Init(void)函數進行W5500網口初始化。之后系統處于待機狀態等待上位機發出命令信號,通過對上位機信號的解析后進行ROV的上浮下潛、前進后退、左轉右轉、傳感器參數的獲取以及視頻信號的獲取等相關操作。
3 實驗室水池測試
經過軟硬件的調試,在實驗室水池進行測試,下水之前首先是防水的準備,各個接口都必須打上熱熔膠以防漏水使得內部電路損壞,其次是小型ROV整個系統的配重,需要達到能自然懸浮在水中。做好防水和配重工作后,通過上位機的操作實現小型ROV的上浮下潛、前進后退、左轉右轉等基本運動功能,并且水深。溫度等參數也通過有線的臍帶纜上傳至上位機。如圖4所示為實驗室測試的上位機顯示界面,其中獲取到水溫等參數數據以及攝像頭的視頻數據。
4 結束語
本文設計的是基于Arduino的小型ROV系統,利用傳統的六推進器模式滿足ROV的基本運動,并且搭載溫度傳感器和壓力傳感器測試相關參數,還用攝像頭模塊實現未污染水源的探測功能。并通過臍帶纜與上位機通信實現信號的雙向通信,實現上位機控制ROV的運動以及傳感器數據傳輸至上位機顯示。本系統還預留相關接口,還可搭載更多水質傳感器或者紅外傳感器,為水中工程作業的實現提供參考思路和借鑒。
參考文獻:
[1] 汪淑賢,李明,王旬.基于Arduino Mega 2560的水下探測儀設計與實現[J].信息技術與網絡安全,2020,39(4):48-52.
[2] 覃小兵,楊孟鑫.基于STM32控制的水下檢測與作業機器人研究[J].智能城市,2020,6(3):193-194.
[3] 郭愛龍,柏星江,金永芳,等.ROV潛水器及水質檢測系統設計[J].現代信息科技,2020,4(3):164-166.
[4] 高芬.一種小型消費級水下機器人的設計與實現方法[J].機電信息,2019(20):115-116.
[5] 張歡歡,田軍委,熊靖武,等.水下機器人運動控制系統設計與分析[J].計算機系統應用,2018,27(12):83-89.
【通聯編輯:唐一東】
2882501705251