2014年福建省大學生電子設計競賽測控組參賽心得講稿

首先先給大家說個不好意思,由於這個月開始到公司實習,所以並沒有花太多的時間來準備這個講演,PPT也是做得十分簡陋,很敷衍,簡直就是貼幾張圖片就是一個PPT了。我考慮過要怎麼跟介紹我們的作品了,如果是跟大家講其中的整個過程,四軸飛行器的原理,難免會很枯燥,而且大家有些同學沒有做過了解過飛行器的項目,說的太複雜怕大家一時半會消化不來,說我就先簡單的介紹一下我們的作品,然後說一說我的隊友和我對於此次比賽的整個參賽過程。

 

由於上屆國賽做的是飛行器的,還有近幾年出的題目也是越來越前衛,開始從地上跑的智能車在到天上飛的飛機了,所以,我和我的隊友斷定今年的省賽肯定是有一道關於飛行器的題目,至於具體的題目是怎麼樣,我們纔不來,但是我們認爲至少要在暑假的時候把飛機做出來,至於要是實現怎麼樣的飛行難度,我們先不管,至少要先能飛起來,能夠在空中穩定的懸停。所以,我們從暑假開始就開始做四軸飛行器了,由於至於爲什麼做四軸的,很簡單,流行所以資料多,很多發燒友都在玩四軸,網上現成的方案也很多,所以做四軸是必然的選擇。雖然網上資料多,但是我們還是先請教了做過飛行器的學長,也就是陳誠斌學長,在這裏我要感謝一下陳誠斌學長,在整個製作過程中幫了我們很多忙,做飛行器需要的模塊清單就是按陳誠斌學長的推薦配置的。開始我們在一貼論壇和貼吧上找,資料很多,但是不全,對於一個對飛行器什麼都不懂的團隊來說,資料不全是一個很大的障礙,因爲即使卻了什麼你也不知道是不是缺了,然後缺了該去哪裏找。前面幾天我和隊友都在找資料,逛論壇和貼吧,我把自己能找到的能下載的東西打包一下,發給隊友,隊友也把他找到的好東西發給我,經過一對比,發現看的東西都是差不多,我們能夠的除了百度還是百度,對於找資料的方法我覺得是相當重要的,幾個常用的網站都去註冊一下,有些需要花錢買積分的,有需要的話也花點錢,畢竟花不了多少錢,這樣更省事。最後我們決定用一個叫做“匿名”的方案,這傢伙也是個技術宅,他把有的東西全部開源,還上傳了飛行視頻,源代碼和電路圖都十分的全面。

 

於是我們就開始研究代碼了,畢竟你是要參加比賽,你必須把裏面的每一行代碼都吃透然後才能去修改代碼參加比賽,對於看代碼,我們前前後後也是花了近一個星期的時間才吃透,中間也逐漸學會如何模塊化編程,之前做過的項目都比較小,所有的代碼都在一個.C文件裏面實現,所以看了飛行器這個龐大之後我也學會了如何去模塊話編程,後來和隊友合作的時候,我就把我做的模塊寫一個.c和.h文件,然後寫一個說明文檔,這樣隊友使用起來就非常方便。然後我們就開始照着網上的方案簡歷自己的工程文件,這其中我們還要說明的是,我們使用的處理器是stm32,爲什麼使用這個款處理器呢,首先是流行,因爲流行說資料很豐富,而且在課堂上也聽說現在的很多公司都在使用這款處理器,所以很有必要學習一下這款處理器,這款處理器有個有個有事就是,廠商提供了十分豐富的固件,很多底層的東西都已經幫你做好了,設置IO,串口,SPI,IIC等都是有現成的函數可以調用,使用起來時非常傻瓜化了的,現在也有些同學在學這款處理器,然後去看那厚厚的權威手冊,點亮個led還一個一個寄存器的去設置,我覺得沒必要這樣子學,不僅麻煩效率不高,還特別容易出錯。在真個軟件工程建立好之前,我們的飛機的樣子已經出來了,除了處理器的線還沒接,畢竟線怎麼接法跟軟件是有直接關係的。等軟件做完了我們就開始要下載程序,開始調試了,我所說的軟件做完了是說編譯通過了沒有什麼錯誤了,至於能不能飛,我們完全不知道,畢竟只有試了才知道。關於調試時跟飛機通信的手段,最理想的當然是無線呢,首選的就是NRF模塊,通信距離遠,但是這個模塊要編程,測試的時候一直出問題,電腦上接收不到,我花了一個多星期的時間都沒有把這個模塊搞定,所以就暫時放棄了,退而求其次,改用串口,就是在機身上拉一根線usb線接到電腦上,是很不方便了的,在比賽前幾天,我們纔想到用藍牙模塊,用藍牙模塊真是方便,不用編程,直接借兩個串口引腳,電腦上再接個藍牙接收器,就可以用了。

 

之後我們就開始調試了,調試的過程也是歷經千辛萬苦,因爲飛機畢竟和智能車不一樣,一個是地上跑的,一個是天上飛的,在地上跑的你再怎麼跑還是在一個二維平面,而飛機就不一樣了,三維的立體的,而且整個程序都還沒有經過驗證,所以,指不定程序下載完畢後開始運行,飛機就飛到哪裏去了,雖然剛開始並沒有遇到這樣的問題,但是畢竟飛機拉這一根串口線,所以,調試的成果畢竟是有限的,到了後拉用上了藍牙後纔算真正的調試,調試的第一個問題就是平衡了,首先就是保證四個馬達加同樣的油門的時候能夠直立飛行起來,而不會不定向的亂飛,主要還是調節一個六軸傳感器的零漂點和PID參數,有網友建議要調平衡可以分開調,平衡有兩個方向,我們就先把一個方向固定住,調另一個方向,等另一個方向okay了再換過來調這個方向,就這樣慢慢地嘗試,有做過控制類的同學知道調PID是一個多麼漫長和痛苦的過程,PID具體怎麼調我就說了,相關的資料非常多,大多數的意見都是先調那個再調那個,然後再兩個一起調。

 

在這裏還有一個插曲,我們做到這個時候其他省份省賽的題目已經陸續出來了,我們看了題目推測比賽用的處理器應該會有要求要用TI公司的430或者TIVA4,當然這只是猜測,我們也沒有十足的把握,我們請教老師,老師認爲是不會,但是我們爲了保險起見,還是在這個時候決定棄用stm32,改用TIVA4,這個過程是我的隊友完成的,雖然是陌生的芯片,但是畢竟都是ARM架構的處理器,所以還是有很多的共同之處,所以,並沒有遇到非常多的困難,而且這款芯片也有函數庫,我們需要用到的函數也是直接調用,所以還是非常方便的,從這兩款芯片的使用,我認爲,日後不論哪一款新的處理器想要流行的話,畢竟要有自己的固定庫,單單給個原件手冊遠遠不夠,這樣不僅能縮短開發者上手的時間,還能大大縮短整個產品的研發週期,使用方法越傻瓜越好,學習成本越低越好,就想蘋果手機給人的感覺就是拿起來就能用,如果再加上價格合理,如果有這樣的芯片我們有什麼理由不用呢?

 

下面我說一說比賽前幾天我們是怎麼調試的,開始的話,我們是在飛機上綁着一根繩子,一個人拉這,一個人用電腦端控制,根據飛行的飛行狀體調試參數,第一個目標就是希望能做到懸停,我們開始以爲懸停是最基本的,但是到了後面才直達懸停是最難的,你想讓飛機往一個方向飛,只要在程序上某個方向剪掉一個角度就可以了,方向基本能按照預定的飛,但是懸停就不一樣了,調試的時候按照我們的設定,飛機應該是停這不懂纔對,但是在停的時候總會漂移,這個問題就很嚴肅 ,如果比賽要求懸停,這麼一漂移給漂出場外了,那豈不是功虧一簣了,所以,解決這個問題刻不容緩,開始也利用調PID的方法,但是,這次調完漂的不那麼嚴重了,下次換個電池,因爲換電池的原因,我們懷疑是不是機身重心變化的原因,於是後來每一次換電池,都要小心翼翼的把把電池按照原來的位置放好,以最大程度的保持中心不變。但是你再怎麼小心翼翼也不可能做到和原來的一模一樣,所以,當時我就用隨身帶着的車鑰匙往機架上綁着,我是萬萬沒想到,效果很好,而且在也不用擔心會因爲每次換電池的原因重新再調一次PID。懸停的問題就差不多是用這樣的簡單粗暴的辦法解決了,當時我們的決定是在調試的時候找如何往機身上加鑰匙的規律,爭取在比賽的能有最快的速度把懸停的問題解決掉,從中也可以看出,我們算法的魯棒性是相當差的。

 

但是事情並不是一帆風順的,接下去是定高的問題,定高模塊用的是超聲波模塊,這個模塊的使用很簡單,附帶的說明書有介紹,但是理論和實際常常是不那麼符合的,剛開始還好好的,然後我們就放心的扯掉綁在機身上的那根繩子,然後問題出現了,這次出現的問題,差點把我和我的隊友嚇壞了,在比賽的期間第二天,飛機突然抽瘋了,一個勁地往上飛,直接撞上天花板的擋板上,然後槳斷了幾根,其中一個電機掉在地上直接摔壞了,慶幸的是,機架沒有摔斷,因爲槳和電機都有多買,但是機架沒有,要死機架給摔斷了,那可真的是一着不慎滿盤皆輸,所以後來的試飛過程,即使飛機的狀態多麼穩定,我們也還是綁着繩子。

 

然後我們就參加比賽了,第一次在學校內部比,結果成績很好,比我們預料的要好,題目要求飛機落點越精確分數越高,平時在測試的時候總是不能落的那麼準確,但這次測試的落點相當準備,不偏不倚落在中點上,這是運氣的因素,跟我們無關。

 

省測的時候,我們的還是非得不錯,但是落點沒有第一次那麼準確,所以,關於落點的成績下降了一個等級,但是對於獲獎我們還是很有信心的。在這裏不得不說到一點,大家從題目可以看出,基礎部分是很簡單的,就是基本上就是飛機飛過一根繩子,關於落點和穩定性能沒有多大的要求,很多組同學都能做到,難點就是懸停3S,而很多組在懸停都沒有做,我們的優勢就是這裏,如果說爲什麼我們組能得到這個題目的第一名,還真是多虧了我的這串鑰匙。

好了,關於比賽的過程就介紹到這裏,相信大家也聽得有點煩了。

如果要做個心得總結,我覺得有以下幾點:

一是經驗,如果我們不是第一次參加比賽,我相信我們可以做得更快更好。

二是興趣,興趣是最好的老師嘛。

還有的無非就是努力勤奮堅持毅力等這些東西了。

謝謝大家。

發佈了55 篇原創文章 · 獲贊 6 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章