□ 李芳昕 □ 譚小群 □ 張 洋 □ 李 超
西北工業大學 機電學院 西安 710072
隨著制造業的發展,更有效地利用車間貨物儲存空間以提高空間利用率,已成為生產管理的一個重要問題,因此,運輸車應盡可能減少其轉向空間。普通的輪式與履帶式機構都需要一定的轉彎半徑,在擁擠的工作空間內實現全方位運動相對困難。工人駕駛裝卸車進行貨物運輸的運輸方式效率低,在復雜工作空間內的勞動強度大大增加,且容易出現錯誤。
為了研究轉向空間小且運輸效率高的運輸工具,本文提出一種基于Arduino的Mecanum輪無線遙控避障小車,小車選用麥卡納姆(Mecanum)輪作為運動執行單元。Mecanum輪在1973年首先由瑞士Mecanum AB公司工程師BengtIron[1]提出,此后國內外諸多研究機構對其進行不斷研究,它的獨特結構可使小車無需任何轉彎半徑便能實現全方位移動。
筆者在Mecanum輪小車的基礎上添加了遙控器和無線通信模塊,實現了小車的遠程控制,在工作環境惡劣的情況下,保障了操作人員的安全,且便于在復雜的工作環境下對小車進行精確控制。添加了紅外檢測模塊,實現了小車的避障,保障了小車的安全性。
本系統由Mecanum輪、Arduino控制器、I/O擴展板、直流電機、紅外測距傳感器、遙控器、無線通信模塊組成,如圖1所示。遙控器通過無線通信模塊與Arduino控制器通信,傳輸控制字符,當Arduino控制器收到控制字符,給直流電機輸出PWM信號,通過調節4個Mecanum輪的轉向和速度來實現小車的全方位變速移動。紅外測距傳感器用于測量小車與障礙物的距離,實時給Arduino控制器反饋模擬量信號,當到達設定距離時,Arduino控制器發出相應指令,控制小車實現設定動作。
Mecanum輪的輪轂外圍安裝了一周與輪轂軸線成一定角度的無動力輥子,這些輥子既可繞輪轂軸公轉,也可繞各自的支撐芯軸自轉。由同樣結構的若干Mecanum輪按一定規則組成的輪組系統,通過改變各輪轂速度來改變各輪輥子的軸向力,進而改變運動系統中心合速度的大小和方向,使小車實現平面全方位運動。根據小車框架結構尺寸,選用直徑60mm的Mecanum輪,其本體運動受力分析如圖2所示(仰視圖),其中,ω表示輪轂角加速度,Fa表示輥子軸向力,未標ω表示該輪子角加速度為0。

▲圖1 系統框圖

▲圖2 四輪組合運動圖

▲圖2 四輪組合運動圖

▲圖3 遙控器模擬量信號圖
系統選用ArduinoAtmega控制板,核心是一片ATmega328PAU1226芯片,可支持上千種開放源代碼,其程序設計語言的編程語法規則類似于C++。
Arduino的I/O擴展板可以靈活擴展數字量與模擬量輸入接口和各種功能模塊,實現與其它傳感器、RS485設備的簡單連接,小車使用一個I/O擴展板,用以支持RS485接口并驅動4個電機。
遙控器由inputshield擴展板、ArduinoUno控制器、電池組3部分組成。Inputshield擴展板裝有PS搖桿電位器和4個按鍵,搖桿處于不同位置會有不同的模擬量值,4個按鍵分別為搖桿按鍵、復位按鍵和2個擴展圓帽按鍵。擴展板可以直接插到Arduino控制器上,預留APC220模塊接口,能方便地實現無線數據傳輸??刂拼怪狈较虻碾娢黄髡加肁rduino控制板的模擬口0,控制左右方向的電位器占用ArduinoUno控制板的模擬口1,兩個擴展圓帽按鍵分別占用數字引腳3和 4,APC220接口占用數字引腳 0和 1[6]。 9V 電池組專為Arduino控制器供電。
將控制板通過USB連接到電腦上,編寫程序來采集搖桿按鍵的兩個電位器的模擬量,通過Arduino編程環境中的SerialMonitor來監控變量。
通過操縱搖桿的位置可看到模擬量數據的變化,模擬量的變化范圍是0~1023。搖桿在水平位置上時,垂直方向的模擬量值不變,水平方向的模擬量從右到左由0變到1023。在垂直位置上時,水平方向的模擬量值不變,垂直方向的模擬量從上到下由0變到1023。處于其它位置時的模擬量值可見圖3。
根據遙控器模擬量信號圖,可以編寫程序;根據搖桿的位置,控制小車的運動方向以及速度。
APC220模塊包括3部分:APC220無線傳輸模塊、USB接口轉換器和天線。將1個APC220插到控制器上,另1個插到被控對象上,即可實現兩者的通信,APC220模塊需成對使用;USB接口轉換器可以用于設置模塊參數,該模塊的主要性能指標見表1。

表1 性能指標
APC220模塊可直接應用于inputshield和Arduino控制板上,使用之前,要先使用USB接口轉換器將模塊連接到電腦上,用設置軟件RF—ANET來設置模塊的參數。本文中的模塊設置如圖4所示[6]。
小車控制程序包括遙控器程序和小車運動程序。首先,創建一個小車運動的庫函數,文件名為MotorCar,庫函數中定義了11個成員函數,分別代表小車的11個運動方式,入口參數為速度值,范圍為0~255,之后應用到庫函數中的成員函數時,直接聲明該庫函數的對象即可。根據遙控模擬量信號圖編寫程序,通過APC220發送運動字符與速度值。

▲圖4 模塊設置界面
控制搖桿位于中間位置時,小車靜止不動。遙控器上的藍色按鍵控制小車的旋轉運動,按鍵未按下,搖桿緩緩向某個方向推動時,小車則向著這個方向運動并且速度越來越快。藍色按鍵按下,向左推動搖桿,小車逆時針旋轉運動;向右推動搖桿,小車順時針旋轉運動,并且速度越來越快。小車上的APC220接收遙控器上APC220發來的運動字符和速度值。由小車運動庫函數MotorCar創建一個對象Motor。
本設計中采集到的模擬量與對應的運動字符、速度以及調用的函數關系見表2。

表2 遙控器模擬量與小車運動形式對應關系
遙控器中采集到的運動字符與速度值,可在Serial Monitor中監控到。
本文選用4個紅外測距傳感器,分別安裝在小車的四周,根據傳感器采集到的模擬量與距離的函數關系式,計算出小車與障礙物之間的距離,當小車與障礙物間的距離小于 15mm 時,調用 Motor.stop(),使小車停止,然后用遙控器控制小車向其它方向運動,避開障礙物。
在完成小車硬件設計、樣機搭建、軟件開發后,通過調試實驗,成功實現了小車的無線遙控與避障,小車實物場景示意圖如圖5所示,避障過程如圖6所示。

▲圖5 小車原型樣機圖

▲圖6 避障過程
本文介紹了一種基于Arduino的Mecanum輪無線遙控避障小車,詳細論述了Mecanum輪的工作原理以及遙控的實現方法,完成了小車硬件設計與遙控器、小車的軟件開發,并進行了安裝調試,在實驗室環境下,靈活實現使用遙控器操作小車全方位運動,達到了設計要求,為Arduino控制板的使用與開發提供了有益的參考。
[1] 賈官帥.基于Mecanum輪全方位移動平臺的理論和應用研究[D].杭州:浙江大學,2012.
[2] 劉磊,許曉鳴.帶Mecanum輪的移動機器人全向移動控制研究[J].系統工程理論與實踐,2011(S1).
[3] 石維亮,王興松,賈茜,基于Mecanum輪全向移動機器人的研制[J].機械工程師,2007(9):18-21.
[4] 賈茜,王興松,夏國慶.Mecanum輪全方位移動機器人的速度修正[J].制造技術與機床,2010 (11):42-45.
[5] 趙津,朱三超.基于 Arduino單片機的智能避障小車設計[J].自動化與儀表,2013,28(5):1-4.
[6] 程晨.Arduino開發實戰指南[M].北京:機械工業出版社,2012.