張 可, 劉忠富, 付 秒, 蔡玉卿
(大連民族大學(xué) 信息與通信工程學(xué)院, 遼寧 大連116600)
隨著科技的發(fā)展,智能技術(shù)已經(jīng)廣泛應(yīng)用到了各個領(lǐng)域。 一些領(lǐng)域甚至可以代替人工生產(chǎn)工作。水面漂浮物的污染一直是一個難以消除的大問題,人工清理要花費很長的時間,有很多小型區(qū)域和危險區(qū)域難以清理,成本較高,工作難度和風(fēng)險也很大。 近年來,國內(nèi)外的科研人員針對水面污染問題做了很多嘗試,研制出了各種水面清理裝置來代替人工打撈,很大程度上增強了效率,降低了風(fēng)險。
本文設(shè)計了一款基于STM32 的水面漂浮物清理系統(tǒng),可以檢測垃圾收集狀態(tài),并通過無線通信模塊接收信息和控制系統(tǒng)運行。 可以代替人工到達一些不能到達的區(qū)域進行清理,操作簡單,可以遠程控制。
本系統(tǒng)采用STM32F407ZGT6 作為主控芯片,利用SX1278 無線通信模塊進行雙向通信,當紅外傳感器檢測到垃圾即將溢出時,通信模塊將相應(yīng)的信息發(fā)送并打印到PC 端,PC 端也可通過發(fā)送相應(yīng)的信息給單片機,控制各部分的運行。 系統(tǒng)使用一對電調(diào)和電機,電調(diào)驅(qū)動電機作為系統(tǒng)的動力裝置。電調(diào)控制有兩種方式,分別為主控芯片控制和遙控器輔助控制,兩種方式均可控制兩個電機的差速旋轉(zhuǎn),改變系統(tǒng)運行的方向[1]。 系統(tǒng)方案設(shè)計如圖1所示。
圖1 系統(tǒng)總體方案圖Fig. 1 Overall scheme diagram of the system
系統(tǒng)采用 STM32F407ZGT6 為控制核心。STM32F407ZGT6 是一款32 位微處理器,主頻高達168 MHz,具有豐富的通用I/O 端口及多個USART通訊口,具有卓越的計算性能,可以滿足較復(fù)雜的系統(tǒng)設(shè)計需求。
由于電路中需要用到12 V、5 V、3.3 V 的電源,因此系統(tǒng)采用12 V 的鋰電池供電,使用兩個MP1584EN 可調(diào)穩(wěn)壓模塊,使12 V 電壓降到5 V,再將5 V 電壓降到3.3 V。 電路輸入電壓在4.5 V-28 V之間,輸出電壓可達0.8 V-20 V 之間,最大輸出電流為3 A,可以滿足各模塊的供電需求。 通過可調(diào)電阻進行輸出電壓的控制,輸出所需電壓。 在模塊的輸入和輸出端都并聯(lián)一個瓷片電容和一個電解電容,起到濾波穩(wěn)壓的作用。 在輸出端接了一個LED 燈,用來觀察是否有輸出電壓,方便電路的調(diào)試。 設(shè)計原理如圖2 所示。
圖2 電源穩(wěn)壓電路Fig. 2 Power regulator circuit
SX1278 無線通信模塊適用于遠程無線通信,選擇穩(wěn)壓電路輸出的5V 電壓作為電源為其供電。 系統(tǒng)使用兩塊模塊進行通信,分別作為對方的發(fā)送端和接收端,實現(xiàn)PC 機與單片機的雙向通信。 模塊在使用前分別通過串口連接電腦,使用參數(shù)配置軟件對模塊進行參數(shù)設(shè)置,設(shè)置完成后才能實現(xiàn)通信[2]。
M0、M1 為模式設(shè)置腳,引腳電平為11 時為休眠狀態(tài),進行參數(shù)配置,將波特率設(shè)置為115200Hz;00 時為一般狀態(tài),可進行通信。 連接單片機的模塊RXD、TXD 接單片機最小系統(tǒng)的串口1 進行數(shù)據(jù)傳輸,利用引腳PF11、PF12 連接M0、M1 將模式設(shè)置為一般狀態(tài)。 連接電腦PC 端的模塊與一個CH340串口模塊相連,RXD、TXD 分別接串口的TXD、RXD,M0、M1 接地。 AUX 為狀態(tài)輸出腳,可以懸空。連接原理圖如圖3 所示。
垃圾的溢出檢測采用紅外傳感器模塊。 該傳感器模塊采用穩(wěn)壓電路輸出的3.3V 供電,通過電位器旋轉(zhuǎn)調(diào)節(jié)檢測距離,有效距離范圍2 ~30 CM。 其具有一對紅外線發(fā)射與接收管,工作原理是發(fā)射管發(fā)射出的紅外線,在檢測方向遇到障礙物時反射回來被接收管接收,經(jīng)過比較器電路的處理,輸出信號為一個低電平信號,這時模塊的綠色信號燈亮起,信號輸出接口輸出一個低電平信號。 信號輸出端連接單片機引腳PF2,讀取該引腳信號的輸出狀態(tài)來判斷結(jié)果,判斷結(jié)果通過無線通信模塊發(fā)送到PC 端。電路原理如圖4 所示。
圖3 SX1278 模塊連接電路圖Fig. 3 SX1278 module connection circuit diagram
系統(tǒng)的水下推進器選用三相無刷防水電機,電壓范圍12~24 V,該電機可以直接在水下運行。 由于電機轉(zhuǎn)動時不穩(wěn)定的干擾,采用兩個電機作為推進器,分別為正反螺旋槳,兩個螺旋槳互為反向轉(zhuǎn)動,根據(jù)兩個推進器的差速來改變系統(tǒng)運行方向。電機的驅(qū)動采用兩個無刷電調(diào)進行控制[3]。
圖4 紅外傳感器電路Fig. 4 Infrared sensor circuit
采用12 V 電壓對電調(diào)供電,其中三根線分別連接電機的三根線,信號線及地線連接到單片機上。兩個電調(diào)的信號線分別接到引腳PA7 和PE6 上。電路原理圖如圖5 所示。 單片機通過輸出PWM 信號對兩個電調(diào)進行控制。 根據(jù)電調(diào)的特性,驅(qū)動電機轉(zhuǎn)動要先接收到一個高油門信號,再接收到一個低油門信號,電調(diào)會根據(jù)接收的信號發(fā)出相應(yīng)的提示音。 當前兩個信號接收成功后,可根據(jù)后續(xù)接收到的信號驅(qū)動電機轉(zhuǎn)動[4]。 根據(jù)信號的變化控制電機轉(zhuǎn)動的速度,形成兩個電機之間的差速,完成對方向的控制。
圖5 電調(diào)驅(qū)動電機原理圖Fig. 5 Schematic diagram of electron speed regulator drive motor
遙控器輔助功能是通過遙控器和接收器控制電調(diào)驅(qū)動電機。 將電調(diào)的信號線連接到遙控器的接收器上,電調(diào)可將12 V 的輸入電壓降至5 V 作為接收器的電源,再將地線連接到接收器構(gòu)成回路。 通過操控遙控器的搖桿來控制油門信號,利用天線發(fā)送信號,接收器接收成功后將控制信號輸入電調(diào),以此驅(qū)動電機的轉(zhuǎn)動[5]。
系統(tǒng)軟件部分采用C 語言編寫,主要以紅外檢測和電調(diào)驅(qū)動程序為核心進行通信和控制。
紅外溢出檢測主要是通過讀取模塊引腳的電平狀態(tài),來判斷垃圾收集狀態(tài)。 首先要對系統(tǒng)各部分初始化,當檢測輸出為低電平時,代表垃圾即將裝滿,標志位設(shè)置為1,此時電調(diào)控制電機減速,并通過SX1278 無線通信模塊將信息發(fā)送到PC 端并打印出來。 如果輸出不為低電平,則返回繼續(xù)執(zhí)行對引腳狀態(tài)的讀取和判斷。 紅外檢測程序流程圖如圖6 所示。
圖6 紅外檢測程序流程圖Fig. 6 Infrared detection program design flow chart
電調(diào)驅(qū)動電機運動主要是利用單片機的PWM調(diào)節(jié)占空比來控制。 首先對定時器進行初始化,再初始化電調(diào)。 根據(jù)電調(diào)的驅(qū)動特點,將定時器時鐘初始化為50 Hz,調(diào)節(jié)占空比,依次給電調(diào)一個高油門信號和低油門信號,初始化電調(diào)后即可啟動電機,通過判斷標志位來控制電機的運動。 將電機的轉(zhuǎn)速設(shè)置為五個檔,前三個設(shè)置直線行駛的速度,后兩個設(shè)置兩個電機之間固定差速,分別實現(xiàn)系統(tǒng)的左轉(zhuǎn)和右轉(zhuǎn)。 通過SX1278 模塊,PC 端可以發(fā)送數(shù)據(jù)到單片機,并讀取出來,將讀取到的數(shù)據(jù)賦值給標志位,再判斷可控制系統(tǒng)的運動狀態(tài)。 通過標志位的判斷還可切換至遙控器輔助控制模式。 電調(diào)驅(qū)動程序流程圖如圖7 所示。
圖7 電調(diào)驅(qū)動程序流程圖Fig. 7 Electron speed regulator driver design flow chart
系統(tǒng)上電后,各模塊電源指示燈亮起,說明供電正常,隨后按照設(shè)定的速度轉(zhuǎn)動。 系統(tǒng)整體運行圖片如圖8 所示。
使用遙控器手動高低油門的設(shè)置,當接收到正確信號后,電機均可正常轉(zhuǎn)動。 在單片機控制電調(diào)時也可自由切換到遙控器輔助模式。
PC 端的SX1278 模塊連接到了PC 端的集線器上,使用SX1278 模塊進行通信,使用串口調(diào)試助手觀察現(xiàn)象。 檢測到障礙物時,紅外傳感器的信號燈亮起,PC 端接收到單片機發(fā)送的消息,并打印到串口調(diào)試助手上。 顯示結(jié)果如圖9 所示。
當PC 端發(fā)送相應(yīng)的指令時,如果單片機接收到了指令,會返回給PC 端相應(yīng)的數(shù)據(jù)并打印出來。顯示結(jié)果如圖10 所示。
圖8 系統(tǒng)運行圖片F(xiàn)ig. 8 System operation picture
圖9 單片機發(fā)送信息到PC 端Fig. 9 Microcontroller sends information to PC terminal
圖10 PC 端發(fā)送指令接收返回值Fig. 10 PC terminal send instructions and receive return values
本文以STM32F407ZGT6 為核心,設(shè)計了水面漂浮物清理系統(tǒng)。 系統(tǒng)采用核心系統(tǒng)控制電調(diào)和遙控器輔助控制電調(diào)兩種方式驅(qū)動電機,操作方便。利用紅外傳感器檢測垃圾收集狀態(tài),通過SX1278模塊接收發(fā)送信息和相應(yīng)指令,方便了對水面的清潔,節(jié)省了一定的時間和人力,穩(wěn)定性強,具有一定的實用價值。