陳利 饒闖 侍中樓*
(江漢大學工程訓練中心,湖北 武漢 430000)
隨著人類社會的不斷發展,水資源污染愈發嚴重,在黨的十九大報告中提出堅持人與自然和諧共生,樹立和踐行“綠水青山就是金山銀山”的生態文明理念之后,水面垃圾的清理問題得到人們的高度重視,水上清潔機器人有了廣闊的應用前景,針對目前小型水上清潔機器人操作復雜、成本造價頗高的問題,我們研制開發了一款基于Arduino 的小型清潔機器人,可進行淺海和湖泊的垃圾收集工作,能夠有效的解放人力、改善生態環境。
以電子系統為核心的控制系統是機器人運行的主要方式,本文介紹了一種基于Arduino 的水上機器人的控制系統。要建立水上機器人的控制系統,硬件設備是系統運行的基礎和關鍵,它對整個系統的穩定性、控制的準確性和反饋的時耗性都有直接的影響。水上機器人控制系統的硬件部分主要包括Arduino 控制器、動力部分、收集部分、自動調節部分、無線控制部分、電池模塊等。其中,動力部分由涵道推進器、雙向無刷電調兩部分組成;收集部分由ULN2003APG 驅動芯片、步進電機和同步帶組成;自動調節部分由紅外光電傳感器、超聲波傳感器和OV7670CMOSVGA 攝像頭模塊組成;無線控制部分由PS2無線遙控手柄和無線接收器組成。系統結構如圖1 所示。
Arduino 是一個開源的單片機電子設計平臺,硬件部分由Atmel AVR 單片機、I/O 接口及相關電路組成,軟件部分則包括標準的程序編譯器和程序下載器,本系統的主控制器采用Arduino Mega 2560。

圖1 系統結構圖
相比于51 單片機,Arduino 最大的優點在于,功能齊全而且學習非常簡單。同時,Arduino 可以跨平臺使用,在Windows、Macintosh OSX、Linux 三大主流操作系統上都可以運行,而其他的大多數控制器只能在Windows 上開發。Arduino 的核心庫文件都是開源的,在開源協議范圍內可以任意修改原始設計及相應代碼。所以選擇了Arduino 控制板。除了流行的Arduino UNO 外,Arduino Mega2560 是Arduino 系列中的一種,Mega 和UNO 的主要區別在于處理器,ATmega2560 比ATmega328 內存更大,外圍設備更多。如果需要控制更多的傳感器,需要同時連接更多的引腳,應當優先選擇Arduino Mega 2560(相關參數如圖2)。

圖2 MEGA 2560 相關參數
由于Arduino 控制板輸出的直流電壓不足以驅動涵道推進器工作,所以我們采用PWM(脈沖寬度調制)+外置電源+無刷電調(ESC)的方式來控制電機的輸入電壓。PWM占空比越高,等效電壓就越高;占空比越低,等效電壓就越低。控制器給出的PWM波形只是控制信號,輸出電壓(3.3V/5V)不能驅動無刷直流電機,所以推進器驅動方式采用雙向無刷電調進行調速控制。無刷電調(ESC)可以驅動無刷直流電機進行工作,其原理是電機可以根據控制器輸出的控制信號PWM來調節電機轉速。
推進電機的選擇主要是在考慮航行助力和航速的條件下選擇推進電機的功率。理論計算通常采用機器人航行阻力與螺旋槳的推進功率和航速的近似關系式

式(1) 中:NX 為電機的軸功率(KW);ρ 為湖水密度(kg/m3);Q 為機體橫剖面面積(m2);CR 為阻力系數;V 為航速(m/s)。參考其他文獻對阻力系數進行選擇,確定CR=0.75,湖水密度為1×103kg/m3,機器人橫剖面積為78750mm2,取航速V=3 m/s。將所有參數代入公式,并考慮超載、風、浪對機器人的影響保留一定的余量,最終確定電機的總推進功率為300W。由于采用雙軸推進,故單個電機的功率為150W。我們選擇F2838B 作為推進電機,該電機工作電壓7.4V-16.8V,額定電流10A,此電機采用直流調速,直流調速快準穩,符合水上清潔機器人的需要。
收集部分我們采用步進電機驅動同步帶來收集水面垃圾。
ULN2003APG 驅動芯片作為步進電機的驅動芯片,ULN2003APG 驅動芯片驅動步進電機的引腳接線如圖3 所示,其中IN1-IN4 連接Arduino Mega 2560 控制器,輸出槽口連接步進電機,5-12V 的“+”接電源正極,“-”接電源負極,驅動芯片上的4 個指示燈可實時顯示控制步進電機的脈沖變化。ULN2003 工作電壓較高,工作電流較大,灌電流可達500mA,并且能夠在關態時承受50V 的電壓,輸出還可以在高負載電流下并行運行。通常單片機驅動ULN2003 時,上拉2K 的電阻較為合適,同時,COM端引腳應該懸空或接電源,ULN2003APG 引腳圖及邏輯框圖如圖4 所示。

圖3 ULN2003APG 驅動原理圖

圖4 ULN2003APG 引腳圖及邏輯框圖
攝像頭識別部分我們采用的是OV7670 帶FIFO 的模塊的攝像頭。因為帶FIFO 的攝像頭可以將攝像頭拍攝的數據暫時存在FIFO 里,然后Arduino Mega 2560 將拍攝的數據讀出。FIFO 的存儲速度很快,可以將攝像頭的數據暫時存起來,以便CPU 將獲得的數據慢慢取出來并處理,能有效地提高系統整體的運行速度。
我們采用E18-D80NK 光電傳感器(接線原理圖如圖5 所示)實時測量機器人到水面的距離,E18-D80NK 是一種集發射與接收于一體的光電傳感器,E18-D80NK 光電傳感器由發送器,接收器和檢測電路三部分構成,該元件有探測距離遠,可見光干擾較小,成本低廉,使用簡便的優點。
我們采用HC-SR04 超聲波測距模塊(接線原理圖如圖6 所示)監測垃圾儲存箱的存儲量。HC-SR04 的一端發出超聲波,接觸到障礙物后反射,被另一個端口接收,通過檢測超聲波發射和接收的時間差,就可以根據聲波傳播的速率算出HC-SR04 和障礙物之間的距離。該傳感器有兩種模式可以選擇,單線模式只需要一根信號線,大大減少了I/O 口的資源利用;雙線模式需要兩根信號線,一根輸入信號線和一根輸出信號線。HC-SR04超聲波測距模塊在有效探測范圍內可自動標定,無需任何人工調整就可以獲得障礙物的準確位置。該傳感器具有測量精度高、抗環境干擾能力強的特點。

圖5 E18-D80NK 原理圖

圖6 HC-SR04 原理圖
續航方面,電池模塊是機器人的能量來源,機器人的續航指標、單次工作時間、單次巡航里程等都與電池的質量和容量有關。電池我們采用ZO-25C-2200-3SIP-11.1V PRO 模塊,該電池容量為1300mAh,電壓額定電壓為11.1V,通過計算可得機器人的續航時間長達40 小時。該電池模塊具有容量高、體積輕的特點,且具有續航時間長、性能平穩持久、不容易鼓包、循環性能突出等優點。

圖7 PS2 手柄接收器原理圖
我們采用PS2 手柄實現操控者對機器人的控制,無線控制部分主要由PS2 手柄與接收器(原理圖如圖7 所示)兩部分組成,手柄主要負責發送指令信息;接收器與單片機相連,用于接收手柄發來的信息,并傳遞給單片機。同時單片機也可通過接收器,向手柄發送命令,兩者之間相輔相成,PS2 手柄的傳輸范圍為20m。
該控制系統主要由動力推進系統、自動調節水深系統、收集傳送系統和能源續航系統四個部分組成,各系統相互協調、分工合作來實現對水上清潔機器人運動的精確控制、狀態的精準監測。
首先通電后檢查機器人的健康狀況(包括電量、儲存余量等)。如果各種參數正常的話,機器人開始自動巡航,否則,蜂鳴器將會報警提示,需要進行人工修復,符合出發要求才可以進行自動巡航。巡航時攝像頭會檢測附近是否有垃圾,有垃圾則機器人向垃圾所在方位移動,收集水面上的漂浮垃圾,同時,傳感器會檢測船體的吃水深度,控制器會控制電子閥、排水泵進出水,使船體的吃水深度趨近于正常值的范圍內。之后會重新檢測吃水深度,如果吃水深度未達到極限值,系統會給出指令,機器人會繼續進行自動巡航。否則,小船就會選擇最佳返回路徑,垃圾收集結束。系統設計流程圖如圖8 所示。

圖8 系統設計流程圖
自動調節水深系統由超聲波傳感器、貯水艙、電磁閥、排水泵等組成。超聲波傳感器位于機器人箱體頂部,通過超聲波測距的方式測量傳感器與水面之間的高度。當吃水深度(測量高度)在設定范圍內時,機器人正常運行。當測量高度大于設定范圍的值時,機器人吃水過淺,此時電子閥打開,水由電子閥進入到貯水艙,機器人所受重力增加,機器人下沉,直至測量高度到達設定范圍。若測量高度小于設定范圍,則排水泵開始工作,將貯水艙中的水排出艙外,減小機器人所受重力,機器人上浮,直至測量高度在設定范圍內。自動調節水深系統設計流程圖如圖9 所示。

圖9 自動調節水深系統設計流程

圖10 巡航收集系統設計流程圖
該系統由OV7670 攝像頭模塊、ULN2003APG 驅動芯片、步進電機和同步帶組成。自動巡航時,攝像頭自動檢測并識別漂浮垃圾。當攝像頭檢測范圍內出現垃圾時,Arduino 控制板控制動力推進系統向目標位置移動,當機器人靠近漂浮物時,Arduino 控制板給ULN2003APG 驅動芯片輸出高電平,步進電機帶動同步帶開始工作,將垃圾收集到垃圾儲存箱內。巡航收集系統設計流程圖如圖10 所示。
該系統由E18-D80NK 光電傳感器、蜂鳴器、低壓報警器和電池模塊組成。主要負責檢測機器人的狀況,當機器人發生以下狀況時,機器人會警報提示,并選擇最佳路徑返航。
2.3.1 光電傳感器位于垃圾儲存箱內的頂部,能夠將垃圾儲存箱內的存儲狀況轉換成電信號,反饋給Arduino 控制板與設定值進行比較,當檢測值小于設定值時,會觸發蜂鳴器。
2.3.2 低壓報警器會實時監測電源電量,當電壓低于11.1V時,報警器會報警提示。
本文介紹了一種基于Arduino 的清潔機器人控制系統,該系統由涵道推進器、雙向無刷電調、ULN2003APG 驅動芯片、步進電機、紅外光電傳感器、超聲波傳感器、OV7670CMOSVGA 攝像頭模塊和PS2 無線遙控手柄等元件構成。系統具有自動巡航、收集傳送、自動調節吃水深度、自動檢測機器人實時狀況的功能,方便操作,適用于現代家居小區湖泊處的垃圾清理任務,該產品的設計開發不僅可以為人類提供生活上的便利方便,有效地減少水上垃圾,而且具有超高的市場應用價值和廣泛的推廣前景。