北京聯合大學 鐘曉青 林 智 和青芳
基于STM32的機械手臂控制系統設計
北京聯合大學 鐘曉青 林 智 和青芳
機械臂在近十幾年的發展中,已經實現根據軟件程序的設計操作機械臂完成相應的特定工作。它不僅可以在人們無法作業的環境下工作,而且還能保持長時間的作業和低失誤率。本文簡要介紹基于STM32的機械手臂控制系統實現方案。
舵機;STM32單片機;PWM波
早在很久以前,人們就已經開始制作機器人,以減輕人類的繁重勞動。一直以來,人們總是嘗試將生活變的更加簡單。而如今,有關于自動機器人相關的技術已然成為了各國科技水平程度的體現之一。
2.1 系統分析
本文對基于STM32的自動機械臂控制系統進行了研究和設計。以六自由度機械臂為研究對象,使用STM32為主控芯片,再利用穩壓模塊、無線模塊和電機驅動模塊設計了系統的硬件結構,并在軟件設計方面采用了先進的控制理論。通過合理的算法進行了軟件設計。
2.2 設計結構圖
本設計采用單CPU集中控制方式,即由stm32來控制舵機,執行相應的預定動作,自動機械臂控制系統的構成如圖2.1所示。

圖2.1 機械臂控制系統結構
該系統是通過計算機的事先的編程之后,通過數據傳輸下載到stm32當中通過控制stm32的定時器產生多路的PWM波。舵機就會依據給定的PWM波完成相應的運動軌跡或按照預定的計劃完成任務。
2.3 機械臂的臂部設計
因為機械臂主要是由臂部組成,所以在進行臂部設計時應當著重注意以下幾點:(1)手臂在機械臂中起著重要的作用:它不光可以讓物體進行移動而且還能進行一些操作。(2)因為機械臂的臂部在運動中有很大負擔,為了減小手臂的負擔,需要將手臂的截面形狀做的更加合理。在進行了各種截面對彎曲度的承受力的實驗后發現,在相同力的情況下,工字型的截面能承受的力最大,因此我選擇使用工字型截面做手臂的截面。(3)因為機械臂在直線運動中可能會發生突然的方向轉換,因此,為了防止機械臂的硬件損耗過大,需要采用一些裝置來保護機械臂。同時要采用一定形式的緩沖措施。(4)為了減少臂部在運動時會產生較大的轉動慣量,需要將臂部的重量減少,以免在運動中產生較大的誤差,從而影響機械臂的整體運作,加快機械臂的運行速度。
經過對預期任務的特點和類型分析,該設計需要機械臂具有較高的靈活性和流暢性,因此在多次的比較和分析后,決定使用多關節型機械臂。它不僅可以靈活的完成預定任務,而且可以有更大的運動空間。
2.4 機械臂自由度選擇
通常將機械臂是由幾個傳動結構組成的就稱為幾自由度。例如人類的自由度高達27個,而手臂部分的自由度一般為6自由度。所以仿照人類的特性,機械臂的自由度應當選為6自由度,這樣既符合了身體力學并且動力傳輸效率也很高。為了更加流暢的完成抓取物體,并將物體移動到指定的位置,需要采用6自由度。而6自由度的機械臂的控制較為繁瑣,所以工業和生活中機械臂的自由度多少于6個。
2.5 機械臂控制器類型
控制器的主要任務就是按照預先設計的程序進行相應的任務,它是機械臂中十分重要的組件。機械臂的控制器就相當于電腦中的處理器,只有處理器越好,電腦的運行速度和處理速度才會越快。對于機械臂來說也一樣,只有控制器越好,才能更加精準快速的進行控制。從控制器的數量和機械臂的控制方式可分為以下幾種:單CPU集中控制、多CPU分散控制、雙CPU分級控制。本文所設計的機械臂控制系統,利用stm32的強大的處理能力和多線程的管理能力,由此,采用單CPU集中控制方式即可。
機械臂的機械系統的基本要求應當有如下幾個特點:(1)控制系統應當微小化、輕便化和分塊化,以便將控制器安裝到受控對象的硬件上,以便更好的進行控制。因此為了更有效的減少硬件結構的復雜度和負載,所以要盡可能的微小化和輕便化。此外,為了系統具有較好的獨立性,所以要盡可能的分層化。(2)控制系統的實時性:因為機械臂是一種即時的操作,所以對于機械臂的每一個動作,都要確保其是快速的反應,否則機械臂就不能順利完成相應的動作。(3)系統的穩定性和開源性。為了確保機械臂可以完成任務要求,因此穩定性是十分重要的。此外,因為后期可能出現更多的問題,所以要確保后期可以對控制系統進行二次開發。
本文的系統由控制模塊、直流伺服電機模塊和電源驅動模塊組成。每個模塊的作用如下:
控制模塊:該模塊是機械臂控制系統的核心,由stm32、串口和穩壓模塊組成,其主要是控制各個直流伺服舵機進行運動。
直流伺服電機模塊:該模塊主要是實現不用動作的基礎,由控制模塊發送的PWM波進行控制。

圖4.1 系統流程圖
4.1 算法設計
硬件結構作為機械臂的身體構架支持著整個系統的運行。而軟件方面作為機械臂控制系統的大腦中樞,統籌著身體和思維進行正確的判斷和運作。軟件部分的優劣影響著整個機械臂控制系統的運行流暢性、穩定性和整體功能的發揮。因此程序設計十分重要,需要滿足整體系統的基本需要,主要包括以下幾點:(1)實時性:因為在控制器控制手臂時,要實現對手臂的實時控制,需要確保數據的實時性,并且只有整體的實時才可以保證機械臂操作系統在工作的時候不會出現死區等故障問題。(2)穩定性:穩定性是指系統在運行過程中,為了防止故障發生,以及出現故障后的自我解決故障的能力。因此,為了提高系統的穩定性,在進行設計的時候必須要考慮到運行時可能出現的不正常現象。(3)再開發性:好的程序設計不是一次設計和調試就可以正常運行的,而總是伴隨著一邊調試一邊更改的過程,經過多次修改后才能達到系統的要求。所以在開發的過程時,就應當有好的結構,以便于程序的再調試,并確保程序具有結構簡單、思路清晰的優點。
對于如何使系統的運行,更加的順利以及實現更多的功能,本文的機械臂控制系統的程序設計采用的是分層化結構設計,其中含有系統時鐘與Systick定時器模塊,串口采集模塊,串口發送模塊,定時器模塊,計算器模塊。基本的程序有程序初始化:使模塊都處于可以被使用的狀態,自動運行:各模塊按照程序進行運作,手動操作:根據無線模塊獲取的信息進行處理后發送至舵機。流程圖如圖4.1所示。
通過實驗證明:本文設計的機械臂控制系統,可以勝任中小型機器人控制器的要求,具有控制準確度高、操作方便、動作靈活等方面的優良表現。然而仍有一些不足需喲改進,主要有:
(1)機械臂的改造。作為系統的主要受控對象,需要其有著優越的穩定性才能達到更加精準的控制。本文的機械臂的爪部有待改進,例如加入壓力傳感器可以更好的完成抓取的動作。
(2)算法的完善:對算法的冗余和處理方面進行改進,可以有效的改善機械臂的運作,例如調整:輸入參數和如何輸出更加精準的PMW波。
基于上述問題,在今后的時間里,我們將會不斷的修改以加強機械臂的穩定性和可靠性。參考文獻
[1]焦保存.基于四自由度機械臂控制系統的設計與研究[D].西安:西安電子科技大學,2009:5.
[2]李磊.六自由度機械臂控制系統設計[D].哈爾濱:哈爾濱工程大學,2007:66.
[3]程立艷.五自由度機械手的抓取設計[D].成都:西華大學,2012:51.
[4]ST Microelectronics 數據手冊 STM32G103XCSTM32G103xD
STM32G103XE[EB/QL].http://www.st.com.
[5]ST Microelectronics STM32F101xx,STM32F102xx,STM32F103xx,ST M32F105xx和STM32F107xx,ARM內核32位高性能微控制器參考手冊.
[6]黃智偉,王兵,朱衛華.STM32F32位ARM微控制器應用設計與實踐[M].北京:北京航空航天大學出版社,2012:3-4.
[7]鄭珊珊.基于ARM處理器的鉆孔機械臂控制系統研究[D].南昌:江西理工大學,2009:5-6.
[8]庫少平,劉晶.基于STM32F10x和MDK的步進電機控制系統設計[J].武漢理工大學,2011:7.
[9]曹歡.基于ARM和FPGA的多自由度機械臂控制系統設計[D].上海:華東理工大學,2011:7.
和青芳,指導教師。
鳴謝:該項目的研究成果基于北京聯合大學“啟明星”大學生科技創新項目經費資助,項目編號:201611417SJ096。