盧茹
摘 要:本文提出并研究了對自動行走機器狗在動作上的控制。設(shè)計中采用ATMEL公司的AVR系列的ATmegal16單片機作為系統(tǒng)核心部件,并采用9路舵機控制機器狗的動作,從而使機器狗的整個系統(tǒng)設(shè)計更加智能化。
關(guān)鍵詞:機器狗 單片機 舵機
本課題采用關(guān)節(jié)型結(jié)構(gòu),成功地設(shè)計了智能機器狗的本體結(jié)構(gòu)。本機器狗具有前后行、平地側(cè)行等基本行走功能。所有的關(guān)節(jié)都用Futaba S3003舵機,主要完成腿部和頭部的擺動,充分利用舵機的特性,使舵機具有大力矩、控制簡單、裝配靈活、相對經(jīng)濟的特點。機器狗實物圖如圖1所示。
圖1 機器狗實物圖
一、系統(tǒng)硬件結(jié)構(gòu)設(shè)計
1.舵機功能模塊設(shè)計
機器狗的每一個關(guān)節(jié)都由一個舵機來擔(dān)任,通過單片機產(chǎn)生的PWM波形來控制舵機的角度。由于機器狗有9個自由度,所以機器狗身上有9個舵機。要控制機器狗動起來就必須同時控制9個舵機。由于ATmega16內(nèi)部集成只有4路PWM輸出,已經(jīng)不能滿足本系統(tǒng)需求,所以只能通過T0定時器產(chǎn)生20us的溢出中斷配合I/O口,在中斷服務(wù)函數(shù)中比較產(chǎn)生占空比在2.5%~12.5%范圍內(nèi)可調(diào)的PWM波形輸出,從電動機的控制線輸入就能同時控制9個舵機在-90°~90°范圍內(nèi)旋轉(zhuǎn)。由于要同時輸出9路PWM,所以系統(tǒng)采用12MHz外部晶體振蕩器作為時鐘源。
(1)Futaba S3003舵機的簡述。舵機本質(zhì)上是可定位的微型馬達,即微型伺服馬達。當(dāng)接收到一個位置指令后,它就會運動到指定的位置。它常用于個人機器人模型的可控運動關(guān)節(jié),也常稱這種關(guān)節(jié)為自由度,并具有大力矩、控制簡單、裝配靈活、相對經(jīng)濟的特點。
(2)Futaba S3003舵機的控制方式。標(biāo)準(zhǔn)的舵機有三條連接線,分別為電源線、地線、控制線。本舵機的三條線中,紅色為電源線、黑色為地線、白色為控制線。工作電源為4.8~6V。由于舵機在工作中會產(chǎn)生噪聲,所以舵機電源與單片機的電源是相互獨立的。
周期為20ms脈沖信號的正向脈沖寬度與舵機輸出臂位置的關(guān)系,如下表所示。
表 周期為20ms脈沖信號的正向脈沖寬度與舵機輸出臂位置的關(guān)系
輸入正脈沖寬度 伺服馬達輸出臂位置(。)
t=1.44ms δ=7.2% 0
t=0.89ms δ=4.4% -45
t=2.05ms δ=10% 45
t=0.6ms δ=3% -90
t=2.32ms δ=11.7% 90
2.鍵盤功能模塊設(shè)計
本系統(tǒng)需要的按鍵較多,為了減少系統(tǒng)的I/O資源,系統(tǒng)的功能鍵盤設(shè)計采用的是4×4矩陣式鍵盤結(jié)構(gòu)。矩陣式鍵盤由行線和列線組成,而按鍵則在行線和列線的交叉處用于連接行線和列線,這樣一個矩陣式鍵盤含有的按鍵個數(shù)就等于鍵盤的行數(shù)和列數(shù)的乘積,只需要8個I/O口就能實現(xiàn)16個按鍵的輸入,這樣就大大減少了系統(tǒng)所需的資源。
鍵盤主要用于機器狗動作的調(diào)試,實際運行時要去掉這個模塊。
3.電源功能模塊設(shè)計
本系統(tǒng)的電源共有6V、5V、3.3V三種,其中系統(tǒng)6V電源由4節(jié)1.5V電池串聯(lián)提供,用作舵機的電源輸入。系統(tǒng)的5V電源由7~12V鋰電池通過LM7805穩(wěn)壓提供,用作控制系統(tǒng)的電源輸入和光電傳感器的電源輸入。系統(tǒng)的3.3V電源由系統(tǒng)的5V電源通過LM1117穩(wěn)壓提供,用作語音芯片的電源輸入。其中電阻R1和發(fā)光二極管DS1組成電源工作指示燈。系統(tǒng)電源設(shè)計電路原理圖,如圖2所示。
圖2 系統(tǒng)電源的電路原理圖
二、系統(tǒng)軟件設(shè)計
1.舵機驅(qū)動程序設(shè)計
舵機驅(qū)動程序主要完成對9個舵機的控制,通過ATmega16單片機的T0定時器中斷產(chǎn)生20us的中斷計數(shù),當(dāng)中斷計數(shù)到1000時,對計數(shù)值進行清零。在中斷服務(wù)函數(shù)中設(shè)定一個比較值,當(dāng)大于比較值時,輸出電平取反,從而達到0.0%~100%的占空比的可調(diào)的脈寬調(diào)制波形輸出(PWM)。Futaba S3003舵機的驅(qū)動只要占空比在2.5%~12.5%范圍就能控制舵機的位置在-90°~90°范圍。
2.鍵盤掃描程序設(shè)計
矩陣式鍵盤的處理方式同非矩陣式鍵盤基本相同,但由于矩陣式鍵盤的每個按鍵并不獨立占一個I/O口,因此它的鍵盤識別采用了行掃描法。
行掃描法的基本原理為:程序首先使鍵盤陳列的一條列線為低電平,如果這條線上沒有鍵被按下,則各行線的電平也都為高;如果列線上有鍵被按下,則相應(yīng)的行線上的電平變?yōu)榈碗娖?,這樣根據(jù)行線和列線的編號就可得到按鍵的鍵值。
3.機器狗運行程序設(shè)計
機器狗運行程序是本系統(tǒng)的核心程序之一。由于機器狗的每一個動作都調(diào)過機器狗動作調(diào)試程序,機器狗要執(zhí)行某一個動作時,只需要指定相應(yīng)的地址調(diào)用其中的數(shù)據(jù)即可。
在程序執(zhí)行時,先讀取起始地址、結(jié)束地址、速度、方向,根據(jù)讀取的命令字執(zhí)行機器狗的動作。機器狗要執(zhí)行一個向前走的一套動作中就包含了6個動作,運行時先要執(zhí)行第一個動作,直到完成第一個動作時,再執(zhí)行下一個動作,以此類推,直到完成了6個動作時,向前走的一套動作才能完成。
4.機器狗動作調(diào)試程序設(shè)計
機器狗動作調(diào)試程序是本系統(tǒng)的一個重要子程序。機器狗在運行時的每一個動作的數(shù)據(jù)都是通過這一子程序調(diào)試得出的。機器狗動作調(diào)試子程序把機器狗運行的動作拆分為若干個姿勢,并記錄每一個姿勢的數(shù)據(jù),得出數(shù)據(jù)的好壞直接影響機器狗在運行中動作的靈活性和穩(wěn)定性。
在程序執(zhí)行時,先讀取4×4鍵盤的鍵值,同時可以通過按鍵11來控制舵機轉(zhuǎn)動的方向。當(dāng)調(diào)試好一個動作時,按下按鍵15,單片機通過UART串行發(fā)送每一個舵機的數(shù)據(jù)到計算機。
三、小結(jié)
本課題主要是研究智能機器狗在動作上的控制,使其能夠?qū)崿F(xiàn)簡單的動作功能。本文論述了整個系統(tǒng)的工作原理以及硬件和軟件的設(shè)計方法。在實際應(yīng)用中,基于舵機的特點,機器狗可以更加智能化,將會給人們的生活帶來更多的方便和樂趣。
參考文獻:
[1]易格斯.適用于機器人的關(guān)節(jié)模塊[J].航空制造技術(shù),2009(18).