賈阿麗
(運(yùn)城學(xué)院物理與電子工程系,運(yùn)城044000)
隨著當(dāng)今社會(huì)電子技術(shù)和汽車的工業(yè)發(fā)展,汽車智能應(yīng)用已經(jīng)成為了當(dāng)今研究的主題。智能汽車由無人駕駛代替了原始的人駕駛汽車,通過安裝在汽車上的紅外線攝像機(jī)對(duì)其周圍進(jìn)行掃描和監(jiān)測(cè),并根據(jù)計(jì)算機(jī)、電子地圖、傳感器等傳回的信息進(jìn)行分析計(jì)算,通過系統(tǒng)命令指揮操作汽車[1]。本文通過采用電源模塊、單片機(jī)控制模塊、電機(jī)驅(qū)動(dòng)模塊和信號(hào)采集模塊等共同完成了小車的自動(dòng)循跡功能。
該系統(tǒng)主要由單片機(jī)控制模塊、電機(jī)驅(qū)動(dòng)模塊、信號(hào)采集模塊和顯示模塊組成,下面分別論證這幾個(gè)模塊的選擇。
該系統(tǒng)主要采用STM32F103C8T6 單片機(jī)來控制整機(jī),L298 為電機(jī)驅(qū)動(dòng)模塊,鐵絲檢測(cè)使用LDC1000金屬傳感器模塊。首先將信號(hào)送到MCU 進(jìn)行處理,然后調(diào)制出PWM 脈沖和電平進(jìn)而對(duì)直流電機(jī)進(jìn)行驅(qū)動(dòng)[2,3];同時(shí)采用OLED 對(duì)時(shí)間和距離進(jìn)行計(jì)時(shí)和顯示,檢測(cè)硬幣時(shí)用蜂鳴器進(jìn)行報(bào)警,具體設(shè)計(jì)如圖1所示。

圖1 總體設(shè)計(jì)方案原理圖
方案一:選用51 單片機(jī)作為核心控制芯片。51 單片機(jī)雖然應(yīng)用較廣、種類較多、價(jià)格相對(duì)比較實(shí)惠,但其控制速度相對(duì)很慢,并且在實(shí)際控制中需要MCU 的高資源,這樣就很難完成系統(tǒng)的功能[4]。
方案二:選用STM32F103 系列MCU 用于控制方案,使用STM32 MCU 作為核心控制芯片[5],該芯片可以進(jìn)行擴(kuò)展,與外設(shè)進(jìn)行連接通信,且控制速度較快,非常利于資源開發(fā)。
綜合上述兩種方案,該系統(tǒng)選擇了第二種方案,基本滿足本設(shè)計(jì)的需求。
方案一:選用三輪雙驅(qū)的車體。三輪雙驅(qū)是車體使用三個(gè)輪子、兩個(gè)驅(qū)動(dòng)馬達(dá)和一個(gè)電機(jī)驅(qū)動(dòng)模塊構(gòu)成。后輪為一個(gè)萬(wàn)向輪,用于轉(zhuǎn)彎和調(diào)整方向;前面兩個(gè)輪用于驅(qū)動(dòng)車身,安裝過程容易。
方案二:選用四輪四驅(qū)的車體。四輪四驅(qū)車速較快,實(shí)際測(cè)試中拐彎太慢,不如兩驅(qū)加萬(wàn)向輪左右拐彎快。
綜合以上兩個(gè)方案選項(xiàng)并選擇第一個(gè)選項(xiàng)。
方案一:使用單獨(dú)的邏輯器件來構(gòu)建驅(qū)動(dòng)程序模塊。該解決方案成本低,但相對(duì)比較麻煩而且性能很不穩(wěn)定,并且很容易在硬件上發(fā)生故障。
方案二:L298N 是一款具有高電壓和大電流的全橋驅(qū)動(dòng)IC,可用來驅(qū)動(dòng)兩個(gè)直流電機(jī)或雙極步進(jìn)電機(jī)4.5~46V 時(shí)可提供2A 額定電流,具有過熱時(shí)自動(dòng)關(guān)斷和電流反饋檢測(cè)功能,安全可靠;可以直接連接到MCU 的IO 口進(jìn)行控制;并且具有使能端,方便調(diào)節(jié)PWM 進(jìn)行速度控制。L298N 芯片可以驅(qū)動(dòng)兩個(gè)直流電機(jī)[6],剛好符合我們的驅(qū)動(dòng)要求。
結(jié)合以上兩個(gè)選項(xiàng)并選擇第二個(gè)選項(xiàng)。
方案一:采用TI 生產(chǎn)的LDC1000 電感數(shù)字轉(zhuǎn)換器[7]。利用電磁感應(yīng)原理,向PCB 線圈或自制線圈添加交流電,這樣線圈周圍產(chǎn)生交變電磁場(chǎng)。此時(shí)如果金屬物體進(jìn)入電磁場(chǎng),則在金屬物體表面上產(chǎn)生渦流(感應(yīng)電流)。由于變壓器的互感,可以在初級(jí)線圈中檢測(cè)次級(jí)線圈的參數(shù)(金屬物體的渦流效應(yīng))。
方案二:系統(tǒng)采用TI 生產(chǎn)的LDC1314 電感數(shù)字轉(zhuǎn)換器[8],也是TI 推出的金屬檢測(cè)感應(yīng)線圈。相對(duì)于LDC1000 來說,對(duì)于循跡來說非常適合,但是精度不高探測(cè)距離太短,且價(jià)格昂貴。
結(jié)合以上兩個(gè)選項(xiàng)并選擇第一個(gè)選項(xiàng)。
方案一:Lcd1602 液晶也稱為1602 字符型液晶,是專門用于顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由幾個(gè)5×7 或5×11 點(diǎn)陣字符位構(gòu)成,每個(gè)點(diǎn)陣字符位可以顯示一個(gè)字符,每個(gè)位與位間有一個(gè)點(diǎn)距的間隔,每條線之間也有一個(gè)間隙,起到字符間距和行間距的作用。因此,它不能很好地顯示漢字(使用自定義CGRAM,顯示效果不佳)。
方案二:OLED 液晶顯示屏,可用于顯示漢字、字符和圖形,其體積小、重量輕,使用方便,功耗極低,采用3.3V 電源供電,便于與匹配MCU 的I/O 口電平。OLED 可以自身發(fā)光,而LCD 則不能,因此OLED 比LCD 更亮。
結(jié)合以上兩個(gè)選項(xiàng)并選擇第一個(gè)選項(xiàng)。
方案一:采用慣性傳感器:可采用慣性傳感器進(jìn)行慣性導(dǎo)航來確定小車的路程。作為不需外部依賴的導(dǎo)航方式,慣性導(dǎo)航有著特殊的優(yōu)勢(shì),在飛行器定位等有著廣泛的應(yīng)用。但由于我們僅為二維平面的運(yùn)動(dòng),且通過加速度進(jìn)行兩次積分計(jì)算路程勢(shì)必會(huì)造成較大的誤差,而通過濾波等手段處理則大大增加了程序的復(fù)雜性且未必能較好的消除誤差。
方案二:運(yùn)用光電碼盤進(jìn)行定位:光電碼盤因其機(jī)械結(jié)構(gòu)的穩(wěn)定性所以準(zhǔn)確性較高廣泛應(yīng)用于小車的測(cè)速與里程計(jì)算。由于小車行駛為固定軌道,因而只需通過測(cè)量小車的里程即可得出小車的相對(duì)位置。這種方法準(zhǔn)確率高、與實(shí)際條件最為匹配。
綜上所述,選擇方案二。
LDC1000 的電感檢測(cè)原理是使用電磁感應(yīng)原理[7]。向PCB 線圈或自制線圈添加交流電,線圈周圍產(chǎn)生交變電磁場(chǎng),此時(shí),如果金屬物體進(jìn)入電磁場(chǎng),則在金屬物體表面上產(chǎn)生渦流(感應(yīng)電流)。渦流電流與線圈電流的方向相反,并且由渦電流產(chǎn)生的反向磁場(chǎng)耦合到線圈上以形成變壓器。由于變壓器的互感,可以在初級(jí)線圈中檢測(cè)次級(jí)線圈的參數(shù)(金屬物體的渦流效應(yīng))。檢測(cè)等效并聯(lián)電阻以確定金屬物體是否接近或遠(yuǎn)離線圈,因此當(dāng)金屬物體接近時(shí),傳感器的值改變,判斷這一變化告訴我們小車是否在正確的軌道上。
光電編碼器是由光柵盤和光電檢測(cè)裝置組成,通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。光柵盤在一定直徑的圓形板上均等地在多個(gè)矩形孔中開口。由于光電編碼盤與電動(dòng)機(jī)在同一軸上,所以當(dāng)電動(dòng)機(jī)旋轉(zhuǎn)時(shí),光柵盤以與電機(jī)相同的轉(zhuǎn)速進(jìn)行旋轉(zhuǎn),并且由諸如發(fā)光二極管等電子元件組成的檢測(cè)裝置檢測(cè)并輸出相應(yīng)的脈沖信號(hào)及個(gè)數(shù),最后根據(jù)這些信號(hào)和個(gè)數(shù)就可以反映當(dāng)前行進(jìn)的距離。
輪子直徑66mm,光電碼盤齒數(shù)為20,輪子周長(zhǎng)207mm=20.7cm,輪子轉(zhuǎn)一周的脈沖信號(hào)計(jì)數(shù)次數(shù)為40,一個(gè)計(jì)數(shù)變化表示輪子跑過的距離為20.7/40=0.5175cm。
當(dāng)傳感器測(cè)到鐵絲導(dǎo)線時(shí),由于導(dǎo)線的表面積較小,所產(chǎn)生的渦流很小,并且由單片機(jī)讀取的LDC1000收集到的數(shù)據(jù)很小,當(dāng)檢測(cè)到硬幣時(shí),由于硬幣的大表面積,產(chǎn)生的渦流很大,并且由單片機(jī)讀取的LDC1000收集到的數(shù)據(jù)將比以前大得多。因此,我們可通過設(shè)定閾值來區(qū)分鐵絲與硬幣。
前進(jìn)速度:當(dāng)鐵絲直徑為8 毫米時(shí),前進(jìn)的速度為4500 能正常循跡,但速度過慢,當(dāng)提速為4800 時(shí)加速2 秒,當(dāng)加速到5000 時(shí)因車速過快,影響了循跡,卡頓現(xiàn)象嚴(yán)重。故選擇最佳前進(jìn)速度4800。
轉(zhuǎn)彎速度:當(dāng)鐵絲直徑為8 毫米時(shí),轉(zhuǎn)彎速度為5000 時(shí)能完成循跡轉(zhuǎn)彎,但速度過慢,加速到5600 時(shí)能完成循跡且時(shí)間最短,當(dāng)加速到6000 時(shí)小車速度過快易沖出賽道。

圖2 單片機(jī)電路原理圖
(1)LDC1000 模塊:首先,使用示波器測(cè)試LDC1000的起振和線圈的工作狀態(tài)是否能夠正常工作。如果檢查出現(xiàn)半波余弦波形,說明LDC1000 可以進(jìn)行正常工作并可進(jìn)行后續(xù)的工作;如果不是,應(yīng)檢查是模塊本身問題還是參數(shù)設(shè)置問題,結(jié)合示波器參數(shù)以獲得最佳效果。
(2)P4S 模塊:用金屬靠近金屬檢測(cè)儀檢查是否發(fā)出提示音,正常工作。

圖3 軟件程序流程
使用STLINK 作為仿真器,當(dāng)LDC1000 檢測(cè)到存在金屬或硬幣時(shí),它會(huì)比較檢測(cè)到的數(shù)據(jù)。然后,在軟件中設(shè)置改變閾值以區(qū)分和識(shí)別導(dǎo)線和硬幣的閾值,并且設(shè)置硬幣閾值是700。
使用STLINK 模擬器進(jìn)行調(diào)試電機(jī)輸出的PWM波,以查看PWM 波變化范圍是否滿足需要、增加或減少是否符合正常標(biāo)準(zhǔn)、以及是否會(huì)發(fā)生大的波動(dòng)。通過設(shè)置,當(dāng)基本的PWM 值設(shè)置為4500 和5000 時(shí),PWM 的波動(dòng)滿足控制要求。
通過上述測(cè)試,得到LDC1000 的變化閾值,編寫程序并下載到單片機(jī)中,根據(jù)需要設(shè)置實(shí)驗(yàn)環(huán)境,將所需測(cè)試要求的軌道鋪設(shè)在地板上。使用兩個(gè)傳感器模塊檢測(cè)鐵絲和硬幣,檢查智能小車是否能夠正確循跡,以及檢測(cè)到硬幣時(shí)蜂鳴器是否正常發(fā)聲。如果不符合要求,則需要再次重新修訂閾值并進(jìn)行測(cè)試,直到滿足要求為止。
小車設(shè)置好相關(guān)參數(shù)后開始正常行駛,探測(cè)鐵絲并沿著鐵絲跑完成程。表1 為各項(xiàng)功能完成結(jié)果。

表1 循跡小車測(cè)試結(jié)果
表1 測(cè)試數(shù)據(jù)表明設(shè)計(jì)的自動(dòng)循跡小車大部分情況下能完成鐵絲循跡、檢測(cè)硬幣、實(shí)時(shí)顯示路程距離。但是有時(shí)仍然有沖出賽道,警報(bào)器亂響的現(xiàn)象。初步分析因?yàn)楦淖兞藗鞲衅鞯臋C(jī)械高度會(huì)使得傳感器的靈敏度上升,返回來的參數(shù)變大;通過改變閾值解決了循跡與警報(bào)問題。
本文使用LDC1000 金屬探測(cè)傳感器快速跟蹤直徑為0.8 毫米的鐵絲形成的跑道,對(duì)幾個(gè)模塊的選擇進(jìn)行了比較,分析了各模塊的工作原理及優(yōu)缺點(diǎn),并對(duì)跟蹤算法進(jìn)行了詳細(xì)設(shè)計(jì)和分析,保證了跟蹤的可靠性,并且還提高了小車的跟蹤速度。最終結(jié)果表明,所設(shè)計(jì)的跟蹤車能夠快速穩(wěn)定地跟蹤,在檢測(cè)到硬幣時(shí)可以發(fā)出警報(bào),并且智能小車可以在行駛時(shí)實(shí)時(shí)顯示時(shí)間和里程。但是自動(dòng)循跡過程中偶爾會(huì)存在沖出賽道以及蜂鳴器誤報(bào)現(xiàn)象,其中有可能存在元器件性能不穩(wěn)定、接觸不良、接線不穩(wěn)等情況,也存在程序不夠優(yōu)化,未能找到最佳參數(shù),使時(shí)間不是最優(yōu)。