版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
I基于單片機的三自由度碼垛機器人控制系統設計中文摘要機械手臂技術經過數十年的發(fā)展,各種復雜、先進的機械手臂已經廣泛應用于尖端工業(yè)生產領域。但是面對人口老齡化和勞動力短缺困境,技術成熟、價格低廉的三自由度機械手臂有著巨大的市場需求。本文所展示的正是一種基于STM32單片機控制,利用步進電機驅動的三自由度碼垛機器人控制系統設計。本文利用D-H建模法對機械手臂進行運動學分析,通過限制機械手臂小臂的轉動角度來處理逆運動學方程多解問題,將機械手臂要到達的目標點坐標轉換為各關節(jié)的轉動角度,最終解決了機械手臂控制系統的算法問題。之后根據選用的步進電機和電機驅動芯片,進行程序編寫,各關節(jié)的轉動角度是通過精確控制步進電機轉動角度來實現。為了完善控制系統并增加可操作性,還使用了LCD顯示器、按鍵等硬件來進行開發(fā)。。最終設計完畢的控制系統可精確地驅動機械手臂實現點對點運動,同時機械手臂動作流暢,運行穩(wěn)定。關鍵詞:機器人運動學;STM32;步進電機目錄第一章前言 51.1 研究背景和意義 51.2國內外工業(yè)機器人研究現狀及發(fā)展趨勢 5第二章機器人的運動學建模 72.1機器人運動學及D-H建模法 72.2關節(jié)坐標系的建立 82.3關節(jié)變換矩陣 102.4正運動學方程建立 112.5逆運動學方程建立 11第三章機械臂控制系統的總體方案 133.1機械臂控制系統的結構 133.2機械臂控制系統的控制策略 133.3機械臂控制系統的優(yōu)點 14第四章機械臂控制系統的硬件設計 154.1主控模塊設計 154.2電源模塊設計 184.3步進電機與驅動芯片設計 194.4其他輔助模塊 21第五章機械臂控制系統的軟件設計 245.1STM32的開發(fā)環(huán)境 245.2控制系統各模塊的程序設計 24第六章涉及的標準、法律法規(guī)、安全、環(huán)境及經濟核算 316.1涉及的標準、法律法規(guī) 316.2本設計產品對安全、環(huán)境的影響 316.3經濟核算 31總結 32參考文獻 33附錄1電路圖 35附錄2程序 36第一章前言機械手臂最初的設計靈感來自于人的手臂運動,是一種集合了機械、電子、傳感器、控制科學、計算機技術等多個學科技術的操作裝置。在機械臂末端安裝各種執(zhí)行器,就可以實現其相對應的功能,例如碼垛等。而實現這些功能的核心就是對機械臂的精確控制,使機械臂能夠按照設定的軌跡精確運動到需要到達的位置。研究背景和意義機械臂最早被開發(fā)出來的主要原因是工程師們想用一種能在極端環(huán)境下自主工作的裝置來代替工人進行簡單的重復性工作。隨著新世紀電氣電子技術、控制科學等方面的飛速發(fā)展,特別是微控制器性能的驚人提高,使得機械臂越來越多地應用于汽車、航空航天等復雜領域的生產中,同時,近年來小型和微型機械臂也被應用于電子精密元器件的制造中??梢钥吹?,經過幾十年的發(fā)展,機械臂的性能得到了迅速的提高。而隨著人工智能技術的發(fā)展,機械臂將擁有更多的功能和更多的應用場景。三自由度機械臂在我國,特別是在當今社會,面對人口老齡化,工人越來越少,成本越來越高的問題有著很好的應用前景,它能進行簡單重復的工業(yè)生產工作,既能解決工作問題,又能把人們從枯燥重復的工作中解放出來。而且機器人手臂可以長時間穩(wěn)定工作,不需要像人一樣休息,不會影響生產效率或因疲勞和粗心造成的生產問題。從上述角度來看,本課題具有非?,F實和突出的研究意義。1.2國內外工業(yè)機器人研究現狀及發(fā)展趨勢1.2.1國內工業(yè)機器人研究現狀及發(fā)展趨勢上世紀70年代,中國開始研究機器人技術。經過半個世紀的技術攻關,已經成為機器人領域的強國,在某些技術方面已達世界第一的水平。與此同時,國內機器人產業(yè)規(guī)模不斷擴大。但從總體上看,我國機器人技術與美國、日本等國仍有一定差距,特別是機器人技術的創(chuàng)新程度。中國的機器人研究主要是基于國外先進的機器人技術。目前,國內機器人的研究方向主要是以創(chuàng)新為主,民辦高校和科研院所也不斷推進仿生機器人的研究,如清華大學的動態(tài)步行雙足機器人THBIP-II和國防科技大學的胸鰭推進機器魚等。同時,由于機械制造、電氣控制等基礎工業(yè)與德國、日本差距較大,近年來我國不斷加大機器人核心裝置的研發(fā)力度,如高精度減速機的研發(fā),通過國內機器人領域內的專家們的不斷努力和國家對機器人產業(yè)的高度重視,中國機器人技術將進入一個快速發(fā)展的時代。1.2.2國外研究現狀及發(fā)展趨勢第二次世界大戰(zhàn)結束后,美國開始研究可用于工業(yè)生產的機器人,第一代工業(yè)機器人只有教學功能,它的功能只能跟劇指令完成簡單的動作。第二代工業(yè)機器人具備了基本的感知能力。目前,第三代工業(yè)機器人的研究方向是智能化,它利用最先進的傳感器技術確定機器人自身和外部環(huán)境的狀態(tài)。利用神經元算法、人工智能等技術,可以獨立規(guī)劃下一步行動,然后完成任務。例如,國外開發(fā)的PUMA560機械臂,能夠感知外界環(huán)境,能夠自主地避開障礙物,規(guī)劃運動軌跡。另外新型仿生機器人也是國外機器人的一個重要發(fā)展趨勢,如可用于管道探測的蛇形機器人,可執(zhí)行水下探測任務的魚類機器人等。這些仿生機器人與傳統工業(yè)機器人有很大不同,對特定工作環(huán)境的適應性更強,任務不再是簡單和重復的。這說明國外機器人正在向多樣化發(fā)展。魚行仿生機器人蛇形仿生機器人圖1-1仿生機器人第二章機器人的運動學建模2.1機器人運動學及D-H建模法2.1.1機器人連桿空間位置的參數我們在對機器人進行運動學研究的時候,一般只會考慮機械臂在運動時候的特性而不會去考慮機械臂力在運動的途中對機械臂的影響。所以在建模時,一般會把機械臂視為剛體,轉軸和連桿用一條空間直線來表示。利用這種方法,可以快速找到D-H建模時相鄰兩桿的空間位置關系的相關參數,我們利用這些參數就能建立起空間坐標系在各關節(jié),再用建立的坐標系變換推導出正逆運動學方程。具體連桿位置參數如下:連桿長度ai:對于在空間相鄰的兩轉軸i和i+1,必能找到位于兩轉軸都垂直的一條線段,將這條線段的長度定義為a連桿轉角αi:對于在空間中相鄰的兩轉軸i和i+1,平移將轉軸i+1和轉軸i相交。兩轉軸平移后相交與一個確定的平面,平面與線段ai互相垂直,以線段ai連桿偏距di:公垂線ai?1在轉軸i上交點到公垂線關節(jié)角θi:將公垂線ai沿轉軸i方向平移到ai?1與轉軸i交點處,此時平移后的ai與連桿偏距di和關節(jié)角θi在上述的四個參數中為機械臂的關節(jié)變量。對與移動的關節(jié),在構建的運動學方程中除了di2.1.3兩種D-H建模法在進行D-H建模時候,根據上述的連桿空間位置參數就能建立關節(jié)坐標系在各關節(jié)處,但這種坐標系的建立方法并不唯一,目前最常用的坐標系建立方法有標準D-H建模法和改進D-H建模法兩種。兩種坐標系建立的原則一致,如下:坐標原點建立在aiZiXi軸建立在線段aYi軸根據Xi和由于兩種建模方法的定義對與連桿和轉動關節(jié)有所不同,所以雖用的一樣的坐標系原則但建立的坐標系卻大不相同?;诒敬螜C械臂所具備的特征,故選擇標準D-H建模法更為合適,原因如下:在使用標準D-H建模法時,第i個關節(jié)處的D-H參數為ai、αi、di和θi,而改進D-H建模法還會涉及到而在標準D-H建模法的下,把坐標系建立在末端執(zhí)行器位置,該坐標系與基坐標系之間的變換關系就可以直接求出來,D-H建模法只研究各關節(jié)之間的變換,而不會涉及到末端執(zhí)行器的姿態(tài)。2.2關節(jié)坐標系的建立本次設計的機械臂為三個旋轉關節(jié),其中機械臂腰部轉軸方向與基座平面相垂直,小臂轉軸方向和大臂轉軸方向都與基座平面相平行。為了更好的研究運動學問題,現分別將腰部、大臂、小臂定義為連桿1、連桿2、連桿3,而旋轉關節(jié)則分別定義為關節(jié)0、關節(jié)1、關節(jié)2。由于要建立機械臂原點位置處的關節(jié)坐標系,所以就需要將原點位置確定出來,現機械臂的原點位置設定如下:在原點位置是,連桿1和基座平面相垂直,連桿2、3都與基座平面相平行?,F根據標準D-H建模法的原則,在原點位置時建立的各關節(jié)處坐標系如下:基坐標為X0?Z0坐標系,建立在關節(jié)0處。其中Z0關節(jié)1的坐標系為X1?Z1坐標系。在關節(jié)1轉軸方向建立Z1關節(jié)2坐標系為X2?Z2坐標系,如圖2-1所示。其中在關節(jié)2的轉軸方向建立d末端執(zhí)行器坐標系為X3圖2-1機械臂D-H建模簡圖2.3關節(jié)變換矩陣而若想求出相鄰兩個關節(jié)處的變換矩陣,就需要將各個關節(jié)處的D-H參數確定。根據上節(jié)建立的關節(jié)坐標系,確定D-H參數表如下:表2-1機械臂的D-H參數表10200300ai:從Xi軸方向看是Zi軸和Zi?1軸之間的距離。因為Z0和Z1相互垂直,所以兩軸之間的距離為0,從而得出a1=0。并且Z1、Z2、αi:從Xi軸方向看是Zi軸和Zi?1軸之間的夾角。因為Z0和Z1垂直,所以a1=90。由于Z1、Z2、di:沿著Zi?1軸方向看是Xi軸和Xi?1軸之間的距離。所以d1與桿1的長度相等。由于X1、X2、X3軸又處于一條直線θi:各轉軸所轉動的角度,在建立運動學方程時第i個關節(jié)處坐標系相對于第i-1個關節(jié)處坐標系的變換矩陣公式如下:i?1iT簡化公式,(2-1)式中用Si來表示sinθi,Ci來表示cosθi。由(2-1)公式可得出變換矩陣A1=C1為得出坐標系X3?Z03T=A(2-2)式中,為表達方便,用C23代表C(θ2+θ32.4正運動學方程建立在本次設計中的正運動學方程是末端執(zhí)行器P點在基坐標系中的坐標點(px,py,pz)與各轉動關節(jié)轉動角度θ1、θ2和θ3之間的函數關系。通過三個θ角可以算出唯一的px03由公式(2-4)兩相等矩陣的第四列元素可得出正運動學方程如下:ppy=Sp2.5逆運動學方程建立在本次設計中,根據給出坐標點(px,py,將選A1?1左乘公式(2-3)03n=C23由式(2-5)矩陣的(3,4)元素可得:pxS由式(2-5)兩相等矩陣(1,4)和(2,4)元素可得:pxC1+將式(2-7)兩邊都平方可得:(p將式(2-8)中兩等式左右兩側對應相加可得:(p由式(2-9)得出C3C3=觀察式(2-10)可知,在求解方程時有兩個不同的解。即求出的角度θ3的值在[?90°,0]之間,另一個值在[0,90°]之間。本次設計采用[?90°,0]的值。解得θθ3=-arccos繼續(xù)由式(2-8)可得:S2=(p由式(2-12)解得:θ2=arctan(p至此逆運動學方程建立完畢。第三章機械臂控制系統的總體方案3.1機械臂控制系統的結構本次設計的機械臂控制系統的控制核心為stm32微控制器,驅動裝置則使用步進電機??刂葡到y中械臂原點位置則利用限位開關來確定,確定好原點位置是機械臂能夠到達設定坐標位置點的先決條件。為了讓機械臂的運行數據可視化,決定使用LCD顯示器。為了機械臂能執(zhí)行不同的動作或停止運動則使用不同的按鍵來控制。從算法的層面上來看,利用逆運動學方程來求解目標位置來讓機械臂到達到達設定坐標點,而求解逆運動學方程才能得到控制步進電機的參數(脈沖個數、轉動方向)。利用這些硬件模塊與算法部分構成的一套完整、高效的機械臂控制系統,才能使機械臂完成制定的命令。圖3-1機械臂控制系統結構圖3.2機械臂控制系統的控制策略利用正負限位開關來讓三個機械臂回到各自的原點位置,正負限位開關的中點處為各關節(jié)處的原點位置。用整個運動過程中步進電機所需的脈沖數來表示每個機械臂的工作行程,所以從一側極限位置到另一側極限位置步進電機所需要輸入的脈沖個數的一半就是機械臂的行程中點位置,利用限位開關就能控制機械臂運動到原點位置。利用目標位置求解程序就能得到每個關節(jié)的轉動角度,步進電機的控制參數就用所求的角度來確定,其轉動的方向就由所求角度的正負來決定,角度的大小就能決定步進電機所需的脈沖數。本次論文中的控制系統就是通過控制步進電機來實現機械臂的點對點運動。3.3機械臂控制系統的優(yōu)點本次設計中的機械臂控制系統具有多個優(yōu)點,具體如下:控制系統的結構簡單相對簡單并且性能也足夠強大。因為控制芯片選用的是STM32微控制器,復雜的逆運動學方程也能快速準確的求解出來。因為驅動電機選用的是步進電機,給定所需的脈沖數和轉動方向即可驅動機械臂完成任務動作,所以不需要復雜的閉環(huán)控制系統也能滿足需求還降低了使用的成本??刂葡到y功能完善。為機械臂添加了按鍵、LCD顯示器、限位開關等輔助模塊后既能有效降低操作機械臂的難度還能提高運行過程中的安全性??刂葡到y模塊化特點突出。因控制系統中大部分功能都由模塊提供,還能根據實際需求更換部分模塊,而不會破壞整個系統的穩(wěn)定性。第四章機械臂控制系統的硬件設計在本次設計中,機械臂控制系統硬件主要由主控制模塊、電源模塊、電機驅動模塊和輔助模塊四個模塊組成。整個控制系統的核心是主控制模塊,它主要負責的功能有如下三種:通過運行目標位置求解程序從而計算三個步進電機的轉角;通過運行原點程序來確定三個旋轉關節(jié)的原點位置;通過控制引腳高低電平輸出進而控制其他模塊。電源模塊除了為控制系統硬件供電外,還能穩(wěn)壓電路進而實現穩(wěn)定的電壓輸出來確保各模塊正常工作。三個關節(jié)處的步進電機和其驅動芯片共同構成了驅動模塊,主要工作是使機械臂能夠運動到指定的位置。輔助模塊則由開關、按鍵、LCD液晶顯示器構成。在選用機械臂控制系統的硬件時,會考慮以下幾個方面:所選用的硬件既能滿足基本性能要求還能控制機械臂到達設定的位置;所選用的硬件需要保證一定的穩(wěn)定性來確保機械臂能夠長時間運行而不發(fā)生故障。所選用的硬件在保證機械臂性能的同時也要盡可能的降低成本。選用硬件時盡可能的增加系統的可開發(fā)性,方便之后機械臂的功能拓展,比如通過更換末端執(zhí)行器及其驅動模塊從而使機械臂能夠執(zhí)行不同的任務。4.1主控模塊設計主控模塊對于控制系統來說就是“大腦”。逆運動方程算法的求解、步進電機的控制均由主控模塊來負責。為了滿足機械臂的工作性能,本設計中主控模塊主要由STM32芯片、時鐘電路、復位電路等構成。4.1.1主控芯片的選擇目前有兩種主流的三自由度機械臂的主控芯片,分別是基于51單片機的MCU和基于STM32的MCU。結合本次機械臂設計要求和主體控制方案,最終選用了具體芯片型號為STM32F103ZET6的STM32微處理器,理由如下:STM32F103ZET6芯片擁有32位ARM?Cortex?-M3內核,令其數據處理能力比51單片機所使用的8位MCU要高上不少。因為考慮到在本次設計的控制系統中關鍵部分在于求解出逆運動學方程的解。所以需要一款性能強悍的控制芯片。STM32官方設計的固件庫資料比較完整,所以可以直接調用庫函數來編寫程序,并且程序會有更強的可讀性和移植性。STM32單片機對比51單片機會有更多的輸入輸出引腳并且功耗較低,更多的因為有較多的的引腳,所以控制系統能夠控制多個傳感器和電機驅動器。STM32單片機的優(yōu)點相較于其他會更適用于控制多個自由度機械臂。4.1.2復位電路單片機最小系統中必不可少的部分就是復位電路,復位電路對于主控模塊具有十分重要的作用。在主控模塊中,把微控制器內部各個寄存器置于初始狀態(tài)就需要用到復位電路,它讓硬件和軟件都能從一個確定的、唯一的零點位置開始工作,并且遇到故障還能重置系統。在本次設計中,復位電路采用的是由按鍵來實現復位,工作原理如下:當控制系統通電時,C15電容進入充電狀態(tài),此時復位引腳持續(xù)一段高電平直到電容充電階段結束,單片機復位。當按下復位按鍵時,電容放電使得復位引腳保持一段時間高電平狀態(tài),單片機復位。如果機械臂在運行過程中出現故障,按下復位鍵則將重置STM32上的所有外設,也會重新開始計算運動學算法部分。圖4-1復位電路圖4.1.3時鐘源電路時鐘電路的主要功能是為單片機提供一個節(jié)拍,在這個節(jié)拍的控制下單片機能夠實現各種操作。本次設計采用的STM32微處理器在進行系統時鐘配置時可以采用以下時鐘源:HSI、HSE。HSE是高速的外部時鐘,可以由頻率從4-16MHZ不等的有源晶振、無源晶振提供。在本次設計中,HSE使用的是頻率為8M的無源晶振。通常情況下會使用HSE作為系統時鐘來源,其晶振頻率過低的問題可以通過設置PLL的倍頻因子對PLL的時鐘來源(一般是HSE)進行倍頻,精確配置出系統需要的運行頻率。HSI是低速的外部時鐘,一旦HSE發(fā)生故障,系統的時鐘源就是HSI。圖4-2高速外部時鐘HSE電路圖圖4-3低速外部時鐘HSI電路圖4.2電源模塊設計電源模塊在整個控制系統中起到了至關重要的左右,它d能為控制系額統各個硬件模塊進行供電。但對于硬件模塊而言,輸入電壓過大就有可能導致整個硬件電路被燒毀,輸入電壓過小則會驅動不了硬件模塊進行正常工作??刂葡到y各硬件能否正常、穩(wěn)定地工作都由電源模塊來決定。在本次設計的機械臂控制系統中,各個硬件模塊所需要的驅動電壓大多不同,比如步進電機及其驅動芯片正常工作需要的驅動電壓為+12V,STM32芯片的驅動電壓是+3.3V,LCD1602顯示器則需要+5V電壓驅動。所以選用電壓轉換芯片來使各模塊正常的工作,它能將+12V的輸入電壓轉換為各模塊所需的驅動電壓。綜合電源轉換效率、穩(wěn)定性、性價比等方面考慮,選用了LM2596-5.0和LM1117-3.3電壓調節(jié)芯片。其中LM2596-5.0芯片負責將輸入電壓降為+5V以驅動LCD1602顯示器等需要+5V供壓的硬件,LM1117-3.3芯片負責將+5V電壓再降為+3.3V以驅動STM32芯片等等需要+3.3V供壓硬件。圖4-4LM2596-5.0芯片穩(wěn)壓電路圖圖4-5LM1117-3.3芯片穩(wěn)壓電路4.3步進電機與驅動芯片設計4.3.1步進電機簡介步進電機需要將電脈沖信號轉變?yōu)榻俏灰啤K詥纹瑱C不能對步進電機進行直接控制,所以步進電機控制系統需要配備驅動芯片。單片機通過驅動芯片的脈沖輸入端口發(fā)送脈沖信號從而驅動步進電機轉動固定角度,因為步進電機需要靠固定規(guī)律的脈沖信號來進行工作,所以步進電機非常適合在開環(huán)控制系統中使用,這也是本次設計采用步進電機驅動的原因。圖4-6步進電機的構造4.3.3步進電機的選型選擇步進電機時主要考慮以下幾個性能指標:最大轉速、定位精度和輸出轉矩。由于本次設計的機械臂主要應用于低負載場合,也不需要擁有較高的線速度,所以最大轉速和輸出轉矩沒有特殊要求。但機械臂控制系統為開環(huán)控制系統,所以需要定位精度較高的步進電機。同時考慮到機械臂的工作相對穩(wěn)定,所以對步進電機的穩(wěn)定性并無過分要求。綜合以上幾個方面考慮,本次設計采用了42HS4813A4XG10的兩相四線混合式步進電動機。表4-1步進電機參數表電機型號42HS4813A4XG10額定工作電流1.2A額定工作電壓12V步距角1.8°步距角精度1.8°±0.09°4.3.4步進電機驅動芯片選擇選用的A4988是一款帶轉換器和過流保護的DMOS微步進電機驅動芯片,主要用于操作雙極步進電機。在步進模式下,輸出驅動的能力為35V和±2A。A4988只需給驅動芯片的脈沖輸入端口發(fā)送一定周期、數目的脈沖信號就可以控制步進電機轉動,使得編寫程序的難度下降,還降低了對微處理器性能的要求。該驅動芯片還具有以下特點:控制簡單。只需要控制“STEP”與“DIR”兩個端口?!癝TEP”端口輸入脈沖的數目決定了步進電機轉動角度,“DIR”端口輸入的高低電平狀態(tài)決定了步進電機轉動方向。精度調整。擁有全、半、1/4、1/8、1/16共五種步進模式,在不同的模式下步進電機的接受一個脈沖所轉動的角度不同。例如全模式時,一個脈沖使步進電機旋轉的角度為1.8°。而在1/2模式時,一個脈沖使步進電機旋轉的角度為0.9°。通過調節(jié)電位器可以改變輸出電流大小,從而獲得不同的步進率。兼容3.3V和5V邏輯輸入。表4-2步進模式表MS1MS2MS3步進模式LLL全HLL半LHL1/4HHL1/8HHL1/16在本次設計中MS1,MS2,MS3全部接地,引腳狀態(tài)全為低電平,由表可知步進模式為全模式。通過步進電機參數可知,在全模式下一個脈沖信號驅動步進電機轉動1.8°。由于設計中選擇的步進電機相數為兩項,則1A和1B接電機同相的兩端,2A和2B接電機另外一相的兩端。圖4-7A4988控制原理圖4.4其他輔助模塊4.4.1LCD1602顯示模塊顯示模塊選用的是LCD1602液晶顯示器,主要用于顯示漢字、數字和符號等。LCD1602一個最多可以顯示32個字符,分為兩行每行顯示16個字符。具有顯示效果好、體積功耗小、價格低廉等優(yōu)勢。圖4-8LCD1602原理圖4.4.2按鍵在控制系統中,按鍵能夠使人更加方便的輸入控制信號來讓機械臂執(zhí)行相應的動作,極大地提高了機械臂的可操作性。在本設計中一共設計了三個按鍵,分別是KEY0、WK_UP和KEY1。他們的具體作用如下:按下WK_UP按鍵,機械臂運動到設定的原點位置;按下KEY0按鍵,機械臂運動至上位機設定的位置;按下KEY1按鍵,機械臂停止運動;圖4-9按鍵原理圖4.4.3限位開關本次機械臂設計在每個旋轉關節(jié)的正負極限位置都安裝了限位開關,一共使用了三組共六個限位開關。這些限位開關在控制系統中起到以下作用:機械臂的工作范圍可以通過控制三個旋轉關節(jié)的轉動角度來限制,還能設定安全操作區(qū)域,在操作失誤時可以起到保護作用。機械臂的工作原點位置也是通過限位開關來確定的。在設定好了三個機械臂的原點位置安裝限位開關,使各個旋轉關節(jié)坐標系的原點位置位于正負限位開關的中點位置。圖4-10限位開關原理圖第五章機械臂控制系統的軟件設計5.1STM32的開發(fā)環(huán)境在本次設計中,采用了KEILMDK軟件進行程序的開發(fā)。該軟件主要為使用ARM芯片的嵌入式系統提供開發(fā)環(huán)境。在編寫程序之前在軟件中安裝了官方的固件庫資料。本次軟件設計沒有采用難度較大的寄存器編程而是通過調用庫函數來實現程序開發(fā)的,降低了開發(fā)難度同時提高了程序的可讀性和可移植性。5.2控制系統各模塊的程序設計本此設計的機械臂控制系統軟件層面主要由目標位置求解程序、回原點程序、步進電機控制程序、LCD1602顯示器程序等部分組成。5.2.1目標位置求解程序本次機械臂的核心設計目的是利用步進電機驅動機械臂使其運動至上位機輸入的三維坐標點位置,所以目標位置求解程序就算是實現這個設計目的的核心程序。其中目標位置求解程序共分為旋轉關節(jié)轉動角度求解和步進電機控制參數求解兩個部分。旋轉關節(jié)轉動角度求解程序是將每個旋轉關節(jié)所需要轉動的角度由上位機輸入的(px,py,步進電機控制參數求解程序負責以旋轉關節(jié)所需要轉動的角度為變量通過程序求得控制步進電機所需的參數(脈沖數、轉動方向)。其中步進電機轉動方向由求得的關節(jié)轉動角度的正負決定,轉動角度為正則電機正轉,反之電機反轉。由于步進電機轉速高扭矩小,為了提高機械臂的負載能力,需要在步進電機輸出軸和機械臂關節(jié)轉動軸之間安裝一套齒輪減速器。所以步進電機的脈沖數主要由電機的步距角和齒輪減速器的傳動比決定,具體公式如下:StepMotoriPulse=anglei/1.8*51(5—1)(5—1)式中StepMotoriPulse代表第i個關節(jié)處的步進電機所需的脈沖數;anglei代表第i個旋轉關節(jié)轉動的角度;1.8是步進電機步距角;51是齒輪減速器的傳動比。如果所求角度anglei為負值則取其相反數帶入公式求解即可得到步進電機所需的脈沖數。根據以上思路,繪制程序流程圖如下。圖5-1位置解算程序流程圖5.2.2步進電機控制程序為實現機械臂的點對點精確運動就需要對各個轉動關節(jié)處的驅動電機進行精確控制。由于在本次設計中驅動電機采用的是步進電機,所以在進行程序設計時只需將輸入給步進電機驅動芯片的脈沖個數和轉動方向信號設為變量,通過改變兩個變量的數值就可以實現對步進電機轉動角度和轉動方向的精準控制。程序中脈沖個數變量定義為Mpus,轉動方向變量定義為decon。具體程序設計原理如下:控制STM32芯片連接A4988驅動芯片脈沖輸入端口的引腳的電平狀態(tài)來進行脈沖信號的輸入。只需要將引腳先置于一段時間的高電平狀態(tài)再置于相同時間的低電平狀態(tài)就可實現一個周期的脈沖信號。那如何準確地給電機驅動芯片輸入確定數目的脈沖信號?本次設計主要依靠定時器的中斷函數實現。在中斷函數中,設立了一個變量flag,在步進電機驅動程序中將flag變量賦值為1。參考中斷函數程序可知,當flag為1時每執(zhí)行一次中斷函數程序,賦予脈沖個數變量Mpus就會減1,直到將脈沖個數減到0,此時定時器將會被控制系統關閉不再給步進電機的驅動芯片輸入脈沖信號,步進電機進而停止工作。同時在中斷函數程序中,當脈沖個數變量不為0時,一個周期的脈沖信號輸出就可以通過讀取脈沖輸入端口引腳狀態(tài)來實現。如果讀取引腳狀態(tài)為低電平則將引腳狀態(tài)置為高電平,反之則置為低電平,將定時器定時時間設為2ms就可以輸出周期為2ms的脈沖信號。通過這種方法即可實現確定數目確定周期的脈沖信號輸出。通過控制STM32芯片連接A4988驅動芯片方向輸入端口的引腳的電平狀態(tài)來實現步進電機轉動方向的控制。在程序設計中,當轉動方向變量decon賦值為1時,引腳輸出高電平,電機正轉。當轉動方向變量decon賦值為0時,引腳輸出低電平,電機反轉。程序中,脈沖個數變量Mpus和轉動方向變量decon的值均是由目標位置求解程序得到的。根據上述控制思路可繪制流程圖如下。圖5-3步進電機控制程序流程圖5.2.3回原點程序只有確定機械臂執(zhí)行動作前所在的位置才能控制機械臂運動到上位機輸入的坐標點位置,機械臂的控制參數需根據初始位置和目標位置才能確定。在本次設計的控制系統中,利用逆運動學方程求出的關節(jié)轉角為機械臂的控制參數,這個角度是機械臂從建模時確定的原點位置運動到目標點位置關節(jié)所轉的角度。將機械臂的初始位置設定為建模時確定的原點位置是最方便的方法,所以機械臂每次在前往目標位置前都必須回到原點位置。為了實現機械臂能夠精確的回到原點位置,本次設計中使用了限位開關,取正負限位開關的中點位置為每個機械臂的原點位置。由上節(jié)的步進電機控制程序可知步進電機脈沖信號的控制是靠定時器中斷函數實現,由中斷函數可知將變量flag賦值為2時,每輸出一個脈沖信號全局變量epooPus記錄機械臂任意一段行程所需要的脈沖個數。具體程序設計思路如下:首先驅動電機正轉,電機驅動機械臂到達正限位開關,電機停轉,將這段行程對應的脈沖數epooPus電機驅動機械臂到達負限位開關,電機停轉。將這段行程對應的脈沖個數epooPusepooPus繪制回原點程序流程圖如下:圖5-2回零程序流程圖5.2.4LCD1602液晶顯示程序在設計LCD1602顯示程序時,不同硬件之間是存在差異的。由于LCD1602顯示器的響應速度相比STM32單片機的數據處理速度慢,所以可能會導致顯示器上一個字符還沒有完全顯示出來下一個字符顯示命令就來了,就會導致需要顯示的字符的控制信息丟失。所以在每一個字符顯示命令發(fā)送前,都要檢測顯示器忙不忙。在程序設計時,先明確在何處顯示內容,再確定顯示內容是什么。本次設計的程序中,顯示的內容是三個關節(jié)的轉動角度,形式大致是“ag1=xxx.xx”,其中顯示的角度數值是帶兩位小數的數字。繪制LCD1602液晶顯示程序流程圖如下。圖5-4LCD1602液晶顯示程序流程圖第六章涉及的標準、法律法規(guī)、安全、環(huán)境及經濟核算6.1涉及的標準、法律法規(guī)5.1.1涉及的標準GB/T37414.2-2020GB/T37414.3-20205.1.1涉及的法律法規(guī)《中華人民共和國專利保護法》《中華人民共和國標準化法》6.2本設計產品對安全、環(huán)境的影響本次設計的機器人控制系統中使用了限位開關,保證了運行安全性。同時機器人運行中物噪音污染、無廢水廢氣排出,并不污染環(huán)境。6.3經濟核算硬件名稱數目金額/元STM32F103單片機139442HS4813A4XG10步進電機3420A4988驅動芯片315LCD1602液晶顯示器113總計金額為842元。總結本論文主要是對三自由度機械手臂的控制技術展開研究,設計了一款可精確實現點對點運動的三自由度機械手臂開環(huán)控制系統,可以通過上位機輸入機械手臂末端執(zhí)行器需要到達的目標位置。是一款技術成熟,性能可靠的控制系統。在本次設計中,主要完成的工作如下:在進行控制系統設計之前,參考了大量成熟可靠的機械臂控制系統設計案例,并結合本次設計要求,最終確定了以STM32單片機為控制核心、步進電機為動力裝置的控制系統設計。采用的方法是D-H建模法對機器人運動學進行的分析,通過了關節(jié)坐標系的建立、D-H參數的確定、變換矩陣的計算這些d步驟,最終得到了機器人的運動學方程。由此,給出目標點的坐標就可以求出各個關節(jié)應該轉動的角度。根據設計要求,確定了控制系統必需的硬件模塊,同時還選用了少許的輔助硬件模塊來提高控制系統的可操作性。綜合了性能、價格、環(huán)境保護等方面考慮,最終確定了各個硬件模塊的具體型號并完成了相關的原理圖。利用KEILMDK軟件進行程序開發(fā)。采用模塊化程序設計理念,針對每一個硬件模塊都設計了子程序。通過調用所需要的子程序就可以輕松開發(fā)出可實現不同功能的主控制程序,這使得程序設計部分層次分明,也提高了機械臂的再開發(fā)潛力。從本質上看,本文中設計的控制系統主要就是通過求解逆運動學方程來得出三個關節(jié)需要轉動的角度,再控制步進電機來實現機械臂關節(jié)轉動。重點工作內容都是圍繞這些內容展開的。參考文獻徐方.工業(yè)機器人產業(yè)現狀與發(fā)展[J].機器人技術與應用,2007(05).張伯鵬,張昆,徐家球.機器人工程基礎[M].北京:機械工業(yè)出版社,1989.DENAVITJ,HARTENBERGRS.AKinematicNotationforLower-pairMechanismsBasedonMatrices[J].ASMEJournalofAppliedMechanics,1955,77(6):215-221.SaeedB.Niku著,孫富春,朱紀紅,劉國棟等譯.機器人學導論——分析、控制及應用(第二版)[M].北京:電子工業(yè)出版社,2013.閆賀,吳懷宇,彭晟遠,鄭秀娟.四自由度模塊化機械臂運動學建模[J].信息技術,2011(10):1-4范永,譚民.機器人控制器的現狀及展望[J].機器人,1999.21(1):75-80.QuB,WuZZ.DesignofMiniMulti-ProcessMicro-KernelEmbeddedOSonARM[J].AppliedMechanics&Materials,2013,347-350:1780-1785.劉志偉.四軸工業(yè)機器人嵌入式運動控制器的設計[D].哈爾濱工業(yè)大學,2012.黃智偉,王兵,朱衛(wèi)華.STM32F32位ARM微控制器應用設計與實踐[M].北京:北京航空航天大學出版社,2012:3-4.[10]C.A.Monje,P.Pierro,T.Ramos,etal.MODELINGANDSIMULATIONOFTHEHUMANOIDROBOTHOAP-3INTHEOPENHRP3PLATFORM[J].Cybernetics&Systems,2013,44(8):663-680.[11]BUIHUUTOAN.智能服務機器人控制系統研究與實現[D].南京理工大學,2015.[12]ZhangDH,WuXQ.TheDesignofSeedingMachineBasedontheMotionController[J].AppliedMechanics&Materials,2015,713-715:845-848.[13]LONGHAN,XINYUWU,YONGSHENGOU,etal.HOUSEHOLDSERVICEROBOTWITHCELLPHONEINTERFACE[J].InternationalJournalofInformationAcquisition,2013,9(02).附錄1電路圖附錄2程序1.主程序#include"sys.h"#include"usart.h"#include"delay.h"#include"key.h"#include"led.h"#include"lcd_1602.h"#include"motor.h"#include"locate.h"#include"zero.h"doubleangle1=0;//電機1轉動角doubleangle2=0;//電機2轉動角doubleangle3=0;//電機3轉動角longSM1pulse=0;longSM2pulse=0;longSM3pulse=0;u8flag=1;u32StepMotor1Pulse=0;u32StepMotor2Pulse=0;u32StepMotor3Pulse=0;u8dir1=PUTUP;u8dir2=PUTUP;u8dir3=PUTUP;intmain(void){u8i;u8keyval;locate_init(174.739,-174.739,-2.228);//調用位置解算程序delay_init(); //延時函數初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級uart_init(115200); //串口初始化為115200LED_Init(); //LED端口初始化KEY_Init(); //初始化按鍵Init_LCD1602();//LCD1602初始化函數XW_Init();//限位開關初始化while(1){write_com(0x80);//第一行的首地址show1();show2();show3();//顯示三個關節(jié)達到目標位置需要旋轉的角度keyval=KEY_Scan(0);if(keyval==WKUP_PRES){zero1();while(StepMotor1Pulse);zero2();while(StepMotor2Pulse);zero3();while(StepMotor3Pulse);//按下WKUP,回零點}elseif(keyval==KEY0_PRES){SM1run(2,StepMotor1Pulse,dir1);while(StepMotor1Pulse);SM2run(2,StepMotor2Pulse,dir2);while(StepMotor2Pulse);SM3run(2,StepMotor3Pulse,dir3);while(StepMotor3Pulse);//按下KEY0,機械臂達到指定位置}elseif(keyval==KEY1_PRES){SM1stop();SM2stop();SM3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46811-2025船用大功率電阻器
- 養(yǎng)老院醫(yī)療護理服務質量制度
- 企業(yè)員工培訓管理制度
- 會議主題確定與方向引導制度
- 2026年哲學專業(yè)知識競賽試題及答案詳解
- 2026年健康生活指南測試題目
- 2026年食品專業(yè)碩士考試預測模擬卷
- 2026年陽光房搭建合同
- 2026年新版天體測量協議
- 2024年趙縣幼兒園教師招教考試備考題庫含答案解析(奪冠)
- 道路施工安全管理課件
- 肉瘤的課件教學課件
- VTE患者并發(fā)癥預防與處理
- 車輛救援合同協議書
- 貴州省遵義市匯川區(qū)2024-2025學年八年級上學期12月期末數學試題
- UWB定位是什么協議書
- 第三終端藥品銷售技巧
- 甲乳外科進修匯報
- 建設銣鹽銫鹽及其副產品加工項目可行性研究報告模板-立項備案
- 設備雙主人管理辦法
- GJB5714A-2023外購產品質量監(jiān)督要求
評論
0/150
提交評論