魏敏 張華正 胡紅新
摘 要:本文研究了一種基于STM32單片機的板球控制系統(tǒng)。文章詳細闡述了本系統(tǒng)的工作流程,硬件設(shè)計,軟件編程和測試結(jié)果分析。本系統(tǒng)采用了一塊STM32f103微處理器作為主控芯片,通過串口通訊控制STM32f407微處理器對攝像頭采集圖像進行圖像處理。STM32f407將處理結(jié)果發(fā)送給主控芯片。主控芯片通過PID算法計算控制量,輸出PWM波控制兩舵機。舵機通過拉桿調(diào)節(jié)平板傾斜度,控制小球在平面上的運動。經(jīng)驗證,本系統(tǒng)控制效果良好。
關(guān)鍵詞:STM32單片機;圖像處理;PID;舵機
1系統(tǒng)方案
1.1系統(tǒng)結(jié)構(gòu)
本系統(tǒng)主要由STM32F103控制核器、電機控制模塊、按鍵模塊、電源模塊、液晶顯示模塊和圖像處理等單元模塊構(gòu)成。小球選用的是直徑2.0cm的鋼球,通過舵機帶動平板上下運動,使得小球在平板上滾動,通過攝像頭對小球位置進行檢測,用STM32F407圖像處理后的圖像通過液晶顯示屏顯示,之后用PID算法精確調(diào)節(jié)舵機,使小球完成各項指標。
系統(tǒng)框圖如下:
1.2各部分方案選擇與論證
1.2.1機械結(jié)構(gòu)方案選擇與論證
方案一: 利用手頭僅有的萬向節(jié)與雙舵機,將萬向節(jié)固定在板子中下方,兩個舵機分別放在相鄰兩邊的中線處,成90度角,攝像頭固定在距離平板大約80cm處,盡量還原經(jīng)典板球結(jié)構(gòu),同時焊接相應(yīng)配套鐵架臺來固定攝像頭和單片機等器件。
方案二:采用懸掛式,將三個步進電機分別固定在所選鐵架的三個角上,步進電機通過魚線與對應(yīng)木板角相連,木板最后一角處直接用線固定,通過三個步進電機的轉(zhuǎn)動來控制與平板相連的線的伸縮從而控制平板的平衡,進而維持小球的正常運動。
方案二通過懸掛的方式致使平板很不穩(wěn),本身就存在抖動現(xiàn)象,受外界因素影響太大,自身缺陷太多,并且三個電機分布不均勻,使難度加大;由于最初我們采用的是方案二,實驗結(jié)果并不理想,因此我們最終采用方案一,并取得理想結(jié)果。方案一的實物圖如下所示:
1.2.2核心控制模塊的選擇與論證
方案一:選用AT89C51作為控制芯片。采用AT89C51進行控制比較簡單,但是51單片機資源有限,而本控制系統(tǒng),程序量較大且復(fù)雜,89單片機I/O不足,需要外接74HC573之類的芯片進行I/O擴展,且不足以支撐起攝像頭很難滿足題目要求,并且指令復(fù)雜,難以勝任控制任務(wù)。
方案二:選用STM32單片機作為控制芯片,STM32程序都是模塊化的,接口相對簡單些,工作速度也快,且STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM Cortex-M3內(nèi)核,屬于32位ARM微控制器,常用KEIL編程,其編程語言豐富,很大程度上提高了代碼的通用性和可移植性,且對本系統(tǒng)來說不僅能勝任任務(wù),而且使用靈活。
綜合考慮采用性能更為優(yōu)良、處理速度更快的STM32F103ZET6單片機。
1.2.3電機及驅(qū)動模塊的選擇與論證
方案一:采用步進電機??梢酝ㄟ^控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速,從而控制步進電機連接體平板的升降,進而實現(xiàn)對小球運動的控制。
方案二:采用直線行程電機??刂齐姍C上下伸出推動木板運動來控制小球運動。
方案三:采用180度旋轉(zhuǎn)舵機。舵機為隨動系統(tǒng),運動時可以外接較大的轉(zhuǎn)動負載,輸出扭矩大,而且抗抖動性很好。180度旋轉(zhuǎn)舵機內(nèi)置驅(qū)動電路,用單片機輸出的信號可以直接驅(qū)動,接線方便。
由于步進電機慢速調(diào)節(jié)時電機震動劇烈,時刻影響平板上的滾珠平穩(wěn)活動且存在較大的誤差,多個步進電機同時運動相同長度是比較困難的。直線行程雖然電機精度和重復(fù)精度高,但其反應(yīng)較慢且抗干擾能力差,不能達到較好效果。綜合考慮采用方案三。
1.2.4攝像模塊方案的選擇與論證
方案一:CCD模擬攝像頭。此種攝像頭靈敏度很高且噪點低,然而成本高、功耗高、電路復(fù)雜、效率低,不適宜實驗室進行試驗使用。
方案二:OV7725 CMOS數(shù)字攝像頭。這里不能像飛思卡爾一樣用邊沿掃描的方法,要用全場掃描,找出小球的黑點,從而得出他的圓心(球心)坐標。該種攝像頭雖然靈敏度較低、卻符合實驗要求,僅需5V單電源供電。該攝像頭高達150HZ的幀頻率,采用硬件二值化,
功耗小而性能穩(wěn)定、效率高,非常方便后續(xù)的圖像處理,還可以根據(jù)實際情況改變圖像亮度以實現(xiàn)最佳顯示效果。
經(jīng)過以上方案分析,考慮性價比,方案二顯然是最優(yōu)選。
2.系統(tǒng)的理論分析與計算
2.1 小球的檢測方法分析
本系統(tǒng)用STM32F407對攝像頭采集圖像進行處理以檢測運動小球的位置,將圖像作為反饋信息反饋STM32F103控制器,通過舵機轉(zhuǎn)動平板的傾斜角度,從而對小球的運動軌跡進行控制。本設(shè)計采用圖像二值化處理圖像信息,其基本原理為:將圖像上點的灰度置0或255,使整個圖像呈現(xiàn)明顯的黑白效果。將256個亮度等級的灰度圖像通過選取適當閾值即可獲得反映圖像整體與局部特征的二值化圖像,在實用圖像處理中有著舉足輕重的地位。圖像二值化有利于對圖像進一步處理,使圖像變得簡單,同時減少處理和壓縮的數(shù)據(jù)量,為了得到較清晰的二值化圖像,一般采用封閉與連通的邊界來定義不交疊區(qū)域,灰度大于或等于閾值的像素用255來表示,用來表示特定點,灰度小于閾值的像素則置0,表示背景或其他區(qū)域。
2.2 小球的控制方法分析
在圖像處理后確定小球的位置的基礎(chǔ)上,用PID算法對板球系統(tǒng)進行控制并觀測控制效果。在小球的滾動過程中把舵機角度和小球位置反饋到控制器,構(gòu)成雙閉環(huán)控制系統(tǒng),使用PID算法即可實現(xiàn)兩回路控制。經(jīng)典的PID控制算法應(yīng)用廣泛、理論完備、技術(shù)成熟,且結(jié)構(gòu)簡單可靠易調(diào)整,其中,P為比例環(huán)節(jié),I是積分環(huán)節(jié),D為微分環(huán)節(jié),采用PID調(diào)節(jié)器即根據(jù)經(jīng)驗在線整定,以達到滿意的控制結(jié)果。依據(jù)輸入量和反饋信息STM32F103控制器進行分析計算,按功能要求控制小球在平板上滾動并到達相應(yīng)位置。
3.電路與程序設(shè)計
3.1電路設(shè)計
供電電源:220V交流電轉(zhuǎn)24V直流開關(guān)電源,后經(jīng)了lm2596穩(wěn)壓一路后給舵機供電,用lm7805穩(wěn)壓后給單片機供電,AMS1117-3.3V電源穩(wěn)壓后給攝像頭模塊供電。其框圖及原理如下:
3.2程序結(jié)構(gòu)設(shè)計
該系統(tǒng)主要由控制器、執(zhí)行器、板和球、攝像機、圖像處理單元構(gòu)成,具體的工作過程為:通過攝像機采集小球的運動圖像,在圖像處理單元對圖像進行處理,獲取球相對于板的位置,并計算位置偏差,將偏差信息傳遞到控制器,在控制器內(nèi)計算控制量,通過控制執(zhí)行機構(gòu)來控制板的運動,進而控制小球的運動。系統(tǒng)的構(gòu)成框圖為:
由于本題有多個任務(wù)要求,需要設(shè)置不同的功能,我們采用矩陣鍵盤作為輸入。因此在程序方面,我們通過按鍵掃描,然后按鍵判斷,再根據(jù)按鍵設(shè)定的功能來實現(xiàn)任務(wù),程序流程圖如下:
4.測試方案與結(jié)果
4.1 測試方法
每項運動開始時,先使平板穩(wěn)定,之后用手將小球放置在起始位置,供電后記錄小球到達指定區(qū)域以及在指定區(qū)域停留時間。
4.2測試數(shù)據(jù)
基本部分 :
基本要求1:小球在區(qū)域2停留不少于5S
基本要求2:控制小球從區(qū)域1進入?yún)^(qū)域 5,在區(qū)域5停留不少于2秒
基本要求3:從區(qū)域1進入?yún)^(qū)域4并停留不少于2秒;再進入?yún)^(qū)域5并停留不少于2秒
基本要求4:30S內(nèi)小球從區(qū)域 1 進入?yún)^(qū)域 9,且在區(qū)域 9 停留不少于 2 秒
發(fā)揮部分1:在40秒內(nèi),小球從區(qū)域1出發(fā),先后進入?yún)^(qū)域 2,6,停止9區(qū)不少于2秒
發(fā)揮部分2:在40秒內(nèi),小球從區(qū)域 A 出發(fā)、先后經(jīng)過B、C,停止于區(qū)域 D
發(fā)揮部分3: 小球從區(qū)域 4 出發(fā),作環(huán)繞區(qū)域 5 的運動(不進入),運動不少于 3 周后停止于區(qū)域 9,且保持不少于 2 秒
根據(jù)上述測試數(shù)據(jù),該板球系統(tǒng)已經(jīng)基本達到題目的全部要求和性能指標。而且該系統(tǒng)較為穩(wěn)定,偶然性小,誤差范圍較小。
4.3結(jié)論與分析:
該板球控制系統(tǒng)在實驗室搭建,有自己獨特的特點,系統(tǒng)的硬件設(shè)計是決定系統(tǒng)能否完成題目要求的關(guān)鍵,機械結(jié)構(gòu)的選擇,舵機的安放位置,任何一個做的不夠好,都將會給程序調(diào)控大大增加難度,所以硬件搭建很重要。好的算法也起到至關(guān)重要的作用。在老師的指導(dǎo)下,經(jīng)過我們幾個人的努力,本系統(tǒng)的設(shè)計在此次的比賽中中取得省一推國賽的優(yōu)異成績。本次比賽不僅鍛煉我們快速學習的能力以及文獻檢索的能力,更增強了我們團隊的凝聚力,增強了我們的信心,培養(yǎng)了決不放棄的奮斗精神。我們將繼續(xù)努力,爭取取得更大的進步。
參考文獻:
[1]全國電子設(shè)計競賽組委會 .滾球控制系統(tǒng) (B題 )
[2]劉佳, 柴浩元. 小球滾動控制系統(tǒng)的設(shè)計與實現(xiàn)[J]. 山西電子技術(shù), 2017, 30(2):21-24.
[3]賈德旺. 基于C8051F040的小球滾動控制系統(tǒng)[J]. 中國包裝工業(yè), 2015(17):55-56.
[4]曾維鵬, 蔡莉莎, 韓寶如. 基于51單片機小球控制系統(tǒng)的設(shè)計與實現(xiàn)[J]. 電子設(shè)計工程, 2017, 25(8):68-71.
[5]李芳. 板球系統(tǒng)設(shè)計及控制系統(tǒng)研究[D]. 內(nèi)蒙古科技大學, 2013.
[6]蘇金濤. 無約束運動體路徑規(guī)劃與高精度軌跡控制研究[D]. 吉林大學, 2006.