小型機器人關節控制電路系統設計
黃春曉,白雪飛,黃魯,郝沛(中國科學技術大學電子科學與技術系,安徽合肥230027)
給出一種小型機器人關節控制電路系統的軟硬件設計方案。該方案以意法半導體32位單片機STM32為核心處理器,通過CAN總線接收上位機的命令和反饋傳感器采集的信息,利用雙相DMOS全橋驅動電路芯片A3995驅動關節電機,采用PID算法實現空心杯直流電機的高精度閉環定位控制。其中關節位置信息的采集使用的是AS5045磁旋轉編碼器,分辨率達到0.0879°。關節角度轉動的誤差控制在1°以內,關節控制電路板的面積為11.88cm2,信號傳輸速率為1Mb/s。
空心杯直流電機;STM32嵌入式微處理器;磁旋轉編碼器;PID控制
小型化機器人在通信、軍事、醫療、航天航空以及家庭服務等領域具有重要的應用價值。機器人轉動關節的準確定位和控制是小型機器人運動控制系統的一項關鍵技術。關節控制精度、與上位機的通信、功耗、控制電路體積是小型機器人運動控制電路設計時需要重點考慮的問題。
關節控制電路的電機選取空心杯直流電機,該種電機具有突出的節能特性、靈敏的控制特性和穩定的運行特性,廣泛用于各種機電產品中[1]。本系統為了實現電機的快速準確控制,需要進行比例積分微分(PID)控制算法運算,因此采用低功耗的ARM嵌入式微處理器STM32F103C8T6(以下簡稱STM32)作為控制器,通過CAN(控制器局域網)總線接口與上位機進行雙向通信,充分利用CAN總線突出的可靠性、實時性、可擴展性以及總線利用率高等特點[2]。磁旋轉編碼器AS5045精度高,用以實時檢測電機的位置信息;A3995驅動電路體積小,單個芯片可控制2個電機。上述元件體積都較小,適用于機器人關節處和機器人內部。小型機器人關節控制電路系統如圖1所示。

圖1 關節控制電路系統結構框圖
1.1微處理器控制電路
圖1中STM32F103C8T6是基于ARM Cortex-M3內核的32位微控制器,負責采集磁編碼器實時位置信息、接收上位機通過CAN總線傳送的控制命令、進行控制電機轉速的控制計算、反饋關節角度信息給上位機。
1.2驅動模塊電路
采用雙相DMOS全橋驅動電路芯片A3995驅動電路。驅動電路和保護電路如圖2所示。雙相DMOS全橋驅動能夠以高達2.4A的電流驅動2個8~36V直流電動機。

圖2 A3995驅動模塊電路
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 A3995中的電流檢測保護電路
圖3中SENSE1為A3995芯片電流保護電路的電壓比較器正輸入端,接在H橋(控制電機的正轉或反轉)的電流輸出端口處,經一個0.1Ω電阻接地,用來檢測流過負載(即直流電機)的電流大小。VREF1作為電壓比較器的負輸入端,A3995內部電路根據該端口輸入PWM信號的占空比作為比較參考電壓,通過軟件設置STM32的定時器使PB1輸出PWM信號,降壓后相連到VREF1。

對于電壓比較器而言,其正極電平V+與負極電平V-分別為:其中,Im為流過電機電流,R1為采樣電阻。對VREF1進行÷3降壓處理是A3995內部的功能。當V-<V+時,即流過電機的電流在安全范圍內時,比較器輸出高電平,直流電機工作正常。而當V->V+時,即電機流過的電流Im較大時,比較器輸出低電平,復位PWM鎖存器,電機驅動的控制邏輯輸出端口被鎖住,無法輸出信號給H橋,從而關閉了對電機的輸出,保護了電機與驅動電路。保護電路原理圖如圖4所示。

圖4 保護電路原理圖
STM32定時器通過端口PB0輸出高電平為3.3 V的PWM信號,平均輸出電壓為Vout=3.3×duty(占空比)。

當V+=V-時,流經電機M的電流達到正常值的最大值Imax。此時:其中,R1=0.1Ω,R2=10kΩ,R3=10kΩ,帶入上式可得Imax與占空比duty之間的關系式為:
duty(%)=18.18×Imax
當Imax限制在1A時,占空比為18.18%,在整個機器人的關節控制中,可以針對不同電機的Imax限制來設置占空比,從而保護電路。
1.3CAN通信模塊電路的設計
本系統的信號傳輸采用CAN總線通信模式,CAN總線最多可接110個節點,可以進行區域組網,用于小型機器人的多關節聯機協調動作。機器人關節節點與主控機進行通信,充分利用CAN報文幀ID識別碼的特性,將發送幀的識別碼、本節點的編碼和本節點接收濾波器的識別碼相統一[3]。
STM32內部本身集成了一路增強型CAN控制器,支持CAN2.0B標準接口,使用時只需連接CAN的收發器即可。具體電路圖如圖5所示。

圖5 CAN通信接口原理圖
SN65HVD230是3.3V CAN收發器,信號傳輸速率最高可達1Mb/s。STM32中CAN控制器的輸出引腳CAN_TX與CAN收發器SN65HVD230的數據輸入端D連接,可將此CAN節點發送的數據信息傳送到CAN網絡中,CAN控制器的接收引腳CAN_RX與SN65HVD230的數據輸出端R連接,用于此CAN節點接收數據。
1.4磁旋轉編碼器信息采集模塊
機器人關節控制系統傳感器必須尺寸很小,靈敏度高,靈活性強。每個關節選取無接觸式的磁旋轉編碼器AS5045來采集位置信息。內部集成霍爾元件,可以精確地測量電機轉動的360°范圍內的角度,分辨率達到0.087 9°,即每圈可以分成4 096個位置[5]。它的優點有:(1)芯片內部集成一個完整的片上系統;(2)非接觸式的位置傳感器可以應用在比較惡劣的環境下;(3)無需校準;(4)體積小,便于安裝。
AS5045電路板固定在關節處,為了測量關節的角度,要在關節的旋轉軸上安裝一個圓形徑向磁化雙極磁鐵,必須對準AS5045芯片的中間[5]。根據關節的機械結構,磁鐵可以安裝在芯片的上方或下方。由于是無接觸式的,因此在轉動過程中不會影響關節。其工作原理是:關節在旋轉的過程中帶動磁鐵旋轉,AS5045內部的霍爾元件檢測到磁性的大小,經過內部的DSP計算,可以輸出角度信息。
AS5045提供PWM輸出和絕對值串行輸出,本系統中采用的是絕對值串行輸出。AS5045檢測磁場的方向并計算出12bit的二進制編碼,此編碼通過同步串行接口(SSI)進行訪問,STM32產生磁旋轉編碼器 AS5045的時鐘CLK和片選CSn信號,讀取其輸出DO信號。硬件電路設計如圖6所示。

圖6 AS5045硬件電路圖
STM32單片機產生的CSn和CLK信號時序,以及AS5045輸出信號DO如圖7所示。AS5045的工作過程如下:初始時STM32輸出引腳拉高CSn和CLK信號,當需要讀取數據DO時,將CSn變為邏輯低電平,數據輸出(DO)將從高阻(三態)狀態變為邏輯高電平。經過最短時間tclk后,數據在CLK的第1個下降沿鎖存至輸出移位寄存器內。每個后續的CLK上升沿將移出1bit數據。STM32采集到的串行字包含18bit數據,前12bit D[11:0]是角度信息,后6bit D[17:12]包含系統信息(奇偶校驗、線性誤差、磁鐵對齊等)。數據全部讀完之后,設置CSn為高電平,持續時間為tCSn恢復初始的狀態進行后續測量。

圖7 AS5045時序圖
通過STM32的IO引腳接收到的二進制數據Do轉換成關節對應的角度值A,轉換公式如下:
A=(Do>>6)×360÷4096
整個關節控制電路系統是以STM32為控制核心,采用keil作為編譯工具,使用C語言開發代碼,便于移植。
乘坐當地傳統的人力小船向湖心島劃去,清澈明亮的藍色湖水中倒映著遠處的阿爾卑斯雪山和近處蒼翠的山林。15世紀,人們在湖心島上修建了圣瑪利亞教堂。圣母堂雖然沒有大教堂的宏偉輝煌,但卻透著一份安詳和秀美,給布萊德湖帶來了靈性。
主要程序包括系統初始化、啟動模塊、AS5045霍爾數據采集模塊、PID速度控制模塊、CAN通信模塊。程序流程圖如圖8所示。

圖8 程序流程圖
系統經過初始化之后,上位機通過CAN總線發送控制命令給STM32單片機,霍爾傳感器會檢測關節所在的位置,通過處理之后發送出關節的實時位置信息給STM32單片機。根據目標值和實時值,利用PID調節kP、kI、kD參數調節占空比,從而控制電機的轉動。
本系統采用增量式PID控制算法[6]控制關節電機轉速,進而控制關節在規定時刻到達特定角度。計算的輸入量為關節角度偏差值,計算公式為:
△u(k)=u(k)-u(k-1)=kP[Ae(k)-Ae(k-1)]+kIAe(k)+kD[Ae(k)-2Ae(k-1)+Ae(k-2)]
輸出為:ωref(k)=ωref(k-1)+△u(k)其中,ωref(k)為k時刻角速度輸出。
小型機器人關節控制電路系統實物圖如圖9所示,共有兩塊電路板,分別是磁編碼器電路板和關節控制電路板。關節控制電路板的尺寸為44mm×27mm,具有體積小、質量輕的特點,有利于將電路板安裝在機器人的關節處以及機器人內部。整個系統的功耗為227.37mW,其中關節控制電路板的功耗為175.56mW,磁編碼器電路板功耗為54.45mW。

圖9 機器人關節控制電路系統實物圖
將關節控制電路系統安裝在機器人的關節處進行調試,該關節角度范圍過零點,起止位置分別是 300°和178°,即關節運動時采集到的角度為從300°經過360°(0°)到178°。通過串口與PC相連,在1s時間內采樣擬合的曲線如圖10所示,給定的角度值與反饋的角度值誤差控制在1°之內。

圖10 關節位置響應曲線
本文介紹了一個基于STM32處理器設計的機器人關節控制系統。對微處理器外圍電路、電機驅動電路、通信電路以及信號采集電路進行了硬件設計。關節控制電路板的面積為11.88cm2。通過對機器人關節轉動控制的測試,關節角度轉動的誤差控制在1°以內。本系統軟硬件的功能和性能符合小型機器人轉動關節控制電路系統的實用要求。
[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算法的智能溫控系統設計與實現[J].微型機與應用,2014,33(12):18-20.
Design of joint control circuit system based on small robot
Huang Chunxiao,Bai Xuefei,Huang Lu,Hao Pei
(Department of Electronic Science and Technology,University of Science and Technology of China,Hefei 230027,China)
The paper presents a hardware and software design scheme of joint control circuit system based on small robot.The system uses 32-bit microcontroller STM32 of STMicroelectronics as its core processor,and it receives commands from the host computer and sends information collected from sensor.The system uses dual MOS-driver A3995 to drive joint motor and uses the PID algorithm to achieve coreless DC motor rotational position accurately by closed-loop control.The AS5045 Magnetic Rotary Encoder is taken as joint position detection device with a resolution of 0.0879°.The error of joint angle of rotation control is less than 1°and the area of joint control circuit board is 11.88 cm2.The transmission rate of signal is 1 Mb/s.
coreless DC motor;STM32 embedded microprocessor;magnetic rotary encoder;PID control
TP273+.1
A
1674-7720(2015)12-0023-04
2015-01-21)
黃春曉(1990-),女,碩士研究生,主要研究方向:嵌入式系統設計。
白雪飛(1977-),男,講師,碩士生導師,主要研究方向:電路與系統。
黃魯(1961-),男,副教授,碩士生導師,主要研究方向:電路與系統。