——瘋殼·機(jī)器人開(kāi)發(fā)系列 舵機(jī)的基本控制
1 舵機(jī)簡(jiǎn)介
本章,我們將使用 IAP15W4K61S4 單片機(jī)控制舵機(jī)的轉(zhuǎn)動(dòng)。
圖 1
一般來(lái)說(shuō),舵機(jī)由舵盤(pán)、減速齒輪組、位置反饋電位計(jì)、直流電機(jī)、控制電路組成。
它的輸入線一共 3 條,電源線、地線和控制線。
舵機(jī)是通過(guò) PWM 脈寬調(diào)節(jié)角度,周期為 20ms,占空比 0.5ms 到 2.5ms 的脈寬電平對(duì)應(yīng)舵機(jī) 0 度到 180 度角度范圍。因此,我們就可以通過(guò) IAP15W4K61S4 單片機(jī)產(chǎn)生不同占空比的方波,來(lái)控制舵機(jī)軸的不同位置,從而控制舵機(jī)的轉(zhuǎn)動(dòng)。
2 硬件設(shè)計(jì)
由于單片機(jī)在實(shí)際中的輸出電流很小,本次就使用了 74HC244 來(lái)增加輸出電流。另外,機(jī)器人的頭部舵機(jī)的信號(hào)線是通過(guò) P27 與 74HC244 相連間接控制的。
圖 2
3軟件設(shè)計(jì)
本次我們是通過(guò)定時(shí)器 T0 控制 IO 口輸出高低電平的時(shí)間來(lái)輸出 PWM。首先,我們介紹一下 IO 口以及定時(shí)器相關(guān)寄存器。
(1)數(shù)據(jù)寄存器 Px
Px 對(duì)應(yīng)的輸入輸出數(shù)據(jù),以 P0 為例,如下圖所示:
圖 3
(2)模式寄存器
每個(gè)引腳對(duì)應(yīng)的兩個(gè)模式寄存器共同決定了引腳的工作模式,以 P0 為例,如下圖所示:
圖 4
(3)定時(shí)器/計(jì)數(shù)器 0/1 控制寄存器 TCON
圖 5
TF0:T0 溢出中斷標(biāo)志。T0 被允許計(jì)數(shù)以后,從初值開(kāi)始加 1 計(jì)數(shù),當(dāng)產(chǎn)生溢出時(shí),由硬件 置 1TF0,向 CPU 請(qǐng)求中斷,一致保持到 CPU 響應(yīng)該中斷時(shí), 才由硬件清 0。
TR0:定時(shí)器的運(yùn)行控制位。該位由軟件社設(shè)置清零。
IE0:外部中斷 0 請(qǐng)求源(INT0/P3.2)標(biāo)志。IE0=1 外部中斷 0 向 CPU 請(qǐng)求中斷,當(dāng) CPU 響應(yīng)外部中斷時(shí),由硬件清 0 。
IT0:外部中斷源 0 觸發(fā)控制位。IT0=0,上升沿或下降沿均可觸發(fā)外部中斷 0。IT0=1,外部中斷 0 程控為下降沿觸發(fā)方式。
(4)計(jì)時(shí)器/計(jì)數(shù)器工作模式寄存器 TMOD
圖 6
M1,M0:定時(shí)器/計(jì)數(shù)器模式選擇。C/T:清 0 作為定時(shí)器,置 1 作為計(jì)數(shù)器。
關(guān)于其它的寄存器,可以參考 IAP15W4K61S4 的數(shù)據(jù)手冊(cè)。
代碼中,我們首先將 IO 口初始化。
代碼1
將 IO 口設(shè)置為準(zhǔn)雙向口,默認(rèn)低電平,然后通過(guò)賦值給 P27 一或者零,來(lái)
控制 P27 口輸出高低電平。
關(guān)于定時(shí)器的使用,首先進(jìn)行初始化。
(1)設(shè)置輔助寄存器 AUXR,將定時(shí)器 0 設(shè)為傳統(tǒng) 8051 速度的 12 分頻。
(2)設(shè)置定時(shí)器 0 為 16 位不可重裝載模式,TH0、TL0 全用。
(3)清除 T0 溢出中斷標(biāo)志。
(4)允許 T0 產(chǎn)生中斷。
(5)打開(kāi)總中斷
代碼2
完成定時(shí)器 0 初始化之后,就必須通過(guò)函數(shù) Timer0(unsigned int us)給 TH0、TL0 填值。當(dāng)時(shí)間到了,程序就可以進(jìn)入定時(shí)中斷函數(shù) T0_Inter(void) interrupt 1。當(dāng)進(jìn)入一次中斷之后,如果還要再次進(jìn)入定時(shí)中斷函數(shù),就必須再一次裝載定時(shí)器。
代碼3
我們?cè)谥袛嗪瘮?shù)中再次裝載定時(shí)器,改變 PWM 的占空比,讓舵機(jī)不停的更換角度,從而達(dá)到使機(jī)器人做出搖頭的效果。
代碼4
4實(shí)驗(yàn)現(xiàn)象
首先打開(kāi)下載軟件 STC-ISP。
圖 7
(1)點(diǎn)擊 Keil 仿真設(shè)置,添加 STC 相關(guān)的頭文件。STC 的相關(guān)頭文件路徑是我們之前安裝 Keil C51 的路徑,如果之前采用的默認(rèn)路徑,那么選擇 C 盤(pán) Keil 文件夾。
圖 8
(2)添加完 STC 相關(guān)的頭文件,點(diǎn)擊彈窗中的確定。
圖 9
(3)設(shè)置單片機(jī)的型號(hào)、最低波特率、最高波特率如下圖所示,硬件選項(xiàng)等選項(xiàng)默認(rèn)即可。串口號(hào)根據(jù)實(shí)際情況選擇。
圖 10
(4)點(diǎn)擊打開(kāi)程序文件,選擇我們例程中的.hex 文件。
圖 11
(5)點(diǎn)擊下載/編程,下載代碼。
圖 12
(6)按一下電路板上面的 RST 按鍵,完成下載。
圖 13
代碼下載完成之后,打開(kāi)機(jī)器人的電源開(kāi)關(guān),運(yùn)行代碼,就能看到我們的機(jī)器人在做搖頭動(dòng)作。
更多完整學(xué)習(xí)資料和對(duì)應(yīng)開(kāi)源套件,請(qǐng)登陸官網(wǎng):“瘋殼”
如需定制開(kāi)發(fā),請(qǐng)通過(guò)官網(wǎng)“瘋殼”網(wǎng)頁(yè)底部的“聯(lián)系我們”進(jìn)行聯(lián)系
文件下載請(qǐng)點(diǎn)擊:
4_舵機(jī)的基本控制.pdf
(1.14 MB)
2022-7-18 16:27 上傳
點(diǎn)擊文件名下載附件
下載積分: 積分 -1
|