摘 要: 給出一種小型機(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.087 9°。關(guān)節(jié)角度轉(zhuǎn)動(dòng)的誤差控制在1°以內(nèi),,關(guān)節(jié)控制電路板的面積為11.88 cm2,,信號(hào)傳輸速率為1 Mb/s。
關(guān)鍵詞: 空心杯直流電機(jī),;STM32嵌入式微處理器,;磁旋轉(zhuǎn)編碼器;PID控制
0 引言
小型化機(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)題。
1 系統(tǒng)硬件設(shè)計(jì)
關(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.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.4 A的電流驅(qū)動(dòng)2個(gè)8~36 V直流電動(dòng)機(jī),。
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中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-分別為:
V-=Im×R1
V+=VREF1÷3
其中,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所示,。
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=10 kΩ,,R3=10 kΩ,帶入上式可得Imax與占空比duty之間的關(guān)系式為:
duty(%)=18.18×Imax
當(dāng)Imax限制在1 A時(shí),,占空比為18.18%,,在整個(gè)機(jī)器人的關(guān)節(jié)控制中,可以針對(duì)不同電機(jī)的Imax限制來(lái)設(shè)置占空比,,從而保護(hù)電路,。
1.3 CAN通信模塊電路的設(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所示,。
SN65HVD230是3.3 V CAN收發(fā)器,,信號(hào)傳輸速率最高可達(dá)1 Mb/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ù),。
SN65HVD230具有高速,、斜率和等待3種工作模式[4],其工作模式通過(guò)控制Rs引腳的電平實(shí)現(xiàn),。當(dāng)Rs通過(guò)0 Ω的電阻接邏輯低電平時(shí),,收發(fā)器工作在高速模式,通信速率達(dá)到最高,。
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ì)算出12 bit的二進(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所示。
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上升沿將移出1 bit數(shù)據(jù)。STM32采集到的串行字包含18 bit數(shù)據(jù),,前12 bit D[11:0]是角度信息,,后6 bit D[17:12]包含系統(tǒng)信息(奇偶校驗(yàn)、線性誤差,、磁鐵對(duì)齊等),。數(shù)據(jù)全部讀完之后,設(shè)置CSn為高電平,,持續(xù)時(shí)間為tCSn恢復(fù)初始的狀態(tài)進(jìn)行后續(xù)測(cè)量,。
通過(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
2 系統(tǒng)軟件設(shè)計(jì)
整個(gè)關(guān)節(jié)控制電路系統(tǒng)是以STM32為控制核心,,采用keil作為編譯工具,,使用C語(yǔ)言開(kāi)發(fā)代碼,便于移植,。
主要程序包括系統(tǒng)初始化,、啟動(dòng)模塊、AS5045霍爾數(shù)據(jù)采集模塊,、PID速度控制模塊,、CAN通信模塊,。程序流程圖如圖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ì)算公式為:
其中,,為k時(shí)刻角速度輸出,。
3 實(shí)驗(yàn)研究
小型機(jī)器人關(guān)節(jié)控制電路系統(tǒng)實(shí)物圖如圖9所示,共有兩塊電路板,,分別是磁編碼器電路板和關(guān)節(jié)控制電路板,。關(guān)節(jié)控制電路板的尺寸為44 mm×27 mm,具有體積小,、質(zhì)量輕的特點(diǎn),,有利于將電路板安裝在機(jī)器人的關(guān)節(jié)處以及機(jī)器人內(nèi)部。整個(gè)系統(tǒng)的功耗為227.37 mW,,其中關(guān)節(jié)控制電路板的功耗為175.5 6mW,,磁編碼器電路板功耗為54.45 mW。
將關(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相連,,在1 s時(shí)間內(nèi)采樣擬合的曲線如圖10所示,給定的角度值與反饋的角度值誤差控制在1°之內(nèi),。
4 結(jié)論
本文介紹了一個(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.88 cm2。通過(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í)用要求,。
參考文獻(xiàn)
[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.