賽題分析
通過對賽題的分析研究,我們認為,要完成題目需要滿足以下幾點要求:
1)實現小車的自動尋跡功能。題目要求小車需要沿著標記線自動行駛,到達目標位置時,需要發(fā)出聲音提示,且小車整體投影不得脫離標記線。
2)10s—20s時間內任意設定。同時行駛過程中需要以勻速狀態(tài)行駛,并且設定的時間與實際的行駛時間誤差不能超過1s,總共行駛時間不得超過30s。
3)要求指定角度實現小車勻速爬坡。同時規(guī)定行駛過程中不能停頓、打滑、碾壓標記線。
4)利用TI的MSP430/MSP432 平臺,設計制作一個四輪電動小車。要求小車能沿著指定路線在坡道上自動循跡騎線行駛。
硬件部分
1)坡道木板的搭建。
在構建坡道部分賽題中有相應的要求:坡道用長、寬約 1m 的細木工板制作,允許板上有木質本色及自然木紋。
木工板表面鋪設畫有1cm×1cm黑白間隔的紙條(以下簡稱為標記線)作為路線指示;標記線起始段為直線,平行于木板兩邊;
標記線在坡頂轉向 90°,轉彎半徑 20cm;標記線平行坡頂距離≥30cm,距坡頂距離≤20cm;標記線總長度為1m。
停車標記為寬1cm長5cm的黑色線條,垂直于坡頂標記線。行駛路面不得鋪設除標記線外的任何材料。小車全程在木工板上行駛。
依據該要求,我們搭建了符合題目要求的坡道木板,但因為材質的問題,之后小車的行駛并不是很順利,總是會產生一些錯誤的識別,可能也是由于材質本身的原因,所以后面我們又采用了另一種材質木板,最后以此搭建的坡道能夠結合小車很好的完成相應的題目要求。
2)小車的搭建
賽題對小車的要求是:
小車必須獨立運行,車外不能使用任何設備(包括電源)。
小車(含電池)重量小于1.5kg,外形尺寸在地面投影不大于25cm×25cm。
總的來說,做出小車的過程可謂是一波三折,實際上來講,我們都不知道總共做了幾版小車了,做出來的小車總會在某個地方遇到難以跨越的阻礙,剛開始時,采用的是結合MSP432結合灰度模塊的方案,然后輪子采用的是固定前面兩輪,后輪采用差速的方法實現轉90度彎;
首先采用兩個灰度模塊并行在小車前方,用于保持小車不走出黑白線組成的道路,之后采用另一個灰度模塊來識別黑塊,該灰度模塊用于實現轉彎控制,實際上的效果是,在直線方向上,還是能夠實現較好的效果,當現在轉彎的時候發(fā)現,由于輪子本身稍大且本身車體寬的原因,小車在轉彎時,必定壓線。
在試過多次后,發(fā)現該結構不行,于是就將前面兩輪更改成了用電機驅動的方式,只是在轉彎時給一個差速,實現轉彎,前面差速與后面差速是不一樣的,前面的差速能夠實現轉彎不壓線的效果,再之后我們又發(fā)現了利用舵機轉向來控制方向的辦法。
事實上,這樣帶來的效果更好,但同時我們在測試的過程中又發(fā)現一個存在缺陷的地方,那就是灰度模塊只有識別到黑塊才會進行轉彎,那么這樣就會遇到一個問題,就是起始的位置不同,會使得小車到轉彎處的位置不一樣,那么固定的用于識別轉彎的灰度模塊實際上就會在有些時候在需要轉彎的地方識別到的卻是白塊。
當如此之后,小車實際上就會直接直行出黑白線通道,而不會實現轉彎功能,我們想到的是給小車加模塊的辦法,實際上也如此做了,但帶來的效果卻不盡人意,在增加代碼的復雜度的同時,卻并沒有解決相應的問題。
因為加上新的灰度模塊之后,雖然最終會識別到黑塊,但總歸是在另一個位置識別到的,在轉向時會出現壓線的情況,所以我們舍棄了MSP432加灰度模塊的方案,而使用MSP432加OpenMV的全新方案。
在最后,我們使用MSP432加OpenMV,以及舵機前輪加上電機后輪來確定了小車的最終成品結構,實際結果表明這樣的方案是可行且有效的。
軟件部分
1)系統(tǒng)軟件平臺選擇
軟件程序采用keil5平臺開發(fā)。實際上對于TI的板子來說,用CCS來編譯可能會更好,但由于當時并沒有接觸CCS這個軟件,也就不太會用,所以最終采用的是keil5平臺,但若是采用MSP430應該是不能使用keil5的,當時找相應的芯片包是并沒有找到的,也就是說可能keil5是不支持開發(fā)MSP430的板子的。
2)主要模塊軟件設計思路
1、菜單設計思路
在OLED上顯示菜單,菜單主要功能有設置模式:自動尋跡以及規(guī)定時間內尋跡;以及設置PID參數和設定電機速度等功能,主要是為了能在調控小車時,能夠快速的找到合適的參數進行調節(jié)。以及測試時方便選擇相應模式進行測試。
2、電機和舵機驅動設計思路
采用三路PWM輸出,一路用于控制舵機轉向,另外兩路控制電機驅動,由于電機不同,所以用到了兩個定時器輸出PWM,一個50HZ,另一個給10KHZ。
3、數據采集模塊設計思路
接收OpenMV傳來的識別到的黑塊位置,MSP432對數據作相應處理,控制電機和舵機做相應的動作,以實現轉彎等相應功能。
4、控制模塊
控制部分,為了保持勻速行駛,采用PID閉環(huán)控制電機到達規(guī)定的期望值,同時考慮到上坡時不僅有摩擦力,還有車體本身重力的斜向下分力,在PID控制時,I的系數需要較為精準,過大過小都會使小車失控,同時,為了防止小車在行駛過程中會誤識別其它黑點,所以,加上了最小值濾波,以防止此類情況出現,實際效果良好。
實物展示
總結
對我們來說,軟件部分難度相對不大,比較吃力的是小車結構上的搭建,為了盡可能的爬陡坡,我們把小車搭了拆,拆了搭,做了大車,小車,寬車,窄車,重車,輕車,光結構就換了十幾種。
我們發(fā)現電機太小的話,30度的坡上不去,而車體太重上坡也會比較困難,所以我們選用大電機并且減輕車的負重。還有就是車底重心越低,爬坡能力越好。
為增大摩擦力,我們選用了面積大的軟質輪胎。電池和驅動也要合理選擇,在滿足要求的情況下盡量使用質量輕的驅動模塊和電池。轉彎部分的速度也要把握好,當時我們使用開環(huán)在跑道上實現了定點減速拐彎,但終歸是個小聰明,不是真正的循跡,經過不斷的嘗試還是換成了閉環(huán)控制。最終得以圓滿的完成了題目。
-END-
最 后
關注下方公眾號,后臺回復【電賽】,送你一份電賽學習資源。
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!