張可堯,王琪,王維西,羅林,秦海亭,陸軍
(1.江蘇科技大學 蘇州理工學院,江蘇張家港, 215600;2.南京信息工程大學 自動化學院,江蘇南京, 210044;3.蘇州市康力骨科器械有限公司,江蘇張家港, 215600)
隨著應用技術的發展,社會上對機器人全向移動的功能需求越來越多,多數公司會使用麥克納姆輪[1]這種特殊輪子來實現機器人全向移動的功能。目前麥克納姆輪的應用場景也越來越廣泛,例如焦曉飛將麥克納姆輪和無線遙控相結合[2],改善了傳統的轉運支架車靈活性差、轉彎半徑大等缺點。以及在最近發展迅速的物流行業也存在傳統模式效率低下、成本較高等問題,為了解決此類狀況,南慶霞等人設計了一款能夠自主運行并且實現抓取和放置物料功能的麥克納姆輪智能車[3],為現代物流行業提供了新的解決思路。本文將麥克納姆輪和智能車相結合,選用CH32V103R8T6作為核心,控制攝像頭、電機驅動等外部模塊,設計了一款通過單片機控制的麥克納姆輪智能車[4~7]。
麥克納姆輪與傳統車輪的不同點是轉向不用依賴舵機。本文所選用的車模有固定四個電機,分別配備四個麥克納姆輪,通過四個麥輪可以實現直行、旋轉和橫向移動等功能。并且車模需要有穩固的車身和穩定的旋轉性能,因此智能車自身重量不能過重,重心要低,重量分布要均勻,不能出現一邊重一邊輕的情況,并且在安裝各個外部模塊的時候要盡量做到左右對稱。車模整體布局如圖1所示。

圖1 車模整體布局
智能車的總體運行過程為:通過攝像頭和陀螺儀采集外部信息并傳輸給單片機,單片機對信息進行處理并輸出PWM波給驅動模塊來控制電機,同時編碼器采集電機轉速傳回給單片機,形成速度閉環控制[8~9]。硬件整體框圖如圖2所示。

圖2 硬件整體框圖
(1)簡易運動控制:麥克納姆輪的控制[10]主要包括橫向由電機差速完成的方向控制和縱向由電機整體平均速度完成的速度控制。方向控制由麥克納姆輪的差速控制實現,速度控制是由直流電機、正交編碼器和單片機形成閉環控制系統,單片機通過編碼器的速度反饋信號使實際速度不斷逼近期望速度。
(2)底盤運動的分解:汽車模型在平面內的運動可以簡化并分解為三個獨立的分量,如圖3所示。底盤的運動也可以分解為三個量:Vtx:沿X軸運動的速度;Vty:沿Y軸運動的速度;沿yaw軸旋轉的角速度。

圖3 平面運動分解

圖4 右前輪速度分解

分別計算X、Y軸的分量為:

同理可以計算出其他三個輪子軸心的速度。
車模所需要的外圍設備如下:四個電機和四個編碼器;攝像頭、舵機、陀螺儀和TFT屏幕各一個。電機驅動模塊使用DRV8701E雙電機驅動,需要一個定時器四個通道來控制四個電機;四個編碼器需要四個定時器;攝像頭的像素時鐘信號采集需要使用GPIO觸發DMA,來搬移攝像頭像素點數據,然而CH32V103R8不支持GPIO觸發DMA,但是可以通過GPIO觸發TIMER,TIMER去使能DMA搬移數據。因此這里也需要一個定時器;舵機的控制需要一個定時器的一個通道作為舵機的PWM輸出,來控制舵機轉動;六軸陀螺儀加速度計,使用ICM20602等傳感器,走硬件SPI接口采集數據,需要一個SPI;TFT屏幕,通過硬件SPI接口來控制;并且預留一個定時器用作周期中斷。一共需要八個定時器,兩個SPI接口。一個CH32V103R8 單片機只有三個通用定時器和一個高級定時器,兩個SPI,定時器明顯不足,所以采用雙核方案。
雙核需要區分主機和從機,TFT屏幕、陀螺儀、攝像頭、兩個編碼器和四個電機分配給主機,總共使用了四個定時器和兩個SPI接口。四個電機的接口都在主機上,所以主機用于輸出PWM,來控制電機的轉動。四個編碼器只有兩個可以將數據直接傳給主機,剩余兩個編碼器采集的數據需要通過從機回傳給主機。主機接收到從機回傳的數據后,再通過PID對電機進行轉速控制。剩余兩個編碼器和舵機分配給從機,使用了三個定時器,剩余一個定時器用于主機與從機的時鐘同步。
主控模塊采用CH32V103R8T6單片機,供電電壓為2.7~5.5V,工作溫度范圍為-40℃~85℃工業級。單片機包括內置 RTC、12位ADC轉換模塊、7個定時器(1個16位高級定時器、3個16位通用定時器和2個看門狗定時器)、 8個標準通信接口等模塊,能夠很好地滿足本文所需功能。
(1)電路的地:通常整體電路中的地分為數字地、模擬地、電源地等幾種不同的地,此處以數字地和模擬地為例。電路中的地為零電位的參考點,數字地和模擬地在低頻信號等個別情況下可以互相通用,但大部分情況都需要把二者明確區分開來。因為模擬信號是一串連續的電流或電壓的變化,極易受外界的干擾,而數字信號是0、1高低電位,比如常見的方波就是典型的數字信號,所以數字信號受外界影響的程度要比模擬信號小得多,并且數字信號會產生多次諧波,會極大地影響模擬信號的正常工作,所以兩個地需要隔離開。這里采用單點接地的方法,將電源地分別連接數字地和模擬地,并且各串聯一個0Ω電阻。這樣兩個地既關聯了起來,又保證了直流電位相等,且互不影響。
(2)穩壓模塊:電源模塊是整個控制系統的動力來源,電源的穩定性會極大地影響整個硬件電路的穩定性。智能車系統由一個2000mAh,7.4V鋰離子電池供電,穩壓電路均使用AMS1117作為穩壓芯片,穩壓電路如圖5所示。

圖5 穩壓電路
編碼器選用1024正交mini編碼器,該型號編碼器體積小、穩定性好,輸出CMOS 信號,工作電壓3.3~5V,工作電流13.6mA,接數字地,電路如圖6所示。當編碼器沿順時針和逆時針旋轉時,A、B相輸出的信號圖形如圖7所示。

圖6 編碼器電路
由圖7可知編碼器在旋轉時,兩條數據線上的電平將不斷變化,根據不同的變化狀態可計算出編碼器旋轉的方向,如表1所示。

圖7 輸出信號圖形

表1 編碼器旋轉狀態
表中“+1”表示沿著順時針旋轉一格,“-1”表示沿著逆時針旋轉一格,當A、B相的數據都發生變化時,無法判斷是順時針還是逆時針,所以旋轉狀態都為“±2”,即順時針或逆時針旋轉兩格。最后通過編程來表達以上表格的含義,并頻繁地調用此函數,就可以計算出旋轉速度和距離。
(1)電機驅動:電機驅動模塊采用基于DRV8701E的四路MOS橋驅動,其中DRV8701E為驅動芯片,TPH1R403NL為驅動MOS,模塊工作電壓為6~18V,理論最大電流為150A,PWM引腳最高頻率100kHz。驅動電路如圖8所示。

圖8 驅動電路
此電驅可以通過DRV8701E門級驅動芯片采用片內電荷泵的方式自舉升壓,無需外置升壓電路,可解決升壓電路干擾信號的問題,簡化驅動芯片電源部分。并且無需兩路PWM控制電機正反轉速,只需一路PWM控制速度一路高低電平信號控制正反轉,可節約一路PWM引腳,更加節約單片機PWM引腳資源。
(2)緩沖電路:電機驅動模塊中的緩沖電路芯片選用SN74HC125PWR芯片,工作電壓為2~6V,芯片引腳與邏輯圖如圖9所示。

圖9 緩沖芯片引腳與邏輯圖
該芯片提供了4個獨立的柵極緩沖器,每個緩沖器還集成了一個三態輸出或高阻抗輸出,具有三態輸出的獨立線路驅動程序。驅動模塊信號輸入和輸出分別對應1A、2A、3A、4A和1Y、2Y、3Y、4Y。緩沖電路如圖10所示。

圖10 緩沖電路
設計了一款基于CH32V103R8T6控制的麥克納姆輪智能車,本文主要包括規劃車模整體方案,硬件電路等方面設計的詳細方案。從結果上來看,本文所設計的智能車能夠基本滿足所需功能,并且是首次通過攝像頭控制麥克納姆輪進行固定賽道循跡。通過小車調試過程中對硬件結構及電路的不斷改進,麥克納姆輪智能車的硬件性能在不斷地提高,通過對此智能車的研究可以促進麥克納姆輪機器人技術的發展。