劉萌萌 苗煒麗 余彥瓊






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