智慧型車製作全過程 飛思卡爾

2022-04-29 00:57:01 字數 4552 閱讀 8682

如果我寫得好,請頂我一下,我將再接再厲!

(本人在很久以前做的一輛用來比賽的智慧型車--獲得華北一等獎,全國二等獎,有許多可改進地方.)

下面我們來立即開始我們的智慧型車之旅:

首先,乙個系統中,感測器至關重要.

"不管你的cpu的速度如何的快,通訊機制如何的優越,系統的精度永遠無法超越感測器的精度" .是的,在這個系統中,感測器的精度,其準確性就顯得至關重要.如果你問我感測器的電路,呵呵,我早就和大家分享了,在我發表的日誌中,有一篇《基於反射式距離感測器》的文章就詳細的說明了感測器的硬體電路以及可以採取的訊號取樣方式.

感測器安裝成一排,如上面排列.(就是個一字排列,沒有什麼特別)

接下來,看看我們如何處理感測器得到的資訊:

大家看到了.結構很簡單,我們已經搞定了感測器通路.下面我們來看看多機的控制方面的問題:

其實,不管是便宜還是比較貴的舵機,都是一樣的用法.舵機的特點就是不同的占空比方波就對應著舵機的不同轉角.當然不同的舵機有不同的頻率要求.

比如我用的這個舵機:方波頻率50hz.怎麼改變占空比?

這個不就是pwm模組的功能嘛.pwm模組可以輸出任意占空比的方波.只要你控制其中的占空比暫存器,就可以直接控制舵機的轉角.

你只要將感測器的狀態和這個占空比對應上,不就ok了?就這麼簡單,做到這裡,你就可以讓你的車在跑道上跑了!

接下來,我們的工作是讓智慧型車更加完善:速度要穩定.

在當前的系統結構中,要使乙個系統更穩定更可靠,閉環系統是乙個選擇.(如果你不知道什麼是閉環系統,可以參照我的文章裡面的一篇"基於微控制器的pid電機調速"),既然是乙個閉環系統,速度感測器是必不可少的,用什麼樣的感測器做為速度反饋呢:

仔細看,和後輪之間有一條皮帶的這個貌似電機的東西,就是我的速度感測器,它的學名叫"旋轉編碼器".這個器件的特點就是:每轉一圈,就會從輸出端輸出一定的脈衝,比如我這個旋轉編碼器是500線的,就是轉一圈輸出500個脈衝.

因此,我只要在單位時間內計數輸出端輸出的脈衝數,我就可以計算出車輛的速度.顯然,這個速度可以用來作為pid速度調節的反饋.

現在有了反饋,我們需要的是調節智慧型車驅動電機的速度了,如何來調速,就成了必須解決的問題了.我用的是驅動晶元mc33886. 其實,這個晶元就是乙個功率放大的模組.

我們知道,微控制器輸出的pwm訊號還是ttl訊號,是不能直接用來驅動電機的.非要通過功率模組的放大不可.這個道理其實很簡單,就像上次我給大家畫的哪個電子琴電路的放大電路一樣:

看上面的那個三極體,就是將ttl電路的電流放大,才能夠來驅動蜂鳴器.其實這裡的這個mc33886就是這樣的乙個作用.而且我們自己也完全可以用三極體自己搭建乙個這樣的功率放大電路,當然,驅動能力肯定不如這裡的這個mc33886(如我們用三極體就搭建了超過mc33886的電路,摩托羅拉就不會賣幾十塊錢乙個了.

呵呵.)知道了這個mc33886的工作原理,就好說了,一句話,通過pwm來調節電機的速度.當方波中高電平佔的比例大,電機的平均電壓肯定高,轉速肯定快.

也就是說,pwm的占空比越大,電機轉速越高.

看,就這麼簡單,這個智慧型車就做好了.接下來,我們就把我們知道的pid知識放到舵機和直流驅動電機的控制中去.就可以達到乙個比較好的控制效果.

如果要達到更高的水平,肯定機械方面的改造也少不了.當然,這不屬於本文的討論範圍.呵呵.

智慧型車製作全過程(飛思卡爾---舵機篇

發表於 2008/11/28 10:00:55

感謝大家的支援!如果我寫得好,請頂我一下!

智慧型車的製作中,看經驗來說,舵機的控制是個關鍵.相比驅動電機的調速,舵機的控制對於智慧型車的整體速度來說要重要的多.

pid演算法是個經典的演算法,一定要將舵機的pid調好,這樣來說即使不進行驅動電機的調速(勻速),也能跑出乙個很好的成績.

機械方面:

從我們的測試上來看,舵機的力矩比較大,完全足以驅動前輪的轉向.因此舵機的相應速度就成了關鍵.怎麼增加舵機的響應速度呢?

更改舵機的電路?不行,組委會不允許.乙個非常有效的辦法是更改舵機連線件的長度.

我們來看看示意圖:

從上圖我們能看到,當舵機轉動時,左右輪子就發生偏轉.很明顯,連線件長度增加,就會使舵機轉動更小的轉角而達到同樣的效果.舵機的特點是轉動一定的角度需要一定的時間.

不如說(只是比喻,沒有資料),舵機轉動10度需要2ms,那麼要使輪子轉動同樣的角度,增長連線件後就只需要轉動5度,那麼時間是1ms,就能反應更快了.據經驗,這個舵機的連線件還有必要修改.大約增長0.

5倍~2倍.

在今年中,有人使用了兩個舵機分別控制兩個輪子.想法很好.但今年不允許使用了.

接下來就是軟體上面的問題了.

這裡的軟體問題不單單是軟體上的問題,因為我們要牽涉到感測器的布局問題.其實,沒有人說自己的感測器布局是最好的,但是肯定有最適合你的演算法的.比如說,常規的感測器布局是如下圖:

這裡好像說到了感測器,我們只是略微的一提.上圖只是個示意圖,意思就是在中心的地方感測器比較的密集,在兩邊的地方感測器比較的稀疏.這樣做是有好處的,大家看車輛在行駛到轉彎處的情況:

相信看到這裡,大家應該是一目了然了,在轉彎的時候,車是偏離跑道的,所以兩邊比較稀疏還是比較科學的,關於這個,我們將在感測器中在仔細討論。

在說到接下來的舵機的控制問題,方法比較的多,有人是根據感測器的狀態,運用查表法差出舵機應該的轉角,這個做法簡單,而且具有較好的濾波"效果",能夠將錯誤的感測器狀態濾掉;還有人根據計算出來的感測器的中心點(比如第四個和第五個感測器檢測到黑線,中心點就是4.5),計算出舵機需要的轉角,這個做法也比較的簡單,但是必須有乙個濾波的過程,必須要濾掉錯誤的感測器狀態.比如說:

現在感測器第四個,第五個和第11個檢測到了黑線,顯然第11個應該是個感測器檢測錯誤.應該把它濾掉.關於這個如何濾波,我們待會在後面將進行討論.

還有人的做法就是採用pid演算法,這個方法比較的好,其實也不是很難,就是pid引數整定的時候有些麻煩.

大家可以自己選擇喜歡的方法.

關於濾波,有些許的方法:

1.平均值排序法.

這個方法大家肯定一聽就知道是怎麼回事.就是不急於執行,先多次檢測被測感測器,累加,求平均值.這個方法不錯,特別在微控制器中.

比如:你如果連續採集8次,累加,最後你只要右移三位(value=value>>3;)就是value=value/8的結果.畢竟,在微控制器中,右移比除法要快嘛.

2.中間值演算法.

這個演算法也簡單,顧名思義,就是取不大不小的中間的值.這個演算法就需要把幾次採集的值排序,然後使用中間的那個值.

3.遞推濾波.

這個濾波方法比較的受認可,但是執行起來也有風險所在.先說這個演算法,就是根據當前值(感測器的中心點所在值),推算接下來的感測器中心點的量,如果發現前後變化劇烈,就視為干擾因素,忽略.這個演算法看起來比較的好.

但是風險就在於:如果出現了錯誤,並且錯誤的中心點成為的當前值,那麼以錯誤的中心點為基準,正確的中心點就成了干擾.這樣就會出現極端情況.

為了避免這個情況,我們應該有乙個檢查的模組,檢查當前的中心點是否有效.這個檢查,我們也許可以結合前面兩種方法,在一定時間對中心點的有效性進行檢查.

4.限幅濾波.

這個在舵機的控制中,特別是使用計算的方法獲得pwm訊號占空比的(用來控制舵機的轉角),更是尤為重要.這個濾波的思路就是規定乙個最大值和乙個最小值,當計算出的值低於最小值時,令其等於最小值;大於最大值時,令其等於最大值.

發表於 2008/11/15 22:28:01

如果我寫得好,請頂我一下,我將再接再厲!

(本人在很久以前做的一輛用來比賽的智慧型車--獲得華北一等獎,全國二等獎,有許多可改進地方.)

下面我們來立即開始我們的智慧型車之旅:

首先,乙個系統中,感測器至關重要.

"不管你的cpu的速度如何的快,通訊機制如何的優越,系統的精度永遠無法超越感測器的精度" .是的,在這個系統中,感測器的精度,其準確性就顯得至關重要.如果你問我感測器的電路,呵呵,我早就和大家分享了,在我發表的日誌中,有一篇《基於反射式距離感測器》的文章就詳細的說明了感測器的硬體電路以及可以採取的訊號取樣方式.

感測器安裝成一排,如上面排列.(就是個一字排列,沒有什麼特別)

接下來,看看我們如何處理感測器得到的資訊:

大家看到了.結構很簡單,我們已經搞定了感測器通路.下面我們來看看多機的控制方面的問題:

其實,不管是便宜還是比較貴的舵機,都是一樣的用法.舵機的特點就是不同的占空比方波就對應著舵機的不同轉角.當然不同的舵機有不同的頻率要求.

比如我用的這個舵機:方波頻率50hz.怎麼改變占空比?

這個不就是pwm模組的功能嘛.pwm模組可以輸出任意占空比的方波.只要你控制其中的占空比暫存器,就可以直接控制舵機的轉角.

你只要將感測器的狀態和這個占空比對應上,不就ok了?就這麼簡單,做到這裡,你就可以讓你的車在跑道上跑了!

接下來,我們的工作是讓智慧型車更加完善:速度要穩定.

在當前的系統結構中,要使乙個系統更穩定更可靠,閉環系統是乙個選擇.(如果你不知道什麼是閉環系統,可以參照我的文章裡面的一篇"基於微控制器的pid電機調速"),既然是乙個閉環系統,速度感測器是必不可少的,用什麼樣的感測器做為速度反饋呢:

仔細看,和後輪之間有一條皮帶的這個貌似電機的東西,就是我的速度感測器,它的學名叫"旋轉編碼器".這個器件的特點就是:每轉一圈,就會從輸出端輸出一定的脈衝,比如我這個旋轉編碼器是500線的,就是轉一圈輸出500個脈衝.

因此,我只要在單位時間內計數輸出端輸出的脈衝數,我就可以計算出車輛的速度.顯然,這個速度可以用來作為pid速度調節的反饋.

智慧型車製作全過程

如果我寫得好,請頂我一下,我將再接再厲 本人在很久以前做的一輛用來比賽的智慧型車 獲得華北一等獎,全國二等獎,有許多可改進地方.下面我們來立即開始我們的智慧型車之旅 首先,乙個系統中,感測器至關重要.不管你的cpu的速度如何的快,通訊機制如何的優越,系統的精度永遠無法超越感測器的精度 是的,在這個系...

飛思卡爾智慧型車比賽技術報告

第三屆 飛思卡爾 杯全國大學生 智慧型汽車邀請賽 技術報告 學校 北京理工大學 隊伍名稱 傲雄車隊 參賽隊員 劉鑫楊磊韓立博 帶隊教師 張幽彤冬雷 關於技術報告和研究 使用授權的說明 本人完全了解第三屆 飛思卡爾 杯全國大學生智慧型汽車邀請賽關保留 使用技術報告和研究 的規定,即 參賽作品著作權歸參...

飛思卡爾智慧型車比賽個人經驗總結

先靜下心來看幾篇技術報告,可以是幾個人一起看,邊看邊討論,大致了解智慧型車製作的過程及所要完成的任務。看完報告之後,對智慧型車也有了大概的了解,其實總結起來,要完成的任務也很簡單,即輸入模組 控制 輸出。1 輸入模組 各種感測器 光電,電磁,攝像頭 原理不同,但功能都一樣,都是用來採集賽道的資訊。這...