摘 要: 給出一種小型機器人關節(jié)控制電路系統(tǒng)的軟硬件設計方案。該方案以意法半導體32位單片機STM32為核心處理器,,通過CAN總線接收上位機的命令和反饋傳感器采集的信息,,利用雙相DMOS全橋驅動電路芯片A3995驅動關節(jié)電機,采用PID算法實現空心杯直流電機的高精度閉環(huán)定位控制,。其中關節(jié)位置信息的采集使用的是AS5045磁旋轉編碼器,,分辨率達到0.087 9°。關節(jié)角度轉動的誤差控制在1°以內,,關節(jié)控制電路板的面積為11.88 cm2,,信號傳輸速率為1 Mb/s。
關鍵詞: 空心杯直流電機,;STM32嵌入式微處理器,;磁旋轉編碼器;PID控制
0 引言
小型化機器人在通信,、軍事,、醫(yī)療、航天航空以及家庭服務等領域具有重要的應用價值,。機器人轉動關節(jié)的準確定位和控制是小型機器人運動控制系統(tǒng)的一項關鍵技術,。關節(jié)控制精度、與上位機的通信,、功耗,、控制電路體積是小型機器人運動控制電路設計時需要重點考慮的問題。
1 系統(tǒng)硬件設計
關節(jié)控制電路的電機選取空心杯直流電機,,該種電機具有突出的節(jié)能特性,、靈敏的控制特性和穩(wěn)定的運行特性,廣泛用于各種機電產品中[1],。本系統(tǒng)為了實現電機的快速準確控制,,需要進行比例積分微分(PID)控制算法運算,因此采用低功耗的ARM嵌入式微處理器STM32F103C8T6(以下簡稱STM32)作為控制器,,通過CAN(控制器局域網)總線接口與上位機進行雙向通信,,充分利用CAN總線突出的可靠性、實時性,、可擴展性以及總線利用率高等特點[2],。磁旋轉編碼器AS5045精度高,,用以實時檢測電機的位置信息;A3995驅動電路體積小,,單個芯片可控制2個電機,。上述元件體積都較小,適用于機器人關節(jié)處和機器人內部,。小型機器人關節(jié)控制電路系統(tǒng)如圖1所示,。
1.1 微處理器控制電路
圖1中STM32F103C8T6是基于ARM Cortex-M3內核的32位微控制器,負責采集磁編碼器實時位置信息,、接收上位機通過CAN總線傳送的控制命令,、進行控制電機轉速的控制計算、反饋關節(jié)角度信息給上位機,。
1.2 驅動模塊電路
采用雙相DMOS全橋驅動電路芯片A3995驅動電路,。驅動電路和保護電路如圖2所示。雙相DMOS全橋驅動能夠以高達2.4 A的電流驅動2個8~36 V直流電動機,。
1.2.1 驅動模塊電路的設計
ARM微處理器STM32的3個I/O引腳作為電機驅動芯片A3995的PHASE,、ENABLE和MODE控制輸入信號,進而控制電機的動作,。其中PHASE的高低電平決定電機轉動的方向,,MODE選擇電流衰減快慢模式。STM32定時器輸出PWM信號接A3995的ENABLE,,用于控制電機轉速,。
1.2.2 電流檢測保護電路與軟件設置
A3995芯片具有電流檢測功能,通過外部編程設置內部保護電路的電壓比較器門檻,。A3995中的電流檢測保護電路如圖3所示,。
圖3中SENSE1為A3995芯片電流保護電路的電壓比較器正輸入端,接在H橋(控制電機的正轉或反轉)的電流輸出端口處,,經一個0.1 Ω電阻接地,,用來檢測流過負載(即直流電機)的電流大小。VREF1作為電壓比較器的負輸入端,,A3995內部電路根據該端口輸入PWM信號的占空比作為比較參考電壓,,通過軟件設置STM32的定時器使PB1輸出PWM信號,降壓后相連到VREF1,。
對于電壓比較器而言,,其正極電平V+與負極電平V-分別為:
V-=Im×R1
V+=VREF1÷3
其中,Im為流過電機電流,,R1為采樣電阻,。對VREF1進行÷3降壓處理是A3995內部的功能。當V-<V+時,,即流過電機的電流在安全范圍內時,,比較器輸出高電平,,直流電機工作正常。而當V->V+時,,即電機流過的電流Im較大時,,比較器輸出低電平,復位PWM鎖存器,,電機驅動的控制邏輯輸出端口被鎖住,,無法輸出信號給H橋,從而關閉了對電機的輸出,,保護了電機與驅動電路,。保護電路原理圖如圖4所示。
STM32定時器通過端口PB0輸出高電平為3.3 V的PWM信號,,平均輸出電壓為Vout=3.3×duty(占空比),。
當V+=V-時,,流經電機M的電流達到正常值的最大值Imax,。此時:
其中,R1=0.1 Ω,,R2=10 kΩ,,R3=10 kΩ,帶入上式可得Imax與占空比duty之間的關系式為:
duty(%)=18.18×Imax
當Imax限制在1 A時,,占空比為18.18%,,在整個機器人的關節(jié)控制中,可以針對不同電機的Imax限制來設置占空比,,從而保護電路,。
1.3 CAN通信模塊電路的設計
本系統(tǒng)的信號傳輸采用CAN總線通信模式,CAN總線最多可接110個節(jié)點,,可以進行區(qū)域組網,,用于小型機器人的多關節(jié)聯機協調動作。機器人關節(jié)節(jié)點與主控機進行通信,,充分利用CAN報文幀ID識別碼的特性,,將發(fā)送幀的識別碼、本節(jié)點的編碼和本節(jié)點接收濾波器的識別碼相統(tǒng)一[3],。
STM32內部本身集成了一路增強型CAN控制器,,支持CAN2.0B標準接口,使用時只需連接CAN的收發(fā)器即可,。具體電路圖如圖5所示,。
SN65HVD230是3.3 V CAN收發(fā)器,信號傳輸速率最高可達1 Mb/s,。STM32中CAN控制器的輸出引腳CAN_TX與CAN收發(fā)器SN65HVD230的數據輸入端D連接,,可將此CAN節(jié)點發(fā)送的數據信息傳送到CAN網絡中,,CAN控制器的接收引腳CAN_RX與SN65HVD230的數據輸出端R連接,用于此CAN節(jié)點接收數據,。
SN65HVD230具有高速,、斜率和等待3種工作模式[4],其工作模式通過控制Rs引腳的電平實現,。當Rs通過0 Ω的電阻接邏輯低電平時,,收發(fā)器工作在高速模式,通信速率達到最高,。
1.4 磁旋轉編碼器信息采集模塊
機器人關節(jié)控制系統(tǒng)傳感器必須尺寸很小,,靈敏度高,靈活性強,。每個關節(jié)選取無接觸式的磁旋轉編碼器AS5045來采集位置信息,。內部集成霍爾元件,可以精確地測量電機轉動的360°范圍內的角度,,分辨率達到0.087 9°,,即每圈可以分成4 096個位置[5]。它的優(yōu)點有:(1)芯片內部集成一個完整的片上系統(tǒng),;(2)非接觸式的位置傳感器可以應用在比較惡劣的環(huán)境下,;(3)無需校準;(4)體積小,,便于安裝,。
AS5045電路板固定在關節(jié)處,為了測量關節(jié)的角度,,要在關節(jié)的旋轉軸上安裝一個圓形徑向磁化雙極磁鐵,,必須對準AS5045芯片的中間[5]。根據關節(jié)的機械結構,,磁鐵可以安裝在芯片的上方或下方,。由于是無接觸式的,因此在轉動過程中不會影響關節(jié),。其工作原理是:關節(jié)在旋轉的過程中帶動磁鐵旋轉,,AS5045內部的霍爾元件檢測到磁性的大小,經過內部的DSP計算,,可以輸出角度信息,。
AS5045提供PWM輸出和絕對值串行輸出,本系統(tǒng)中采用的是絕對值串行輸出,。AS5045檢測磁場的方向并計算出12 bit的二進制編碼,,此編碼通過同步串行接口(SSI)進行訪問,STM32產生磁旋轉編碼器AS5045的時鐘CLK和片選CSn信號,讀取其輸出DO信號,。硬件電路設計如圖6所示,。
STM32單片機產生的CSn和CLK信號時序,以及AS5045輸出信號DO如圖7所示,。AS5045的工作過程如下:初始時STM32輸出引腳拉高CSn和CLK信號,,當需要讀取數據DO時,將CSn變?yōu)檫壿嫷碗娖?,數據輸出(DO)將從高阻(三態(tài))狀態(tài)變?yōu)檫壿嫺唠娖?。經過最短時間tclk后,數據在CLK的第1個下降沿鎖存至輸出移位寄存器內,。每個后續(xù)的CLK上升沿將移出1 bit數據,。STM32采集到的串行字包含18 bit數據,前12 bit D[11:0]是角度信息,,后6 bit D[17:12]包含系統(tǒng)信息(奇偶校驗,、線性誤差、磁鐵對齊等),。數據全部讀完之后,,設置CSn為高電平,持續(xù)時間為tCSn恢復初始的狀態(tài)進行后續(xù)測量,。
通過STM32的IO引腳接收到的二進制數據Do轉換成關節(jié)對應的角度值A,,轉換公式如下:
A=(Do>>6)×360÷4096
2 系統(tǒng)軟件設計
整個關節(jié)控制電路系統(tǒng)是以STM32為控制核心,,采用keil作為編譯工具,,使用C語言開發(fā)代碼,便于移植,。
主要程序包括系統(tǒng)初始化,、啟動模塊、AS5045霍爾數據采集模塊,、PID速度控制模塊,、CAN通信模塊。程序流程圖如圖8所示,。
系統(tǒng)經過初始化之后,,上位機通過CAN總線發(fā)送控制命令給STM32單片機,霍爾傳感器會檢測關節(jié)所在的位置,,通過處理之后發(fā)送出關節(jié)的實時位置信息給STM32單片機,。根據目標值和實時值,利用PID調節(jié)kP,、kI,、kD參數調節(jié)占空比,從而控制電機的轉動,。
本系統(tǒng)采用增量式PID控制算法[6]控制關節(jié)電機轉速,,進而控制關節(jié)在規(guī)定時刻到達特定角度,。計算的輸入量為關節(jié)角度偏差值,計算公式為:
其中,,為k時刻角速度輸出,。
3 實驗研究
小型機器人關節(jié)控制電路系統(tǒng)實物圖如圖9所示,共有兩塊電路板,,分別是磁編碼器電路板和關節(jié)控制電路板,。關節(jié)控制電路板的尺寸為44 mm×27 mm,具有體積小,、質量輕的特點,,有利于將電路板安裝在機器人的關節(jié)處以及機器人內部。整個系統(tǒng)的功耗為227.37 mW,,其中關節(jié)控制電路板的功耗為175.5 6mW,,磁編碼器電路板功耗為54.45 mW。
將關節(jié)控制電路系統(tǒng)安裝在機器人的關節(jié)處進行調試,,該關節(jié)角度范圍過零點,,起止位置分別是300°和178°,即關節(jié)運動時采集到的角度為從300°經過360°(0°)到178°,。通過串口與PC相連,,在1 s時間內采樣擬合的曲線如圖10所示,給定的角度值與反饋的角度值誤差控制在1°之內,。
4 結論
本文介紹了一個基于STM32處理器設計的機器人關節(jié)控制系統(tǒng),。對微處理器外圍電路、電機驅動電路,、通信電路以及信號采集電路進行了硬件設計,。關節(jié)控制電路板的面積為11.88 cm2。通過對機器人關節(jié)轉動控制的測試,,關節(jié)角度轉動的誤差控制在1°以內,。本系統(tǒng)軟硬件的功能和性能符合小型機器人轉動關節(jié)控制電路系統(tǒng)的實用要求。
參考文獻
[1] 吳方勇,,田偉程.基于ARM的空心杯直流電機伺服驅動器設計[J].機械與電子,,2012(8):44-47.
[2] 趙曉軍,曹建坤,,李可一,,等.基于CAN總線的數據臂通信設計[J].自動化儀表,2010,,31(5):13-15.
[3] 陳瑛,,宋俊磊,王典洪.CAN總線在野外地震數據傳輸中的應用[J].電子技術應用,2013,,39(9):34-37.
[4] 馬丹丹.基于CAN-BUS和STM32的智能步進電機驅動控制模塊設計[D].杭州:杭州電子科技大學,,2013.
[5] Wang Zhiheng, Zhang Libin,, Bao Guanjun. Design and control of integrated pneumatic dexterous robot finger[J]. Journal of Central South University of Technology,,2011, 18(4):1105-1114.
[6] 王恩義,,羅先喜,,王甲甲.基于PID算法的智能溫控系統(tǒng)設計與實現[J].微型機與應用,2014,,33(12):18-20.