賈阿麗
(運城學(xué)院物理與電子工程系,運城044000)
隨著當(dāng)今社會電子技術(shù)和汽車的工業(yè)發(fā)展,汽車智能應(yīng)用已經(jīng)成為了當(dāng)今研究的主題。智能汽車由無人駕駛代替了原始的人駕駛汽車,通過安裝在汽車上的紅外線攝像機(jī)對其周圍進(jìn)行掃描和監(jiān)測,并根據(jù)計算機(jī)、電子地圖、傳感器等傳回的信息進(jìn)行分析計算,通過系統(tǒng)命令指揮操作汽車[1]。本文通過采用電源模塊、單片機(jī)控制模塊、電機(jī)驅(qū)動模塊和信號采集模塊等共同完成了小車的自動循跡功能。
該系統(tǒng)主要由單片機(jī)控制模塊、電機(jī)驅(qū)動模塊、信號采集模塊和顯示模塊組成,下面分別論證這幾個模塊的選擇。
該系統(tǒng)主要采用STM32F103C8T6 單片機(jī)來控制整機(jī),L298 為電機(jī)驅(qū)動模塊,鐵絲檢測使用LDC1000金屬傳感器模塊。首先將信號送到MCU 進(jìn)行處理,然后調(diào)制出PWM 脈沖和電平進(jìn)而對直流電機(jī)進(jìn)行驅(qū)動[2,3];同時采用OLED 對時間和距離進(jìn)行計時和顯示,檢測硬幣時用蜂鳴器進(jìn)行報警,具體設(shè)計如圖1所示。
圖1 總體設(shè)計方案原理圖
方案一:選用51 單片機(jī)作為核心控制芯片。51 單片機(jī)雖然應(yīng)用較廣、種類較多、價格相對比較實惠,但其控制速度相對很慢,并且在實際控制中需要MCU 的高資源,這樣就很難完成系統(tǒng)的功能[4]。
方案二:選用STM32F103 系列MCU 用于控制方案,使用STM32 MCU 作為核心控制芯片[5],該芯片可以進(jìn)行擴(kuò)展,與外設(shè)進(jìn)行連接通信,且控制速度較快,非常利于資源開發(fā)。
綜合上述兩種方案,該系統(tǒng)選擇了第二種方案,基本滿足本設(shè)計的需求。
方案一:選用三輪雙驅(qū)的車體。三輪雙驅(qū)是車體使用三個輪子、兩個驅(qū)動馬達(dá)和一個電機(jī)驅(qū)動模塊構(gòu)成。后輪為一個萬向輪,用于轉(zhuǎn)彎和調(diào)整方向;前面兩個輪用于驅(qū)動車身,安裝過程容易。
方案二:選用四輪四驅(qū)的車體。四輪四驅(qū)車速較快,實際測試中拐彎太慢,不如兩驅(qū)加萬向輪左右拐彎快。
綜合以上兩個方案選項并選擇第一個選項。
方案一:使用單獨的邏輯器件來構(gòu)建驅(qū)動程序模塊。該解決方案成本低,但相對比較麻煩而且性能很不穩(wěn)定,并且很容易在硬件上發(fā)生故障。
方案二:L298N 是一款具有高電壓和大電流的全橋驅(qū)動IC,可用來驅(qū)動兩個直流電機(jī)或雙極步進(jìn)電機(jī)4.5~46V 時可提供2A 額定電流,具有過熱時自動關(guān)斷和電流反饋檢測功能,安全可靠;可以直接連接到MCU 的IO 口進(jìn)行控制;并且具有使能端,方便調(diào)節(jié)PWM 進(jìn)行速度控制。L298N 芯片可以驅(qū)動兩個直流電機(jī)[6],剛好符合我們的驅(qū)動要求。
結(jié)合以上兩個選項并選擇第二個選項。
方案一:采用TI 生產(chǎn)的LDC1000 電感數(shù)字轉(zhuǎn)換器[7]。利用電磁感應(yīng)原理,向PCB 線圈或自制線圈添加交流電,這樣線圈周圍產(chǎn)生交變電磁場。此時如果金屬物體進(jìn)入電磁場,則在金屬物體表面上產(chǎn)生渦流(感應(yīng)電流)。由于變壓器的互感,可以在初級線圈中檢測次級線圈的參數(shù)(金屬物體的渦流效應(yīng))。
方案二:系統(tǒng)采用TI 生產(chǎn)的LDC1314 電感數(shù)字轉(zhuǎn)換器[8],也是TI 推出的金屬檢測感應(yīng)線圈。相對于LDC1000 來說,對于循跡來說非常適合,但是精度不高探測距離太短,且價格昂貴。
結(jié)合以上兩個選項并選擇第一個選項。
方案一:Lcd1602 液晶也稱為1602 字符型液晶,是專門用于顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由幾個5×7 或5×11 點陣字符位構(gòu)成,每個點陣字符位可以顯示一個字符,每個位與位間有一個點距的間隔,每條線之間也有一個間隙,起到字符間距和行間距的作用。因此,它不能很好地顯示漢字(使用自定義CGRAM,顯示效果不佳)。
方案二:OLED 液晶顯示屏,可用于顯示漢字、字符和圖形,其體積小、重量輕,使用方便,功耗極低,采用3.3V 電源供電,便于與匹配MCU 的I/O 口電平。OLED 可以自身發(fā)光,而LCD 則不能,因此OLED 比LCD 更亮。
結(jié)合以上兩個選項并選擇第一個選項。
方案一:采用慣性傳感器:可采用慣性傳感器進(jìn)行慣性導(dǎo)航來確定小車的路程。作為不需外部依賴的導(dǎo)航方式,慣性導(dǎo)航有著特殊的優(yōu)勢,在飛行器定位等有著廣泛的應(yīng)用。但由于我們僅為二維平面的運動,且通過加速度進(jìn)行兩次積分計算路程勢必會造成較大的誤差,而通過濾波等手段處理則大大增加了程序的復(fù)雜性且未必能較好的消除誤差。
方案二:運用光電碼盤進(jìn)行定位:光電碼盤因其機(jī)械結(jié)構(gòu)的穩(wěn)定性所以準(zhǔn)確性較高廣泛應(yīng)用于小車的測速與里程計算。由于小車行駛為固定軌道,因而只需通過測量小車的里程即可得出小車的相對位置。這種方法準(zhǔn)確率高、與實際條件最為匹配。
綜上所述,選擇方案二。
LDC1000 的電感檢測原理是使用電磁感應(yīng)原理[7]。向PCB 線圈或自制線圈添加交流電,線圈周圍產(chǎn)生交變電磁場,此時,如果金屬物體進(jìn)入電磁場,則在金屬物體表面上產(chǎn)生渦流(感應(yīng)電流)。渦流電流與線圈電流的方向相反,并且由渦電流產(chǎn)生的反向磁場耦合到線圈上以形成變壓器。由于變壓器的互感,可以在初級線圈中檢測次級線圈的參數(shù)(金屬物體的渦流效應(yīng))。檢測等效并聯(lián)電阻以確定金屬物體是否接近或遠(yuǎn)離線圈,因此當(dāng)金屬物體接近時,傳感器的值改變,判斷這一變化告訴我們小車是否在正確的軌道上。
光電編碼器是由光柵盤和光電檢測裝置組成,通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。光柵盤在一定直徑的圓形板上均等地在多個矩形孔中開口。由于光電編碼盤與電動機(jī)在同一軸上,所以當(dāng)電動機(jī)旋轉(zhuǎn)時,光柵盤以與電機(jī)相同的轉(zhuǎn)速進(jìn)行旋轉(zhuǎn),并且由諸如發(fā)光二極管等電子元件組成的檢測裝置檢測并輸出相應(yīng)的脈沖信號及個數(shù),最后根據(jù)這些信號和個數(shù)就可以反映當(dāng)前行進(jìn)的距離。
輪子直徑66mm,光電碼盤齒數(shù)為20,輪子周長207mm=20.7cm,輪子轉(zhuǎn)一周的脈沖信號計數(shù)次數(shù)為40,一個計數(shù)變化表示輪子跑過的距離為20.7/40=0.5175cm。
當(dāng)傳感器測到鐵絲導(dǎo)線時,由于導(dǎo)線的表面積較小,所產(chǎn)生的渦流很小,并且由單片機(jī)讀取的LDC1000收集到的數(shù)據(jù)很小,當(dāng)檢測到硬幣時,由于硬幣的大表面積,產(chǎn)生的渦流很大,并且由單片機(jī)讀取的LDC1000收集到的數(shù)據(jù)將比以前大得多。因此,我們可通過設(shè)定閾值來區(qū)分鐵絲與硬幣。
前進(jìn)速度:當(dāng)鐵絲直徑為8 毫米時,前進(jìn)的速度為4500 能正常循跡,但速度過慢,當(dāng)提速為4800 時加速2 秒,當(dāng)加速到5000 時因車速過快,影響了循跡,卡頓現(xiàn)象嚴(yán)重。故選擇最佳前進(jìn)速度4800。
轉(zhuǎn)彎速度:當(dāng)鐵絲直徑為8 毫米時,轉(zhuǎn)彎速度為5000 時能完成循跡轉(zhuǎn)彎,但速度過慢,加速到5600 時能完成循跡且時間最短,當(dāng)加速到6000 時小車速度過快易沖出賽道。
圖2 單片機(jī)電路原理圖
(1)LDC1000 模塊:首先,使用示波器測試LDC1000的起振和線圈的工作狀態(tài)是否能夠正常工作。如果檢查出現(xiàn)半波余弦波形,說明LDC1000 可以進(jìn)行正常工作并可進(jìn)行后續(xù)的工作;如果不是,應(yīng)檢查是模塊本身問題還是參數(shù)設(shè)置問題,結(jié)合示波器參數(shù)以獲得最佳效果。
(2)P4S 模塊:用金屬靠近金屬檢測儀檢查是否發(fā)出提示音,正常工作。
圖3 軟件程序流程
使用STLINK 作為仿真器,當(dāng)LDC1000 檢測到存在金屬或硬幣時,它會比較檢測到的數(shù)據(jù)。然后,在軟件中設(shè)置改變閾值以區(qū)分和識別導(dǎo)線和硬幣的閾值,并且設(shè)置硬幣閾值是700。
使用STLINK 模擬器進(jìn)行調(diào)試電機(jī)輸出的PWM波,以查看PWM 波變化范圍是否滿足需要、增加或減少是否符合正常標(biāo)準(zhǔn)、以及是否會發(fā)生大的波動。通過設(shè)置,當(dāng)基本的PWM 值設(shè)置為4500 和5000 時,PWM 的波動滿足控制要求。
通過上述測試,得到LDC1000 的變化閾值,編寫程序并下載到單片機(jī)中,根據(jù)需要設(shè)置實驗環(huán)境,將所需測試要求的軌道鋪設(shè)在地板上。使用兩個傳感器模塊檢測鐵絲和硬幣,檢查智能小車是否能夠正確循跡,以及檢測到硬幣時蜂鳴器是否正常發(fā)聲。如果不符合要求,則需要再次重新修訂閾值并進(jìn)行測試,直到滿足要求為止。
小車設(shè)置好相關(guān)參數(shù)后開始正常行駛,探測鐵絲并沿著鐵絲跑完成程。表1 為各項功能完成結(jié)果。
表1 循跡小車測試結(jié)果
表1 測試數(shù)據(jù)表明設(shè)計的自動循跡小車大部分情況下能完成鐵絲循跡、檢測硬幣、實時顯示路程距離。但是有時仍然有沖出賽道,警報器亂響的現(xiàn)象。初步分析因為改變了傳感器的機(jī)械高度會使得傳感器的靈敏度上升,返回來的參數(shù)變大;通過改變閾值解決了循跡與警報問題。
本文使用LDC1000 金屬探測傳感器快速跟蹤直徑為0.8 毫米的鐵絲形成的跑道,對幾個模塊的選擇進(jìn)行了比較,分析了各模塊的工作原理及優(yōu)缺點,并對跟蹤算法進(jìn)行了詳細(xì)設(shè)計和分析,保證了跟蹤的可靠性,并且還提高了小車的跟蹤速度。最終結(jié)果表明,所設(shè)計的跟蹤車能夠快速穩(wěn)定地跟蹤,在檢測到硬幣時可以發(fā)出警報,并且智能小車可以在行駛時實時顯示時間和里程。但是自動循跡過程中偶爾會存在沖出賽道以及蜂鳴器誤報現(xiàn)象,其中有可能存在元器件性能不穩(wěn)定、接觸不良、接線不穩(wěn)等情況,也存在程序不夠優(yōu)化,未能找到最佳參數(shù),使時間不是最優(yōu)。