智能車製作——從元器件、機電系統、控制算法到完整的智能車設計|文末贈書

 

智能車競賽背景


全國大學生智能車競賽是一項舉辦了十四屆的大學生自動控制類科技競賽,它要求指定的車模能夠在規定的賽道上實現路徑識別、自主尋跡,並快速行駛。麻雀雖小,五臟俱全,雖然競賽智能車沒有現實生活中的無人駕駛技術來的那麼複雜,但是也需要相應的傳感器、執行器、控制器以及硬件電路並進行控制算法的設計與調試等。

一般需要數月才能較爲系統地掌握上述知識,而能熟練應用並進行系統化調試以及創新往往需要更長時間。因此,該項賽事爲大學生將理論知識轉化爲實踐技術提供了良好的平臺。同時,智能車組委會每年都會對競賽規則、賽道元素等進行非常用心的調整,競賽的新穎性與公平性得到了保證,因此每年都會吸引大量相關學科背景的學生積極參與。

▲ 640

▲ 640

 

如何入門智能車?


智能車競賽涉及自動控制、機電設計、電機驅動、信息通信等多個領域,那麼應該如何快速入門呢?

智能車車的第一步是確定硬件配置。用什麼微控制器,是常用的K60,KL26還是性能更好的K64,K66?常用的型號網上成熟的中文的資料較多也有不少第三方的資料支持。性能更好的產品帶來更多的挑戰,比如說要看英文的手冊,但也可以運算更快,實現更復雜的算法。如果選擇的微控制器帶有FPU(Float Point Unit,浮點運算單元) ,則對於存在着大量浮點運算的平衡組就更好不過啦。

確定微控制器之後就要學習如何應用微控制器了,學習的方法和渠道有很多。我個人建議先用各類庫學習上手,實現基本功能後看着Reference Manual學習寄存器操作。雖然現在半導體廠商大都提供官方的SDK或者庫文件,但是學習寄存器操作也是很重要的。在確定型號之後,就要去實現具體功能了,比如說讓線性CCD能採集到收據(GPIO和ADC),能採集到陀螺儀加速度計的數據(SPI或I2C或ADC)。然後讓電機轉起來(FTM產生PWM),讓電機轉起來之後爲了實現閉環控制還需要對轉速進行測量採集啊,這就需要對旋轉編碼器數據進行採集(FTM或LPTMR)。

這些基本功能實現了之後,咱們得讓他們按照一個相對固定的運行時序工作,這就需要使用定時中斷了(PIT)。如果想看看運行過程中的一些數據,常用的就是藍牙模塊,這就需要用到微控制器裏的串口了(UART)。另外做攝像頭的同學最好再看一下中斷嵌套和中斷優先級。當然,各種IDE工具也要學着用了啊,什麼CodeWarrior、IAR、MDK、KDS(Kinetis Design Studio)之類的,找個自己喜歡用的、用着順手的。

接下來就是做硬件的同學重點關注了。硬件要學習的東西比較雜,也比較細,首先要了解器件。電容大夥兒都知道,那麼電容有哪些分類?鉭電容和其他的電解電容有什麼區別,適用於哪些場合?這些都是需要了解的。類似的還有電感、電阻。對於器件還需要關注電氣性能,需要查閱手冊瞭解工作電壓,工作電流和典型電路設計。關於這些本書前面的章節有了很好的介紹,資深工程師鳳姐介紹的很詳細了,下面我就繼續說順序和思路。

瞭解好最基本的電阻、電容、電感後,就可以看看常見的穩壓芯片。穩壓芯片要結合着其他功能模塊一起看,比如說選用的微控制器的供電電壓是多少,線性CCD的供電電壓是多少,爲什麼有的人會在OLED的信號線上串聯20-50Ω的電阻等等,這些都是要結合具體的外設進行設計的。與此同時要注意看功耗即最大輸出電流,因爲穩壓芯片的輸出能力是有限的,一個穩壓芯片能給幾個外部設備幾個功能模塊供電,是需要進行計算和留有餘量的。

對於一個硬件工程師來說,焊接是基本功。如果焊接不過關,那麼後面就會有很多奇奇怪怪的問題,比如說虛焊,這裏借用超哥的一句話:“虛焊是萬惡之源”。當然短路就更要避免了。

對於剛剛入門的硬件來說,最好不要直接就畫PCB板子。如果能用洞洞板(也有人叫萬用板)手焊一些板子出來用用,會對後續的學習比較有幫助。因爲在這個過程中即練習了焊接技術,也對電路板的設計有了更感性的認識。其實硬件的同學在很大程度上充當着定方案的角色,但這個並不是絕對的。因此需要做硬件的同學廣泛的瞭解不同芯片,傳感器的異同和優缺點。在瞭解好各個功能模塊的供電和設計好電源管理之後,就可以進入硬件電路中比較大頭的部分了,電機驅動的設計。

電機驅動一般有兩種方案,集成芯片構成H橋和分立器件構成H橋。對於H橋的概念以及這兩種方案的具體區別,本書都有具體介紹,這裏就不在贅述了,分立器件構成的電路在其他工程領域內應用的還是挺多的,建議還是仔細研讀研究一下。對於傳感器,平衡車中常用的姿態傳感器,旋轉編碼器以及循跡傳感器(線性CCD,攝像頭,電磁傳感器)的接口接口電路也要有所瞭解。電磁傳感器的基本原理和放大方法也是很重要的一環。

在這裏還有必要學習一下運算放大器的知識,比如說什麼叫增益帶寬積啊,是不是軌到軌運放啊。在學習上述內容的時候,其實就可以開始學習如何用EDA工具進行PCB板的繪製了,常用的工具有Altium Designer,Cadence,PCB的繪製中的細節,本書也有介紹。如果是剛入門的電路,還是建議自己在洞洞板上搭一下驗證一下再去畫PCB,且不說如果打樣回來電路不能用浪費錢,就是這個電路不能用這個事兒就挺鬧心的。畫PCB的時候也可以瞭解一下PCB制板的工藝流程,相信這些知識也會讓你受益匪淺。

硬件電路中少不了需要調試,最常用的兩個助手就是萬用表和示波器。萬用表使用時有幾個點想提醒一下,電壓檔和電流檔的接頭是不一樣的,用完後最好及時恢復常用狀態。另外一點是蜂鳴檔的使用,蜂鳴檔可以用來簡單的判斷的通斷,但是這不是判斷問題根源的絕對因素。因爲蜂鳴檔是當阻抗低於某一數值就會發出鳴叫,最好的判斷短路的方法還是打到電阻檔看阻抗。

示波器的使用也不用多說,看信號看波形的助手,但是示波器測量電壓並不是很準。另外用示波器的時候注意看清楚用的是直流檔還是交流檔。無論是我們自己用洞洞板焊接出來的電路,還是外出PCB打樣的PCB板,在第一次上電時建議分區域分功能焊接並檢測。焊接好第一個電源模塊後,上個電用萬用表測測電壓是不是我們想要的,然後一步一步的焊接測試。這樣可以最大程度的減少硬件電路的損壞並發現問題。還記得當年我們第一次用沉金工藝的一塊電路板,一回來電源和地線就是短路的,那酸爽簡直不敢相信。另外關於車模的搭建,智能車製作論壇上有很多往屆參賽車模的照片,第一次搭建可以先仿製結構。

我們再看軟件部分,負責軟件的同學在學會用單片機之後就可以開始學習PID控制技術。智能車是用的是數字PID,學習好了可以在單片機上寫寫看,看看有沒有疑問,接下來就可以嘗試在車上進行實驗和運行了。在小車的製作過程中,時時刻刻要記得分清主要矛盾和次要矛盾。在絕大多數情況下要先解決有無問題再去解決好壞問題。對於首次在車模實體上進行實驗,首先需要解決的是讓電機轉起來。別的不說,先輸出個PWM讓電機轉起來,並藉此記錄下來電機運行的正方向。下一步我們就要研習算法讓小車站起來了。

平衡車想站起來得先獲取姿態傾角,如何獲取姿態傾角呢,本書也是有介紹的。在這裏想強調一點(敲黑板!劃重點!),要確定一個正方向。比如說以小車前進方向爲正方向,傾角以向前傾斜爲正方向等。正方向的方向可以不一樣,但是一定要統一。獲取傾角之後就可以利用傾角偏差讓車站起來了,簡單的PD控制就可以讓車站起來。這個PD參數整定的時候建議慢慢來,不要一下子給的很大,這樣沒準兒電機一猛轉就掃齒了。看車有站起來的趨勢再慢慢的把參數給大。有時候你調了半天參數還是站不起來,可以檢查一下正方向的問題。

在調試過程中要做好防撞保護工作,其實在完成了姿態解算之後就可以加一個最簡單的軟件保護。簡單的說就是一個撞停保護,設定個傾角閾值。閾值要設定兩個喲,因爲平衡車的傾角在運行過程中是可以變化的,保不齊是向前倒還是向後倒呢。當平衡車的姿態傾角超過這個閾值時關掉PWM的輸出,讓電機停下來防止電機的瘋轉使車模受損。

在這裏插一句放在這裏可能不太沾邊的話,如果你調好的車(四輪車也如是),進入運行狀態後電機就開始瘋轉,也許是編碼器除了問題,比如說線頭虛了或者是編碼器壞了。不僅軟件上要做保護,硬件和機械上也要做點處理。比方說在車前面加一小塊防撞泡沫,在發生撞擊時起到一個緩衝的作用。調試的時候也要注意,如果車撞了電機發生堵轉,一定要在第一時間過去關掉電源。因爲發生堵轉時通過電機驅動和電機的電流極大,十分容易將電機或者驅動燒壞。

在十一屆比賽的的賽場上筆者就親眼目睹了兩次電機堵轉。一次是B車衝出賽道撞到防護泡沫上發生堵轉,電機驅動冒煙,部分焊錫融化,及時將電源關閉後還能正常使用。另一次的結果就比較傷感了,C車撞擊到障礙上,車手沒有及時的去將電源關掉(可能是期待車模能蹭過去),然後就看着C車小電機裏面各種嘣火花、冒煙,等參賽隊員再次發車時發現,電機不轉壞掉了。記得筆者最初對車模進行調試時甚至在小車上幫了一根繩子,最終放開手腳把繩子解掉還是拿到了分區賽預賽資格。

總之,智能車的製作需要循序漸進、一步一個腳印的,開始的時候可以多蒐集和閱讀資料、瞭解前人的經驗。開始做車時要從簡到難,制定好計劃,在基本的硬件和軟件完成後,就是不斷調試和優化的過程了。整個過程中涉及的細節很多,多和他人交流、多主動學習,避免閉門造車。

 

相關圖書


智能車大賽獲獎作品作者聯合打造!全國大學生智能汽車競賽指導用書,智能車製作網站鼎力打造的原創作品!提供工程源文件!智能車製作權威指導書,引領無數學子成功參加比賽。

 

圖書贈送


您若是教師,可按以下方式申請圖書
(1)關注「人工智能科學與技術」公衆號,將本篇文章分享至朋友圈;
(2)填寫申請表:打開「人工智能科學與技術」公衆號菜單欄,點擊 「圖書」→「圖書申請」進入申請表。
(3)申請人須是普通高校教師並擔任所申請樣書對應課程,申請表中需要上傳相近課程的教學大綱證明身份。

您若不是教師,可按以下方式圖書抽獎
(1)關注「人工智能科學與技術」公衆號,將本篇文章分享至朋友圈;
(2)打開「人工智能科學與技術」公衆號對話框界面,輸入文字“抽獎”,系統會彈出抽獎二維碼;
(3)長按二維碼參與抽獎即可,獲獎者請於開獎當日2020年06月22日填寫郵寄地址。(抽獎有效期截至2020年06月22日20:00)
注:圖書申請長期有效;由於庫房變動,圖書將於7月初陸續寄送。

 

大咖聯袂


  • 樊越驍——當年智能車製作論壇名人鳳姐,在硬件設計、開關電源方面極富工程經驗,現任職於江蘇某科技公司
  • 佟超——北京科技大學智能車領隊之一,硬件功底深厚,常年活躍在智能車論壇幫助大家解決問題;
  • 單超羣——最早加入智能車論壇管理團隊的成員之一,現任職於深圳某科技公司,在程序設計開發方面積累了豐富經驗;
  • 王盼寶——於2007年創辦了智能車製作論壇,現爲哈爾濱工業大學智能車創新俱樂部指導老師;
  • 朱葛峻——畢業於中南大學,曾是學校智能車協會副會長,現就職於國核電力規劃設計研究院有限公司;
  • 曹楠——歷任第七屆至第九屆南京師範大學平衡團隊隊員領隊,現任職於恩智浦半導體;
  • 渠佔廣——畢業於廈門大學,現任職於華爲公司,曾獲智能車競賽國家一等獎;
  • 蕭英喆——太原理工大學晉豹智能車隊的指導老師,帶領學生屢獲智能車競賽國家獎項。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章