日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

第十四届恩智浦智能车室外电磁比赛总结

發(fā)布時間:2023/12/31 89 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十四届恩智浦智能车室外电磁比赛总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

樓主是19室外電磁小白一枚,由于學校歷屆組別使用的都是攝像頭,電磁用的很少,所以今年幾乎從零開始。在這半年的智能車調(diào)試中也走了不少彎路,有了一些收獲,現(xiàn)將參賽總結(jié)記錄如下:

文章目錄

    • 入門基礎知識
      • 關(guān)于核心板
      • 關(guān)于什么是主板和驅(qū)動板
      • 關(guān)于電機:
      • 關(guān)于舵機
      • 關(guān)于編碼器
      • 關(guān)于oled顯示屏
      • 關(guān)于串口
      • 附錄一些學長留給我們的建議
          • PCB制板注意事項:
          • 提高調(diào)試效率方法:

入門基礎知識

樓主用的是越野型L車模(高大威猛的一批),整體就是控制電機的轉(zhuǎn)速(直道加速,彎道減速以防沖出賽道)、控制舵機的打角,類似于騎自行車。

關(guān)于核心板

我是用的山外的K60 UD核心板,建議大家用山外的板子,真滴好用。我們隊最開始用的是學長留下來的一塊藍宙的芯片,我透,心酸不必言說。。。換用山外芯片和dap之后,再沒糾結(jié)過燒寫的問題,車相關(guān)的其他問題還可以問山外客服,山外牛逼!
它大概長這個樣子:

關(guān)于什么是主板和驅(qū)動板

驅(qū)動板:
驅(qū)動板是比較獨立的一個部分,它的唯一作用就是把PWM放大,然后加到電機兩側(cè),因為核心板產(chǎn)生的PWM對應的電壓較小,不足以驅(qū)動電機轉(zhuǎn)動。至于什么是PWM,在下文的電機部分會有所介紹。

然后,由于驅(qū)動板難焊是一個普遍存在的問題,所以在調(diào)車初期不要糾結(jié)焊驅(qū)動板的問題(我們隊就是最開始焊接技術(shù)不好,焊了一個月的驅(qū)動板都沒焊好,浪費了好多時間),大家可以直接拿往屆學長的驅(qū)動板先用著,把車最快速度跑起來才是王道!!!

主板:
主板就是車的核心,
主板的部分電路是提供不同大小電壓的,比如5V穩(wěn)壓,3.3V,舵機所需的6V或者更高的電壓 等等

另一部分的作用主要是留出接口,比如我需要用核心板的某個引腳,因為核心板被插到主板上了,沒辦法直接接,所以我需要在畫板子的時候就把這個接口留出來。比如我需要用A8這個腳,我就需要在主板的pcb文件中,把A8這個引腳對應位置的通孔(通孔1)接線出來,另成一個通孔(通孔2)放到主板其他地方,如果我需要用A8這個腳,我就直接把線接到剛才留出的通孔2上面就行了,這樣就間接的連到核心板的A8這個腳了。

關(guān)于電機:

由于最初很小白,一直在糾結(jié)PWM是個什么東西,看了相關(guān)論文和視頻介紹,越看越慌。其實不用糾結(jié),不用糾結(jié),幾行代碼就搞定的事!!!
電機PWM(占空比)作用可以理解為我們可以通過調(diào)整占空比的大小來調(diào)整電機兩側(cè)的電壓。
比如給電機12V電壓,如果滿PWM(占空比)的話,相當于在電機兩側(cè)加了12V電壓,電機轉(zhuǎn)速達到最大;
如果占空比為50%的話,電壓會小一些,大概在6-8V左右,轉(zhuǎn)速也會相應減小(電壓與占空比是正相關(guān),即占空比越大,電壓越大,轉(zhuǎn)速越快,兩者是否線性相關(guān)我不太清楚)。

初期不用糾結(jié)對應不同情況調(diào)PWM,只需初始給電機一個PWM,恒速跑完一圈再糾結(jié)。

初始化代碼如下:

void FTM_PWM_init(FTMn_e ftmn, FTM_CHn_e ch, uint32 freq, uint32 duty)//引腳初始化代碼

函數(shù)中各參數(shù)的定義如下:

FTMn_e 是模塊號,有FTM0、 FTM1、 FTM2 這三種模塊可供選擇。
FTM_CHn_e 是通道號(CH0~CH7),
freq 是頻率(單位為Hz)
duty是占空比分子,占空比 = duty / FTMn_PRECISON,這個FTMn_PRECISON是可以在ftm.h那個文件里面自己進行調(diào)整的,比如我的代碼里面是這樣的:

#define FTM0_PRECISON 100u #define FTM1_PRECISON 20000u #define FTM2_PRECISON 1000u

那如果我是用的是FTM0, 想要一個占空比為50%的PWM波,那我就需要給函數(shù)的duty賦值為50就行了,占空比即為50/100 = 50 %, 如果我是用的是FTM1, 我如果向給一個占空比為30%的PWM波,那我就需要給函數(shù)的duty賦值為6000就行了,占空比即為6000/20000 = 30 %。

一開始看到這行init代碼可能會被嚇到,沒事,你不用管這個代碼具體怎么實現(xiàn)的,你只需要在你寫的東西里面調(diào)用就行了。

關(guān)于那個模塊號和通道號,你不需要管它到底是啥,你只需要知道一個模塊中的每一個通道號對應一個引腳,比如FTM0_CH6就對應著核心板上的一個引腳,如果你給核心板供電,再調(diào)用代碼讓這個引腳輸出一個PWM波,它就會乖乖輸出一個波形,有兩個這樣的PWM波分別加到電機引腳兩側(cè),電機就會對應輸入兩個PWM占空比的差值不同而達到不同的轉(zhuǎn)速。

我們隊的代碼里面電機的初始化如下:

FTM_PWM_init(FTM0, FTM_CH2, 10000, 0); FTM_PWM_init(FTM0, FTM_CH3, 10000, 0);//初始化 電機 pwm

即給核心板上的兩個引腳分別初始化,頻率為10k(電機一般都是這個頻率),占空比初始設置為0,。

關(guān)于引腳與通道號的對應關(guān)系,在K60官方手冊里面有列出,大家可以去對照著看。


舉個例子,對于上圖的PTA7, 它是指核心板上的 A7這個管腳,它對應的是FTM0_CH4 這個通道號,如果你在代碼里面讓FTM0_CH4 輸出一個占空比為50% 的pwm 波,那么A7 這個管腳上就會輸出一個波形,占空比為 50% ,你可以把它連到示波器上面觀察一下。

現(xiàn)在我如果想讓電機接收到占空比為50%的波而轉(zhuǎn)動,我可以這樣

FTM_PWM_Duty(FTM0, FTM_CH2,0);FTM_PWM_Duty(FTM0, FTM_CH3,50);//這里的50 是因為 FTM0 的 FTM0_PRECISON 是100 , 那么傳入50 的話 占空比即為 50 %

這個 FTM_PWM_Duty 函數(shù)的作用是改變某個通道的占空比,因為不能說初始化的時候設置完占空比就不能改變了,那樣就不存在車子的加減速了,你想要多大的占空比,就調(diào)用這個函數(shù)傳入不同占空比就行了。

當你把這兩個通道對應的引腳通過驅(qū)動板升壓再接到電機兩側(cè),你就可以看到電機轉(zhuǎn)動起來了。

關(guān)于舵機

與電機類似,舵機也是通過調(diào)整輸出的PWM占空比來進行調(diào)整打角的大小。與上文一樣,不需要糾結(jié)舵機到底是什么東西,你只需要給舵機供電,然后給舵機的信號線輸出一個PWM波,舵機就會打到對應占空比的角度,車子便可以做到不同角度的轉(zhuǎn)彎。
與電機略有不同的是,電機是轉(zhuǎn)速與占空比呈正相關(guān)關(guān)系,占空比越大,轉(zhuǎn)速越快;而舵機只有在一定的占空比范圍之內(nèi)才能工作,如果超出這個范圍的話舵機有可能會燒壞(一個舵機100來塊錢,大家注意使用的時候一定要限幅哈)。

這里便要放出一個經(jīng)典的圖了,如下:

是不是感覺一臉懵逼,哈哈,其實不用糾結(jié)這么多,上面這張圖片的意思就是舵機的打角與PWM占空比之間是一個線性映射的關(guān)系,上圖可用下面的表格來表示

PWM占空比大小舵機打角角度
2.5 %-90度
5 %-45度
7.5 %0度
10 %45度
12.5 %90度

在我們隊的代碼里面,關(guān)于舵機也只是調(diào)用了那兩個函數(shù) FTM_PWM_init() 和 FTM_PWM_Duty()

具體代碼如下:

FTM_PWM_init(FTM1, FTM_CH0, 100, 1500);//初始化舵機

這行代碼初始化FTM1_CH0 為頻率100HZ,初始占空比 1500 / 20000 = 7.5% 。
ps:注意1500是我們傳入的參數(shù),真正的占空比是 1500 / FTM1_PRECISON (由于我們代碼里面FTM1_PRECISON 是 20000, 所以即初始化向舵機信號口輸出 7.5% 占空比的波,即初始讓舵機打到中值位置)

之后再控制舵機打角時,由于L車前輪如果不改裝的話大概最大能打到45度左右,所以我們將FTM_PWM_Duty 參數(shù)限制在了1000 - 2000 (即占空比5% - 10% 、 打角 -45度 到 45度之間), 因為我們乖乖限幅了,所以舵機從頭到尾只壞了一個,還是因為莫名其妙的原因壞掉的,其他隊沒太注重限幅的都換了7、 8個, 那可都是錢啊! 錢啊!!!

關(guān)于編碼器

編碼器我們最開始糾結(jié)了好久,不知道怎么用,搜了好多資料越看越迷,都是在扯A相、B相、正交解碼、上升下降沿啥的,看完之后毫無收獲,其實說白了就三行代碼 (我們是單電機,用的是lptmr計數(shù),只使用了A相、5V 、 GND 這三根線就夠了,A相連了核心板的A19 口):

在整個核心板上,一共有兩個口可以lptmr計數(shù),分別是 A19 和 C5

枚舉管腳號
LPT0_ALT1PTA19
LPT0_ALT2PTC5

初始化:

lptmr_pulse_init(LPT0_ALT1,0xFFFF,LPT_Rising);//初始化編碼器 lptmr

調(diào)用lptmr計數(shù):

uint32 num = lptmr_pulse_get(); // lptmr_pulse_get 函數(shù)會返回一個值,記錄了從上次清零到本次調(diào)用該函數(shù)時編碼器 記錄的值的大小,這個值是和電機轉(zhuǎn)動的圈數(shù)正線性相關(guān)的lptmr_pulse_clean(); 清零函數(shù),把編碼器記錄的值清零

那么如果我想知道車子轉(zhuǎn)一圈編碼器的值是多少,我就只需要先調(diào)用clean函數(shù)清零,然后轉(zhuǎn)動輪子一圈,這時調(diào)用lptmr_pulse_get函數(shù)返回的值便是輪子轉(zhuǎn)這一圈對應的編碼器記錄的值的大小了。

注意:
編碼器有一個較為特殊的點,直接將編碼器的A相輸出口接到 A19上的話,你會發(fā)現(xiàn)編碼器get的值絕大部分時候都是0,只有在上電瞬間才會有值,哈哈,因為編碼器的A相在接到A19口的同時需要上拉一個4.7K 的電阻到 3.3V電壓上面去,這樣get到的值才是正常的。

關(guān)于oled顯示屏

oled顯示屏是超級推薦大家使用的,主要用來實時顯示各路電感的值的大小,還有一些Flag是否被觸發(fā)啊什么的,方便你找規(guī)律,還是那句話:不要糾結(jié),山外的代碼例程都有例子,你只用接好線,調(diào)用函數(shù),就能輸出你想要的東西啦。

關(guān)于串口

在處理大批數(shù)據(jù)時,串口就發(fā)揮著極大的作用,這里還是推薦下山外的nrf無線串口,使用方法跟傳統(tǒng)串口一毛一樣,關(guān)鍵是無線啊!無線啊!!! 遠程傳輸、無線調(diào)車,你值得擁有!!!!!(看在我經(jīng)常有問題去麻煩山外客服的份上,就不收廣告費了)

附錄一些學長留給我們的建議

PCB制板注意事項:
  • 盡量加寬電源、地線寬度,最好是地線比電源線寬,它們的關(guān)系是:地線>電源線>信號線,通常信號線寬為:0.2~0.3mm,最經(jīng)細寬度可達0.05~0.07mm,電源線為1.2~2.5 mm
  • 位于電路板邊緣的元件,離電路板邊緣一般小于2mm
  • 當與焊盤的連接走線較細時,要將焊盤與走線之間的連接設計成淚滴狀
  • 接地線應盡量加粗。若接地線用很細的線條,則接地電位隨電流的變化而變化,使抗噪能力降低。因此應將接地線加粗,使它能通過三倍于PCB上的允許電流。如有可能,接地線寬度應在2~3mm以上
  • 大面積覆銅 所謂覆銅,就是將PCB上沒有布線的地方,鋪滿銅膜。PCB上的大面積覆銅有兩種作用:一為散熱;另外還可以減小地線阻抗,并且屏蔽電路板的信號交叉干擾以提高電路系統(tǒng)的抗干擾能力
  • 注意導線的寬度是否滿足要求,尤其是電源線和地線,能加寬的地方一定要加寬,以減小阻抗。
  • 焊盤的內(nèi)孔一般不小于0.6mm,因為小于0.6mm的孔開模沖孔時不易加工
  • 通常情況下以金屬引腳直徑值加上0.2mm作為焊盤內(nèi)孔直徑
  • 建議畫PCB時在電路板四周各打一個直徑為3.3-3.5mm的孔用以上螺絲固定
提高調(diào)試效率方法:
  • 調(diào)試時盡量使用藍牙串口查看波形
  • 同時可配合使用OLED顯示屏看數(shù)據(jù)
  • 適量加入一些模塊比如蜂鳴器等來提示是否成功檢測到某個狀態(tài)
  • 建議采用離線調(diào)試的方法,如增加獨立按鍵模塊、手機藍牙發(fā)送數(shù)據(jù),紅外遙控發(fā)送數(shù)據(jù)等,不需要每次修改參數(shù)都連接下載器重新燒錄程序。

本文主要是基礎知識總結(jié),關(guān)于調(diào)車中出現(xiàn)的各種情況的處理方法,大家可以看看我隊友寫的
常見問題解決方法匯總——十四屆恩智浦智能車室外電磁越野組

總結(jié)

以上是生活随笔為你收集整理的第十四届恩智浦智能车室外电磁比赛总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。