小型機(jī)器人關(guān)節(jié)控制電路系統(tǒng)設(shè)計(jì)
黃春曉,白雪飛,黃魯,郝沛(中國(guó)科學(xué)技術(shù)大學(xué)電子科學(xué)與技術(shù)系,安徽合肥230027)
給出一種小型機(jī)器人關(guān)節(jié)控制電路系統(tǒng)的軟硬件設(shè)計(jì)方案。該方案以意法半導(dǎo)體32位單片機(jī)STM32為核心處理器,通過(guò)CAN總線接收上位機(jī)的命令和反饋傳感器采集的信息,利用雙相DMOS全橋驅(qū)動(dòng)電路芯片A3995驅(qū)動(dòng)關(guān)節(jié)電機(jī),采用PID算法實(shí)現(xiàn)空心杯直流電機(jī)的高精度閉環(huán)定位控制。其中關(guān)節(jié)位置信息的采集使用的是AS5045磁旋轉(zhuǎn)編碼器,分辨率達(dá)到0.0879°。關(guān)節(jié)角度轉(zhuǎn)動(dòng)的誤差控制在1°以內(nèi),關(guān)節(jié)控制電路板的面積為11.88cm2,信號(hào)傳輸速率為1Mb/s。
空心杯直流電機(jī);STM32嵌入式微處理器;磁旋轉(zhuǎn)編碼器;PID控制
小型化機(jī)器人在通信、軍事、醫(yī)療、航天航空以及家庭服務(wù)等領(lǐng)域具有重要的應(yīng)用價(jià)值。機(jī)器人轉(zhuǎn)動(dòng)關(guān)節(jié)的準(zhǔn)確定位和控制是小型機(jī)器人運(yùn)動(dòng)控制系統(tǒng)的一項(xiàng)關(guān)鍵技術(shù)。關(guān)節(jié)控制精度、與上位機(jī)的通信、功耗、控制電路體積是小型機(jī)器人運(yùn)動(dòng)控制電路設(shè)計(jì)時(shí)需要重點(diǎn)考慮的問(wèn)題。
關(guān)節(jié)控制電路的電機(jī)選取空心杯直流電機(jī),該種電機(jī)具有突出的節(jié)能特性、靈敏的控制特性和穩(wěn)定的運(yùn)行特性,廣泛用于各種機(jī)電產(chǎn)品中[1]。本系統(tǒng)為了實(shí)現(xiàn)電機(jī)的快速準(zhǔn)確控制,需要進(jìn)行比例積分微分(PID)控制算法運(yùn)算,因此采用低功耗的ARM嵌入式微處理器STM32F103C8T6(以下簡(jiǎn)稱STM32)作為控制器,通過(guò)CAN(控制器局域網(wǎng))總線接口與上位機(jī)進(jìn)行雙向通信,充分利用CAN總線突出的可靠性、實(shí)時(shí)性、可擴(kuò)展性以及總線利用率高等特點(diǎn)[2]。磁旋轉(zhuǎn)編碼器AS5045精度高,用以實(shí)時(shí)檢測(cè)電機(jī)的位置信息;A3995驅(qū)動(dòng)電路體積小,單個(gè)芯片可控制2個(gè)電機(jī)。上述元件體積都較小,適用于機(jī)器人關(guān)節(jié)處和機(jī)器人內(nèi)部。小型機(jī)器人關(guān)節(jié)控制電路系統(tǒng)如圖1所示。
圖1 關(guān)節(jié)控制電路系統(tǒng)結(jié)構(gòu)框圖
1.1微處理器控制電路
圖1中STM32F103C8T6是基于ARM Cortex-M3內(nèi)核的32位微控制器,負(fù)責(zé)采集磁編碼器實(shí)時(shí)位置信息、接收上位機(jī)通過(guò)CAN總線傳送的控制命令、進(jìn)行控制電機(jī)轉(zhuǎn)速的控制計(jì)算、反饋關(guān)節(jié)角度信息給上位機(jī)。
1.2驅(qū)動(dòng)模塊電路
采用雙相DMOS全橋驅(qū)動(dòng)電路芯片A3995驅(qū)動(dòng)電路。驅(qū)動(dòng)電路和保護(hù)電路如圖2所示。雙相DMOS全橋驅(qū)動(dòng)能夠以高達(dá)2.4A的電流驅(qū)動(dòng)2個(gè)8~36V直流電動(dòng)機(jī)。
圖2 A3995驅(qū)動(dòng)模塊電路
1.2.1驅(qū)動(dòng)模塊電路的設(shè)計(jì)
ARM微處理器STM32的3個(gè)I/O引腳作為電機(jī)驅(qū)動(dòng)芯片A3995的PHASE、ENABLE和MODE控制輸入信號(hào),進(jìn)而控制電機(jī)的動(dòng)作。其中PHASE的高低電平?jīng)Q定電機(jī)轉(zhuǎn)動(dòng)的方向,MODE選擇電流衰減快慢模式。STM32定時(shí)器輸出PWM信號(hào)接A3995的ENABLE,用于控制電機(jī)轉(zhuǎn)速。
1.2.2電流檢測(cè)保護(hù)電路與軟件設(shè)置
A3995芯片具有電流檢測(cè)功能,通過(guò)外部編程設(shè)置內(nèi)部保護(hù)電路的電壓比較器門檻。A3995中的電流檢測(cè)保護(hù)電路如圖3所示。
圖3 A3995中的電流檢測(cè)保護(hù)電路
圖3中SENSE1為A3995芯片電流保護(hù)電路的電壓比較器正輸入端,接在H橋(控制電機(jī)的正轉(zhuǎn)或反轉(zhuǎn))的電流輸出端口處,經(jīng)一個(gè)0.1Ω電阻接地,用來(lái)檢測(cè)流過(guò)負(fù)載(即直流電機(jī))的電流大小。VREF1作為電壓比較器的負(fù)輸入端,A3995內(nèi)部電路根據(jù)該端口輸入PWM信號(hào)的占空比作為比較參考電壓,通過(guò)軟件設(shè)置STM32的定時(shí)器使PB1輸出PWM信號(hào),降壓后相連到VREF1。
對(duì)于電壓比較器而言,其正極電平V+與負(fù)極電平V-分別為:其中,Im為流過(guò)電機(jī)電流,R1為采樣電阻。對(duì)VREF1進(jìn)行÷3降壓處理是A3995內(nèi)部的功能。當(dāng)V-<V+時(shí),即流過(guò)電機(jī)的電流在安全范圍內(nèi)時(shí),比較器輸出高電平,直流電機(jī)工作正常。而當(dāng)V->V+時(shí),即電機(jī)流過(guò)的電流Im較大時(shí),比較器輸出低電平,復(fù)位PWM鎖存器,電機(jī)驅(qū)動(dòng)的控制邏輯輸出端口被鎖住,無(wú)法輸出信號(hào)給H橋,從而關(guān)閉了對(duì)電機(jī)的輸出,保護(hù)了電機(jī)與驅(qū)動(dòng)電路。保護(hù)電路原理圖如圖4所示。
圖4 保護(hù)電路原理圖
STM32定時(shí)器通過(guò)端口PB0輸出高電平為3.3 V的PWM信號(hào),平均輸出電壓為Vout=3.3×duty(占空比)。
當(dāng)V+=V-時(shí),流經(jīng)電機(jī)M的電流達(dá)到正常值的最大值Imax。此時(shí):其中,R1=0.1Ω,R2=10kΩ,R3=10kΩ,帶入上式可得Imax與占空比duty之間的關(guān)系式為:
duty(%)=18.18×Imax
當(dāng)Imax限制在1A時(shí),占空比為18.18%,在整個(gè)機(jī)器人的關(guān)節(jié)控制中,可以針對(duì)不同電機(jī)的Imax限制來(lái)設(shè)置占空比,從而保護(hù)電路。
1.3CAN通信模塊電路的設(shè)計(jì)
本系統(tǒng)的信號(hào)傳輸采用CAN總線通信模式,CAN總線最多可接110個(gè)節(jié)點(diǎn),可以進(jìn)行區(qū)域組網(wǎng),用于小型機(jī)器人的多關(guān)節(jié)聯(lián)機(jī)協(xié)調(diào)動(dòng)作。機(jī)器人關(guān)節(jié)節(jié)點(diǎn)與主控機(jī)進(jìn)行通信,充分利用CAN報(bào)文幀ID識(shí)別碼的特性,將發(fā)送幀的識(shí)別碼、本節(jié)點(diǎn)的編碼和本節(jié)點(diǎn)接收濾波器的識(shí)別碼相統(tǒng)一[3]。
STM32內(nèi)部本身集成了一路增強(qiáng)型CAN控制器,支持CAN2.0B標(biāo)準(zhǔn)接口,使用時(shí)只需連接CAN的收發(fā)器即可。具體電路圖如圖5所示。
圖5 CAN通信接口原理圖
SN65HVD230是3.3V CAN收發(fā)器,信號(hào)傳輸速率最高可達(dá)1Mb/s。STM32中CAN控制器的輸出引腳CAN_TX與CAN收發(fā)器SN65HVD230的數(shù)據(jù)輸入端D連接,可將此CAN節(jié)點(diǎn)發(fā)送的數(shù)據(jù)信息傳送到CAN網(wǎng)絡(luò)中,CAN控制器的接收引腳CAN_RX與SN65HVD230的數(shù)據(jù)輸出端R連接,用于此CAN節(jié)點(diǎn)接收數(shù)據(jù)。
1.4磁旋轉(zhuǎn)編碼器信息采集模塊
機(jī)器人關(guān)節(jié)控制系統(tǒng)傳感器必須尺寸很小,靈敏度高,靈活性強(qiáng)。每個(gè)關(guān)節(jié)選取無(wú)接觸式的磁旋轉(zhuǎn)編碼器AS5045來(lái)采集位置信息。內(nèi)部集成霍爾元件,可以精確地測(cè)量電機(jī)轉(zhuǎn)動(dòng)的360°范圍內(nèi)的角度,分辨率達(dá)到0.087 9°,即每圈可以分成4 096個(gè)位置[5]。它的優(yōu)點(diǎn)有:(1)芯片內(nèi)部集成一個(gè)完整的片上系統(tǒng);(2)非接觸式的位置傳感器可以應(yīng)用在比較惡劣的環(huán)境下;(3)無(wú)需校準(zhǔn);(4)體積小,便于安裝。
AS5045電路板固定在關(guān)節(jié)處,為了測(cè)量關(guān)節(jié)的角度,要在關(guān)節(jié)的旋轉(zhuǎn)軸上安裝一個(gè)圓形徑向磁化雙極磁鐵,必須對(duì)準(zhǔn)AS5045芯片的中間[5]。根據(jù)關(guān)節(jié)的機(jī)械結(jié)構(gòu),磁鐵可以安裝在芯片的上方或下方。由于是無(wú)接觸式的,因此在轉(zhuǎn)動(dòng)過(guò)程中不會(huì)影響關(guān)節(jié)。其工作原理是:關(guān)節(jié)在旋轉(zhuǎn)的過(guò)程中帶動(dòng)磁鐵旋轉(zhuǎn),AS5045內(nèi)部的霍爾元件檢測(cè)到磁性的大小,經(jīng)過(guò)內(nèi)部的DSP計(jì)算,可以輸出角度信息。
AS5045提供PWM輸出和絕對(duì)值串行輸出,本系統(tǒng)中采用的是絕對(duì)值串行輸出。AS5045檢測(cè)磁場(chǎng)的方向并計(jì)算出12bit的二進(jìn)制編碼,此編碼通過(guò)同步串行接口(SSI)進(jìn)行訪問(wèn),STM32產(chǎn)生磁旋轉(zhuǎn)編碼器 AS5045的時(shí)鐘CLK和片選CSn信號(hào),讀取其輸出DO信號(hào)。硬件電路設(shè)計(jì)如圖6所示。
圖6 AS5045硬件電路圖
STM32單片機(jī)產(chǎn)生的CSn和CLK信號(hào)時(shí)序,以及AS5045輸出信號(hào)DO如圖7所示。AS5045的工作過(guò)程如下:初始時(shí)STM32輸出引腳拉高CSn和CLK信號(hào),當(dāng)需要讀取數(shù)據(jù)DO時(shí),將CSn變?yōu)檫壿嫷碗娖?,?shù)據(jù)輸出(DO)將從高阻(三態(tài))狀態(tài)變?yōu)檫壿嫺唠娖?。?jīng)過(guò)最短時(shí)間tclk后,數(shù)據(jù)在CLK的第1個(gè)下降沿鎖存至輸出移位寄存器內(nèi)。每個(gè)后續(xù)的CLK上升沿將移出1bit數(shù)據(jù)。STM32采集到的串行字包含18bit數(shù)據(jù),前12bit D[11:0]是角度信息,后6bit D[17:12]包含系統(tǒng)信息(奇偶校驗(yàn)、線性誤差、磁鐵對(duì)齊等)。數(shù)據(jù)全部讀完之后,設(shè)置CSn為高電平,持續(xù)時(shí)間為tCSn恢復(fù)初始的狀態(tài)進(jìn)行后續(xù)測(cè)量。
圖7 AS5045時(shí)序圖
通過(guò)STM32的IO引腳接收到的二進(jìn)制數(shù)據(jù)Do轉(zhuǎn)換成關(guān)節(jié)對(duì)應(yīng)的角度值A(chǔ),轉(zhuǎn)換公式如下:
A=(Do>>6)×360÷4096
整個(gè)關(guān)節(jié)控制電路系統(tǒng)是以STM32為控制核心,采用keil作為編譯工具,使用C語(yǔ)言開(kāi)發(fā)代碼,便于移植。
乘坐當(dāng)?shù)貍鹘y(tǒng)的人力小船向湖心島劃去,清澈明亮的藍(lán)色湖水中倒映著遠(yuǎn)處的阿爾卑斯雪山和近處蒼翠的山林。15世紀(jì),人們?cè)诤膷u上修建了圣瑪利亞教堂。圣母堂雖然沒(méi)有大教堂的宏偉輝煌,但卻透著一份安詳和秀美,給布萊德湖帶來(lái)了靈性。
主要程序包括系統(tǒng)初始化、啟動(dòng)模塊、AS5045霍爾數(shù)據(jù)采集模塊、PID速度控制模塊、CAN通信模塊。程序流程圖如圖8所示。
圖8 程序流程圖
系統(tǒng)經(jīng)過(guò)初始化之后,上位機(jī)通過(guò)CAN總線發(fā)送控制命令給STM32單片機(jī),霍爾傳感器會(huì)檢測(cè)關(guān)節(jié)所在的位置,通過(guò)處理之后發(fā)送出關(guān)節(jié)的實(shí)時(shí)位置信息給STM32單片機(jī)。根據(jù)目標(biāo)值和實(shí)時(shí)值,利用PID調(diào)節(jié)kP、kI、kD參數(shù)調(diào)節(jié)占空比,從而控制電機(jī)的轉(zhuǎn)動(dòng)。
本系統(tǒng)采用增量式PID控制算法[6]控制關(guān)節(jié)電機(jī)轉(zhuǎn)速,進(jìn)而控制關(guān)節(jié)在規(guī)定時(shí)刻到達(dá)特定角度。計(jì)算的輸入量為關(guān)節(jié)角度偏差值,計(jì)算公式為:
△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時(shí)刻角速度輸出。
小型機(jī)器人關(guān)節(jié)控制電路系統(tǒng)實(shí)物圖如圖9所示,共有兩塊電路板,分別是磁編碼器電路板和關(guān)節(jié)控制電路板。關(guān)節(jié)控制電路板的尺寸為44mm×27mm,具有體積小、質(zhì)量輕的特點(diǎn),有利于將電路板安裝在機(jī)器人的關(guān)節(jié)處以及機(jī)器人內(nèi)部。整個(gè)系統(tǒng)的功耗為227.37mW,其中關(guān)節(jié)控制電路板的功耗為175.56mW,磁編碼器電路板功耗為54.45mW。
圖9 機(jī)器人關(guān)節(jié)控制電路系統(tǒng)實(shí)物圖
將關(guān)節(jié)控制電路系統(tǒng)安裝在機(jī)器人的關(guān)節(jié)處進(jìn)行調(diào)試,該關(guān)節(jié)角度范圍過(guò)零點(diǎn),起止位置分別是 300°和178°,即關(guān)節(jié)運(yùn)動(dòng)時(shí)采集到的角度為從300°經(jīng)過(guò)360°(0°)到178°。通過(guò)串口與PC相連,在1s時(shí)間內(nèi)采樣擬合的曲線如圖10所示,給定的角度值與反饋的角度值誤差控制在1°之內(nèi)。
圖10 關(guān)節(jié)位置響應(yīng)曲線
本文介紹了一個(gè)基于STM32處理器設(shè)計(jì)的機(jī)器人關(guān)節(jié)控制系統(tǒng)。對(duì)微處理器外圍電路、電機(jī)驅(qū)動(dòng)電路、通信電路以及信號(hào)采集電路進(jìn)行了硬件設(shè)計(jì)。關(guān)節(jié)控制電路板的面積為11.88cm2。通過(guò)對(duì)機(jī)器人關(guān)節(jié)轉(zhuǎn)動(dòng)控制的測(cè)試,關(guān)節(jié)角度轉(zhuǎn)動(dòng)的誤差控制在1°以內(nèi)。本系統(tǒng)軟硬件的功能和性能符合小型機(jī)器人轉(zhuǎn)動(dòng)關(guān)節(jié)控制電路系統(tǒng)的實(shí)用要求。
[1]吳方勇,田偉程.基于ARM的空心杯直流電機(jī)伺服驅(qū)動(dòng)器設(shè)計(jì)[J].機(jī)械與電子,2012(8):44-47.
[2]趙曉軍,曹建坤,李可一,等.基于CAN總線的數(shù)據(jù)臂通信設(shè)計(jì)[J].自動(dòng)化儀表,2010,31(5):13-15.
[3]陳瑛,宋俊磊,王典洪.CAN總線在野外地震數(shù)據(jù)傳輸中的應(yīng)用[J].電子技術(shù)應(yīng)用,2013,39(9):34-37.
[4]馬丹丹.基于CAN-BUS和STM32的智能步進(jìn)電機(jī)驅(qū)動(dòng)控制模塊設(shè)計(jì)[D].杭州:杭州電子科技大學(xué),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)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,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-),女,碩士研究生,主要研究方向:嵌入式系統(tǒng)設(shè)計(jì)。
白雪飛(1977-),男,講師,碩士生導(dǎo)師,主要研究方向:電路與系統(tǒng)。
黃魯(1961-),男,副教授,碩士生導(dǎo)師,主要研究方向:電路與系統(tǒng)。