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