基于單片機的多功能智能小車機器人
隨著科學(xué)技術(shù)的日新月異及傳感器技術(shù)的不斷發(fā)展,各國對智能移動機器人的研制和開發(fā)力度也不斷加大,各式各樣的機器人進入社會生活的方方面面。機器人可以代替人力進行許多具有一定危險性的活動,進入一些人類難以涉足的空間,比如不久前成功在月球登陸的“玉兔”號月球車。本文設(shè)計的小車可以應(yīng)用于無人駕駛機動車、無人工廠、倉庫等領(lǐng)域,有實際應(yīng)用推廣價值。
本文引用地址:http://m.butianyuan.cn/article/201610/309874.htm1 系統(tǒng)總體設(shè)計
本文設(shè)計的小車采用51單片機作為控制核心,使用光電傳感器檢測小車的運動狀態(tài),進行循跡和避障,并由LCD實時顯示小車的運動狀態(tài)。金屬傳感器檢測到鐵片后小車由循跡狀態(tài)進入到避障狀態(tài),按下遙控器可使小車進入遙控狀態(tài),每次狀態(tài)轉(zhuǎn)換都有報警指示。智能小車實物照片及功能示意圖如圖1所示。
2 系統(tǒng)硬件設(shè)計
2.1 硬件總體設(shè)計
根據(jù)設(shè)計任務(wù)要求及功能實現(xiàn)的分析,畫出系統(tǒng)的總體電路圖,如圖2所示。整個系統(tǒng)為模塊化設(shè)計,實現(xiàn)簡單。
系統(tǒng)主要以單片機最小控制系統(tǒng)為核心,包括電源模塊接口、外圍傳感器接口、LCD顯示器接口、遙控模塊接口、電機驅(qū)動模塊接口、報警模塊接口等,各部分共同構(gòu)成了智能小車的整體。
2.2 分系統(tǒng)硬件設(shè)計
2.2.1 循跡、避障模塊
機器人要實現(xiàn)自動循跡功能和避障功能就必須要感知導(dǎo)引線和障礙物,感知導(dǎo)引線相當(dāng)給機器人一個視覺功能。自動尋跡是基于自動導(dǎo)引小車(AGV-auto-guidedvehicle)系統(tǒng),選擇正確的路線行進。采用與地面顏色有較大差別的線條作引導(dǎo),使用傳感器感知導(dǎo)引線和障礙判斷。為了簡單起見,系統(tǒng)中使用了五個紅外反射式光電傳感器進行循跡和避障,其中三個ST178H型紅外傳感器用于尋跡,兩個E18型用于障礙判斷,傳感器實物如圖3所示。
2.2.2 金屬檢測模塊
當(dāng)小車行進到黑線的盡頭時,需要檢測終點,由控制器發(fā)出指令,進入相應(yīng)的程序。只要在運行軌跡的終點放置一塊鐵片,再用金屬傳感器檢測金屬片就可以實現(xiàn),電路簡單,不會占用很多CPU資源。本文選用了LJ12A3-Z-4/BX型電感式金屬接近開關(guān)傳感器,該傳感器體積小,功耗低,工作電流只有0.5~3 mA,應(yīng)用方便,輸出信號可直接接單片機。
2.2.3 遙控模塊
無線數(shù)據(jù)傳輸被廣泛應(yīng)用在車輛監(jiān)控、遙控、遙測、小型無線網(wǎng)絡(luò)、無線數(shù)據(jù)通信、機器人控制、數(shù)字音頻、數(shù)字圖像的傳輸?shù)阮I(lǐng)域中。為了實現(xiàn)對小車的遙控,需要一個無線遙控模塊。本文采用DF無線數(shù)據(jù)收發(fā)模塊,其工作頻率為315MHz,為全球通用的ISM頻段,發(fā)射頻率500mW。DF無線收發(fā)模塊結(jié)合編解碼芯片PT2262/2272可以將單片機發(fā)出的數(shù)據(jù)經(jīng)過編解碼之后發(fā)射出去。DF無線收發(fā)模塊具有發(fā)射距離遠,抗干擾性強的特點。無線發(fā)射/接收模塊的實物圖如圖4所示。
2.2.4 顯示模塊
在小車行進時,需要顯示當(dāng)前的工作狀態(tài),顯示裝置就必不可少了??紤]到需要顯示大量的字母,系統(tǒng)選擇使用1602型LCD顯示。1602的意思是每行顯示16個字符,可以顯示兩行,為字符型液晶,即只能顯示ASCII碼字符,如數(shù)字、大小寫字母、各種符號等。系統(tǒng)采用的1602為5 V電壓驅(qū)動,16針接口,帶背光,內(nèi)置含128個字符的ASCII碼字符集字庫,只有并行接口,沒有串行接口。
2.2.5 測速模塊
系統(tǒng)中使用兩個TCR5000型紅外反射傳感器對車輪轉(zhuǎn)速進行測量,車輪上有黑白間隔的碼盤,單片機對傳感器輸出的脈沖進行計數(shù),通過計算一定時間內(nèi)的脈沖數(shù)計算出小車的速度。TCR5000型紅外反射傳感器及碼盤如圖5所示。
3 軟件設(shè)計
系統(tǒng)軟件設(shè)計采用C語言編程,并采用模塊化設(shè)計,將各功能軟件編寫為一個個子函數(shù),各個函數(shù)模塊之間獨立性強,需要時只要進行調(diào)用即可,具有很好的可移植性。系統(tǒng)軟件設(shè)計主要包括外部中斷0的初始化,小車傳感器初始化,LCD初始化及實時顯示工作狀態(tài),小車啟動,循跡程序,金屬檢測程序,聲音報警程序,中斷服務(wù)函數(shù),避障程序,檢測遙控指令,聲音報警,遙控程序等。主程序流程圖如圖6所示。
將電源打開后,單片機上電復(fù)位,對外部中斷0進行初始化,然后調(diào)用傳感器初始化函數(shù),LCD初始化函數(shù),啟動小車,LCD顯示小車當(dāng)前狀態(tài),開始調(diào)用循跡函數(shù),對黑線進行檢測,根據(jù)傳感器信號判斷小車與黑線的位置關(guān)系,由單片機輸出相應(yīng)的驅(qū)動信號,控制左右兩輪的轉(zhuǎn)速,使小車時刻保持沿黑線行走。當(dāng)小車行駛到黑線的終點時,金屬傳感器檢測到鐵片,小車發(fā)出聲音報警,同時進入中斷服務(wù)函數(shù),調(diào)用避障子函數(shù),開始避障,并更新LCD顯示內(nèi)容。當(dāng)遇到障礙時,小車會改變方向,繞過障礙物行駛。當(dāng)按下遙控按鍵時,小車收到指令,發(fā)出聲音報警,跳出避障程序,進入遙控程序,并更新LCD顯示內(nèi)容。此時,可以對小車進行遙控回收,完成整個測試任務(wù)。C51語言主程序如下所示:
4 結(jié)束語
評論