您的位置:網(wǎng)站首頁 > 優(yōu)秀論文 > 正文
舵機(jī)在機(jī)器人技術(shù)中的應(yīng)用及編程方法
作者:秦萍來源:原創(chuàng)日期:2013-12-07人氣:1853
1 舵機(jī)結(jié)構(gòu)及工作原理
舵機(jī)主要由舵盤、減速齒輪組、位置反饋電位器、直流電機(jī)、控制電路板組成,其工作原理(圖1所示):控制電路接收信號源的控制脈沖,并驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng);齒輪組將電機(jī)的速度成大倍數(shù)縮小,并將電機(jī)的輸出扭矩放大響應(yīng)倍數(shù),然后輸出;電位器和齒輪組的末級一起轉(zhuǎn)動(dòng),測量舵機(jī)軸轉(zhuǎn)動(dòng)角度;電路板檢測并根據(jù)電位器判斷舵機(jī)轉(zhuǎn)動(dòng)角度,然后控制舵機(jī)轉(zhuǎn)動(dòng)到目標(biāo)角度或保持在目標(biāo)角度。
2 舵機(jī)的控制方法
舵機(jī)的控制信號為周期為20ms的脈寬調(diào)制信號,該脈沖的高電平部分一般為0.5ms~2.5ms,對應(yīng)的舵機(jī)轉(zhuǎn)動(dòng)角度為0~180°,理想情況下脈沖高電平寬度與舵機(jī)轉(zhuǎn)動(dòng)角度成正比。即舵機(jī)轉(zhuǎn)動(dòng)角度=180°×(脈沖高電平寬度-0.5)/2??梢杂脝纹瑱C(jī)作為舵機(jī)的控制單元,使PWM信號的脈沖寬度實(shí)現(xiàn)微秒級的變化,從而提高舵機(jī)的轉(zhuǎn)角精度。單片機(jī)完成控制算法,再將計(jì)算結(jié)果轉(zhuǎn)化為PWM信號輸出到舵機(jī),由于單片機(jī)系統(tǒng)是一個(gè)數(shù)字系統(tǒng),整個(gè)系統(tǒng)工作可靠。單片機(jī)控制系統(tǒng)對舵機(jī)輸出轉(zhuǎn)角的控制,分為兩個(gè)步驟。第一步是產(chǎn)生基本的周期為20ms的PWM信號,第二步是PWM信號脈寬的確定,調(diào)整占空比。控制系統(tǒng)中實(shí)現(xiàn)一個(gè)舵機(jī)的控制,通常采用使用單片機(jī)的一個(gè)定時(shí)器來實(shí)現(xiàn)。根據(jù)PWM信號占空比,分別設(shè)定定時(shí)器中斷的初值,將20ms分為兩次中斷執(zhí)行,一次短時(shí)間中斷和一次較長時(shí)間中斷,控制輸出信號的電平變換,產(chǎn)生要求的PWM信號。
3 應(yīng)用舉例及編程方法
我們采用宏晶STC12C5A60S2單片機(jī),它是宏晶科技生產(chǎn)的高速、低功耗、超強(qiáng)抗干擾的新一代單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快近十倍。制作的自動(dòng)投球機(jī)器人,機(jī)器人每次攜帶6個(gè)小球,通過單片機(jī)控制兩個(gè)舵機(jī)制作兩個(gè)擋板,擋板配合動(dòng)作,將小球投到指定位置。兩個(gè)擋板初始位置為:下面的擋板1在“擋”位置、上面的擋板2在“縮”位置,開始向投球機(jī)器人裝入小球。啟動(dòng)投球機(jī)器人后,擋板2運(yùn)動(dòng)到“擋”位置,按照規(guī)定的路線循跡運(yùn)動(dòng),運(yùn)動(dòng)到指定位置后,投球機(jī)器人開始投球。具體動(dòng)作為:擋板1“縮”,投下一個(gè)小球,然后擋板1“擋”,擋板2“縮”,第二個(gè)小球落到最下面的位置,然后擋板2“擋”,等待投球;依次類推,投入六個(gè)小球后,工作結(jié)束。
單片機(jī)晶振頻率為12MHz,P36輸出舵機(jī)1的PWM控制信號,P37作為輸出舵機(jī)2的PWM控制信號,分別采用16位定時(shí)器T0、T1產(chǎn)生兩路PWM信號P36、P37。
以舵機(jī)1控制為例,通過設(shè)定定時(shí)器T0工作在定時(shí)模式,定時(shí)時(shí)間到產(chǎn)生中斷來產(chǎn)生PWM信號。特殊功能寄存器AUXR中的T0x12、T1x12位分別設(shè)定T0、T1對系統(tǒng)時(shí)鐘進(jìn)行12分頻還是不分頻計(jì)數(shù)定時(shí),我們設(shè)定T0x12、T1x12為“0”,選擇對系統(tǒng)時(shí)鐘12分頻計(jì)數(shù)定時(shí),則定時(shí)器計(jì)一個(gè)數(shù)時(shí)間為1us,產(chǎn)生2ms時(shí)間需計(jì)數(shù)2000個(gè)。初始時(shí)舵機(jī)1帶動(dòng)擋板1運(yùn)動(dòng)到“擋”位置,根據(jù)擋板運(yùn)動(dòng)位置(舵機(jī)轉(zhuǎn)動(dòng)角度)確定脈寬的初始值a,即a=(2000/180)*舵機(jī)轉(zhuǎn)動(dòng)角度+500。然后設(shè)定定時(shí)器T0的初值TH0=-(65536-a)/256、TL0=-(65536-a)%256;并置輸出P36為高電平,啟動(dòng)定時(shí)器T0,T0開始定時(shí)。當(dāng)定時(shí)器計(jì)數(shù)溢出時(shí),觸發(fā)計(jì)數(shù)器溢出中斷函數(shù)void timer0() interrupt 1 using 1,在子函數(shù)中,改變輸出P36為反相(此時(shí)變?yōu)榈碗娖剑?,?jì)算ci =20000-a,并重新設(shè)定定時(shí)器T0的初值,直到定時(shí)器再次產(chǎn)生溢出中斷,重復(fù)上一過程。
參考程序(部分):
#define uchar unsigned char
#define uint unsigned int
sbit dj1=P3^6;
sbit dj2=P3^7;
uint a,bi,ci,d;
void timer0( ) interrupt 1 using 1
{
dj1=!dj1;
ci=20000-a;
TH0=(65536-ci)/256;
TL0=(65536-ci)%256;
TF0=0;
}
void djdang1()/*擋板1擋位置函數(shù)*/
{
dj1=1;
a=(2000/180)*130+500;
TH0=-(a/256);
TL0=-(a%256);
EA=1;
ET0=1;TR0=1;
}
void djsuo1()/*擋板1縮位置函數(shù)*/
{
dj1=1;
a=(2000/180)*70+500;
TH0=-(a/256);
TL0=-(a%256);
EA=1;
ET0=1;TR0=1;
}
void S_T() /*程序初始化*/
{
TMOD=0X11;
P3M1=0x00;
P3M0=0xff;
AUXR=0X00;
start_=1;
while(start_==1) //等待按鍵
{;}
}
void main() /*主函數(shù)*/
{
S_T();
djdang1();
djsuo2();
delay_ms(10000); /裝入小球
djdang2();
delay_ms(900);
……… ;//運(yùn)行到指定位置
djsuo1();
delay_ms(800);
djdang1();
delay_ms(850);
djsuo2();
delay_ms(800);
djdang2();//投入一個(gè)小球
……………
}
舵機(jī)主要由舵盤、減速齒輪組、位置反饋電位器、直流電機(jī)、控制電路板組成,其工作原理(圖1所示):控制電路接收信號源的控制脈沖,并驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng);齒輪組將電機(jī)的速度成大倍數(shù)縮小,并將電機(jī)的輸出扭矩放大響應(yīng)倍數(shù),然后輸出;電位器和齒輪組的末級一起轉(zhuǎn)動(dòng),測量舵機(jī)軸轉(zhuǎn)動(dòng)角度;電路板檢測并根據(jù)電位器判斷舵機(jī)轉(zhuǎn)動(dòng)角度,然后控制舵機(jī)轉(zhuǎn)動(dòng)到目標(biāo)角度或保持在目標(biāo)角度。
2 舵機(jī)的控制方法
舵機(jī)的控制信號為周期為20ms的脈寬調(diào)制信號,該脈沖的高電平部分一般為0.5ms~2.5ms,對應(yīng)的舵機(jī)轉(zhuǎn)動(dòng)角度為0~180°,理想情況下脈沖高電平寬度與舵機(jī)轉(zhuǎn)動(dòng)角度成正比。即舵機(jī)轉(zhuǎn)動(dòng)角度=180°×(脈沖高電平寬度-0.5)/2??梢杂脝纹瑱C(jī)作為舵機(jī)的控制單元,使PWM信號的脈沖寬度實(shí)現(xiàn)微秒級的變化,從而提高舵機(jī)的轉(zhuǎn)角精度。單片機(jī)完成控制算法,再將計(jì)算結(jié)果轉(zhuǎn)化為PWM信號輸出到舵機(jī),由于單片機(jī)系統(tǒng)是一個(gè)數(shù)字系統(tǒng),整個(gè)系統(tǒng)工作可靠。單片機(jī)控制系統(tǒng)對舵機(jī)輸出轉(zhuǎn)角的控制,分為兩個(gè)步驟。第一步是產(chǎn)生基本的周期為20ms的PWM信號,第二步是PWM信號脈寬的確定,調(diào)整占空比。控制系統(tǒng)中實(shí)現(xiàn)一個(gè)舵機(jī)的控制,通常采用使用單片機(jī)的一個(gè)定時(shí)器來實(shí)現(xiàn)。根據(jù)PWM信號占空比,分別設(shè)定定時(shí)器中斷的初值,將20ms分為兩次中斷執(zhí)行,一次短時(shí)間中斷和一次較長時(shí)間中斷,控制輸出信號的電平變換,產(chǎn)生要求的PWM信號。
3 應(yīng)用舉例及編程方法
我們采用宏晶STC12C5A60S2單片機(jī),它是宏晶科技生產(chǎn)的高速、低功耗、超強(qiáng)抗干擾的新一代單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快近十倍。制作的自動(dòng)投球機(jī)器人,機(jī)器人每次攜帶6個(gè)小球,通過單片機(jī)控制兩個(gè)舵機(jī)制作兩個(gè)擋板,擋板配合動(dòng)作,將小球投到指定位置。兩個(gè)擋板初始位置為:下面的擋板1在“擋”位置、上面的擋板2在“縮”位置,開始向投球機(jī)器人裝入小球。啟動(dòng)投球機(jī)器人后,擋板2運(yùn)動(dòng)到“擋”位置,按照規(guī)定的路線循跡運(yùn)動(dòng),運(yùn)動(dòng)到指定位置后,投球機(jī)器人開始投球。具體動(dòng)作為:擋板1“縮”,投下一個(gè)小球,然后擋板1“擋”,擋板2“縮”,第二個(gè)小球落到最下面的位置,然后擋板2“擋”,等待投球;依次類推,投入六個(gè)小球后,工作結(jié)束。
單片機(jī)晶振頻率為12MHz,P36輸出舵機(jī)1的PWM控制信號,P37作為輸出舵機(jī)2的PWM控制信號,分別采用16位定時(shí)器T0、T1產(chǎn)生兩路PWM信號P36、P37。
以舵機(jī)1控制為例,通過設(shè)定定時(shí)器T0工作在定時(shí)模式,定時(shí)時(shí)間到產(chǎn)生中斷來產(chǎn)生PWM信號。特殊功能寄存器AUXR中的T0x12、T1x12位分別設(shè)定T0、T1對系統(tǒng)時(shí)鐘進(jìn)行12分頻還是不分頻計(jì)數(shù)定時(shí),我們設(shè)定T0x12、T1x12為“0”,選擇對系統(tǒng)時(shí)鐘12分頻計(jì)數(shù)定時(shí),則定時(shí)器計(jì)一個(gè)數(shù)時(shí)間為1us,產(chǎn)生2ms時(shí)間需計(jì)數(shù)2000個(gè)。初始時(shí)舵機(jī)1帶動(dòng)擋板1運(yùn)動(dòng)到“擋”位置,根據(jù)擋板運(yùn)動(dòng)位置(舵機(jī)轉(zhuǎn)動(dòng)角度)確定脈寬的初始值a,即a=(2000/180)*舵機(jī)轉(zhuǎn)動(dòng)角度+500。然后設(shè)定定時(shí)器T0的初值TH0=-(65536-a)/256、TL0=-(65536-a)%256;并置輸出P36為高電平,啟動(dòng)定時(shí)器T0,T0開始定時(shí)。當(dāng)定時(shí)器計(jì)數(shù)溢出時(shí),觸發(fā)計(jì)數(shù)器溢出中斷函數(shù)void timer0() interrupt 1 using 1,在子函數(shù)中,改變輸出P36為反相(此時(shí)變?yōu)榈碗娖剑?,?jì)算ci =20000-a,并重新設(shè)定定時(shí)器T0的初值,直到定時(shí)器再次產(chǎn)生溢出中斷,重復(fù)上一過程。
參考程序(部分):
#define uchar unsigned char
#define uint unsigned int
sbit dj1=P3^6;
sbit dj2=P3^7;
uint a,bi,ci,d;
void timer0( ) interrupt 1 using 1
{
dj1=!dj1;
ci=20000-a;
TH0=(65536-ci)/256;
TL0=(65536-ci)%256;
TF0=0;
}
void djdang1()/*擋板1擋位置函數(shù)*/
{
dj1=1;
a=(2000/180)*130+500;
TH0=-(a/256);
TL0=-(a%256);
EA=1;
ET0=1;TR0=1;
}
void djsuo1()/*擋板1縮位置函數(shù)*/
{
dj1=1;
a=(2000/180)*70+500;
TH0=-(a/256);
TL0=-(a%256);
EA=1;
ET0=1;TR0=1;
}
void S_T() /*程序初始化*/
{
TMOD=0X11;
P3M1=0x00;
P3M0=0xff;
AUXR=0X00;
start_=1;
while(start_==1) //等待按鍵
{;}
}
void main() /*主函數(shù)*/
{
S_T();
djdang1();
djsuo2();
delay_ms(10000); /裝入小球
djdang2();
delay_ms(900);
……… ;//運(yùn)行到指定位置
djsuo1();
delay_ms(800);
djdang1();
delay_ms(850);
djsuo2();
delay_ms(800);
djdang2();//投入一個(gè)小球
……………
}
欄目分類
熱門排行
推薦信息
- 武術(shù)助力鄉(xiāng)村振興路徑研究
- 數(shù)字鄉(xiāng)村戰(zhàn)略下農(nóng)村數(shù)字技能終身教育體系的構(gòu)建
- 鄉(xiāng)村振興背景下的職業(yè)教育服務(wù)湖北農(nóng)業(yè)產(chǎn)業(yè)鏈發(fā)展研究—— 以潛江小龍蝦產(chǎn)業(yè)為例
- 基層數(shù)字化治理能力提升過程中存在的問題及優(yōu)化路徑
- 洛龍區(qū)學(xué)府街道打造鄉(xiāng)村振興新標(biāo)桿實(shí)現(xiàn)農(nóng)文旅商高品質(zhì)融合發(fā)展
- 鄉(xiāng)村振興背景下高校思政育人教學(xué)實(shí)踐研究
- 廣東農(nóng)業(yè)高質(zhì)量發(fā)展路徑探析
- 鄉(xiāng)村振興視域下健康鄉(xiāng)村建設(shè)探析
- 鄉(xiāng)村振興背景下陜西大學(xué)生返鄉(xiāng)創(chuàng)業(yè)困境及支持路徑探究
- 鄉(xiāng)村振興視域下新時(shí)代青年錨定“青春坐標(biāo)”的 使命擔(dān)當(dāng)與實(shí)踐路徑研究
期刊知識(shí)
- 官方認(rèn)定!CSSCI南大核心首批191家“青年學(xué)者友好期刊名單”
- 2023JCR影響因子正式公布!
- 國內(nèi)核心期刊分級情況概覽及說明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學(xué)者
- 我用了一個(gè)很復(fù)雜的圖,幫你們解釋下“23版最新北大核心目錄有效期問題”。
- 重磅!CSSCI來源期刊(2023-2024版)最新期刊目錄看點(diǎn)分析!全網(wǎng)首發(fā)!
- CSSCI官方早就公布了最新南核目錄,有心的人已經(jīng)拿到并且投入使用!附南核目錄新增期刊!
- 北大核心期刊目錄換屆,我們應(yīng)該熟知的10個(gè)知識(shí)點(diǎn)。
- 注意,最新期刊論文格式標(biāo)準(zhǔn)已發(fā)布,論文寫作規(guī)則發(fā)生重大變化!文字版GB/T 7713.2—2022 學(xué)術(shù)論文編寫規(guī)則
- 盤點(diǎn)那些評職稱超管用的資源,1,3和5已經(jīng)“絕種”了
- 職稱話題| 為什么黨校更認(rèn)可省市級黨報(bào)?是否有什么說據(jù)?還有哪些機(jī)構(gòu)認(rèn)可黨報(bào)?