楊麗新, 馬 迎
(華南理工大學(xué) 機械與汽車工程學(xué)院,廣州 510640)
智能小車由于其成本優(yōu)勢,常作為教學(xué)機器人,受到眾多高校的重視[1-4]。機電控制系統(tǒng)是智能小車的核心,集成了機械與微電子等共性關(guān)鍵技術(shù)。對智能小車機電控制系統(tǒng)進行編程,實現(xiàn)一定程度的自動、智能操作,這也是國內(nèi)機械電子競賽的常見項目之一[5-7]。Proteus是目前最流行的電路設(shè)計仿真和程序調(diào)試軟件之一,提供了從分立元件到集成元件、從無源器件到有源器件的仿真調(diào)試[8-15]。本文通過Proteus編程設(shè)計仿真,設(shè)計了一款基于8051內(nèi)核(STC89C52)單片機的智能小車,實現(xiàn)尋跡、避障、測速等功能。
如圖1所示,智能小車以通用的STC89C52單片機作為控制核心,以常見的模型車底板所搭建的智能小車底盤為平臺,通過裝配直流電機、光電檢測器、紅外傳感器、超聲波傳感器等,利用傳感器和機電一體化系統(tǒng)設(shè)計控制技術(shù)實現(xiàn)智能小車的位置、速度、運行等狀況的實時測量,再將測量數(shù)據(jù)傳送至單片機,單片機根據(jù)所檢測的各種數(shù)據(jù)對智能小車進行驅(qū)動、尋跡、避障、速度等控制。
圖1 智能小車系統(tǒng)框圖
對小車功能的不同要求采用模塊化設(shè)計方案,分別進行電路設(shè)計。設(shè)計側(cè)重于對單片機STC89C52的控制以實現(xiàn)小車自動根據(jù)地面黑色線路前進、轉(zhuǎn)向,對前方障礙能做出躲避反應(yīng),同時能對實時的車行速度進行檢測、顯示等功能。另外,設(shè)計力求改善智能小車對方向判斷的穩(wěn)定性、準確性,盡量克服小車在十字型黑色路線上轉(zhuǎn)向出錯率偏高的不足。
智能小車的控制核心選用STC89C52單片機,其具有8 KByte ROM,512 KByte RAM,32位I/O口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個16位定時器/計數(shù)器,4個外部中斷,一個全雙工串行口。智能小車的系統(tǒng)電路可按不同的功能分為驅(qū)動模塊電路、尋跡模塊電路、避障模塊電路、速度顯示模塊電路等,這些模塊由不同的傳感器檢測各種信號,并將信號傳送到單片機,再由單片機輸出程序指令控制小車做出各種響應(yīng)動作。圖2所示為智能小車控制系統(tǒng)的電路。
圖2 系統(tǒng)電路原理圖
為減小電動機的差異性,利于小車直線行走,選用4個130直流電動機驅(qū)動智能小車。利用左右兩邊輪子的速度差實現(xiàn)轉(zhuǎn)彎,利用時間或是碼盤來控制轉(zhuǎn)向角度。電機的工作電壓在3~9 V的范圍內(nèi),一般控制在6 V左右。由于頻率過高電動機會發(fā)出較大的聲音,頻率過低電機會發(fā)生振動,故PWM調(diào)節(jié)電動機速度時一般用1 kHz左右的頻率。選用L293D驅(qū)動芯片,其有穩(wěn)定性高的特點,2片配合使用可以驅(qū)動4個直流電機。
直流電機驅(qū)動電路原理圖設(shè)計如圖3所示。其中L293D(U2)的IN1、IN2對應(yīng)直流電動機1的邏輯輸入,IN3、IN4對應(yīng)直流電機2的邏輯輸入,EN1為直流電動機1的PWM輸入,EN2為直流電動機2的PWM輸入。+5 V、GND為電源輸出,用于給控制系統(tǒng)供電。OUT1、OUT2對應(yīng)直流電動機1驅(qū)動輸出,OUT3、OUT4對應(yīng)直流電機2驅(qū)動輸出。
同理L293D(U3)的IN1、IN2對應(yīng)直流電機3的邏輯輸入,IN3、IN4對應(yīng)直流電動機4的邏輯輸入,OUT1、OUT2對應(yīng)直流電動機3驅(qū)動輸出,OUT3、OUT4對應(yīng)直流電動機4驅(qū)動輸出。穩(wěn)壓器AMS1117-5(U1)可以將輸入電源轉(zhuǎn)變成穩(wěn)定的5 V輸出。對直流電動機1的邏輯控制如表1。
表1 直流電動機1邏輯控制表
同理可得其他直流電動機的邏輯控制方式。
尋跡模塊使用紅外線發(fā)射和接收傳感器,并使用LM339電壓比較器以防止輸出抖動,檢測地面黑色帶路線,如圖4所示。該電路包括一個紅外發(fā)光二極管、一個紅外光敏三極管及其上拉電阻。發(fā)光二極管發(fā)射一定強度的紅外線照射物體,光敏三極管在接收到反射回來的紅外線后導(dǎo)通,產(chǎn)生一個電平跳變信號。光電傳感器固定在小車底盤前沿,貼近地面。正常行駛時,發(fā)射管發(fā)射紅外光照射地面,光線經(jīng)白紙反射后被接收管接收,輸出高電平信號;電動車經(jīng)過黑線時,發(fā)射端發(fā)射的光線被黑線吸收,接收端接收不到反射光線,傳感器輸出低電平信號后送89C52單片機處理,執(zhí)行相應(yīng)程序來控制小車的行進。
圖3 直流電機驅(qū)動電路原理圖
圖4 智能小車檢測電路
尋跡傳感器的工作電壓在4~6 V,工作電流30~40 mA之間。當紅外光電傳感器檢測到黑色線時,傳感器輸出端的電壓為1 V左右,當?shù)孛?白色)有光反射時,傳感器輸出端的電壓約等于電源電壓。
避障模塊選用US-100超聲波傳感器(見圖5)配合舵機使用,可實現(xiàn)檢測小車前方障礙。超聲波發(fā)射器向小車前方發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回,超聲波接收器收到反射波就立即停止計時[10]。該傳感器可以實現(xiàn)0~4 m的非接觸測距功能,輸入電壓為2.5~5.5 V,工作方式有串口、電平觸發(fā)兩種(選用電平觸發(fā)模式),工作穩(wěn)定性良好。另外,該傳感器模塊中自帶溫度傳感器,可對測距結(jié)果進行校正。超聲波在空氣中的傳播速度為340 m/s,根據(jù)計時器記錄的時間t,可算出發(fā)射點距障礙物的距離L,即:L=340t/2,在程序中設(shè)定小車與障礙物距離(或記錄時間)小于一定值則做出躲避反應(yīng)。
圖5 US-100超聲波傳感器(正面、側(cè)面)
定義US-100超聲波傳感器正面圖中5pin排針從左到右依次為1~5號,則其連接方式如下:
1號連接VCC電源(2.5~5.5 V);
2號當為電平觸發(fā)模式時,接外部電路的Trig端;
3號當為電平觸發(fā)模式時,接外部電路的Echo端;
4、5號接地。
圖6所示為超聲波傳感器測距(電平觸發(fā))時序圖。在Trig管腳輸入一個10US以上的高電平,系統(tǒng)便可發(fā)出8個40 kHZ的超聲波脈沖,然后檢測回波信號。當檢測到回波信號后,模塊還要進行溫度值的測量,根據(jù)當前溫度對測距結(jié)果進行校正,將校正后的結(jié)果通過Echo管腳輸出。在此模式下,模塊將距離值轉(zhuǎn)化為聲速的時間值的2倍,通過Echo端輸出一高電平,可根據(jù)此高電平的持續(xù)時間t′來計算距離值L′。即距離值為:L′=t′×340/2。
圖6 超聲波傳感器測距(電平觸發(fā))時序圖
為使避障功能準確、平穩(wěn),智能小車加裝了一個舵機與超聲波傳感器配合使用。舵機是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。其原理是控制信號由接收機的通道進入信號調(diào)制芯片,獲得直流偏置電壓。其內(nèi)部有一個基準電路,產(chǎn)生周期為20 ms、寬度為1.5 ms的基準信號,將基準電路電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅(qū)動芯片決定電機的正反轉(zhuǎn)。當電機轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機停止轉(zhuǎn)動。在避障時可以通過舵機控制超聲波傳感器左右掃描,檢測小車除正前方外偏左、偏右兩邊的障礙。
速度顯示模塊中選用一體化對射紅外發(fā)射接收管WYC H206和帶施密特觸發(fā)器反向器74HC14,配合編碼盤使用,通過單片機計數(shù)可獲得小車行駛速度,再由4位8段共陽極LED數(shù)碼管構(gòu)成的顯示器顯示小車速度。圖7所示為其電路原理圖。
圖7 測速模塊電路原理圖
工作電壓為4~6 V,工作電流為25 mA,檢查頻率為1 kHz,可以檢查大于2 mm的非透明物體。通電后指示燈D發(fā)光,當有遮擋物在檢查凹槽時,指示燈D熄滅。檢查智能小車速度時,碼盤配合測速模塊可以輸出電信號,提供單片機計數(shù),獲得碼盤速度。
對于檢測到的速度,采用4位8段LED數(shù)碼管構(gòu)成智能小車的顯示器顯示速度值,共陽極,即公共端接電源,其他端接地。顯示電路設(shè)計如圖7所示。
其中數(shù)碼管的管腳a、b、c、d、e、f、g、dp各串聯(lián)一個電阻后再與89C52單片機的P0.0~P0.7連接(連接上拉電阻),管腳1~4連接電阻和三極管后再接到89C52單片機的P2.0~P2.3端口。
智能小車的控制系統(tǒng)設(shè)計中,除了根據(jù)所要實現(xiàn)的功能選用硬件,大量的工作用于對連接起來的硬件進行應(yīng)用程序的設(shè)計開發(fā),軟件程序設(shè)計在基于單片機的控制系統(tǒng)設(shè)計中有著必不可少的重要作用。本研究的軟件程序利用模塊化設(shè)計,由驅(qū)動程序、尋跡程序、避障程序、測速和顯示程序等模塊組成完整的智能小車系統(tǒng),其流程圖如圖8所示。
圖8 智能小車系統(tǒng)流程圖
基于單片機的智能小車設(shè)計完成了硬件選用和軟件程序設(shè)計后,然后采用軟件對電路和程序進行仿真,測試該設(shè)計是否合理、可否實現(xiàn)。本研究利用Proteus 7 professional軟件對小車的設(shè)計進行仿真。
在Proteus中繪制各模塊電路原理圖并連接單片機89C52,如圖9所示。
以驅(qū)動模塊的仿真為例,仿真電路如圖10所示。P1.0~P1.7接入兩片L293D驅(qū)動芯片的輸入端,其輸出段接到4個直流電機。將設(shè)計好的程序?qū)雴纹瑱C后進行仿真。通過紅外傳感器檢測地面黑色路線實現(xiàn)尋跡功能,檢測到的結(jié)果通過信號0與1輸送到單片機進行處理。
圖9 仿真電路圖
圖10 驅(qū)動模塊仿真結(jié)果
本文對智能小車的機械控制系統(tǒng)進行了設(shè)計,并通過Proteus仿真,驗證了各模塊的尋跡、避障、速度顯示等響應(yīng)動作。結(jié)果顯示,基于單片機的智能小車各模塊的電路設(shè)計合理,控制軟件程序精確穩(wěn)定,可實現(xiàn)智能小車的各種功能,可作為教學(xué)機器人的演示與研發(fā)案例。