樊一航,史鈺博,陳 垚,吳 凡,黃 帥
(西安石油大學電子工程學院 陜西 西安 710065)
紅外循跡智能小車主要由單片機模塊、傳感器模塊、電機驅動模塊以及電源模塊組成。該小車擁有自主循跡功能和避障功能。本研究我們采用的主控芯片為STC89C52單片機,該設計的傳感器模塊分為避障模塊與循跡模塊,循跡模塊均采用基于紅外光學反射原理的光電對管和集成放大器實現,能夠識別黑白兩種顏色的路面,避障模塊由紅外避障模塊和超聲波測距模塊組成,能夠測量小車與前方障礙物的距離[1],并傳輸給控制模塊。本設計的動力單元由電機驅動模塊L293B驅動芯片以及4個帶有減速齒輪組的直流電機構成,供電單元采用兩塊3.7V直流電池串聯,將這些單元集成在一起,實現了小車的自動避障和自動循跡的功能。
智能小車的控制單元作為小車運行的核心部分,其作用為控制小車的運動。本越障小車采用的MCU是STC89C52單片機,見圖1。控制單元設計包括單片機的啟振電路和功能選擇電路。單片機啟動運行時,需要用按鍵進行功能選擇,以實現小車的功能切換,電路原理圖見圖2。單片機晶振使用外接晶體和電容組成的并聯諧振回路。為了使控制更加精確便捷,我們選用的晶振頻率為12.000 MHz。
因為單片機的輸出信號電壓偏低,且負載能力不足以用來驅動直流電動機,因此采用L293B驅動芯片完成電機的驅動工作。L293B驅動芯片是一款性能卓越的直流電機驅動芯片,它可以同時驅動4個直流電機。在4~6 V的電壓下,每個輸出口均可輸出1A左右的電流。并且L293B芯片還具有過熱自動關斷的功能和單獨的邏輯供應功能,以及高噪聲免疫力[2]。L293B芯片可以將單片機輸出的信號進行功率的放大,以此來驅動4個電機正常工作。電路圖見圖1。

圖1 驅動部分電路圖
小車采用了4位共陽極數碼管顯示,它有4個位選,由于本實驗只需要顯示小車停止行駛的時間,因而值需要選通一位位選線,當各段陰極上的電平為“0”時,該段點亮,電平為“1”時,該段熄滅。
DHT11確保產品具有極高的可靠性與卓越的長期穩定性。如果探測到黑線,紅外對管接收端接收到黑白線反射回來的紅外光,其輸出經過LM393電壓比較器后立即發生高低電平的轉換,此信號經過放大之后送到單片機進行處理,隨后將結果發送到電機的驅動單元,完成路徑的校正[3]。
在運動過程中,車體不可避免地偏離運動軌跡,為了使車體在車體偏離后仍可自動調整方向,重新回到運動軌跡上,我們采用了3個集成的紅外對管,這樣便可以保證始終有兩個對管始終可以檢測到運動軌跡。電路圖見圖2。

圖2 紅外循跡模塊電路圖
傳感器對環境光線有著很強的適應能力,具有一個紅外發射管和一個紅外接收管。其原理為發射管先發射出紅外線,當紅外線的探測范圍內發現障礙物時,隨后由接收管接受反射回來的紅外線,經過集成放大器電路處理后,此時信號指示燈會亮起,并且數字信號輸出端會輸出一個低電平信號,MCU得到一個避障的信號。此外,該模塊可以利用電位器旋轉按鈕調節探測靈敏度。調節范圍為2~30cm,工作電壓為3.3~5 V。
超聲波模塊將采購現有的HC-SR04超聲波測距模塊,該模塊可以給我們提供2~400 cm的傳輸距離和時間的計算功能,并進行精確的計算,測量距離的精確度可以達到3mm左右。此單元包含了控制電路、超聲波發射和接收三大部分。此模塊的工作原理為:模塊的測距方法是使用TRIG端子觸發,發出的高電平電信號至少10 us;TRIG自動發送8個頻率40 kHz的方波,遇到障礙物以后,自動檢測有無返回的信號,當檢測到有信號返回時,超聲波的另一個端ECHO會有一個高電平輸出,從超過聲波發出到聲波返回至ECHO口的時間即為高電平持續的時間。其中,VCC電源接口連接進入單片機5 V接口供5 V電源,GND接入整個電路的接地連線,并與單片機接地模塊連接,TRIG觸發控制電信號輸入,ECHO回響電信號輸出等四支線[4]。
測試距離=[高電平時間*聲速(340M/S)]/2。
本設計部分為電源模塊,使用的是LM7805穩壓芯片(5V穩壓)。使用此芯片搭建電路有以下幾個優點:實用且性能良好,完全可以支持本智能越障小車中控部分單片機輸入輸出電路的供電需求,以及電機驅動部分包括L298B芯片的供電需求。此芯片共有輸入端IN(最大12 V),輸出端口OUT(5 V)以及接地端GND。當然,接地端可以作為整個越障小車的控制電路的接地部分連入電源5 V電源接口。在正常工作的情況下可以輸出1.5 A左右的電流,其自身的散熱能力足以支持其輸出大于1.5 A的電流。LM7805穩壓芯片的輸入電壓范圍為9~15 V左右,輸出端口可以保持5 V的穩定輸出電壓,其輸出電壓波動范圍不超過±0.2 V,最大程度上保證了單片機最小系統的供電穩定情況以及達到了保護電路不過載的效果。根據電機驅動模塊的電壓需求,我們選擇了12 V的電源作為小車動力源;既能保證電流電壓的穩定度,又可以達到保護整個電路的目的。
經過小組成員的反復實驗及討論驗證,我們決定采用四輪驅動汽車模型,即4個輪子都用轉速比和力矩基本相同的直流減速電機進行驅動。這樣,當兩邊直流電機向相反方向進行轉動,并且當轉速基本相同時,就可以實現智能越障小車的原地自轉,就可以擁有更大的靈活度,由此可以輕松實現小車坐標不變的90度以及180度的原地轉彎。
小車越障主要需要兩個部分配合完成,其一是由舵機和機械支架組成杠桿模塊,需要在小車遇到障礙物后將機械支架翻轉到車下方,架空小車的前端部分,此時小車仍處在行進中,后輪的驅動可使小車爬上障礙物,此時收起支架,完成小車的越障操作。其二,小車在前輪懸空狀態下需要后輪的驅動力足夠大,所以需要合理配置電機驅動部分,保證小車可以翻越障礙物[5]。
一般小型舵機接線有3根,分別為電源線、控制線和地線,電源線和地線直接和小車電機驅動部分連接,控制線則接入單片機的控制管腳上,控制線的輸入是一個寬度可調節的周期性方波信號。當方波脈沖寬度改變時,舵機轉動的角度也隨之變化,角度變化與脈寬成正比。因此,采用PWM脈寬調制最為合適。
舵機:DS3230(30 kg),工作電壓4.8~8.4 V。

圖3 所選擇舵機實物圖
機械支架:長大約800 mm,可將小車前輪抬起200 mm左右。
紅外模塊:TCRT5000。
小車底盤:亞克力智能小車底盤(長:260 mm,寬:140 mm)。
車輪:直徑約65 mm,重約40 g。
電機:直流減速電機(減速比1:48)。
電機驅動芯片:L293D。
軟件部分流程圖見圖4。

圖4 軟件設計流程圖
需要配合小車前端的紅外測距模塊,遇到障礙物后,在機械支架作用范圍放下支架,幫助小車進行越障操作;支架轉動的角度需要靠與其相連的舵機進行控制,利用PWM調速的方式對舵機轉動角度進行控制,確保小車不會發生翻轉現象。如果紅外模塊一直檢測到障礙物,說明未成功翻過障礙物,此時小車進入避障程序,向右后方行駛,避開障礙物。程序流程圖見圖5。

圖5 越障程序流程圖
本文設計了基于52單片機控制的智能小車的控制電路、驅動電路、傳感器電路以及越障方案。越障小車通過對地面黑色引導線的識別,進而將其轉化為控制電路的輸入信號,最后再由核心控制電路控制電機的轉停從而實現循跡。此外還增設了越障小車的越障功能,能夠有效防止小車不必要的損壞。整個系統穩定性高,紅外反射光電傳感器布局合理、運行穩定。