摘 要: 介紹了一種自行研發與制作的比賽用滅火機器人。該機器人采用STC80C52單片機為主控芯片,結合使用步進電機和溫度傳感器來判斷火源位置,利用紅外測距傳感器與直流電機完成機器人的行走和自動避障等功能。在控制算法上,采用“左右手定則”和無火不入房的策略,提高了尋找火源的效率。
關鍵詞: 滅火機器人;STC80C52;紅外測距傳感器
隨著機器人技術的飛速發展,工業機器人已廣泛應用于各個領域的工業現場,成為了先進制造技術和自動化裝備的典型代表。機器人技術涉及多個技術領域,如電子、機械、自動控制、傳感器、計算機等。隨著國民經濟的持續發展,近年來國內許多企業為應對人力資源緊張的局勢,積極與各大高校聯合,對機器人技術進行開發,這使得對機器人技術的研究達到了空前的高潮。本文所介紹的機器人裝備了信息處理系統、各種傳感器、運動裝置和滅火裝置,可以獨立實施火源的搜索和滅火任務[1]。
1 總體設計思想
通過對比賽規則的分析(用蠟燭模擬火源,隨機分布在場地中,要求在最短的時間內找到火源并將其撲滅),為在最短的時間內完成比賽所規定的任務,對機器人完成整個動作要求做如下設計:機器人在直流電機的驅動下完成前后及轉彎等動作;在運動的過程中利用紅外傳感器和循跡模塊實現自動避障和房間定位功能;當機器人定位火源的房間后,由直流電機和循跡模塊共同工作,驅動機器人運動至滅火位置,隨后通過驅動強力風扇實現滅火任務;滅火完成后返回出發區域。
2 硬件及電路設計
機器人的控制芯片采用MCS-51系列的80C52單片機,它內置8位中央處理單元,32個雙向輸入輸出口,是80C51的增強版本,工作電壓為3.3 V~5 V[2]。機器人硬件部分主要包括驅動模塊、傳感器模塊、滅火模塊和電源模塊,總體框圖如圖1所示。
2.1 驅動模塊
驅動模塊主要包括直流電機驅動和步進電機驅動兩部分。
直流電機驅動模塊[3]主要用于控制直流電機運動,完成機器人向前向后及轉彎等功能。控制芯片采用L298N雙H橋直流電機驅動芯片,其邏輯供電電壓為5 V,與單片機工作電壓相匹配,驅動供電電壓為5 V~46 V,在此采用12 V的電壓輸入。控制原理圖如圖2所示,其中VS和VSS分別為驅動控制電壓和邏輯控制電壓,ENA、ENB分別為直流電機1、2的使能端,OUT1、OUT2、OUT3、OUT4輸出PWM方波控制直流電機1、2的轉速。
步進電機驅動主要用于帶動火焰傳感器旋轉進行火焰的定位。控制芯片采用A3955SB,該芯片是美國Allegro公司生產的,其工作電壓可達50 V,電流可達1.5 A。同時A3955SB芯片還提供過溫保護、過流保護及欠壓保護等功能[4]。A3955SB芯片為16引腳的芯片,其輸入為DAC的3個輸入端D0、D1、D2,通過設置REF端口的電壓和采樣電阻R0,可確定通過步進電機的最大電流Imax,其關系式為Imax=VREF/3R0;RC端口用來控制PWM的波形;輸出為OUTA和OUTB,用于控制步進電機的某一相,同時PHASE端口決定步進脈沖的方向。兩相步進電機的控制電路圖如圖3所示。
2.2 傳感器模塊
傳感器相當于人類的各種感官系統,幫助機器人識別路線、障礙、火源等一系列事物,是機器人完成特定任務的關鍵。該機器人所用傳感器主要包括紅外測距傳感器、循跡模塊和火焰傳感器。
紅外測距傳感器可以精確地檢測距離,其測量范圍為0.2 m~1.5 m,測量信號可以模擬輸出。該機器人所使用的是Sharp公司生產的GP2Y0A02YK0F型紅外測距傳感器,它是基于三角測量原理,傳感器按照某一角度發射紅外光束,光束遇到障礙物后被反射,當CCD檢測器檢測到有紅外光束被反射后,會產生一個距離為L的偏移,運用三角形的原理,結合必要的數據(如發射角a,焦距f等)可以計算出物體到傳感器的距離,如圖4所示。當測量出距離后,傳感器會將距離轉換成電壓值輸出,如圖5所示。
循跡模塊主要由碰撞開關和灰度傳感器組成,用來檢測碰撞和灰度,其工作原理比較簡單,在此不做過多介紹。
火焰傳感器R2868可以檢測到波長在700 nm~1 000 nm范圍內的紅外光,檢測距離為0.8 m,當檢測到火焰信號后,輸出低電壓信號。
2.3 滅火模塊
滅火模塊主要依靠風扇產生強勁的風力將火源撲滅,由于其功率較大,需要采用繼電器對其進行輔助控制。在實際的滅火環境下,可將滅火裝置改為干粉滅火器火噴水裝置來完成。
2.4 電源模塊
機器人采用12 V的鋰電池供電,由于單片機及部分傳感器工作電壓為5 V,需要設計降壓電路。降壓電路的芯片采用LM7805,它具有體積小、使用方便的特點,控制電路如圖6所示。
3 系統軟件設計
根據對比賽規則的分析,決定采用“左右手定則”來實現對機器人路徑的規劃。所謂左右手定則,就是根據比賽場地的實際地形分布,在某段時間內遇到岔路口向左(右)運動,以后都向右(左)運動的方式。在比賽中采用先右后左的策略,在每個房間的門口檢測,如果發現火源,則進入房間滅火,滅火后再次利用火焰傳感器對火源檢測以確定是否將火源撲滅,否則不進入該房間,繼續搜尋下一個房間。此外在機器人前進的過程中,由于某些原因(如控制電路的延時性、摩擦阻力不同、電機性能不同等)會導致左右兩側的直流電機不同步,致使機器人的運動路線產生偏移。在此需要設計前進位置偏移檢測程序來糾正機器人的位置偏差,主要原理是在前進過程中每隔很短的時間,利用紅外測距傳感器對兩側距離進行檢測,若發現兩次檢測的距離不同,則對偏離方向進行計算,并反饋給處理器對機器人的位置進行調整。機器人控制流程如圖7所示。
主程序框架如下:
#include<REG51.h>
#include<absacc.h>
#include<math.h>
#include<intrins.h>
void main(void)
{
TMOD=0x02;//設定T0的工作模式為2
TH0=0x9B;
TL0=0x9B;//裝入定時器的初值
EA=1;
ET0=1;
TR0=1;
init(); //程序初始化
Walk();//開始運動
While(num<=4||mh=0)
{
If (left==1)
{
Check_left();//左手定則
left=0;
}
Else
Check_right();//右手定則
num=num+1;//房間數加1
}
huijia();//搜尋結束或滅火后回家
}
本機器人的設計目的是快速找到火源并將其撲滅之后安全回家,完成任務用時最短者獲勝。其中直線運動時位置調整次數、撞墻次數、房間搜尋安排、能否準確定位火源位置等制約著比賽時間。
通過實際測驗,該機器人性能穩定,運行速度較快,能較好完成滅火任務并安全回家,具有一定的實用性。
參考文獻
[1] 關為民,陳帝伊,馬孝義.智能滅火機器人硬件電路的設計與實現[J].微型機與應用,2010,29(4):21-24.
[2] 陸彬.21天學通51單片機開發[M].北京:電子工業出版社,2011.
[3] 劉雄,林茂松,梁艷陽.特種機器人的低電壓大功率電機驅動系統設計[J].電子技術應用,2013,39(10):49-53.
[4] 韓英桃,胡亞山.A3955SB步進電機驅動芯片及其應用[J].國外電子元器件,2003(2):58-60.