劉萌萌 苗煒麗 余彥瓊
摘要:設(shè)計了一款基于單片機AT89C52的循跡避障小車,可在危險環(huán)境下發(fā)揮重要作用。硬件控制系統(tǒng)以單片機AT89C52為控制核心,采用紅外探測法實現(xiàn)對路況的檢測,通過紅外對管來完成循跡、避障功能,并將相關(guān)信號傳送給單片機,經(jīng)單片機分析處理后,控制驅(qū)動芯片LG9110驅(qū)動直流電機實現(xiàn)智能小車前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止。軟件采用C語言編程,實現(xiàn)對小車運動控制。通過多次試驗測試,智能小車能實現(xiàn)無線遙控、避障、循跡功能。
關(guān)鍵詞:單片機AT89C52;智能小車;循跡;避障
0? 引言
傳感器、自動化控制技術(shù)的飛速發(fā)展[1],不但改善人類生活方式,也促進人工智能產(chǎn)業(yè)飛速發(fā)展。智能小車是人工智能領(lǐng)域一個研究熱點,也是生活中應(yīng)用最廣泛一個方向。
人們在不斷探討、改造、認識自然的過程中,研制出能替代人勞動的機器一直是人類夢想[2]。智能小車能代替人類,在諸如爆破、有毒氣體、易燃易爆、陰暗潮濕等場所工作。智能小車在快遞包裹分揀行業(yè)、無人工廠都也有著較好的應(yīng)用前景。一些發(fā)達國家已把機器人制作比賽作為創(chuàng)新教育的戰(zhàn)略性手段[3]。全國、省內(nèi)電子大賽幾乎每年都有智能小車題目,全國各大高校均很重視該方面的研究[4]。在此背景下設(shè)計了一款基于單片機的智能小車。小車通過紅外檢測技術(shù)識別黑線軌跡,探測障礙物,能在固定路線行駛和避障。
1? 總體方案設(shè)計構(gòu)成
智能小車有遙控、自動兩種工作模式。遙控模式:外部紅外遙控系統(tǒng)通過特定的編解碼集成芯片對智能小車實現(xiàn)遙控操作,實現(xiàn)前進、后退、轉(zhuǎn)彎等功能;自動模式:智能小車在單片機控制下能自主實現(xiàn)循跡避障功能。使用者可根據(jù)外部具體環(huán)境選擇小車工作模式。智能小車由控制模塊、紅外遙控模塊、避障模塊、循跡模塊、電源模塊等構(gòu)成。圖1為智能小車硬件設(shè)計框圖。
本設(shè)計的智能小車由控制模塊、紅外遙控模塊、避障模塊、循跡模塊、電源模塊等構(gòu)成。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。智能小車能沿著給定路線(黑線)前進,當(dāng)遇到障礙物時,紅外發(fā)射管發(fā)射的紅外線,經(jīng)反射后被紅外接收管接收,傳感器檢測到這一信號就可確認前方有障礙物,并將信號傳給單片機,單片機經(jīng)分析處理后,由內(nèi)部程序控制小車前進,后退,轉(zhuǎn)向,停止,從而實現(xiàn)避障功能。當(dāng)前方無障礙時,紅外線隨傳播距離增加而逐漸衰弱,小車繼續(xù)沿線路前進。
2? 系統(tǒng)硬件組成與實現(xiàn)設(shè)計
2.1 控制模塊
本設(shè)計采用單片機AT89C52作為控制芯片。AT89C52芯片具有方便快捷、易于操作等優(yōu)點,是一種低功耗、高性能CMOS 8位微控制器。具有8K可編程可擦除Flash存儲器,片內(nèi)有8位CPU和可編程Flash,適用于多種嵌入式控制系統(tǒng)。
上電后,單片機根據(jù)是否收到外部遙控信號,判斷小車工作模式。如是遙控模式,控制驅(qū)動芯片執(zhí)行相應(yīng)操作;如是自動運行模式,通過紅外傳感器檢測當(dāng)前路況,控制驅(qū)動模式,完成小車在制定路線運行。
2.2 電機驅(qū)動模塊
智能小車電機選擇重量輕、體積小、轉(zhuǎn)動力矩大、方便的直流減速電機。電機優(yōu)點:重量輕、轉(zhuǎn)動力矩大、易組裝、方便等。內(nèi)置減速齒輪組,可直接利用內(nèi)部齒輪組的相互配合實現(xiàn)調(diào)節(jié)直流減速電機的轉(zhuǎn)速和轉(zhuǎn)向功能[5]。
單片機管腳輸出高電平信號電壓較弱,不足以驅(qū)動直流電機,因此需選擇專用電機驅(qū)動芯片來驅(qū)動電機運行??紤]到小車重量因數(shù)、電壓,選擇了抗干擾性好,易于控制的電機驅(qū)動芯片LG9110。智能小車采用左后輪和右后輪兩輪驅(qū)動。單片機通過控制P0.1∽P0.3端口電平,對直流電機M1、M2的控制。當(dāng)P0.0∽P0.3=“1010”時,M1、M2正轉(zhuǎn),小車前進;P0.0∽P0.3=“0101”時,M1、M2反轉(zhuǎn),小車后退;P0.0∽P0.3=“1001”時,M1正轉(zhuǎn)M2反轉(zhuǎn),小車右轉(zhuǎn);P0.0∽P0.3=“0110”時,M1反轉(zhuǎn)M2正轉(zhuǎn),小車左轉(zhuǎn)。
2.3 傳感器模塊
智能小車通過傳感器模塊實現(xiàn)循跡、避障功能。傳感器模塊采用紅外光電傳感器檢測路況[6]。因黑色、白色對紅外線吸收系數(shù)不同,根據(jù)紅外接收管接收到的紅外線信號強弱來判斷“道路情況”,以及前方是否存在障礙物。圖3為路況檢測設(shè)計原理圖。三對紅外裝置分別裝在車體左、中、右。循跡路線為白色地面的黑色跑道,寬度約2CM左右,大于車體左右兩個紅外對管的距離,保證小車正常運行。
2.3.1 循跡模塊
單片機根據(jù)反射回來的紅外光來確定黑線位置和小車的行走路線[7-8]。舉例:當(dāng)小車左側(cè)跑出黑線,小車左側(cè)的紅外接收管V4導(dǎo)通,P3.5置低電平(注:P3.5為左側(cè)紅外探頭),單片機控制小車右轉(zhuǎn);當(dāng)小車右側(cè)跑出黑線,右側(cè)V5導(dǎo)通,P3.6置低電平,小車左轉(zhuǎn)。
2.3.2 避障報警模塊
目前主流避障方案有超聲波、紅外線避障。超聲波傳播的方向存在一定誤差[9],且硬件電路復(fù)雜,成本高。紅外線避障使用簡便,成本低,性能穩(wěn)定,能在空氣中傳播較遠的距離。智能小車選擇紅外線避障。
小車前端、向下探頭能感應(yīng)前方是否有障礙,當(dāng)無障礙物時,接收探頭收不到紅外信號;當(dāng)有障礙物時,接收探頭接收到被反射回來的紅外線,其相應(yīng)管腳為低電平,單片機接收到低電平信號后,將P0.6置為高電平信號,三極管V1導(dǎo)通,蜂鳴器SB1導(dǎo)通,發(fā)出報警信號。
2.4 電源模塊
本系統(tǒng)單片機AT89C52、電機驅(qū)動芯片及其他芯片均需要+5V工作電壓,故采用4節(jié)1.5V干電池為系統(tǒng)提供6V電源,既能滿足系統(tǒng)正常運行,干電池更換也非常方便。
3? 系統(tǒng)軟件設(shè)計
程序編寫采用的是移植性較高、結(jié)構(gòu)清晰的C語言[10]。本設(shè)計采用模塊化編程,以下主要介紹循跡模塊、避障模塊。
單片機上電后,對各個模塊進行初始化。首先檢測是否有遙控信號,之后對信號進行解碼,執(zhí)行相關(guān)操作。
3.1 循跡流程圖
系統(tǒng)運行中,主程序一旦檢測到遙控器發(fā)出“循跡”信號后,直接調(diào)用循跡函數(shù),完成循跡功能。車體正前方的兩個紅外接收管,如果左側(cè)紅外傳感器檢測到黑線,則說明小車已經(jīng)向右偏離軌道,需要向左行駛進行糾正。同理,如果右側(cè)紅外傳感器檢測到黑線,則說明小車已經(jīng)向左偏離軌道,需要向右行駛進行糾正。單片機通過掃描兩個紅外傳感器的信號,控制小車始終沿正確軌道行駛。
3.2 防撞報警流程圖
系統(tǒng)運行中,主程序一旦檢測到遙控器發(fā)出“防撞”信號后,直接調(diào)用防撞報警函數(shù),完成防撞報警功能。
智能小車在行進中,會檢測前方是否有障礙,如果正前方有障礙,小車會后退轉(zhuǎn)向報警。如果左側(cè)有障礙,單片機接收信號后控制小車右轉(zhuǎn),避開障礙并報警;如果右側(cè)有障礙,單片機接收信號后控制小車左轉(zhuǎn),避開障礙并報警。
4? 測試
測試場所包括起點、直線區(qū)、行駛區(qū)、循跡區(qū)、避障區(qū)。實際測試20次,在直線區(qū)小車位置調(diào)整次數(shù)為1次,碰觸障礙物次數(shù)為1次。
經(jīng)多次測試,智能小車能在5s內(nèi)完成直線行駛。在循跡區(qū),小車運行穩(wěn)定,能實現(xiàn)平穩(wěn)轉(zhuǎn)彎,車身行駛在賽道、中央,基本能做10內(nèi)完成循跡。在避障區(qū),小車能順利完成避障功能,車身基本不偏離,觸碰障礙物次數(shù)僅為1次。整體看來,小車能較好完成預(yù)期功能。
5? 結(jié)論
本系統(tǒng)以單片機AT89C52為控制核心,通過接收紅外遙控信號,驅(qū)動直流減速電機實現(xiàn)小車前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止等運行模式。經(jīng)過反復(fù)測試,智能小車能在黑色預(yù)設(shè)直線軌道、弧形軌道上行駛,如有偏離,可自動糾正到預(yù)設(shè)軌道;行駛中遇到障礙物,通過自行調(diào)整,能躲避障礙并報警提醒,繼續(xù)循跡。智能小車運行安全、穩(wěn)定、操作簡單,達到預(yù)期要求。
參考文獻:
[1]陳夢婷,胡白燕,黃璨.基于單片機的智能循跡避障小車的設(shè)計與實現(xiàn)[J].智能機器人,2016(4):47-51.
[2]趙春,郭秀珍.智能循跡避障小車的設(shè)計[J].內(nèi)蒙古科技與經(jīng)濟,2018(24):107-109.
[3]劉志嫻,江敏,阮玲玉.基于51單片機智能小車的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2018,14(21):273-274,279.
[4]聶茹.基于藍牙遙控的多功能智能小車設(shè)計[J].自動化與儀器儀表,2016,(4):81-85.
[5]付喜錦,高曉紅.多功能智能循跡避障小車的設(shè)計與實現(xiàn)[J].隴東學(xué)院學(xué)報,2018,29(3):11-14.
[6]李歡.基于51單片機的職能小車設(shè)計[J].信息與電腦(理論版),2016(23).
[7]楊睿,路雪松,金亞玲.智能小車的避障控制系統(tǒng)的單片機設(shè)計研究[J].時代農(nóng)機,2018(09):248.
[8]祝松柏,李清宇.基于STC89C52的循跡避障智能小車的設(shè)計[J].輕工科技,2018,34(03):65-66.
[9]郭志超,何愛龍.自動循跡避障尋光智能小車硬件系統(tǒng)設(shè)計[J].新鄉(xiāng)學(xué)院學(xué)報,2016,9(33):45-48.
[10]羅莎.計算機中C語言的應(yīng)用特點分析[J].計算機光盤軟件與應(yīng)用,2012(7):165-166.