尚宇峰,柯顯信,盧孔筆
(上海大學 機電工程與自動化學院,上海 200072)
在機器人機電控制系統中,舵機控制效果是性能的重要影響因素。舵機是仿人機器人常用的輸出執行機構,是一種伺服電機,可以通過PWM信號控制舵機的轉動角度,并且能在指定角度保持,承受一定的外力矩[1,2]。傳統的PWM信號的產生是由模擬電路產生的,產生PWM的電路結構復雜,靈活性差。傳統實現PWM控制系統的核心控制芯片仍然是采用單片機,利用單片機內部的定時器來產生不同的占空比,從而控制PWM信號的輸出。但是利用定時器的方法控制精度低,在一些精度要求較高的場合實現的效果就會不理想,并且單片機系統的抗干擾能力差。FPGA與MCU相對比,FPGA的優勢主要有速度快、系統資源豐富、應用靈活等[3~5]。本文設計了一種基于FPGA的SOPC實現多路舵機的控制系統,以實現4路PWM信號為例,可以根據不同的場合增加或減少PWM模塊,實現多路舵機的位置控制,通過軟件編程設計,可以改變舵機的運動速度,通過LabVIEW中的VISA控件實現了PC機與FPGA的串口通信,該系統操作簡單,靈活可靠。
整個控制系統由應用層、系統控制層、任務界面規劃層組成,如圖1所示。通過計算機發出指令到FPGA,由FPGA驅動舵機,完成機器人表情的實現。系統控制層主要包括硬件設計和軟件設計兩部分。

圖1 控制系統
首先在SolidWorks環境下完成仿人機器人頭部機構模型的建立,如圖2(a)所示。面部的各個機構(眼、眼臉、下顎等)都是由舵機控制,控制幾個舵機同時運動到一定的位置,就能使機器人實現一些基本表情。舵機分為數碼舵機和模擬舵機,數碼舵機的優越性高于模擬舵機,價格也相對高點。驅動舵機的導線有三根,兩根電源線和一根控制線,如圖2(b)所示,這是一種數碼舵機,中間紅色的線與電源的正極相連,褐色的線與電源的負極相連,黃色的是控制信號線。舵機是一種伺服電機,舵機的控制信號為周期是20ms的脈寬調制(PWM)信號,其中脈沖寬度從0.5ms~2.5ms,相對應舵盤的位置為0o~180o,呈線性變化。給定脈沖,就能控制舵機到達指定的位置。

圖2 機器人頭部機構與舵機
硬件設計依據SOPC的設計,以IP核為基礎,在機器人的控制系統設計中,重復使用已有的設計模塊,縮短了設計周期,提高整個系統的性能[6]。設計中采用的是Altera公司的Cyclone IV EP4CE15F17C8N核心板,此核心板集成了FPGA芯片、FLASH、SDRAM、EPCS、JTAG等基本芯片,提供了多達160個I/O口。首先利用SOPC Builder進行硬件配置,添加一些基本模塊以及串口通信模塊,把PWM產生模塊定義為自定義模塊后加入系統,配置如圖4所示。系統中的所有外設都掛載到Avalon總線上,以便用戶設計。編譯后產生相應的軟核,如圖3所示,將配置文件下載到開發板上,然后再將舵機連接到輸出PWM口開發板的引腳上[7,8]。

圖3 SOPC Builder中的硬件配置
軟件的編寫是在Nios II環境下完成的,Nios核是Altera公司開發的非第三方微處理器IP軟核,它只占芯片內部很少的一部分邏輯單元,成本很低,采用Avalon總線結構通信接口,根據需要構成各種不同的系統[9]。軟件設計的主要任務是實現PWM信號的不同的占空比,并且能通過串口從上位機接收到數據后將數據傳到下位機,實現與計算機的通信功能。
舵機的速度變化對機器人表情的實現起到至關重用的作用,控制舵機速度有兩種方法。一是改變舵機的內部結構,這種方法在機器人表情的實現過程中是不實際的;另一種方法就是通過軟件程序的編寫來實現,即把需要轉過的角度θ分成n等份,在舵機每次轉過θ/n角度后添加一定的延時,這個延時人的肉眼無法察覺,這樣就能改變舵機轉動的速度,實現機器人不同表情之間的自然變化。程序流程如圖5所示。

圖4 軟核

圖5 程序流程圖
有時考慮到特殊的情況,也需要舵機的轉速能按照一定的特定規律進行運動,如按照正弦的規律運動,在這樣的情況下,也是要通過軟件設計來完成的。按正弦曲線的速度來運動,可以算出每個時間間隔應該走過的角度,然后在程序中對應實現就可以了。
對系統硬件進行仿真,設置clk 50MHz,PWM信號周期為20ms,4路信號的占空比分別設為2.5%、7.5%、10%和12.5%,得到的仿真結果如圖6所示,符合預期功能設計。

圖6 四路PWM信號
通過示波器對FPGA開發板的占空比為10%的輸出口進行測試,波形如圖7所示,波形與仿真結果相同,連接上舵機,能使得舵機轉到指定的角度。采用角度插值的方法,實現舵機的速度調節。

圖7 實驗波形
LabVIEW通過VISA與串行接口儀器通信。VISA是應用于儀器編程的標準I/O應用程序接口,它本身并不具有儀器編程能力,而是為用戶提供了一套獨立的可方便調用的標準I/O底層函數[10,11]。VISA串口通信函數調用的順序依次是VISA配置串口、VISA寫入、VISA讀取和VISA關閉[12]。為了使機器人產生不同的表情,添加了條件結構語句,每種條件語句在FPGA中都有程序與之對應,都會使FPGA驅動相應的舵機,本文只嵌套了4次,用來實現4種表情,如果需要實現更多的表情,只需要增加條件語句即可,程序框圖和通信界面分別如圖8和圖9所示。通信界面的設計使得操作簡單易懂,根據要求設置串口的參數,單擊不同的按鈕就能控制相應的舵機,使得機器人實現不同的表情。

圖8 程序框圖

圖9 通信界面圖
本文提出一種基于LabVIEW和FPGA的串口通信舵機控制系統,通過LabVIEW中的VISA控件實現了PC機與FPGA的串口通信,該系統化可以根據實際情況靈活的增加PWM模塊,系統設計方便靈活,可靠性高,通過對設計系統的仿真與實驗測試,能夠產生PWM信號,通過軟件編程可以方便的改變PWM的占空比,控制舵機到達指定的位置,同時采用角度插值與時間延遲的方法,可以實現舵機速度的調節,如果算出每個時間間隔應該走過的角度,還能使舵機實現如正弦等特殊曲線的運動。最終在舵機上進行了驗證,舵機可以工作平穩無顫振,從而達到了比單片機控制更好的效果,為以后仿人機器人表情的實現提供了重要的依據,使用FPGA作為控制板,有利于以后的研究人員對仿人機器人視覺和語音等方面做更深入的研究,完善機器人與人之間的多方面交互功能。
[1]方慶山,林春方.一種基于AT89C2051的多路舵機控制方案設計[J].微特電機,2009,37(7):56-58.
[2]趙慧,張婷婷一種基于FPGA的舵機伺服系統設計[J].機床與液壓2010,38(6):59-61.
[3]E.Koutroulis,A.Dollas and K.Kalaitzakis,High frequency pulse width modulation implementation using FPGA and CPLD ICs[J].Journal of Systems Architecture,2006,52(6):332-344.
[4]A.M.Omar,N.A.Rahim,and S.Mekhilef,Three-Phase Synchronous PWM for Flyback Converter With Power-Factor Correction Using FPGA ASIC Design[J].IEEE Transactions on Industrial Electronics,2004,51(1).
[5]A.Arbit,D.Pritzker,A.Kuperman,and R.Rabinovici,A DSP controlled PWM Generator using Field Programmable Gate Array[J].Proc.23.rd IEEE Convention of Electrical and Electronics Engineers,2004,1:325-328.
[6]YU Hongjuan,PAN Song.FPGA technology application and development [J].Hangzhou University of Electronic Science and Technology Journal,2006,26(3):17-20.
[7]馬瑞.Nios II的那些事兒[M].黑金動力社區,2012.
[8]王剛.基于FPGA的SOPC嵌入式系統設計與典型實例[M].北京:電子工業出版社出版社,2008.
[9]LIAN Yichun,CAO Xiang,WU Haitao.System on programmable chip based on FPGA [J].Zhaoqing College Journal,2006,27(5):18-22.
[10]崔牧凡.基于LabVIEW和FPGA的串口通信系統設計與實現[J].計算機應用,2012,32(S2):82-84.
[11]呂向鋒,高洪林,馬亮,等.基于LabVIEW串口通信的研究[J].國外電子測量技術,2009,28(12):27-30.
[12]董智強,徐世榮,余雅敏.基于VISA的串口通信程序設計[J].電腦知識與技術,2008(6):1069-1072.