采用STC12C5410AD處理器實現(xiàn)自動割草機器人主控系統(tǒng)的設計
1 、系統(tǒng)結構
自動割草機器人主控系統(tǒng)的結構框圖如圖1所示。系統(tǒng)主要由單片機控制系統(tǒng)、傳感器系統(tǒng)、電機驅動系統(tǒng)3大部分組成。其中單片機控制系統(tǒng)的處理器采用國產芯片STC12C5410AD,包含10 bit的ADC以及串口、I2C等通用串行接口,高達40 MHz的主頻完全可以勝任本系統(tǒng)的計算和處理速度。
運動系統(tǒng)主要通過單片機給出的多路PWM信號對自動割草機器人的行動電機以及割草電機進行控制。傳感器系統(tǒng)由電子籬笆傳感器、光電開關傳感器、碰撞開關傳感器、雨水傳感器、無線遙控接收模塊等組成。其中,電子籬笆傳感器用于探測割草區(qū)域的邊緣;光電開關傳感器用于避開慢速的或者靜止的障礙物;碰撞開關傳感器用于避開快速的或者主動碰向割草機的物體;雨水傳感器用于檢測下雨天氣,并且相應作出回基站的操作;傾角開關傳感器用于安全措施,防止自動割草機器人在割草過程中發(fā)生意外事件翻倒,一旦傳感器檢測的角度超過設定的閾值,系統(tǒng)自動停止一切工作,進入休眠狀態(tài);無線遙控部分用于方便使用者無線控制自動割草機器人,無線遙控的距離約20 m.各個系統(tǒng)都采用模塊化設計,可擴展性高、升級維護方便、二次開發(fā)周期短。表1為自動割草機器人參數(shù)表。
2、 硬件系統(tǒng)設計
2.1 主控系統(tǒng)
主控系統(tǒng)采用STC12c5410AD單片機,最高主頻40 MHz,8路AD輸入,可以滿足自動割草機器人系統(tǒng)的控制需求。本系統(tǒng)采用30 MHz的有源晶振,8路AD輸入基本上可以滿足系統(tǒng)中模擬量的采集需求。
2.2 運動控制系統(tǒng)
運動控制系統(tǒng)中行動電機部分采用2片L298直流電機驅動芯片對直流電機進行控制。1片L298驅動芯片可以提供最高3 A的驅動電流,本系統(tǒng)的行動電機供電電壓為24 V,對于設計要求行動總功率不大于60 W的驅動系統(tǒng)來說,2片L298擁有足夠的驅動能力。在機械結構上,電機軸上使用了減速齒輪,用于加大最大電機輸出轉矩,提高在草地上行走的能力。
割草電機驅動部分采用mosfet驅動,IRLR2705這款mosfet可以提供峰值28 A的電流,滿足了割草電機的要求。割草電機的開通和關斷由一個單片機IO控制。割草電機驅動有一個電流檢測反饋環(huán)節(jié),當割草電機的工作電流過大(一般是堵轉時),電流信號被采樣電阻取出并且送往單片機AD轉換器中進行檢測并且軟件保護。防止堵轉的電機燒毀mosfet管。電機驅動電路圖如圖2.
2.3 傳感器系統(tǒng)
2.3.1 電子籬笆感應電路
對空間目標的搜索和跟蹤一般采用相控陣雷達,其相控陣天線以電子方式控制波束方向,它可以同時搜索和測量不同方向的多個波束,建立空間目標的運行軌道和測量空間目標的窄帶特性。如美國海軍的空間監(jiān)視“NAVSPASUR”系統(tǒng)、法國的GRAVES雷達等,以及計劃中的歐洲空間監(jiān)視系統(tǒng),這三個系統(tǒng)是由雷達電子波束在空間設置一道攔截屏(或攔截空域),所以通常稱為“電子籬笆”。
電子籬笆傳感器是自動割草機器人最重要的傳感器,它可以使割草機不走出工作區(qū)域(由連在基站上的電線圍成的區(qū)域),這樣可以保證自動割草機器人工作在有效區(qū)域。電子籬笆傳感器感應的是電子籬笆所發(fā)出的一定頻率的脈沖信號,感應線圈在靠近通有交變電流的電線邊界時,會產生特定頻率的感應電流,根據(jù)檢測特定頻率下信號幅度的大小可以得到割草機是否接近邊界的信息。電子籬笆傳感器在感應出信號后進行放大、濾波,然后再送入單片機的AD輸入端口。實驗證明,越是接近電子籬笆邊界,感應出給MCU的電壓越大,選擇一個合適的閾值進行判斷就可以得到割草機的狀態(tài)。在實際中設定接近邊界還有3 cm時感應出的電壓大小作為閾值,割草機在接收這個信號后就會給出相應的處理,如后轉彎180°然后繼續(xù)前進。電子籬笆檢測電路圖如圖3.
傳感器是一種物理裝置或生物器官,能夠探測、感受外界的信號、物理條件(如光、熱、濕度)或化學組成(如煙霧),并將探知的信息傳遞給其他裝置或器官。傳感器工作原理的分類物理傳感器應用的是物理效應,諸如壓電效應,磁致伸縮現(xiàn)象,離化、極化、熱電、光電、磁電等效應。被測信號量的微小變化都將轉換成電信號。化學傳感器包括那些以化學吸附、電化學反應等現(xiàn)象為因果關系的傳感器,被測信號量的微小變化也將轉換成電信號。
2.3.2 傾角開關
在割草機運行過程中,有可能因為意外使割草機傾斜或者翻倒。由于割草機底盤有一對高速運行的割草刀片,所以底盤暴露在外面就會威脅到人或者動物的安全。在車子傾斜到一定角度時,傾角開關就會給出一個開關信號,單片機根據(jù)這個信號關斷所有的電機控制信號,并且進入待機狀態(tài),等待操作者手動開機。
2.3.3 碰撞開關
碰撞開關是為了讓割草機可以躲開光電避障開關檢測不到的盲區(qū)障礙物和快速移動物體,是一種被動的避障方式。碰撞開關的原理是在割草機被外物碰撞到前方的一個機械的彈簧結構后,會讓一個觸點短路,這樣能給單片機一個低電平信號,通知單片機遇到了障礙物,單片機就會執(zhí)行相應的避障措施。
2.3.4 雨水傳感器
雨水傳感器由一個濕敏電阻和一個比較器組成。在正常工作情況下,濕敏電阻阻值為1 MΩ左右,這樣可使比較器輸出為高(正極電壓(約2.5 V)大于負極電壓(約2 V))。如果有雨水碰到濕敏電阻,則電阻的阻值會急劇下降到1 kΩ左右,比較器輸出就為低(正極電壓(約0 V)小于負極(約2 V))。這樣就能使單片機得到雨水感應信號,執(zhí)行回基站避雨的操作。圖4為雨水傳感器電路圖。
2.3.5 光電開關避障
光電避障是最主要的避障方式,也是一種主動的避障方式。優(yōu)點是不用碰到障礙物就可以檢測到并且躲開,避免直接碰撞到障礙物。光電開關可檢測的距離可以根據(jù)實際控制的需要進行調節(jié)。
2.3.6 傳感器在車體位置上的排布
多傳感器系統(tǒng)傳感器的位置和排布對于控制精度有很大影響,在借鑒了其他多傳感器系統(tǒng)的排布后,設計出本系統(tǒng)的傳感器排布圖,如圖5所示。
A1、A2、A3、A4都是電子籬笆探頭的放置位置。B1和B2是光電傳感器和碰撞開關的安裝位置,盡量放在邊緣有利于檢測障礙物減小檢測的盲區(qū)。其中,A3、A4這兩個電子籬笆探頭主要用于檢測前端電子籬笆區(qū)域,如果檢測到,執(zhí)行后退再轉向的動作。A1、A2則是用于進入基站時的尋線,因為進入基站的任務是通過首先尋找到邊界的電子籬笆線,然后再切入電子籬笆線中,最后通過尋線的方式一直走入基站。A1、A2也可以在自動割草時發(fā)揮作用,避免割草機走出邊界,特別是在割草區(qū)域的邊角地帶,成為處理邊界算法中的一個重要輔助信號。
2.4 其他部分
其他部分包括過電流保護、欠電壓保護。過電流保護主要保護割草機驅動電路不會因為堵轉、割刀卡死等原因損壞;欠電壓保護通過檢測電池電壓來確定是否應該回基站充電,實現(xiàn)自動充電的功能。
3、 軟件系統(tǒng)設計
自動割草機器人的軟件部分使用單片機C語言編程設計,根據(jù)實際的控制要求實現(xiàn)自動割草機器人的功能。軟件部分盡量使用查詢代替中斷,增加了軟件的健壯性。割草路徑的規(guī)劃是自動割草機器人的主要算法部分。
3.1 軟件總體結構
主程序主要執(zhí)行初始化以及自動割草機器人的3種行走策略:普通行走的任務;回到基站的任務;執(zhí)行出站的任務。在外部中斷中,外部光電避障、碰撞開關避障和保護部分的信號是主要外部中斷的來源,用于實時響應這些異常事件。軟件流程圖如圖6.
3.2 割草路徑規(guī)劃
路徑規(guī)劃是指,在具有障礙物的環(huán)境中,按照一定的評價標準,尋找一條從起始狀態(tài)到目標狀態(tài)的無碰撞路徑。本算法中路徑規(guī)劃采用了基于知識的遺傳算法,它包含了自然選擇和進化的思想,具有很強魯棒性。機器人整體的運動規(guī)劃一般又稱為路徑規(guī)劃,由于機器人整體看作是一個點或者是一個固定的幾何體,自由度比較少,因此路徑規(guī)劃問題相對比較簡單。傳統(tǒng)的機器人運動規(guī)劃算法已經能較好地解決路徑規(guī)劃問題。
自動割草機器人路徑規(guī)劃的遍歷策略是割草機設計中的一個重要環(huán)節(jié),涉及到割草機割草的效率。合理的遍歷策略可以使自動割草機器人在最短的時間內遍歷整個割草區(qū)域。常用的割草策略主要有兩種方式:直線運行方式和邊界跟蹤運行方式。兩種覆蓋區(qū)域方式如圖7、圖8所示。
采用直線運行時,轉向處會有不可避免的重疊路徑,使總的運行距離增加;采用邊界跟蹤的方式時,需要機器人不斷地調整進行方向,容易帶來誤差。針對自動割草機器人以單片機為核心的控制器而言,需要自動割草機器人的運行軌跡盡量簡單化和規(guī)范化。因此采取直線運行方式遍歷子區(qū)間,在前向的電子籬笆傳感器感應到邊界后,割草機器人后退一小段距離,然后以一個輪子為中心,另一個輪子左轉(或右轉)180°,完成掉頭,然后繼續(xù)前進,下次再碰到邊界就向相反的方向旋轉180°,這樣就可以做到區(qū)域的覆蓋。
3.3 割草邊界區(qū)域的處理方法
割草機器人在區(qū)域的邊角處行走是最容易出現(xiàn)問題的時候,不合理的行走策略可能導致割草機器人走出邊界。所以要利用割草機器人現(xiàn)有的傳感器去選擇在區(qū)域邊角的運行策略。
經過實驗發(fā)現(xiàn),出現(xiàn)越界問題的情況主要有兩種。
(1)割草機到達邊界的一個角落,如圖9.在這種情況下割草機器人傳感器A4(或者A3)首先檢測到邊界L1的信息,根據(jù)直線運行方式就應該先后退再向左轉(或向右轉)。正常情況下走到這種角落時就應該是先檢測到L1,然后后退一段距離,再向右方向轉180°。在轉彎的過程中,由于L2的存在, A3就會感應到角落的另外一個邊界L2,如果沒有特別的策略,就會執(zhí)行先后退一段距離,再向左轉180°的策略,這樣就很容易走出邊界,或者使控制變得混亂。要避免這種情況就需要在軟件上做出改動,即在轉彎過程中如果有其他傳感器檢測到邊界,就說明已經到了另一個邊界角落的位置。最好的處理方法就是原路回轉過去,回到原位后再次左轉180°,開始從這個區(qū)域的頂端到另外一端的循環(huán)行走遍歷。
(2)割草機遇到了一個傾斜的邊界,如圖10.如果沒有特殊的策略,A4檢測到邊界后,就執(zhí)行轉向的策略,這樣就會有很大一片的前方區(qū)域(區(qū)域一)不能遍歷到,所以就需要利用右邊的A2去解決這個問題。在正常行走時,如果A2首先檢測到了邊界,則執(zhí)行先后退、然后左拐一定的角度、最后前進的策略。自動割草機器人就會沿著這根斜線邊界不斷調整自己的角度前進,而不會漏掉這些區(qū)域,適用于邊界不是很規(guī)則的草地。
4、 系統(tǒng)整體調試
割草機器人整體調試步驟:(1)單片機控制系統(tǒng)的測試;(2)運動控制系統(tǒng)的調試;(3)各個傳感部分的調試;(4)運動控制系統(tǒng)與傳感器相結合的整機調試。
首先單獨測試單片機的控制,測試通過后進行運動模塊的測試,獲取割草機的運動參數(shù)。然后進行各個傳感模塊的測試,其中重點的是電子籬笆、光電避障的測試。在確認各個傳感模塊工作無誤后即可開始進行割草機器人的整體測試以及割草路徑規(guī)劃。最終實現(xiàn)自動割草機器人自動割草、自動充電和雨雪天自動返回基站等功能。
自動割草機器人系統(tǒng)借鑒了國外的割草機系統(tǒng)的特點,特別加強了安全性和可靠性的設計,實現(xiàn)了更好的控制。從外界獲取信息能力來看,多傳感器系統(tǒng)保證了獲得的外界信息的完整性、有效性,保證了自動割草的正常進行以及意外情況的及時應對。從系統(tǒng)性能方面,采用功耗合理、性能優(yōu)越的單片機控制系統(tǒng),保證了性能與成本的兼顧。從功能方面,基本實現(xiàn)了全部割草機器人應有的功能,并且加強了安全性。通過現(xiàn)場的測試結果,割草機器人完全能夠勝任坡度不大于15°的草地的割草需求,實現(xiàn)了真正的無人值守自動割草。