申江江,齊銀鵬, 陳方超,陳 毓,梁 浩
(1.海軍航空工程學院 航空訓練基地,山東 青島 266109;2.海軍航空工程學院 青島校區,山東 青島 266041)
隨著科學技術的日新月異及傳感器技術的不斷發展,各國對智能移動機器人的研制和開發力度也不斷加大,各式各樣的機器人進入社會生活的方方面面。機器人可以代替人力進行許多具有一定危險性的活動,進入一些人類難以涉足的空間,比如不久前成功在月球登陸的“玉兔”號月球車。本文設計的小車可以應用于無人駕駛機動車、無人工廠、倉庫等領域,有實際應用推廣價值[1]。
本文設計的小車采用51單片機作為控制核心,使用光電傳感器檢測小車的運動狀態,進行循跡和避障,并由LCD實時顯示小車的運動狀態。金屬傳感器檢測到鐵片后小車由循跡狀態進入到避障狀態,按下遙控器可使小車進入遙控狀態,每次狀態轉換都有報警指示。智能小車實物照片及功能示意圖如圖1所示。
根據設計任務要求及功能實現的分析,畫出系統的總體電路圖,如圖2所示。整個系統為模塊化設計,實現簡單。

圖1 智能小車實物照片及功能示意圖Fig.1 Car and description of car function
系統主要以單片機最小控制系統為核心,包括電源模塊接口、外圍傳感器接口、LCD顯示器接口、遙控模塊接口、電機驅動模塊接口、報警模塊接口等,各部分共同構成了智能小車的整體。

圖2 系統的總體電路圖Fig.2 Circuit diagram of whole program
2.2.1 循跡、避障模塊
機器人要實現自動循跡功能和避障功能就必須要感知導引線和障礙物,感知導引線相當給機器人一個視覺功能。自動尋跡是基于自動導引小車 (AGV—auto-guided vehicle)系統,選擇正確的路線行進。采用與地面顏色有較大差別的線條作引導,使用傳感器感知導引線和障礙判斷。為了簡單起見,系統中使用了五個紅外反射式光電傳感器進行循跡和避障,其中三個ST178H型紅外傳感器用于尋跡,兩個E18型用于障礙判斷,傳感器實物如圖3所示。

圖3 ST178H和E18型紅外傳感器Fig.3 ST178H and E18 infrared sensor
2.2.2 金屬檢測模塊
當小車行進到黑線的盡頭時,需要檢測終點,由控制器發出指令,進入相應的程序。只要在運行軌跡的終點放置一塊鐵片,再用金屬傳感器檢測金屬片就可以實現,電路簡單,不會占用很多CPU資源。本文選用了LJ12A3-Z-4/BX型電感式金屬接近開關傳感器,該傳感器體積小,功耗低,工作電流只有0.5~3 mA,應用方便,輸出信號可直接接單片機。
2.2.3 遙控模塊
無線數據傳輸被廣泛應用在車輛監控、遙控、遙測、小型無線網絡、無線數據通信、機器人控制、數字音頻、數字圖像的傳輸等領域中[2]。為了實現對小車的遙控,需要一個無線遙控模塊。本文采用DF無線數據收發模塊,其工作頻率為315MHz,為全球通用的ISM頻段,發射頻率<500mW。DF無線收發模塊結合編解碼芯片PT2262/2272可以將單片機發出的數據經過編解碼之后發射出去。DF無線收發模塊具有發射距離遠,抗干擾性強的特點。無線發射/接收模塊的實物圖如圖4所示。

圖4 無線接收及發射模塊Fig.4 Wireless receiving and transmitter module
2.2.4 顯示模塊
在小車行進時,需要顯示當前的工作狀態,顯示裝置就必不可少了。考慮到需要顯示大量的字母,系統選擇使用1602型LCD顯示。1602的意思是每行顯示16個字符,可以顯示兩行,為字符型液晶,即只能顯示ASCII碼字符,如數字、大小寫字母、各種符號等。系統采用的1602為5 V電壓驅動,16針接口,帶背光,內置含128個字符的ASCII碼字符集字庫,只有并行接口,沒有串行接口。
2.2.5 測速模塊
系統中使用兩個TCR5000型紅外反射傳感器對車輪轉速進行測量,車輪上有黑白間隔的碼盤,單片機對傳感器輸出的脈沖進行計數,通過計算一定時間內的脈沖數計算出小車的速度。TCR5000型紅外反射傳感器及碼盤如圖5所示。

圖5 TCR5000型紅外反射傳感器和碼盤Fig.5 TCR5000 infrared reflection sensor and Counting wheel
系統軟件設計采用C語言編程[3],并采用模塊化設計,將各功能軟件編寫為一個個子函數,各個函數模塊之間獨立性強,需要時只要進行調用即可,具有很好的可移植性。系統軟件設計主要包括外部中斷0[4]的初始化,小車傳感器初始化,LCD初始化及實時顯示工作狀態,小車啟動,循跡程序,金屬檢測程序,聲音報警程序,中斷服務函數,避障程序,檢測遙控指令,聲音報警,遙控程序等。主程序流程圖如圖6所示。

圖6 系統主程序軟件流程圖Fig.6 Flow chart of main program
將電源打開后,單片機上電復位,對外部中斷0進行初始化,然后調用傳感器初始化函數,LCD初始化函數,啟動小車,LCD顯示小車當前狀態,開始調用循跡函數,對黑線進行檢測,根據傳感器信號判斷小車與黑線的位置關系,由單片機輸出相應的驅動信號,控制左右兩輪的轉速,使小車時刻保持沿黑線行走。當小車行駛到黑線的終點時,金屬傳感器檢測到鐵片,小車發出聲音報警,同時進入中斷服務函數,調用避障子函數,開始避障,并更新LCD顯示內容。當遇到障礙時,小車會改變方向,繞過障礙物行駛。當按下遙控按鍵時,小車收到指令,發出聲音報警,跳出避障程序,進入遙控程序,并更新LCD顯示內容。此時,可以對小車進行遙控回收,完成整個測試任務。C51語言主程序如下所示:
int main(void)
{
TCON=0x05;
TMOD=0x11; //定時/計數器初始化
IE=0xAA; //外部中斷0初始化
sensor_init(); //傳感器初始化
car_ahead(); //小車啟動
while(1)
{
car_follow(); //循跡子函數
}
}
void service_int0 ()interrupt 0 using 1 //外部中斷 0服
務函數
{
car_ringing(); //報警子函數
while((P1&0x0f) ==0x00)
{
car_prevent(); //避障子函數
}
car_ringing();
while(1)
{
car_remotecontrol(); // 遙控子函數
}
}
對智能小車的高級開發可對它加裝GPS(全球衛星定位系統)或加裝基于Internet的接口電路、攝像頭等,使它具備全球機動能力和遠程控制功能。其典型應用為遠程偵察機器人,智能探測機器人[5]等。隨著不斷地開發及產品的投入使用,智能尋跡、避障小車在無軌列車、無人駕駛方面將具有更廣泛的應用前景和使用價值[6]。
[1]吳建平,殷戰國,曹思榕,等.紅外反射式傳感器在自主式尋跡小車中的應用[J].中國測試技術,2004,30(6):33-35.WU Jian-ping,YIN Zhan-guo,CAO Si-rong,et al.Aplication of infared sensor in auto-guided motor[J].China Measurement Test,2004,30(6):33-35
[2]方建軍,何廣平.智能機器人[M].北京:化學工業出版社,2004.
[3]譚浩強.C程序設計[M].北京:清華大學出版社,2009.
[4]劉文濤.單片機C51語言應用設計[M].北京:人民郵電出版社,2007.
[5]張煒.網絡機器人研究與發展分析[J].機器人應用,2009(3):6-7.ZHANG Wei.Reaseach and development analysis of internet robot[J].Robot Application,2009(3):6-7.
[6]劉鳳然,田紅芳,王侃.基于單片機的移動機器人自動避障控制系統[J].中國儀器儀表,2001(3):27-29.LIUFeng-ran,TIANHong-fang,WANGKan.Automatic obstacle avoidance control system of moving robot basing on SCM[J].China Instrument,2001(3):27-29.