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