閆莉莉 王啟明
關(guān)鍵字智能小車系統(tǒng);51 單片機(jī);RPR220 模塊;超聲波模塊
隨著時(shí)代的進(jìn)步,工業(yè)領(lǐng)域正一步一步朝著智能化的控制方向發(fā)展,工廠也不斷推進(jìn)無人化進(jìn)程,但是當(dāng)前國(guó)內(nèi)很多中小型企業(yè)車間依然人工比居多,因此智能載貨小車的設(shè)計(jì)就很好地符合這一潮流,不僅可以大大地減少工廠對(duì)人工的投入,而且在很大程度上,也保護(hù)了一些危險(xiǎn)場(chǎng)地人工的安全。因此設(shè)計(jì)開發(fā)一款工廠智能載貨小車系統(tǒng)是很有必要的。
在本設(shè)計(jì)的工廠智能載貨小車系統(tǒng)中,人工首先在道路上貼上“黑線”信息,智能載貨小車通過反射式紅外光電傳感器RPR220 來對(duì)道路上預(yù)設(shè)的“黑線”信息進(jìn)行采集,之后利用電壓比較器LM324 將采集來的信息以高低電壓的形式發(fā)給STC89C51 單片機(jī)主控芯片進(jìn)行信息處理;與單片機(jī)相連的HC-SR04 超聲波測(cè)距模塊可以測(cè)量出小車與障礙物之間的距離,然后以一個(gè)高電平發(fā)送給STC89C51 單片機(jī);單片機(jī)對(duì)這些信息進(jìn)行分析,發(fā)出指令。當(dāng)智能小車要行駛時(shí),單片機(jī)發(fā)出信號(hào),L293D 電機(jī)驅(qū)動(dòng)芯片帶動(dòng)兩個(gè)直流電機(jī)轉(zhuǎn)動(dòng),同時(shí)產(chǎn)生PWM 波控制兩個(gè)車輪轉(zhuǎn)速,調(diào)整行駛方向,按預(yù)設(shè)道路“黑線”行駛,實(shí)現(xiàn)尋跡。當(dāng)出現(xiàn)障礙物時(shí),超聲波模塊會(huì)對(duì)單片機(jī)發(fā)送信息,之后單片機(jī)會(huì)對(duì)電機(jī)發(fā)出停止信號(hào)進(jìn)行避障,同時(shí)蜂鳴器報(bào)警,當(dāng)障礙物消失之后小車?yán)^續(xù)沿預(yù)設(shè)道路行駛,到達(dá)目的地之后,由工人卸貨,之后再沿預(yù)設(shè)道路返回等一系列操作。
智能循跡小車主要由STC89C51 單片機(jī)電路、循跡模塊、LM324 驅(qū)動(dòng)模塊、直流電機(jī)、小車底板、電源模塊、超聲波測(cè)距模塊等組成。
(1)單片機(jī)電路:采用STC89C51 單片機(jī)芯片作為控制單元。STC89C51 單片機(jī)具有低成本、高性能、抗干擾能力強(qiáng)、超低功耗、低電磁干擾、并且與傳統(tǒng)8051 單片機(jī)程序兼容、無須改變硬件、支持在系統(tǒng)編程技術(shù)等。使用ISP 可不用編程器直接在PCB 板上燒錄程序,修改、調(diào)速都方便。
(2)循跡模塊:采用脈沖調(diào)制反射式紅外發(fā)射接收器作為循跡傳感器,調(diào)制信號(hào)帶有交流分量,可減少外界的大量干擾。信號(hào)采集部分就相當(dāng)于智能循跡小車的眼睛,有它完成黑線識(shí)別并產(chǎn)生高、低平信號(hào)傳送到控制單元,然后單片機(jī)生成指令來控制驅(qū)動(dòng)模塊來控制兩個(gè)直流電機(jī)的工作狀態(tài),完成自動(dòng)循跡。
(2)L293D 驅(qū)動(dòng)模塊:采用L293D 作為電機(jī)驅(qū)動(dòng)芯片。L293D 具有高電壓,大電流,響應(yīng)頻率高的全橋驅(qū)動(dòng)芯片,一片L293D 可以分別控制兩個(gè)直流電機(jī),并且?guī)в锌刂剖鼓芏?。該電機(jī)驅(qū)動(dòng)芯片驅(qū)動(dòng)能力強(qiáng),操作方便,穩(wěn)定性好,性能優(yōu)良。L293D 的使能端可以外接電平控制,也可以利用單片機(jī)進(jìn)行軟件控制,滿足各種復(fù)雜電路的需要。另外,L293D 的驅(qū)動(dòng)功率較大,能夠根據(jù)輸入電壓的大小輸出不同的電壓和功率,解決了負(fù)載能力不夠的問題。如圖1 所示。
本系統(tǒng)采用的核心芯片是STC89C51 單片機(jī),采用STC89C51RC 的理由是因?yàn)樗奶攸c(diǎn),首先該系統(tǒng)擁有著可編程芯片ISP,工作時(shí)鐘頻率最高可達(dá)到80MHz,還采用了Flash只讀程序存儲(chǔ)器片,它的內(nèi)存容量為4K Bytes,基本上可反復(fù)擦寫大約1 000 次,STC89C51 芯片內(nèi)部集成的還有通用8 位中央處理器和三級(jí)加密程序存儲(chǔ)器,她擁有著32 個(gè)可編程I/O口,為系統(tǒng)的開發(fā)提供了很大的便利性,在該51 單片機(jī)中有三個(gè)16 位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源,他們可以為系統(tǒng)提供了必不可少的中斷,它的全雙工UART 串行通道也是任何一個(gè)系統(tǒng)開發(fā)必不可少的一部分,智能的首要就是通信,而該芯片也完全滿足,低功耗空閑和掉電模式可以為用戶提供更好的滿意度,看門狗定時(shí)器是我們?cè)O(shè)計(jì)系統(tǒng)的重中之重,它相當(dāng)于一個(gè)總開關(guān)。在選用了該芯片之后,再繼續(xù)配合PC 端的控制程序使用,就可以將用戶的源程序燒錄到單片機(jī)內(nèi)部,不僅可以讓該系統(tǒng)的開發(fā)成本變得更低,而且還更高效,因?yàn)樗乃俣雀臁?/p>
反射式紅外光電傳感器模塊是一種利用反射式紅外光電傳感器制成的在傳感器的有效范圍檢測(cè)距離內(nèi)對(duì)物體的存在性進(jìn)行檢測(cè)的電路裝置。模塊由紅外光發(fā)射接收器、電壓變化檢測(cè)電路、檢測(cè)靈敏度調(diào)節(jié)電路器和檢測(cè)狀態(tài)指示LED 燈等四個(gè)主要部分組成,由于RPR220 傳感器各方面都符合設(shè)計(jì)的要求,并且容易焊接,價(jià)格合適,因此我選用RPR220 傳感器作為路面黑色軌跡線的檢測(cè)設(shè)備。
圖1 系統(tǒng)硬件體系設(shè)計(jì)圖
電壓比較器LM324 是帶有真差動(dòng)輸入的四路運(yùn)算放大器,有真正的差分輸入功能,可以作為模擬和數(shù)字電路的接口,還可以用作波形產(chǎn)生和變化電路等。該四路放大器的工作電壓可以在3.0 V~32 V 范圍內(nèi),而每個(gè)放大器工作的靜態(tài)電流只有MC1741 的五分之一。在我們開發(fā)系統(tǒng)的許多應(yīng)用中,我們不需要加外部偏置元器件,因?yàn)楣材]斎氲姆秶呀?jīng)包括負(fù)電源,而且輸出電壓的范圍也包括了負(fù)電源電壓。它采用的是14 腳雙列直插塑料封裝,應(yīng)用領(lǐng)域包括傳感器放大器、直流增益模塊等,驅(qū)動(dòng)功耗較低,符合設(shè)計(jì)要求。所以我選用了LM324 電壓比較器作為本設(shè)計(jì)的電壓比較器。
超聲波避障模塊是要實(shí)現(xiàn)對(duì)小車行駛軌跡前方障物的檢測(cè),把檢測(cè)的道路信息以高電平輸送給單片機(jī),讓單片機(jī)分析判斷,決定蜂鳴器是否報(bào)警。完成此功能主要靠測(cè)距模塊HCSR04 和蜂鳴器。超聲波測(cè)距模塊包括超聲波發(fā)射器、接收器與控制電路三部分,2 cm~400 cm 是它的實(shí)時(shí)測(cè)量范圍,而且測(cè)量的準(zhǔn)確度極高,可以達(dá)到3 mm,最后就是盲區(qū)小。把超聲波測(cè)距模塊的VCC 端接到開發(fā)板的5 V 電源,GND 端接地,因?yàn)樵撃K可以發(fā)出超聲波,因此免不了接收觸發(fā)控制信號(hào),這個(gè)時(shí)候我們可以采用TRIG 端,ECHO 端主要是為了輸出回響信號(hào)。由于HC-SR04 模塊,使用起來十分簡(jiǎn)單方便、而且價(jià)格便宜、安裝也很容易,因此選用了HC-SR04 測(cè)距模塊作為測(cè)量小車前方是否有障礙物的設(shè)備。
單片機(jī)直接輸出的電壓電流無法驅(qū)動(dòng)直流電機(jī),為了完成小車的驅(qū)動(dòng),本設(shè)計(jì)采用了L293D 芯片。L293D 電機(jī)驅(qū)動(dòng)芯片是由SGS 公司的研發(fā)的一款電機(jī)驅(qū)動(dòng)芯片,采用16 引腳DIP封裝。L293D 芯片內(nèi)部集成了2 個(gè)雙極性H 橋電路,同時(shí)實(shí)現(xiàn)對(duì)2 個(gè)直流電機(jī)轉(zhuǎn)動(dòng)的控制。EN1、IN1、IN2 可以控制一個(gè)直流電機(jī),EN2、IN3、IN4 可以控制一個(gè)直流電機(jī)。其中EN1 為使能信號(hào),并且起到了一個(gè)可以控制小車停止的一個(gè)功能;IN1、IN2為控制信號(hào),可以根據(jù)輸入的信號(hào)讓電機(jī)正轉(zhuǎn)和反轉(zhuǎn)。在IN1為1,IN2 為0 的情況下,電機(jī)正向轉(zhuǎn)動(dòng),反之,電機(jī)反向轉(zhuǎn)動(dòng),另個(gè)電機(jī)控制同理。把單片機(jī)產(chǎn)生的PWM 連接在EN1 上,可以通過改變PWM 的占空比實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的調(diào)節(jié)。PWM 就是脈沖寬度調(diào)制,即占空比可以改變的脈沖波形,即想要輸出不同的PWM 波,只要改變單片機(jī)輸出電壓的占空比即可完成。單片機(jī)的端口可以直接與L293D 的端口連接,作為信號(hào)源,電路容易連接。
工廠智能載貨小車采用STC89C51 單片機(jī)為中央處理器,以紅外光電傳感器RPR220,電機(jī)驅(qū)動(dòng)芯片L293D,電壓比較器LM324,蜂鳴器等為輻主器件進(jìn)行設(shè)計(jì)的。本設(shè)計(jì)是由紅外光電傳感器RPR220 采集預(yù)設(shè)道路上面的黑線信息并出產(chǎn)生電壓信息。利用電壓比較器LM324,對(duì)產(chǎn)生的電壓進(jìn)行比較,傳送到單片機(jī)內(nèi)。單片機(jī)對(duì)這些高低電壓進(jìn)行分析處理,產(chǎn)生PWM波來控制左右流電機(jī)轉(zhuǎn)速。直流電機(jī)驅(qū)動(dòng)芯片L293D 驅(qū)動(dòng)兩個(gè)安裝有直流電機(jī)的車輪,實(shí)現(xiàn)控制小車行駛方向的目標(biāo),實(shí)現(xiàn)尋跡功能。同時(shí)超聲波測(cè)距模塊HC-SR04 探測(cè)小車正前方障礙物的距小車的距離,當(dāng)障礙物出現(xiàn)在程序設(shè)置的范圍內(nèi)時(shí),小車停止,并且蜂鳴器報(bào)警,當(dāng)障礙物消失時(shí)小車?yán)^續(xù)沿預(yù)設(shè)道路行駛。當(dāng)左右兩邊光電開關(guān)都接收到檢車信號(hào)時(shí),兩光電開關(guān)都輸出低電平,小車直行;當(dāng)左右光電開關(guān)分別為接收不到信號(hào)、接收到信號(hào)時(shí),左右光電開關(guān)分別輸出高、低電平,小車右拐;當(dāng)左右光電開關(guān)分別為接收到信號(hào)、接收不到信號(hào)時(shí),左右光電開關(guān)分別輸出低、高電平,小車左拐。當(dāng)檢測(cè)到拐彎標(biāo)志時(shí),輸出為高電平,并實(shí)現(xiàn)對(duì)標(biāo)志線計(jì)數(shù)功能,作為小車起始、拐彎、超車標(biāo)志,實(shí)現(xiàn)小車的起始、拐彎與超車。系統(tǒng)流程圖如圖2 所示。
圖2 系統(tǒng)流程圖
首先,前面已經(jīng)介紹過循跡功能所需要的模塊、原理以及硬件如何實(shí)現(xiàn),本小節(jié)主要介紹軟件功能如何實(shí)現(xiàn),就是通過硬件的連接,在Keil 軟件上對(duì)循跡功能進(jìn)行設(shè)置。首先把硬件連接好,用兩根杜邦線把智能小車板的VCC 端跟開發(fā)板的VCC 相連,把智能小車板的GND 端跟開發(fā)板的GND 端相連;再用六根杜邦線來控制電機(jī),把智能小車板的P1.2 至P1.7 端連到開發(fā)板的P1.2 至P1.7 端;接下來就是連接避障循跡模塊,用四根線把智能小車板上的P3.2 至P3.5 連到開發(fā)板的P3.2 至P3.5。在檢查過接線沒有問題后,開始編寫C 語(yǔ)言,連接小車并燒寫程序,燒錄成功之后打開電源開關(guān)S2,蜂鳴器會(huì)發(fā)出提示音滴聲,之后啟動(dòng)小車,說明循跡功能軟件方面成功實(shí)現(xiàn),即根據(jù)RPR220 對(duì)路面黑線的檢測(cè)信號(hào)來對(duì)控制小車的轉(zhuǎn)向,如果左側(cè)檢測(cè)到黑線,說明下車偏向右行駛,此時(shí)應(yīng)該及時(shí)調(diào)整小車左轉(zhuǎn),以此讓小車按照循跡來行使;右邊也類似。
超聲波模塊HC-SR04 檢測(cè)小車前方有障礙物,當(dāng)障礙物出現(xiàn)在小車前方20 cm 內(nèi)時(shí),單片機(jī)就會(huì)驅(qū)動(dòng)蜂鳴器報(bào)警,提醒障礙物,然后返回繼續(xù)檢測(cè)。
小車在循跡過程中,為了檢查小車前方是否有障礙物出現(xiàn),我設(shè)置了單片機(jī)每20 ms 向HC-SR04 發(fā)送一份Trig 信號(hào),無論處于哪種狀態(tài),小車前方有障礙物或者沒有障礙物。當(dāng)檢車到有障礙物時(shí),單片機(jī)一邊開啟避障工作標(biāo)志位一邊計(jì)算障礙物距離,如若發(fā)現(xiàn)距離大于20 cm 時(shí),停止避讓障礙物,如若發(fā)現(xiàn)距離小于20 cm,小車?yán)^續(xù)重復(fù)上述過程。
經(jīng)過軟件調(diào)試,程序能夠順利運(yùn)行。主程序圖如圖3 所示,程序燒錄界面如圖4 所示。
圖3 主程序運(yùn)行界面
圖4 程序燒錄成功界面
經(jīng)過反復(fù)的軟件硬件聯(lián)合調(diào)試,最終智能載貨小車系統(tǒng)順利執(zhí)行。該系統(tǒng)的實(shí)物圖如圖5 所示。
在設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)時(shí)遇到了很多自己不了解的知識(shí),通過在知網(wǎng)上查看相關(guān)的參考文獻(xiàn),并回顧了大學(xué)幾年學(xué)習(xí)的相關(guān)知識(shí),對(duì)反射式紅外光電傳感器RPR、L293D 電機(jī)驅(qū)動(dòng)芯片、LM324 電壓比較器等器件的使用與單片機(jī)的連接等這些知識(shí),有了更深層次的理解和應(yīng)用。學(xué)會(huì)了將各種傳感器與單片機(jī)硬件連接,并應(yīng)用C 語(yǔ)言進(jìn)行相應(yīng)的控制。當(dāng)然,本系統(tǒng)也有一些不成熟的地方,功能方面只設(shè)計(jì)了一部分,更多的功能有待后續(xù)的完善;例如,下一步可以增加藍(lán)牙、wifi 模塊,實(shí)現(xiàn)遙控控制;增加攝像頭,實(shí)時(shí)監(jiān)控工廠;增加風(fēng)扇,實(shí)現(xiàn)滅火;還可以為小車增加卸貨功能。以小車為基礎(chǔ)可以不斷延伸新的功能,將應(yīng)用到更多的其他工作環(huán)境。
圖5 硬件實(shí)物圖