劉義杰,王艷梅
(沈陽理工大學,沈陽 110159)
隨著社會的不斷進步,在農(nóng)業(yè)和工業(yè)生產(chǎn)中經(jīng)常應用到的機械手臂,而如何使機械手臂像人類的手臂一樣靈活地隨意運動,受限于現(xiàn)有的科學工具和技術(shù)手段。由處理器控制的機械手臂可以根據(jù)程序完成一系列特定的工作,更加靈活,精度也有所提高[1,2]。
本文設(shè)計了三維機械手臂控制器,主控芯片采用STM32F103C8T6,使用ISP 串口通訊,實現(xiàn)對4 路舵機的控制;舵機使用SG90 用來控制機械手臂的各個方向的運動控制;使用了8MB 的FLASH 存儲器W25Q64 作為程序擴展存儲器;三維機械手臂的工作方式設(shè)計了遙控工作方式和自動工作方式兩種工作方式。
三維機械臂控制器主要用來控制三維機械手臂的運動,通過控制器的控制,可以實現(xiàn)手臂的上下、前后、左右的三維立體運動,其結(jié)構(gòu)框圖詳見圖1 所示。
圖1 三維機械手臂控制器結(jié)構(gòu)框圖
STM32F103C8T6 作為主控芯片具有耗能低、性能高、處理速度快、硬件資源豐富以及價格便宜等優(yōu)點。STM32F103C8T6 有48kB 的靜態(tài)隨機存儲器和256kB 的閃存,同時還擁有11 個定時器,2 個I2C 通信接口,5 個串口,1 個USB,3 個串行外設(shè)接口,3 個12 位模數(shù)轉(zhuǎn)換接口,2 個12 位數(shù)模轉(zhuǎn)換接口和51個通用輸入輸出口。
電源模塊:舵機供電需要7.4 V 的直流電源,外圍芯片需要5 V 直流電源,主控制芯片需要使用3.3 V 直流電源。所以電源模塊將7.4 V 電源通過AMS1117 調(diào)壓器件轉(zhuǎn)換成5 V 電壓,供需要的外圍器件使用,然后使用SPX5205M5-L3.3 將5 V 轉(zhuǎn)換成3.3 V 電源給處理器使用。
機械手臂各個方向的運動采用舵機控制,選用SG90 舵機,SG90 接收脈寬調(diào)制信號轉(zhuǎn)動一定的角度實現(xiàn)某個方向的運動。
系統(tǒng)擴展了FLASH 存儲器,W25Q64 是支持串行外設(shè)接口閃存芯片,容量是8MB;工作速度是普通閃存的數(shù)倍以上,而且能耗低,同時還具有連續(xù)讀取的模式。
無線手柄用于完成遙控工作方式的系統(tǒng)管理、發(fā)送指令、運動軌跡規(guī)劃等。無線手柄通過按鍵將指令發(fā)送給處理器,處理器根據(jù)從無線手柄得到的指令輸出脈沖寬度調(diào)制矩形波,進而控制機械臂的各個關(guān)節(jié)的運動,進而使其按照預定的軌跡完成運動。
對系統(tǒng)供電電源電壓進行分壓后進行A/D 轉(zhuǎn)換,監(jiān)測電源的供電情況,電壓過低時報警電路啟動。
STM32 單片機支持使用ISP 串口下載、SWD 下載和JTAG 下載,為方便下載調(diào)試,采用ISP 串口下載,STM32F103C8T6 上電復位后默認啟動JTAG 模式,需要關(guān)閉該模式。
三維機械手臂是通過調(diào)節(jié)脈沖寬度調(diào)制波的占空比來控制舵機從而調(diào)節(jié)其運動的。利用處理器STM32 實現(xiàn)同時控制4 路舵機的功能,需對定時器使用分時復用的方法,通過算法分配不同的引腳電平的高低從而實現(xiàn)同時控制4 路舵機的功能。
STM32 芯片內(nèi)部集成了多個定時器,有用來為嵌入式系統(tǒng)提供定時服務的SysTick 定時器,還有用來提供復位功能的WDT 和分別擁有4 路和6 路輸出脈寬調(diào)制波的通用定時器和高級定時器。而基本定時器通常只用來實現(xiàn)計數(shù)的功能。
相比于模擬控制來說,PWM 有著許多的優(yōu)勢可以優(yōu)化系統(tǒng)。如從處理控制器一直到系統(tǒng)中的信號傳輸全由數(shù)字信號進行傳遞,這是PWM 的一個優(yōu)勢,這也就意味著不需要再花成本進行信號轉(zhuǎn)換,這樣使得環(huán)境比較安靜。在這種情況下,噪聲對系統(tǒng)的影響只有在可以更改邏輯方式時才會產(chǎn)生影響,這也就說明使用PWM 這種技術(shù)可以使得環(huán)境噪音減小,使得系統(tǒng)的運行更加符合要求。正因為這些優(yōu)勢,使得這種類型已經(jīng)廣泛的應用于當前生活中,使用在通信之中時可以使得距離得到升級。在接收信號的過程中,這類處理器一般的可以其選擇性地修改為模擬信號[3]。
由于舵機需要一個時間基準控制信號的周期為20 ms,舵機的控制信號高電平持續(xù)時間通常為0.5 ms~2.5 ms。因此可以控制線性變化的機械手臂做水平運動呈線性,具有良好的跟隨性能指標。由于舵機是一種位置伺服驅(qū)動器。因此它會將輸入信號和基準信號進行比較,從而判斷方向和大小,最終得到兩個信號的壓差,從而決定電機的轉(zhuǎn)動。由于舵機的控制信號是時間基準脈沖信號,根據(jù)時基信號的特性,并且機械手臂是180°擺動,因此相對應的角度關(guān)系是:0.5ms-0° ;1.0ms-45° ;1.5ms-90° ;2.0ms-135° ;2.5ms-180°。
為了實現(xiàn)三自由度同時帶動四個舵機運行,必須對定時器的利用率達到最大。由于單個舵機的脈沖寬度最多持續(xù)時間是2.5 ms,而其控制信號的周期為20 ms,因此可以將一個周期分成8 份,配合使用中斷指令,即可控制每一份,采用分時復用的方法,當?shù)谝粋€舵機的受控時間為定時器第一次發(fā)生溢出中斷時,中斷程序會對定時器寄存重新賦值,同時將所有的I/O 口變?yōu)楦唠娖?,直到定時器發(fā)生第二次溢出中斷時重復以上操作。因此在理論上一個信號周期內(nèi)最多可完成8 個舵機同時受控。因此完全可以達到要求的三自由度即同時控制四個舵機運行的要求。
本控制器主要是通過STM32 芯片輸出PWM 波形給舵機,從而調(diào)節(jié)機械臂的運動,程序框圖如圖2所示。當7.4 V 鋰電池給三維機械手臂供電后。機械臂將通過上電復位的功能,將整個系統(tǒng)所有端口初始化同時包括定時器初始化使從而控制舵機,使機械臂擺動的角度也恢復到初始狀態(tài)。本系統(tǒng)使用通用定時器TIM2 和TIM3 定時器,一個用來做脈寬調(diào)制波的輸出,一個用來做定時功能。定時器功能流程圖如圖3。此時無線手柄同樣也準備就緒,當按下任意按鍵后,將按鍵的變化轉(zhuǎn)換為電信號寫入存儲器模塊之中,然后將相關(guān)的指令傳送給定時器控制的舵機,使其按照預定的位置進行擺動[4,5]。
圖2 機械手臂程序流程圖
圖3 定時器功能流程圖
本文設(shè)計三維機械臂用于驗證三維機械臂控制器的運行情況,選用多關(guān)節(jié)型的機械臂,它具有動作角度大的優(yōu)點,還可以使機械臂在更大的空間內(nèi)的運動,由底座、U 型支架和機械爪組成。機械手臂的底座負責主要的支撐,安裝一個舵機,負責轉(zhuǎn)向;U型支架,實現(xiàn)的功能是控制機械手臂的長度,也是比較重要的一個部位,要注意連接處的安裝,有可能是活動部位要保證關(guān)節(jié)的靈活,還要注意支架和舵機的安裝方向,另外舵機在安裝的時候必須復位,即讓舵機處于中間位置;機械爪部分是最直觀的執(zhí)行部分,是機械手臂的末尾,主要負責張開合適的角度夾取物件,由對稱的兩部分組成。
通過實驗,主控制器輸出脈寬調(diào)制矩形波實現(xiàn)三軸的控制,實現(xiàn)了三個方向的機械手臂的運動控制設(shè)計,圖4 表現(xiàn)了機械手臂U 框型架的運動情況。
圖4 三維機械手臂U 型框架的運動
基于三維運動的機械手臂控制器主控制芯片為STM32F103C8T6,SG90 舵機帶動機械臂作為受控對象,使得該機械臂可以在三個方向完成空間運動,舵機輸出精度較高,可以夾取一些質(zhì)量較輕的物體到指定位置。但在設(shè)計過程中依然發(fā)現(xiàn)了很多不足和困難,三軸運動的機械手臂要想實現(xiàn)仿生功能很困難,三維機械手臂的靈敏度和強度不夠,無法執(zhí)行高強度的任務。如果選用材料的性能更加優(yōu)秀,選用的舵機的參數(shù)更加優(yōu)越,同時設(shè)計得更加合理,三維機械手臂將完全可以完成在教學、生活中使用的功能。