您的位置:網(wǎng)站首頁(yè) > 優(yōu)秀論文 > 正文
舵機(jī)在機(jī)器人技術(shù)中的應(yīng)用及編程方法
作者:秦萍來(lái)源:原創(chuàng)日期:2013-12-07人氣:1851
1 舵機(jī)結(jié)構(gòu)及工作原理
舵機(jī)主要由舵盤、減速齒輪組、位置反饋電位器、直流電機(jī)、控制電路板組成,其工作原理(圖1所示):控制電路接收信號(hào)源的控制脈沖,并驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng);齒輪組將電機(jī)的速度成大倍數(shù)縮小,并將電機(jī)的輸出扭矩放大響應(yīng)倍數(shù),然后輸出;電位器和齒輪組的末級(jí)一起轉(zhuǎn)動(dòng),測(cè)量舵機(jī)軸轉(zhuǎn)動(dòng)角度;電路板檢測(cè)并根據(jù)電位器判斷舵機(jī)轉(zhuǎn)動(dòng)角度,然后控制舵機(jī)轉(zhuǎn)動(dòng)到目標(biāo)角度或保持在目標(biāo)角度。
2 舵機(jī)的控制方法
舵機(jī)的控制信號(hào)為周期為20ms的脈寬調(diào)制信號(hào),該脈沖的高電平部分一般為0.5ms~2.5ms,對(duì)應(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信號(hào)的脈沖寬度實(shí)現(xiàn)微秒級(jí)的變化,從而提高舵機(jī)的轉(zhuǎn)角精度。單片機(jī)完成控制算法,再將計(jì)算結(jié)果轉(zhuǎn)化為PWM信號(hào)輸出到舵機(jī),由于單片機(jī)系統(tǒng)是一個(gè)數(shù)字系統(tǒng),整個(gè)系統(tǒng)工作可靠。單片機(jī)控制系統(tǒng)對(duì)舵機(jī)輸出轉(zhuǎn)角的控制,分為兩個(gè)步驟。第一步是產(chǎn)生基本的周期為20ms的PWM信號(hào),第二步是PWM信號(hào)脈寬的確定,調(diào)整占空比??刂葡到y(tǒng)中實(shí)現(xiàn)一個(gè)舵機(jī)的控制,通常采用使用單片機(jī)的一個(gè)定時(shí)器來(lái)實(shí)現(xiàn)。根據(jù)PWM信號(hào)占空比,分別設(shè)定定時(shí)器中斷的初值,將20ms分為兩次中斷執(zhí)行,一次短時(shí)間中斷和一次較長(zhǎng)時(shí)間中斷,控制輸出信號(hào)的電平變換,產(chǎn)生要求的PWM信號(hào)。
3 應(yīng)用舉例及編程方法
我們采用宏晶STC12C5A60S2單片機(jī),它是宏晶科技生產(chǎn)的高速、低功耗、超強(qiáng)抗干擾的新一代單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快近十倍。制作的自動(dòng)投球機(jī)器人,機(jī)器人每次攜帶6個(gè)小球,通過(guò)單片機(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控制信號(hào),P37作為輸出舵機(jī)2的PWM控制信號(hào),分別采用16位定時(shí)器T0、T1產(chǎn)生兩路PWM信號(hào)P36、P37。
以舵機(jī)1控制為例,通過(guò)設(shè)定定時(shí)器T0工作在定時(shí)模式,定時(shí)時(shí)間到產(chǎn)生中斷來(lái)產(chǎn)生PWM信號(hào)。特殊功能寄存器AUXR中的T0x12、T1x12位分別設(shè)定T0、T1對(duì)系統(tǒng)時(shí)鐘進(jìn)行12分頻還是不分頻計(jì)數(shù)定時(shí),我們?cè)O(shè)定T0x12、T1x12為“0”,選擇對(duì)系統(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ù)上一過(guò)程。
參考程序(部分):
#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所示):控制電路接收信號(hào)源的控制脈沖,并驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng);齒輪組將電機(jī)的速度成大倍數(shù)縮小,并將電機(jī)的輸出扭矩放大響應(yīng)倍數(shù),然后輸出;電位器和齒輪組的末級(jí)一起轉(zhuǎn)動(dòng),測(cè)量舵機(jī)軸轉(zhuǎn)動(dòng)角度;電路板檢測(cè)并根據(jù)電位器判斷舵機(jī)轉(zhuǎn)動(dòng)角度,然后控制舵機(jī)轉(zhuǎn)動(dòng)到目標(biāo)角度或保持在目標(biāo)角度。
2 舵機(jī)的控制方法
舵機(jī)的控制信號(hào)為周期為20ms的脈寬調(diào)制信號(hào),該脈沖的高電平部分一般為0.5ms~2.5ms,對(duì)應(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信號(hào)的脈沖寬度實(shí)現(xiàn)微秒級(jí)的變化,從而提高舵機(jī)的轉(zhuǎn)角精度。單片機(jī)完成控制算法,再將計(jì)算結(jié)果轉(zhuǎn)化為PWM信號(hào)輸出到舵機(jī),由于單片機(jī)系統(tǒng)是一個(gè)數(shù)字系統(tǒng),整個(gè)系統(tǒng)工作可靠。單片機(jī)控制系統(tǒng)對(duì)舵機(jī)輸出轉(zhuǎn)角的控制,分為兩個(gè)步驟。第一步是產(chǎn)生基本的周期為20ms的PWM信號(hào),第二步是PWM信號(hào)脈寬的確定,調(diào)整占空比??刂葡到y(tǒng)中實(shí)現(xiàn)一個(gè)舵機(jī)的控制,通常采用使用單片機(jī)的一個(gè)定時(shí)器來(lái)實(shí)現(xiàn)。根據(jù)PWM信號(hào)占空比,分別設(shè)定定時(shí)器中斷的初值,將20ms分為兩次中斷執(zhí)行,一次短時(shí)間中斷和一次較長(zhǎng)時(shí)間中斷,控制輸出信號(hào)的電平變換,產(chǎn)生要求的PWM信號(hào)。
3 應(yīng)用舉例及編程方法
我們采用宏晶STC12C5A60S2單片機(jī),它是宏晶科技生產(chǎn)的高速、低功耗、超強(qiáng)抗干擾的新一代單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快近十倍。制作的自動(dòng)投球機(jī)器人,機(jī)器人每次攜帶6個(gè)小球,通過(guò)單片機(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控制信號(hào),P37作為輸出舵機(jī)2的PWM控制信號(hào),分別采用16位定時(shí)器T0、T1產(chǎn)生兩路PWM信號(hào)P36、P37。
以舵機(jī)1控制為例,通過(guò)設(shè)定定時(shí)器T0工作在定時(shí)模式,定時(shí)時(shí)間到產(chǎn)生中斷來(lái)產(chǎn)生PWM信號(hào)。特殊功能寄存器AUXR中的T0x12、T1x12位分別設(shè)定T0、T1對(duì)系統(tǒng)時(shí)鐘進(jìn)行12分頻還是不分頻計(jì)數(shù)定時(shí),我們?cè)O(shè)定T0x12、T1x12為“0”,選擇對(duì)系統(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ù)上一過(guò)程。
參考程序(部分):
#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è)小球
……………
}
欄目分類
熱門排行
推薦信息
- 基于學(xué)生思維能力培養(yǎng)的中學(xué)數(shù)學(xué)教學(xué)研究
- 紅色文化融入高校青年黨史學(xué)習(xí)教育的時(shí)代價(jià)值及實(shí)踐路徑
- 新工科背景下自動(dòng)化專業(yè)應(yīng)用型人才創(chuàng)新實(shí)踐能力培養(yǎng)探析
- 基于紙質(zhì)插畫的互動(dòng)藝術(shù)作品設(shè)計(jì)研究
- 紙質(zhì)檔案管理中的信息安全風(fēng)險(xiǎn)及其防范措施分析
- 平陽(yáng)麻箋古法造紙傳承與保護(hù)研究
- 紙工藝在現(xiàn)代文創(chuàng)產(chǎn)品設(shè)計(jì)中的應(yīng)用研究
- 紙媒介與數(shù)字媒體融合服務(wù)設(shè)計(jì)的研究
- 紙材料在生態(tài)藝術(shù)中的可持續(xù)應(yīng)用
- 紙工藝文創(chuàng)產(chǎn)品的品牌塑造與推廣策略研究
期刊知識(shí)
- 官方認(rèn)定!CSSCI南大核心首批191家“青年學(xué)者友好期刊名單”
- 2023JCR影響因子正式公布!
- 國(guó)內(nèi)核心期刊分級(jí)情況概覽及說(shuō)明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學(xué)者
- 我用了一個(gè)很復(fù)雜的圖,幫你們解釋下“23版最新北大核心目錄有效期問(wèn)題”。
- 重磅!CSSCI來(lái)源期刊(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)那些評(píng)職稱超管用的資源,1,3和5已經(jīng)“絕種”了
- 職稱話題| 為什么黨校更認(rèn)可省市級(jí)黨報(bào)?是否有什么說(shuō)據(jù)?還有哪些機(jī)構(gòu)認(rèn)可黨報(bào)?