前言:作為一名老三本玩家,筆者深知一些同學(xué)剛接觸這個比賽的那種無從下手的感覺,寫這篇文章主要是分享一下自己對車的理解,同時也希望大家能真正的去深入理解小車的整個系統(tǒng),理解小車的構(gòu)成和原理,而不是人人唾棄的“調(diào)參比賽”。
水平有限,僅供參考,也歡迎大佬們參與交流。
初識小車
不知道大家是什么時候開始知道有小車這個東西的,筆者第一次看見小車是學(xué)校協(xié)會招新展示的作品,后來加入實驗室慢慢開始了解到了這個比賽。
關(guān)于比賽的介紹,我在此不做贅述,有需要了解去查看卓大公眾號的規(guī)則和介紹。這里主要說一下小車的組成。
參賽小車包含車模、硬件系統(tǒng)以及軟件算法三大部分,其中車模和硬件在比賽前期工作量比較大,而軟件部分的調(diào)試工作會一直持續(xù)到賽前。
所以三人小隊一般的分配是一個主要負(fù)責(zé)硬件,一個主要負(fù)責(zé)整體控制方案和小車機械結(jié)構(gòu)調(diào)整與控制部分軟件的搭建,另外一個人主要負(fù)責(zé)整車的算法,這是筆者參賽時的分配方案,參賽全程離不開組員的密切配合,缺一不可。
車??梢岳斫馐切≤嚨乃闹蜕眢w,這個小車都是在車模的基礎(chǔ)上進(jìn)行搭建;由于組別的不同,車模的規(guī)定存在差異,根據(jù)細(xì)則要求進(jìn)行選購即可,關(guān)于車模的介紹和規(guī)定每年的比賽規(guī)則有詳細(xì)介紹,可以去智能車官網(wǎng)查看。
硬件系統(tǒng)
硬件系統(tǒng)是小車的脊柱,把身體各個部分聯(lián)系起來形成一個整體;比賽要求是所有的硬件系統(tǒng)要按規(guī)則自制PCB,一個小車的硬件系統(tǒng)主要包括電源系統(tǒng)、人機交互系統(tǒng)、MCU最小系統(tǒng)、傳感器系統(tǒng)、驅(qū)動系統(tǒng)。
1.電源系統(tǒng)
小車采用電池供電,一般的方案是兩節(jié)18650或者是專用的鎳鉻電池,電壓范圍都大致在6V-8V,而小車所使用的各傳感器種類較多,供電電壓也不一致,大多數(shù)是12V、6V、5V、3.3V的電壓
所以需要我們設(shè)計并制作一個電源系統(tǒng)來為整個小車提供良好的電源。需要使用模電和電力電子的知識,這個系統(tǒng)中我們會使用到開關(guān)電源和線性電源這兩大類電源方案。
線性電源
可以理解為在原有電源兩端加負(fù)載,通過匹配負(fù)載比來輸出目標(biāo)電壓,它的好處在于能夠提供穩(wěn)定純凈的電源;但是由于此方案獲取電壓采用負(fù)載消耗的方式,工作過程會產(chǎn)生很大的熱損耗,轉(zhuǎn)換效率較低,降壓管自身發(fā)熱嚴(yán)重。
開關(guān)電源
顧名思義,主要是通過控制可控開關(guān)的開關(guān)時間配合降壓斬波電路(Buck電路)和升壓斬波電路(Boost電路)實現(xiàn)升壓降壓;
集成芯片一般會存在一個反饋端口,用來形成閉環(huán)控制從而保證輸出電壓的穩(wěn)定;采用可控開關(guān)的方案能大大提高轉(zhuǎn)換效率,但是會使得輸出電壓產(chǎn)生紋波,對電源要求比較高的電路就不能采取此方案。
電源可以參考市面上常見的方案,但是希望大家能去弄懂電源的類型、器件選型以及元器件的參數(shù)設(shè)置原理,結(jié)合自己的模電計算一下。
這里推薦大家去看看B站唐老師講電賽的電源大師和運放大師,結(jié)合實例講解了很多的電路和模電知識,真正的把知識點搬到了實際生活中。
2.人機交互系統(tǒng)
人機交互系統(tǒng)是為了方便進(jìn)行參數(shù)的設(shè)定、查看以及特殊元素的識別判斷,多會采用顯示屏、按鍵、蜂鳴器;顯示屏比較流行的有0.96寸OLED、1.8TFT、2.0的并口屏還有一種比較方便開發(fā)的串口屏;
通信協(xié)議方面大多是I2C和SPI,SPI協(xié)議的屏幕,其速度會更快一些(I2C協(xié)議v2.1規(guī)定了100K,400K和3.4M三種速率(bps),而SPI并沒有一個官方標(biāo)準(zhǔn),有的器件SPI可以達(dá)到50Mbps)。
而串口屏有很好的UI控件,更適合電賽,操作方便簡潔,不需要為界面設(shè)計費神,想要了解的同學(xué)可以參考陶晶馳串口屏。
按鍵可以選取五方向按鍵,蜂鳴器可以使用有源蜂鳴器,降低程序設(shè)計難度。
3.MCU最小系統(tǒng)
最小系統(tǒng)的選擇是根據(jù)自己組別而定,不同組別的最小系統(tǒng)有所區(qū)別,十五屆以后越來越多的處理器廠商加入賽事,有了TC264、TC364、RT1064、STC16、MM32、ch32等多種處理器。
而這些處理器的最小系統(tǒng)的最基礎(chǔ)三要素還是:電源、晶振、復(fù)位。最小系統(tǒng)可以直接購買核心板成品使用,但需要了解其電路構(gòu)成,方便排查問題,有能力的最好自制。
4.傳感器系統(tǒng)
對于不同組而言,傳感器會存在一定差異,但是傳感器都是大同小異的,常用的是攝像頭、電感、編碼器。
就十七屆而言,四輪分為了電磁四輪和攝像頭四輪組,其中攝像頭組賽道上沒有電磁線,也就意味著無法使用電感輔助;而電磁四輪有要求使用宏晶的處理器。
目前的STC系列還不足以驅(qū)動攝像頭,也就意味著電磁組無法使用攝像頭來實現(xiàn)車庫等一些元素的識別需要加入干簧管之類的輔助器件實現(xiàn)停車;
而像平衡信標(biāo)組,就需要有陀螺儀來實現(xiàn)直立環(huán),獲取車身角度;對于多車編隊,還需要使用到類似超聲波等的一些模塊來實現(xiàn)跟隨。
攝像頭
現(xiàn)在常用的攝像頭就是龍邱科技的神眼和逐飛科技的總鉆風(fēng),這兩款攝像頭都是灰度攝像頭,所以在屏幕上顯示時看見的圖像和黑白電視一樣。
但需要注意這里的黑白并不是真正意義上的非黑即白,而是把黑到白分成了255個層次。通過配置攝像頭的內(nèi)部寄存器實現(xiàn)攝像頭的初始化,讓攝像頭每幀圖像的分辨率保持188×120;
采集完成后通過八位數(shù)據(jù)并口、行中斷與場中斷(兩款攝像頭引腳定義如下圖)實現(xiàn)數(shù)據(jù)傳輸,將圖像信息傳輸給單片機。
攝像頭的采集流程如下:
1.攝像頭在初始化參數(shù)后,開始采集;
2.采集到一幀圖像時(假設(shè)一幀圖像為:188×120)會發(fā)送一個場中斷,告訴主控已經(jīng)采集完一幀圖像,隨后場中斷復(fù)位;
3.在場中斷產(chǎn)生后會有188×120個行中斷產(chǎn)生,每一個行中斷個被主控捕獲后主控都會收集8位數(shù)據(jù)口輸出的電平(0000 0000~1111 1111)進(jìn)而得到對應(yīng)位置的數(shù)據(jù)(0-255)如此重復(fù),每一個場中斷后都會傳輸188*120個數(shù)據(jù);
4.主控根據(jù)行中斷依次獲取這些數(shù)據(jù)就可以得到圖像原始數(shù)據(jù),為了節(jié)約單片CPU的資源往往會采用DMA搬運直接把這些數(shù)據(jù)搬運到內(nèi)存。
8位數(shù)據(jù)口傳輸?shù)臄?shù)據(jù)范圍剛好是0000 0000~1111 1111即0-255,對應(yīng)剛好是灰度攝像頭的色彩范圍(0為全黑,255為全白)。
電感
電感采用工字電感,主要是利用電磁感應(yīng)原理,利用電感采集信號發(fā)生器產(chǎn)生的電磁信號。
賽道規(guī)定信號為f=20Khz,i=100ma的交變電流 ,為了能夠保證采集的信號就是信號發(fā)生器產(chǎn)生的信號,需要設(shè)計選頻電路。
利用LC組合形成諧振回路一般采用10mH工字電感和6.8nf匹配電容。
計算公式與結(jié)果結(jié)果如下:
電感采集原理:此處以左右兩電感為例,在高度固定后,如下圖左邊所示,可以發(fā)現(xiàn)垂直于電磁線的諧振電路產(chǎn)生的感應(yīng)電動勢
隨著電感與電磁線的垂直距離的變化而變化,距離越近感應(yīng)電動勢值越大;距離越遠(yuǎn)感應(yīng)電動勢越小,這樣通過左右兩個電感的感應(yīng)電動勢就可以推斷出小車目前的狀態(tài)。
如右邊圖1所示,當(dāng)小車位于賽道中央的時候,左右兩個電感的值相等,此時沒有偏差,對應(yīng)直道,舵機位于正中間;
如右邊圖2所示,當(dāng)小車偏左,此時左電感遠(yuǎn)離信號線,感應(yīng)電動勢較小,而右電感更接近信號線,產(chǎn)生的電動勢也越大,此時會左右電感產(chǎn)生的感應(yīng)電動勢出現(xiàn)一個偏差,我們需要根據(jù)這個偏差來控制舵機打角,進(jìn)而控制小車姿態(tài);
如右邊圖3所示,當(dāng)小車偏右,此時與圖2相反,右電感遠(yuǎn)離信號線,感應(yīng)電動勢減小,而左電感感應(yīng)電動勢較大,此時左右電感產(chǎn)生的感應(yīng)電動勢也存在偏差,只不過與圖二所示情況的偏差方向不同了,同理也可以利用這個差值來控制小車姿態(tài)調(diào)整。
由于這個感應(yīng)電動勢很小,只有mV級,且是交流信號,直接使用單片機的ADC采集不現(xiàn)實。
所以就需要在諧振電路后加入運放模塊實現(xiàn)一定比例的前級放大以及檢波處理得到峰值電壓,而后通過單片機ADC進(jìn)行采集處理計算偏差,此處參考龍邱科技的運放模塊講解。
通過獲取左右電感的電動勢控制小車進(jìn)行調(diào)整姿態(tài)。詳細(xì)講解參考逐飛科技的電磁四輪車講解
編碼器
其作用就是用來獲取小車的速度,工作時隨著齒輪的旋轉(zhuǎn)過程會規(guī)律的產(chǎn)生脈沖,單片機通過捕獲上升沿或者下降沿個數(shù)來讀取脈沖數(shù)進(jìn)而可以獲取車速。
這里的512線編碼器和1024線編碼器就是指編碼器旋轉(zhuǎn)一圈產(chǎn)生的脈沖數(shù),有了脈沖數(shù)就可以運用常見的T法測速或者M法測速得到小車的速度。(T法M法可以參考電力拖動運動控制系統(tǒng)的講解。)
帶方向的是指編碼器的兩個輸出口,一個腳是輸出的是脈沖,另外一個輸出是根據(jù)旋轉(zhuǎn)方向輸出的高低電平(假設(shè)正轉(zhuǎn)輸出1,則反轉(zhuǎn)輸出0,筆者自定義正反);主控可以通過獲取高低電平來判斷速度方向。
正交解碼的編碼器指的是這種編碼器兩個輸出腳都是輸出脈沖,只是A、B兩組脈沖根據(jù)相位不同來定義速度方向,假設(shè)A相超前B相就是正方向;那么B相超前A相就是反方向。
5.驅(qū)動系統(tǒng)
驅(qū)動主要講解電機驅(qū)動,舵機的驅(qū)動留到后面控制部分再做介紹。電機驅(qū)動主要采用的方式H橋驅(qū)動,主要原理和前面提到的開關(guān)電源差不多,也是通過控制開關(guān)管的導(dǎo)通與關(guān)斷來實現(xiàn)電機供電電壓的改變進(jìn)而控制電機速度。
如上圖所示
當(dāng)A管和D管導(dǎo)通,B管和C管斷開時,電機是正轉(zhuǎn);假設(shè)A管一直導(dǎo)通,則只需要通過控制D管的導(dǎo)通速度就可以改變電機的運轉(zhuǎn)速度,這就是單極性控制方式,而雙極性控制是指同時控制A管和D管的導(dǎo)通,進(jìn)而控制電機速度。
當(dāng)B管和C管導(dǎo)通,A管和D管斷開時,電機是反轉(zhuǎn);同理單極性控制是指A管或者D管一直導(dǎo)通,通過控制另外一個管子開關(guān)來控制電機的速度。而雙極性控制是指同時控制兩個管子的開關(guān)來控制電機的速度。
常見的H橋驅(qū)動方式還有BTN、IR2104加Mos管或者是HIP4082加MOS
機械結(jié)構(gòu)
機械結(jié)構(gòu)主要是前輪的傾角調(diào)節(jié),關(guān)于小車的硬件搭建就介紹到這里,如有錯誤歡迎大家批評指正,也歡迎大家交流討論。
如果文章對你的比賽有所幫助,而且賽后對此文還有印象,筆者在評論區(qū)等待你們的分享。
編輯:黃飛
?
評論
查看更多