梁 軍,易 藝,陳得日,彭雪斌
(桂林信息科技學院 電子工程學院,廣西 桂林 541004)
隨著經濟發展與人民生活水平日益提高,人工湖數量逐年遞增。在習近平總書記強調“綠水青山就是金山銀山”的今天,中國的自然環境有了很大的改善,但是在公園、水上游樂場等一些人流量較多的地方仍面臨著水環境的污染,尤其是水面漂浮物(如:塑料瓶、塑料袋、一次性餐具等)造成的污染,嚴重影響著整個水域生態環境和人類居住環境[1]。另外,小型河道和水域較狹窄區域的湖泊采用人工進行垃圾打撈,人工打撈不僅效率低,而且安全系數低[2-4]。目前,水面垃圾清潔船大多數是自動化水平較高的大型船舶,對于水面垃圾漂浮物的打撈效率較低[5,6],且主要依靠人工,效率不高,對于小規?;蛐螤顝碗s多變的城市水道、景觀池、人工湖等水域的垃圾打撈受到限制,無法滿足小型水域水面垃圾清潔的需求[7-9]。為了解決上述存在的問題,有效地對內河和湖泊等水域漂浮垃圾進行打撈,同時對內河和湖泊等水域的水質進行檢測,設計了一種小型的水面清潔無人船系統。該系統以STM32作為微控制器,通過遙控操作控制打撈裝置對水面垃圾進行打撈,進而實現水面的清潔;同時,該系統還控制濁度傳感器、pH值傳感器和TDS傳感器等水質傳感器進行工作,獲取檢測水域的水質參數,然后通過物聯網方式將檢測數據傳輸至上位機進行顯示,方便用戶了解水域的水質情況,實現對水資源的保護。
水面清潔無人船系統主要由主控單元、4G通信模塊、水質傳感器模塊、紅外傳感器模塊、串口舵機、無線通信模塊、電機驅動模塊、上位機、視頻采集單元和遙控器單元組成,其系統組成框圖如圖1。

圖1 系統組成框圖Fig.1 System composition block diagram
水面清潔無人船系統的主控單元主要由兩個STM32微控制器組成。微控制器A主要負責水域水質數據的采集和發送給上位機等工作:第一,控制紅外傳感器模塊工作,檢測垃圾回收艙的空間狀態,用于判斷垃圾回收艙是否裝滿,并將信息通過4G通信模塊發送給上位機;第二,控制水質傳感器模塊工作,獲取水域的水質信息,并進行分析和處理,然后將水質數據通過4G通信模塊發送至上位機。微控制器B主要負責水域水面垃圾的打撈和船體的巡航工作:一方面,它主要根據用戶從遙控器單元或用戶預先設置的自動垃圾打撈命令控制串口舵機帶動打撈裝置工作,對水面垃圾進行打撈;另一方面,它根據用戶從遙控器單元發送的任務指令控制電機驅動模塊驅動兩個直流電機進行工作,從而控制水面清潔無人船進行巡航。遙控器單元上設有按鍵模塊和液晶顯示模塊,方便用戶輸入控制指令和觀察系統信息。用戶還可以通過阿里云平臺隨時隨地查看無人船所在水域的水質參數和垃圾回收艙的空間狀態。視頻采集單元主要由樹莓派和攝像頭組成,樹莓派控制攝像頭完成視頻采集的工作,并將獲取得到的實時視頻回傳至上位機阿里云平臺進行顯示。
水面清潔無人船的船體結構由打撈裝置、垃圾回收艙、控制艙和推進裝置共4個部分組成,船體正前方兩側安裝了隔離網,延展了水面垃圾的收集范圍,船體結構如圖2。

圖2 水面清潔船的船體結構圖Fig.2 The hull structure of the surface cleaning vessel
系統的硬件電路設計主要包括主控單元模塊、4G通信模塊、水質傳感器模塊、串口舵機、無線通信模塊、電機驅動模塊、視頻采集單元和遙控器單元電路的設計。
為方便系統調試和提高系統的靈活性和穩定性,主控單元模塊分為STM32微控制器A和STM32微控制器B。STM32微控制器A的型號為STM32F103ZET6,其片內具有豐富的資源,如:512K的FLASH、112個可用GPIO口、21路ADC等[10],便于后續的系統升級(如:增加風速傳感器、GPS等),使水面清潔無人船系統的功能更加完善,滿足用戶的更多需求。STM32微控制器B的型號為STM32F103C8T6,其內部含有64K FLASH、37個可用GPIO口、10路ADC等資源[11],它主要用于無人船船體的運動控制,負責控制船體的電機驅動模塊和串口舵機工作。
水質檢測常見的指標有溫度、TDS、DO、PH、電導率和濁度等[12,13]。水質檢測作為水面清潔無人船系統的輔助功能,主要對典型水質參數,如溫度、TDS、PH和濁度進行檢測,并將水質檢測數據發送給上位機給用戶提供參考。水質傳感器模塊電路連接原理框圖如圖3。

圖3 水質傳感器模塊電路連接原理框圖Fig.3 Block diagram of circuit connection of water quality sensor module
PH值檢測模塊采用上海雷磁E-201-C型號的PH復合電極作為傳感器[14-16],用于檢測水中的酸堿度,其供電電壓為5V。使用前需對PH電極進行校準,以消除溫度和探頭老化導致的測量誤差,電極兩端毫伏級的電位差經過運放放大后轉換為0V~3.3V范圍的模擬電壓信號,然后輸給微控制器A的片內ADC采樣通道1進行模數轉換,最后經過擬合公式(1)換算后得出PH值。

TDS檢測模塊采用TDS探針作為傳感器[14],其頂部為兩個電極,用以檢測水中溶解的固體含量,供電電壓為5 V。TDS探針采集的模擬信號經過運放放大后,輸出到微控制器A的片內ADC采樣通道2進行模數轉換,然后經過擬合公式(2)換算后得出TDS值。

溫度檢測采用的是DS18B20溫度傳感器[16],微控制器A通過單總線傳輸協議獲取DS18B20溫度傳感器的溫度數據,從而求得當前水域的溫度。該溫度參數可以作為濁度和TDS測量的溫度補償,用于減少檢測誤差。
濁度檢測模塊采用型號為TSW-30的濁度傳感器[15,16],其工作電壓為5V。該傳感器的內部擁有一個紅外線對管,當紅外線穿過水體時,通過水中透光率和散射率來判斷懸浮顆粒濃度。濁度檢測模塊將傳感器輸出的電流信號轉換為電壓信號,經過運放放大后,輸出到微控制器A的片內ADC采樣通道3進行模數轉換,然后經過擬合公式(3)換算得出濁度值。

4G通信模塊和無線通信模塊分別負責物聯網通信和遙控通信。在物聯網通信中采用的是創思通信的Quectel EC20 4G通信模塊[17],該模塊在硬件上將基帶、射頻集成在一塊電路板上,完成無線接收、發射和基帶信號處理功能,支持LTE、UMTS和GSM/GPRS網絡,最大上行速率為50Mbps,最大下行速率為100Mbps,能夠向后兼容現存的EDGE和GSM/GPRS網絡,以確保在缺乏3G和4G網絡的偏遠地區也能正常工作,這樣保證了數據的實時性。在水面清潔無人船系統中,通過微控制器A的串口與4G通信模塊進行通信,實現微控制器A與上位機之間的數據收發。與傳統的WiFi模塊或藍牙模塊相比,該4G通信模塊具有易操作、通信速度快、靈活性強等特點,可實現設備數據與遠端控制中心的相互傳輸,非常適用于M2M和IOT領域。
船體與遙控器單元之間的數據通信采用HC-12無線串口通信模塊[18],該模塊內部含有一個MCU,工作電壓為3.2V~5.5V,最大發射功率達到100mW,工作頻率為433MHz,支持多種串口透傳模式。在水面清潔無人船系統中,通過微控制器B和微控制器C的串口分別與無線通信模塊A和無線通信模塊B相連接,實現數據的相互收發。該通信模塊在開闊地可實現1000m距離的無線通信。
電機驅動模塊采用H橋模塊。該模塊采用門電路與MOS管組合的方式來實現電機正反轉、制動及調速控制,它既有較大的輸出電流又有類似L298靈活的控制信號邏輯,輸入PWM頻率范圍在0kHz~10kHz,可同時調節兩路電機,每路額定輸出電流7A。在水面清潔無人船系統中,通過微控制器B的IO口控制電機驅動模塊進行工作,用于實現船體的巡航功能。
串口舵機采用眾靈科技生產的ZX20S串行總線舵機,該舵機扭力為15kg/cm,同時具有角度回讀和多種角度工作模式切換的功能。舵機內部自帶主控芯片,內部完成PWM的控制,用戶只需通過總線轉接板發送串口命令即可實現對舵機的控制,既方便又快捷。在水面清潔無人船系統中,將微控制器B的串口與串口舵機模塊的控制總線轉接板進行連接,用于實現水面垃圾的打撈功能。
遙控器單元主要由無線通信模塊B、STM32微控制器C、供電模塊、按鍵模塊和液晶顯示模塊組成。無線通信模塊B采用HC-12無線通信模塊,STM32微控制器C采用STM32F103C8T6最小系統板,按鍵模塊分為控制電機部分和控制舵機部分。控制電機部分為4個按鍵,分別為前進、后退、向左和向右功能;控制舵機部分為兩個按鍵,分為打撈和復位兩個功能。供電模塊采用ASM1117-5.0穩壓芯片,12V鋰電池由JP1端口輸入,經過ASM1117-5.0穩壓芯片得到+5V的電壓,給無線通信模塊B和STM32最小系統板供電,液晶顯示模塊的+3.3V供電電壓由STM32F103C8T6最小系統板上的ASM1117-3.3穩壓芯片提供。液晶顯示模塊采用OLED顯示屏,用于顯示系統信息。用戶輸入的指令通過無線通信模塊B發送至無線通信模塊A,用于完成對船體的控制功能。遙控器單元電路原理圖如圖4。

圖4 遙控器單元電路原理圖Fig.4 Circuit diagram of remote control unit
視頻采集單元采用樹莓派和攝像頭的組合。樹莓派選用2GB內存的樹莓派4B,其主要功能包括:高性能64位四核處理器、雙頻2.4/5.0 GHz無線局域網、藍牙5.0、千兆以太網、USB 3.0和PoE功能等[19],其軟硬件開發資源豐富,這些優點可用于后續系統的升級(如圖像識別、雷達避障等)。攝像頭采用的是免驅動USB攝像頭,方便拔插和安裝。在水面清潔無人船系統中,攝像頭搭載于船體上并連接至樹莓派,通過樹莓派系統搭建的“MJPGStreamer”傳輸視頻流,用戶可在局域網中用Web端查看攝像頭畫面,也通過內網穿透的方式將域名映射到局域網,用戶可以通過上位機訪問域名,隨時隨地查看回傳的視頻。
電源模塊采用LM2596和ASM1117-3.3穩壓芯片來設計,得到符合系統需求的穩壓源,從而給整個系統電路進行供電。電源模塊硬件設計原理如圖5。

圖5 電源模塊硬件設計原理Fig.5 Hardware design principle of power module
圖5中,J1接口與24V鋰電池相接,24V直流電壓經過LM2596穩壓芯片進行電壓轉換后得到+5V電壓,分別提供給通信模塊、傳感器模塊和ASM1117-3.3穩壓芯片,通過ASM1117-3.3穩壓芯片輸出+3.3V電壓給主控單元模塊供電。
系統的軟件設計主要由主控單元的微控制器程序設計、遙控器單元的微控制器程序設計和上位機系統軟件設計組成。
主控單元的微控制器A和微控制器B軟件設計均采用模塊化程序設計開發,在Keil軟件的開發環境下使用C語言編寫,主要包括串口驅動程序設計、ADC驅動程序設計、溫度傳感器驅動程序設計和電機驅動模塊的程序設計。其主程序流程圖如圖6。

圖6 (b) 微控制器B的主程序流程圖Fig.6(b) Main program flow chart of microcontroller B

圖6 (a) 微控制器A主程序流程圖Fig.6(a) Main program flow chart of microcontroller A
遙控單元的微控制器C軟件設計采用模塊化程序開發,在Keil軟件的開發環境下使用C語言編寫,主要包括串口驅動程序設計、液晶顯示屏驅動程序設計、按鍵模塊程序設計。其主程序流程圖如圖7。

圖7 遙控器單元的主程序流程框圖Fig.7 The main program flow chart of the remote control unit
上位機系統采用阿里云物聯網平臺[20],該平臺是一個集成了設備管理、數據安全通信和消息訂閱等功能的一體化平臺,具有安全性能高,易用性強等優點。該平臺通過4G通信模塊與水面清潔無人船進行數據交互,顯示船體所在水域的水質參數。阿里云平臺還可以與視頻采集單元進行通信,獲取船體所在水域的視頻圖像。利用阿里云平臺的Web可視化開發工具,可以方便地進行Web應用和移動可視化開發。用戶可使用手機端或PC端對數據進行查看,Web端的軟件界面圖如圖8。

圖8 上位機Web端軟件界面圖Fig.8 Web-side software interface diagram of the host computer
為了驗證水面清潔無人船的設計方案,采用3D打印制作無人船的船體模型,在本校的人工湖內進行實驗測試,測試現場圖如圖9。實驗過程中,水面清潔無人船能夠通過遙控器進行運動控制,無人船船體掛載的水質傳感器正常工作,對人工湖內常見的易拉罐、塑料瓶、塑料袋和一次性餐具盒等水面漂浮垃圾的回收率較高,垃圾的回收率與水面垃圾的體積及當前水浪等環境因素有關。上位機與無人船的通信效果良好,阿里云平臺能夠顯示無人船所在水域的水質情況,能夠實時采集湖面的視頻。使用小米TDS水質檢測筆和A52家貝測水筆作為標準儀器,使用濁度標準溶液作為標準溶液,對研制的水面清潔無人船系統進行比對測試,得到水面清潔無人船系統的部分參數測量結果見表1和表2。

圖9 水面清潔無人船實驗測試圖Fig.9 Experimental test chart of water surface cleaning unmanned ship

表1 傳感器部分參數測量結果Table 1 Measurement results of some parameters of the sensor

表2 濁度標準溶液測量結果Table 2 Measurement results of turbidity standard solution
測試結果表明,水面清潔無人船系統可以代替人工完成小型水域水面的漂浮垃圾打撈任務,且可以測量船體所在水域的水質參數,滿足用戶清潔小型水域水面漂浮垃圾的要求。
本文以STM32微控制器作為控制和處理核心,結合控制技術、無線通信技術和傳感器技術,設計了一種水面清潔無人船系統。介紹了水面清潔無人船系統的組成原理,軟件和硬件實現的方法,并對水面清潔無人船系統的功能和指標進行實驗測試。實驗結果表明,該水面清潔無人船能由用戶通過遙控單元進行遙控巡航作業,對水面漂浮垃圾打撈效果良好,且可以測量船體所在水域的水質參數,為水面漂浮垃圾的回收提供一種參考。