孫亞星 ,朱佳佳 ,孟 暢 ,張志強
(1.南京理工大學工程訓練中心,江蘇 南京 210094;2.南京理工大學機械工程學院,江蘇 南京 210094;3.南京理工大學電子工程與光電技術學院,江蘇 南京 210094)
低碳越障小車作為一種簡單的低能耗輪式機器人,能夠實現環(huán)境信息感知(障礙識別)、路徑規(guī)劃(軌跡判斷)及行為決策(自動轉向、上下坡和制動)等功能[1]。同時,它涉及機械設計、傳感器和自動控制等理論,以重力勢能作為唯一的前進驅動力,是典型的智能化、綠色化機電產品[1]。
本文以低碳越障小車為研究對象,設計了一套以ATmega1284P單片機為核心的控制系統(tǒng),包括電源轉換模塊、傳感器模塊和執(zhí)行機構等;采用狀態(tài)機的程序設計思想,針對不同的路況,設計了一套以沿邊PID直行程序為核心的控制程序。該控制系統(tǒng)能夠實現自動轉向及制動等功能。
采用模塊化設計思想,將低碳越障小車設計為機械系統(tǒng)和控制系統(tǒng)兩部分。機械系統(tǒng)采用三輪結構(其中:左邊小輪為轉向輪,另外兩輪為行進輪/驅動輪)[2-4]。低碳越障小車結構如圖1所示。小車上方懸掛1 kg重物(砝碼),通過滑輪系傳動,將重力勢能轉化為驅動力矩,作為小車行駛能量[2-4]。

圖1 低碳越障小車結構圖
控制系統(tǒng)主要通過激光測距傳感器GY-530來感知環(huán)境信息(障礙)、通過姿態(tài)傳感器MPU-6050感知自身姿態(tài),再由程序判斷得到小車所處的環(huán)境,進而由執(zhí)行機構舵機MG90s控制機械系統(tǒng),實現障礙檢測、上下坡控制和自動轉向等功能。
本文所設計的控制系統(tǒng)主要包括:充電電池(或移動充電寶)、穩(wěn)壓電源模塊(LM7805)、ATmega1284P單片機最小系統(tǒng)模塊、傳感器組合和舵機組合等。控制系統(tǒng)結構圖如圖2所示[5-6]。

圖2 控制系統(tǒng)結構圖
單片機是整個控制系統(tǒng)的核心。因此,對單片機的選型,本文考慮的因素主要有以下幾項。
①性能要求。需要對多種傳感器進行定時信息采樣;控制兩個舵機的運動;對定時采樣的傳感器信息進行分析判斷,根據控制算法給出控制命令。
②焊接要求。主控板(除驅動電路外的所有電路)必須方便現場焊接和調試,這是低碳越障小車走進課堂的必然要求。因此,單片機選型時,應結合學生的焊接技能水平,慎重選擇。
③成本要求。在單片機選型時,應考慮成本的因素。當然,也不能因為考慮成本,而影響到系統(tǒng)的整體性能。
綜合以上考慮,本文選用DIP-40封裝的ATmega1284P單片機[7-8]。
在整個控制系統(tǒng)中,ATmega1284P 單片機、傳感器組合和舵機組合均使用5 V工作電壓。
本文選用7.2 V充電電池或移動充電寶作為供電電源,并通過降壓模塊LM7805穩(wěn)定到5 V。LM7805穩(wěn)壓模塊結構簡單、穩(wěn)定可靠,得到了廣泛的應用,但輸出電流小。經實測,本文控制系統(tǒng)需要選用兩塊LM7805模塊進行穩(wěn)壓。
感知環(huán)境中的障礙物,需要使用距離傳感器。通常使用超聲波傳感器。在實際測試中發(fā)現,超聲波的發(fā)散角度偏大,容易造成誤判斷。考慮到激光的定向發(fā)光特性,本文選用激光測距傳感器GY-530代替超聲波傳感器。實踐證明,激光測距傳感器的定位精度高、性能穩(wěn)定可靠,在價格成本上也沒有明顯增加。
感知小車的姿態(tài),需要使用到姿態(tài)傳感器。在本文設計中,選用MPU-6050模塊[1,9]。該模塊又稱三軸陀螺儀+三軸加速器,能夠同時測量三個軸的角度、角速度和加速度,進而判斷小車是否處于轉向或上下坡階段。
舵機是一種位置(角度)伺服的驅動器,精度高、控制使用靈活,適用于需要不斷變化角度并可以保持的控制系統(tǒng)。因此,本文中的轉向部分和剎車部分,均使用舵機來驅動,具體使用的舵機型號為MG90s。舵機采用脈沖寬度調制(pulse width modulation,PWM)波進行控制,控制方法簡單[1]。
控制系統(tǒng)采用前后臺程序設計結構,其流程如圖3所示。

圖3 控制系統(tǒng)程序流程圖
程序先進行系統(tǒng)初始化,配置相關的寄存器,在判斷出發(fā)起始位置之后(采用I/O信息來判斷出發(fā)起始位置),進入循跡模式運行。
后臺采用30 ms的定時中斷程序采集(定時更新)傳感器數據;前臺則根據定時更新的傳感器數據,對位置信息進行判斷處理,單片機再將相應的PWM控制信號發(fā)送給舵機模塊,以控制小車的運行狀態(tài),從而達到賽道障礙檢測、自動轉向和剎車的功能。
激光測距傳感器GY-530、姿態(tài)傳感器MPU-6050與微程序控制器(microprogram controller,MCU)的通信均支持I2C協議。而ATmega1284P也支持I2C。因此,本文采用I2C協議作為通信方式。
根據不同的環(huán)境路況,在循環(huán)模式中,主要完成直線道避障、半圓道避障和直線道上下坡控制等功能。
通常,直線道上的障礙墻是隨機擺放的。考慮到小車自身的尺寸大小,只要求兩個相鄰障礙墻之間的最小距離不小于1 m,因此,障礙墻擺放方式有很多種。為此,本文考慮了直線道上障礙墻擺放的極限情況,即兩個相鄰障礙墻交錯擺放,且兩者之間的距離為1 m,如圖4所示。這種障礙墻的極限擺放方式,能夠適應障礙墻隨機擺放的要求。因此,極限直線段賽道避障模塊是整個控制程序設計的關鍵。

圖4 直線段賽道障礙墻擺放的極限情況圖
本文采用狀態(tài)機編程思想來設計直線道避障模塊的程序。
整個避障過程如下:假設小車從左下起點出發(fā),首先是左PID直行;當檢測到小車正前方60 cm處有障礙物時,即2號障礙墻,小車右轉90°,通過MPU-6050模塊判斷動作是否完成;動作完成后,小車進入沿障礙墻的左PID,這個過程比較短暫;當檢測到小車正前方60 cm處有障礙物時,即右直線擋板,小車左轉90°;MPU-6050模塊判斷動作完成后,小車進入右PID直行操作。當然,若小車從右下起點出發(fā),這個過程是類似的。以左賽道啟動為例,直線道避障程序流程如圖5所示。

圖5 直線道避障程序流程圖
整個避障過程所涉及的狀態(tài)有:左/右PID直行、左/右轉90°這四種狀態(tài)。所涉及的轉移條件分別是:小車正前方60 cm處檢測到障礙、左/右轉90°動作完成。由圖5可知,整個程序的基本模塊是沿邊PID直行(左/右PID直行)程序。也就是說,沿邊PID直行程序是整個控制程序設計的基礎。
需要說明的是,半圓道避障可以通過執(zhí)行右PID直行程序來實現。
直線道上下坡模塊,主要用于控制小車從坡道上沖下的速度,并防止翻車。首先需要判斷小車是否位于有坡道的直線段賽道,然后判斷小車是否已經經歷了上坡并正處于下坡的過程中,進而輸出PWM波來控制剎車舵機。這些都是基于姿態(tài)傳感器MPU-6050模塊實現的。
在實際控制系統(tǒng)中,PID控制得到了廣泛應用[10-12]。本文設計中,采用PID控制實現小車沿左/右直線邊直行功能。
程序設計的具體思路是:將小車離直線道邊沿的距離作為控制目標,使用PID算法,控制舵機運動的PWM波作為輸出,實現小車沿賽道邊沿直行。
在測試跑道一側直線道上間隔不等(隨機)地交錯設置多個障礙墻,相鄰障礙墻之間最小間距為1 m。另一側直線道上設置有一段坡道,坡道由上坡道、坡頂平道和下坡道組成。兩端則為半圓道。
經過實測,在機械系統(tǒng)配合下,本文設計的控制系統(tǒng)能夠很好地滿足設計要求。
所設計的低碳越障小車,分別在距離邊沿20 cm、30 cm和40 cm三種情況下,均能正常完成沿左/右邊PID直行操作;在距離坡道1 m、3 m和5 m等條件下啟動小車,均能夠正常上下坡,沒有發(fā)生翻車的現象,充分說明了剎車模塊的可靠性。在隨機擺放10個障礙墻的情況下,小車可以跑35 m左右,經歷了直線道避障、半圓道避障和直線道上下坡等階段。
低碳越障小車作為典型的智能化、綠色化機電產品,越來越受到全社會的關注。本文所設計的控制系統(tǒng),使用ATmega1284P單片機作為核心,采用激光測距傳感器GY-530和姿態(tài)傳感器MPU-6050模塊來感知跑道環(huán)境,并以舵機MG90s作為執(zhí)行機構。根據不同路況,應用狀態(tài)機程序設計思想,設計了一套以沿邊PID直行模塊為基礎的控制程序。經過測試,該控制系統(tǒng)能夠實現直線道與半圓道避障以及直線道上下坡等功能。
作為低碳環(huán)保型產品,該小車的控制系統(tǒng)還有進一步開發(fā)的空間。比如,實現能量管理策略以提高重力勢能的利用率,減輕整個控制系統(tǒng)的質量以提高整個小車的續(xù)航能力等。