高世雄
摘要:本文是以飛思卡爾智能車比賽為背景,主要介紹了智能車的硬件結(jié)構(gòu)以及軟件控制系統(tǒng)的設(shè)計(jì),該智能車以MK60DN512VLQl0微控制器為控制核心,通過檢測通有20KHz 100mA的交變電流的導(dǎo)線產(chǎn)生的交變磁場為引導(dǎo)信號(hào),經(jīng)過智能車采集、處理跑道信號(hào),根據(jù)不同的跑道情況,自動(dòng)做出不同的處理,從而實(shí)現(xiàn)自動(dòng)循跡行駛功能。
關(guān)鍵詞:MK60DN512VLQl0型單片機(jī);電磁傳感器;路徑識(shí)別與檢測
中圖分類號(hào)U4 文獻(xiàn)標(biāo)識(shí)碼A 文章編號(hào)2095-6363(2016)06-0087-01
1.電磁循跡智能車的工作原理
該設(shè)計(jì)是以飛思卡爾智能車競賽的B車模,為智能車的主要設(shè)計(jì)平臺(tái),通過安裝在智能車前的電磁檢測模塊作為智能車的“眼睛”,將電磁檢測模塊采集到的信息經(jīng)核心控制單元處理后,返回給舵機(jī)控制模塊來調(diào)整方向,并通過測速模塊來控制智能車的速度,用干簧管檢測停車起跑線,從而達(dá)到自動(dòng)循跡的目的。
2.系統(tǒng)硬件設(shè)計(jì)
2.1核心控制單元
我們采用的是飛思卡爾公司的MK60DN512VLQIO芯片,它是以Cortex-M4為內(nèi)核的芯片,有豐富的片上資源,能夠滿足整個(gè)系統(tǒng)的控制需求
2.2電磁檢測模塊
電磁檢測模塊它能否正確判斷跑道的信息直接影響著K60控制單元能否正確的工作,而且檢測模塊要有一定的前瞻性,才能為控制單元做出正確判斷和處理留出充足的時(shí)間,經(jīng)多次測試與調(diào)整最終確定將電磁檢測模塊放在智能車前30cm~40cm的位置,使用6個(gè)工字電感檢測跑道上的交變磁場,電感會(huì)產(chǎn)生微弱的電壓信號(hào),通過TLV2462運(yùn)放對(duì)電壓信號(hào)進(jìn)行放大,經(jīng)電路整形、濾波后,將采集的信號(hào)傳給控制單元進(jìn)行處理。以下為原理圖。
2.3電源管理模塊
因?yàn)檎麄€(gè)系統(tǒng)由多個(gè)模塊組成,而不同模塊的電壓需求也不同,我們采用了3.3V、5V、7.2V、6V四種電源管理方案,整個(gè)系統(tǒng)由一塊7.2V的電池供電,7.2V由電池直接給電機(jī)驅(qū)動(dòng)模塊供電,其中核心控制單元電壓為3.3V電磁檢測和測速模塊的電壓為5V、舵機(jī)轉(zhuǎn)向模塊的電壓為6V。
2.4電機(jī)驅(qū)動(dòng)模塊
該模塊我們采用了半橋集成驅(qū)動(dòng)BTN7970,它是專門用于電機(jī)驅(qū)動(dòng)的集成大電流半橋驅(qū)動(dòng)芯片,它能夠占用很少的電路板的空間,同時(shí)能滿足大電流驅(qū)動(dòng)電機(jī)的功能,它具有較強(qiáng)的抗干擾能力。因?yàn)轵?qū)動(dòng)芯片與控制單元的工作電壓不同,為防止控制單元損壞,我們?cè)谒麄冎g增加了74LS244起到隔離保護(hù)的作用。
2.5測速模塊
測速模塊,測速模塊我們采用的是歐姆龍200線編碼器,它具有較高的測速精度,同時(shí)能夠滿足滿足測速需求。
2.6舵機(jī)轉(zhuǎn)向模塊
該模塊我們采用的是S-D5數(shù)字舵機(jī),通過輸出50Hz,不同占空比的PWM波,便可控制轉(zhuǎn)向,控制精準(zhǔn)快捷。
2.7停車檢測模塊
該模塊我們采用干簧管,來檢測位于起跑線下的鋼磁體,當(dāng)干簧管通過磁體時(shí)就會(huì)導(dǎo)通,從而產(chǎn)生一個(gè)跳變信號(hào),以此來檢測起跑線。
2.8交互顯示屏和按鍵模塊
該模塊由0.75英寸oled屏幕、按鍵和撥碼開關(guān)組成,通過按鍵可以對(duì)智能車的一些參數(shù)進(jìn)行在線調(diào)試、設(shè)置,不僅省去多次下載調(diào)節(jié)參數(shù)的麻煩,而且提高了調(diào)試的效率。
3.系統(tǒng)軟件架構(gòu)
3.1系統(tǒng)總流程圖
3.2初始化程序
在智能車工作之前要對(duì)系統(tǒng)進(jìn)行初始化,為整個(gè)系統(tǒng)的運(yùn)行做準(zhǔn)備,其中包括時(shí)鐘初始化、I\O口初始化FTM模塊初始化、中斷初始化等模塊,將各個(gè)運(yùn)行所需的模塊配置好后才能進(jìn)行下一步的工作。
3.3傳感器采集數(shù)據(jù)及處理
我們采用6個(gè)工字電感作為檢測電磁信號(hào)的傳感器,它們一字排開對(duì)稱分布在智能車的前瞻上,通過采集6路信號(hào),對(duì)6路信號(hào)的進(jìn)行處理后找到中線,判斷出與真正信號(hào)線位置的偏移量,根據(jù)這個(gè)偏移量來控制舵機(jī)的轉(zhuǎn)向,為了減少電感值差異、電流幅值變化等不可控因素帶來的影響,我們對(duì)采集所得的6路數(shù)據(jù)都應(yīng)用歸一化算法,進(jìn)行歸一化處理,使數(shù)據(jù)更加的穩(wěn)定。
3.4舵機(jī)控制和速度控制
在舵機(jī)控制方面為防止舵機(jī)抖動(dòng)太大,我們采用的PD控制算法,使舵機(jī)的轉(zhuǎn)向控制更加的平滑,而速度控制我們則采用PID控制算法,它能讓智能車在運(yùn)行過程中,速度的變化更加平滑,能夠更快更穩(wěn)的控制在設(shè)定的速度。
3.5起跑線檢測
當(dāng)檢測到起跑線的時(shí)候使智能車自動(dòng)停車,采用中斷觸發(fā)的方式檢測起跑線,當(dāng)檢測到跳變時(shí)可認(rèn)為經(jīng)過起跑線,為防止在發(fā)車的時(shí)候誤判進(jìn)入中斷,我們?cè)谲嚢l(fā)后10s后使能該中斷。
4.結(jié)論
在制作過程中我們對(duì)智能車的硬件進(jìn)行不斷的優(yōu)化,在主板上我們采用的是插接器件,極大的方便了車輛的維護(hù),以及電路方面的升級(jí)。在軟件方面我們不斷優(yōu)化算法,結(jié)合智能車的實(shí)際對(duì)算法進(jìn)行改進(jìn),尤其增加人機(jī)交互模塊以后使調(diào)試的效率大大提高,在調(diào)試方面,我們還沒有加入上位機(jī),相信經(jīng)過我們后期的研究與發(fā)展,在智能車的調(diào)試方面會(huì)有更大的進(jìn)步,效率會(huì)更高。