<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x
    查看: 1674|回復: 0
    打印 上一主題 下一主題

    【教程5】瘋殼·人形街舞機器人-舵機的基本控制

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2022-8-11 11:55:26 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    關鍵詞: 人形機器人 , 舞蹈機器人 , 舵機 , 基本控制 , 寄存器
    多自由度人形雙足舞蹈機器人
    ——瘋殼·機器人開發系列
    舵機的基本控制




    1 舵機簡介

    本章,我們將使用 IAP15W4K61S4 單片機控制舵機的轉動。


    圖 1
    一般來說,舵機由舵盤、減速齒輪組、位置反饋電位計、直流電機、控制電路組成。
    它的輸入線一共 3 條,電源線、地線和控制線。

    舵機是通過 PWM 脈寬調節角度,周期為 20ms,占空比 0.5ms 到 2.5ms 的脈寬電平對應舵機 0 度到 180 度角度范圍。因此,我們就可以通過 IAP15W4K61S4 單片機產生不同占空比的方波,來控制舵機軸的不同位置,從而控制舵機的轉動。

    2 硬件設計
    由于單片機在實際中的輸出電流很小,本次就使用了 74HC244 來增加輸出電流。另外,機器人的頭部舵機的信號線是通過 P27 與 74HC244 相連間接控制的。


    圖 2
    3軟件設計

    本次我們是通過定時器 T0 控制 IO 口輸出高低電平的時間來輸出 PWM。首先,我們介紹一下 IO 口以及定時器相關寄存器。
    (1)數據寄存器 Px

    Px 對應的輸入輸出數據,以 P0 為例,如下圖所示:


    圖 3
    (2)模式寄存器

    每個引腳對應的兩個模式寄存器共同決定了引腳的工作模式,以 P0 為例,如下圖所示:


    圖 4
    (3)定時器/計數器 0/1 控制寄存器 TCON


    圖 5
    TF0:T0 溢出中斷標志。T0 被允許計數以后,從初值開始加 1 計數,當產生溢出時,由硬件        置 1TF0,向 CPU 請求中斷,一致保持到 CPU 響應該中斷時, 才由硬件清 0。
    TR0:定時器的運行控制位。該位由軟件社設置清零。

    IE0:外部中斷 0 請求源(INT0/P3.2)標志。IE0=1 外部中斷 0 向 CPU 請求中斷,當 CPU 響應外部中斷時,由硬件清 0 。
    IT0:外部中斷源 0 觸發控制位。IT0=0,上升沿或下降沿均可觸發外部中斷 0。IT0=1,外部中斷 0 程控為下降沿觸發方式。
    (4)計時器/計數器工作模式寄存器 TMOD


    圖 6
    M1,M0:定時器/計數器模式選擇。C/T:清 0 作為定時器,置 1 作為計數器。
    關于其它的寄存器,可以參考 IAP15W4K61S4 的數據手冊。

    代碼中,我們首先將 IO 口初始化。


    代碼1
    將 IO 口設置為準雙向口,默認低電平,然后通過賦值給 P27 一或者零,來

    控制 P27 口輸出高低電平。

    關于定時器的使用,首先進行初始化。

    (1)設置輔助寄存器 AUXR,將定時器 0 設為傳統 8051 速度的 12 分頻。

    (2)設置定時器 0 為 16 位不可重裝載模式,TH0、TL0 全用。

    (3)清除 T0 溢出中斷標志。

    (4)允許 T0 產生中斷。

    (5)打開總中斷


    代碼2

    完成定時器 0 初始化之后,就必須通過函數 Timer0(unsigned int us)給 TH0、TL0 填值。當時間到了,程序就可以進入定時中斷函數 T0_Inter(void) interrupt 1。當進入一次中斷之后,如果還要再次進入定時中斷函數,就必須再一次裝載定時器。


    代碼3
    我們在中斷函數中再次裝載定時器,改變 PWM 的占空比,讓舵機不停的更換角度,從而達到使機器人做出搖頭的效果。


    代碼4

    4實驗現象

    首先打開下載軟件 STC-ISP。


    圖 7
    (1)點擊 Keil 仿真設置,添加 STC 相關的頭文件。STC 的相關頭文件路徑是我們之前安裝 Keil C51 的路徑,如果之前采用的默認路徑,那么選擇 C 盤 Keil 文件夾。


    圖 8
    (2)添加完 STC 相關的頭文件,點擊彈窗中的確定。

           
    圖 9

    (3)設置單片機的型號、最低波特率、最高波特率如下圖所示,硬件選項等選項默認即可。串口號根據實際情況選擇。


    圖 10
    (4)點擊打開程序文件,選擇我們例程中的.hex 文件。


    圖 11
    (5)點擊下載/編程,下載代碼。

           
    圖 12

    (6)按一下電路板上面的 RST 按鍵,完成下載。


    圖 13


    代碼下載完成之后,打開機器人的電源開關,運行代碼,就能看到我們的機器人在做搖頭動作。



    如需定制開發,請通過官網“瘋殼”網頁底部的“聯系我們”進行聯系

    文件下載請點擊: 4_舵機的基本控制.pdf (1.14 MB)


    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷