ST夯實(shí)MCU戰(zhàn)略 無(wú)線、安全、AI成為發(fā)力點(diǎn)
*帶隊(duì)教師:左義海 寇元
本文引用地址:http://www.biyoush.com/article/202108/427929.htm本組使用的是自制車(chē)模,采用宏晶公司的stc8g2k64s4作為核心控制單元,自主構(gòu)思控制方案及系統(tǒng)設(shè)計(jì),包括傳感器信號(hào)采集處理、控制算法及執(zhí)行、動(dòng)力電機(jī)驅(qū)動(dòng)等,最終實(shí)現(xiàn)一套能夠自主識(shí)別路線,并且可以實(shí)時(shí)輸出車(chē)體狀態(tài)的智能車(chē)控制硬件系統(tǒng)[1-2]。
圖1 車(chē)模整體視圖
1 智能車(chē)軟件整體設(shè)計(jì)方案
軟件部分的設(shè)計(jì)主要是對(duì)微處理器stc8g2k64s4 的程序編寫(xiě),通過(guò)計(jì)算,對(duì)其各個(gè)端口進(jìn)行讀寫(xiě)控制,即將傳感器獲取的電信號(hào)通過(guò)單片機(jī)端口讀入,并經(jīng)過(guò)處理,進(jìn)行控制算法,最終通過(guò)單片機(jī)端口輸出給硬件電路,對(duì)車(chē)速、打角等硬件電路進(jìn)行控制,最終實(shí)現(xiàn)對(duì)車(chē)輛機(jī)械部分的控制[3-5]。軟件的設(shè)計(jì)原則主要是:效率、結(jié)構(gòu)化、規(guī)范、易讀。因?yàn)檐浖糠稚婕暗蕉丝谳斎胼敵鰯?shù)據(jù)的處理,要對(duì)車(chē)輛硬件進(jìn)行控制,因此要提高軟件處理的效率以達(dá)到控制的及時(shí)性。另外,整個(gè)控制環(huán)節(jié)有緊密的邏輯關(guān)系,因此,軟件的結(jié)構(gòu)合理和規(guī)范化的設(shè)計(jì)有助于調(diào)理邏輯關(guān)系,便于修改、調(diào)試、擴(kuò)展及擁有較強(qiáng)的適應(yīng)能力。程序編寫(xiě)選用MDK 為編譯環(huán)境,C 語(yǔ)言為主要程序編寫(xiě)語(yǔ)言。軟件系統(tǒng)是對(duì)傳感器等輸入設(shè)備輸入的信息進(jìn)行處理,然后通過(guò)一定算法,得到控制輸出,對(duì)現(xiàn)有的硬件電路進(jìn)行調(diào)度和控制,從而使智能車(chē)按照賽道前進(jìn)。軟件系統(tǒng)要達(dá)到的最終目的是讓智能車(chē)更快更穩(wěn)的在賽道上行駛,從而真正達(dá)到“智能”。
2 賽道特殊元素處理方法
2.1 車(chē)庫(kù)處理方法
對(duì)于車(chē)庫(kù),我們的思路是:
檢測(cè)→程序執(zhí)行打角→程序執(zhí)行直走→停止
● 檢測(cè):我們先后試過(guò)紅外,干簧管,磁力計(jì)。經(jīng)對(duì)比,我們采用一根彈簧將磁力計(jì)吊在碳桿上的方案。
● 程序執(zhí)行打角:檢測(cè)到車(chē)庫(kù)之后,車(chē)模就開(kāi)始進(jìn)行打角,在這里我們采取固定轉(zhuǎn)向的方法,我們通過(guò)控制車(chē)模打角的時(shí)間來(lái)使車(chē)子打角。車(chē)模打角的時(shí)間是通過(guò)大量實(shí)驗(yàn)得出數(shù)據(jù),然后用matlab 擬合出一條時(shí)間-電壓曲線,通過(guò)這條曲線計(jì)算出來(lái)的。
● 程序執(zhí)行直走:打角程序執(zhí)行完成后我們控制車(chē)模直走進(jìn)庫(kù),直走也是給的固定占空比,我們同樣是控制車(chē)模執(zhí)行程序的時(shí)間來(lái)完成這一步驟。
圖2 車(chē)庫(kù)
2.2 環(huán)島處理方法
圖3 環(huán)島
圖3 為一個(gè)標(biāo)準(zhǔn)的環(huán)島,我們的處理方法主要基于我們的電感排布方式,所以不一定普遍適用。我們采用的電感排布是“三橫兩豎”。由于環(huán)島鋪設(shè)是有一個(gè)點(diǎn)或一段距離是電磁線重疊的,這個(gè)區(qū)域的電感值會(huì)明顯區(qū)別于別的地方,根據(jù)這一特征我們將其判斷為環(huán)島。之后再通過(guò)豎直電感和水平電感的偏差擬合出一個(gè)新的偏差,以此進(jìn)環(huán)。最后需要對(duì)出環(huán)進(jìn)行處理,防止一個(gè)環(huán)島繞幾圈而耗能。
2.3 坡道處理方法
由于坡道鋪設(shè)有明言規(guī)定電磁線會(huì)鋪在坡道表面(如圖4),所以說(shuō)到了坡道處水平電感會(huì)有突變,經(jīng)多次測(cè)試,中間電感值變化最明顯,又加了陀螺儀判斷當(dāng)前角度為車(chē)模正常行駛的角度作為輔助判斷條件。經(jīng)多次測(cè)試后,該方案可行。
圖4 細(xì)則中鋪設(shè)坡道說(shuō)明
軟件控制是基于機(jī)械系統(tǒng)和硬件系統(tǒng)的完善的基礎(chǔ)上開(kāi)展起來(lái)的。我們?cè)O(shè)計(jì)電磁程序控制算法的時(shí)候,首先根據(jù)不同放大倍數(shù)的電磁運(yùn)放傳感器,確定了我們所需要采取的數(shù)據(jù),然后配合上位機(jī)將電感值反饋回來(lái),再配合各個(gè)傳感器的數(shù)據(jù)進(jìn)行分析和處理。通過(guò)嘗試過(guò)的方案優(yōu)劣比較,最終確定采集特征值判斷,效果比較明顯。
3 結(jié)語(yǔ)
軟件設(shè)計(jì)是在機(jī)械和硬件得到保障下的一項(xiàng)工作。因?yàn)橛行﹩?wèn)題從軟件上解決或許很棘手,但是從機(jī)械或硬件上入手就會(huì)很簡(jiǎn)單,所以在機(jī)械和硬件設(shè)備完善的情況下軟件設(shè)計(jì)起來(lái)會(huì)相對(duì)順利。先在桌面上靜態(tài)調(diào)試使車(chē)模直立起來(lái),接著電感進(jìn)行濾波計(jì)算偏差,然后上算法循跡,最后再綜合調(diào)試。直立控制上我們采用的是PD 控制,轉(zhuǎn)向算法上我們也采用的PD 控制,處理特殊元素時(shí)我們采取特征點(diǎn)來(lái)判斷。電機(jī)控制算法上我們有所不足,但是我們肯定會(huì)繼續(xù)努力,繼續(xù)嘗試不同的算法,完善我們小車(chē)的控制程序。
參考文獻(xiàn):
[1] 關(guān)于舉辦第十五屆全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽的通知[EB/OL].[2020-6-6].https://blog.csdn.net/zhuoqingjoking97298/article/details/106581683
[2] 王盼寶,佟超,曹楠,等.智能車(chē)制作[M].北京:清華大學(xué)出版社,2001.
[3] 張劍平.模擬電子技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2011.
[4] 閻石.數(shù)字電子電路基礎(chǔ)[M].北京:高等教育出版社,2005.
[5] 邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開(kāi)發(fā)方法[M].北京:清華大學(xué)出版社,2001.
(本文來(lái)源于《電子產(chǎn)品世界》雜志2021年2月期)
評(píng)論