姚科,李國利,咸尚君,鄒惟清
(金陵科技學院機電工程學院,江蘇南京 211169)
隨著科技的發展,機器人已逐漸融入人們的生活、工作、社會的發展和穩定中,成為了不可缺少的角色。在機器人控制系統中,移動平臺的控制是極重要的部分[1-2]。機器人運行路跡固定且實現了功能統一的自動化項目,通常已經實現了機器人移動平臺的自主定位和自主循跡,使機器人能長期高效穩定運行[3]。但在工作環境復雜、機器人實現功能特殊的場景中,如火場救援滅火等,針對機器人移動平臺實現遠程高效穩定控制具有重要的意義[4-6]。
隨著機器人在滅火救援特種作業等高危復雜工作中優勢的體現,移動平臺的遠程穩定、高效控制擁有巨大的應用領域和廣闊的發展前景,近些年來更是呈現優異的發展態勢[7-8]。這種對人員生命安全、財產安全敏感的特種作業來說,機器人遠程移動平臺控制具有穩定、安全、高效、環境適應性強等優點[9-10]。在科技不斷發展的今天,機器人越來越普及,將機器人移動平臺的遠程控制應用到特殊工作環境的特種作業中,對提高特種作業的工作效率、保障工作人員的生命安全都具有深遠意義。所以一種能在復雜作業環境下實現機器人移動平臺遠程控制的方案就顯得十分重要。該文設計了基于SX1280LoRa 模塊遠程傳輸數據的移動平臺控制方案,控制信號發送板采集控制元件狀態參數,將參數遠程發送給接收板,接收板將接收的數據解碼成移動平臺各電機控制信號,控制各“H 橋”電機驅動電路,針對該方案制作樣機進行了調試和驗證。
1.1.1 控制信號采集編碼硬件電路設計
文中移動平臺遠程控制系統設計中,采集電路左右搖桿、鈕子開關、自鎖按鍵、撥碼開關的狀態作為控制信號,由這些控制元件狀態決定移動平臺的工作模式、移動速度、移動方向。
控制信號發送板和控制信號接收板的控制系統采用STM32 系列的主控芯片,控制系統電路包括最基本的電源供電電路、外部復位電路、外部時鐘電路、啟動方式BOOT 控制接口、狀態指示電路和在線調試JTAG 接口。
外部復位電路中,按下復位按鈕,NRST 復位引腳被拉低,從而產生復位脈沖,對控制系統執行強制復位操作。外部時鐘電路是為了給單片機運行程序提供精準的時鐘信號。程序啟動控制BOOT 接口控制主控芯片啟動方式。程序下載和在線調試采用五線 制TCK/TMS/TDO/TDI/TRST 的JTAG 接 口,通 過JTAG 接口可以訪問處理器的內部寄存器,從而對處理器進行在線調試。
信號發送板的控制系統讀取鈕子開關、自鎖開關、撥碼開關的電平信號,ADC 采集左右兩搖桿的數值。發送板主控電路將控制參數編碼成控制數據通過SX1280LoRa 模塊發送,接收板主控電路將接收到的控制數據解碼成移動平臺各電機的控制信號,控制各電機的轉向和轉速[11]。
1.1.2 通信部分硬件電路設計
SX1280LoRa 模塊是該項目中無線發送板和無線接收板的核心。該模塊是基于SX1280 的射頻模塊,是一款高性能無線收發器,特殊的LoRa 擴頻調制技術可以極大地提升通信距離,而且其無線收發模塊的體積小、傳輸距離遠、功耗低、具有線性度,抗干擾能力強[12-13],模塊內部沒有集成微控制芯片,故需要配合MCU 使用,SX1280LoRa 通信電路原理圖如圖1 所示。

圖1 SX1280LoRa通信電路原理圖
NRST 和BUSY 分別為復位引腳和狀態指示輸出引腳,模塊采用SPI通信接口。SPI用四根信號線通信,在該模塊中NSS_CTS 為片選引腳,SCK_RTS 為時鐘輸入引腳,MOSI_RX 為SPI 數據輸入,MISO_TX為SPI 數據輸出。SPI 通信采用一主一從的通信方式,具有同步全雙工通信性質。無論接收數據還是發送數據都是單向傳輸的。主機的SCK 時鐘作為主從機的同步時鐘信號,同步主、從機的時鐘頻率[14-15]。主機片選信號接高電平,從機片選信號接低電平,因為這是一主一從的通信系統,所以從機的片選信號一直為低電平且時鐘被選中。
對移動平臺電機的驅動而言,主控單片機是可以輸出電壓的,但其輸出的電流很小,驅動能力十分有限。所以通過單片機輸出信號做驅動信號來驅動MOS 管是一種普遍的電機驅動方案。MOS 管實質是一個電子開關,通過關斷MOS 管控制驅動電機的供電電源,并且可以通過調PWM 占空比大小來控制驅動板加在電機上的電壓,從而達到電機調速的目的[16]。
移動平臺驅動控制板采用MP1584 降壓型芯片將供電電壓降至5 V,以對控制電路供電,控制系統采用STM32C8T6 作為MCU??刂艸 橋驅動的IR 2104S 半橋驅動芯片需要12 V 電壓,故使用SX1308將MP1584 降壓后的電壓升壓至12 V。
在H 橋驅動電路中,使用IR2104S 作為半橋驅動芯片。H 橋電路驅動原理圖如圖2 所示。

圖2 H橋電路驅動原理圖
當驅動電路下橋臂MOS 處于導通狀態,此時上橋臂MOS 管處于關斷狀態,VS 引腳的電平接近于低電平。芯片的VCC電壓(+12 V_motor)經過二極管向自舉電容充電,使自舉電容上端電壓近似于VCC電壓。此時下橋臂MOS 關斷,VS 的電位將由近似于0 V 開始升高,此時VB 的電壓為電源電壓加VS 引腳電壓。由于芯片內部HO 與VB 導通,也就是HO 與VS 之間電壓為VCC,這個電壓差足夠打開上橋臂。當上橋臂MOS 管關斷,下橋臂MOS 管導通,電路開始給自舉電容補充電量,電壓達到閾值時交替導通。全橋驅動的兩個IN 信號為一對相反的信號,控制半橋上、下橋臂MOS 管進行交替導通,達到全橋驅動的目的。
在基于SX1280LoRa 模塊的無線信號發送板程序設計中,采用定時器中斷設定每20 ms 對需要發送的數據進行編碼并判斷編碼內容是否與上一組數據相同,若相同,則返回1,否則返回0。當返回值為1時執行SX1280 模塊的無線數據發送函數,發送結束后復位編碼完成標志位和20 ms 計時標志位。程序流程圖如圖3 所示。

圖3 無線信號發送板的程序流程圖
在數據采集編碼函數中引入三個形參,分別為目標地址、源地址、待發送數據。在對數據進行采集編碼中通過ADC 采樣獲取左右遙感X軸和Y軸的值以及左右電位器的值,并讀取按鍵的狀態。獲取無線遙控控制數據后,對數據進行編碼。定義存放編碼數據數組由目標地址、源地址、左右遙感X、Y軸參數、各按鍵參數、左右電位器參數、檢驗位和數據尾組成。編碼完成后會對要發送的數據和上一組數據進行比較,只有數據不同才會進入數據發送程序。在數據編碼函數中針對剛剛編碼完成準備進入發送函數的數據生成校驗位sum,sum 是由數組中除數據尾外的數據累計相加得到,在接收函數中會有對應的檢驗位驗證函數,用于判別接收的數據包是否正確。
接收到的數據包內容包括目標地址、源地址、左搖桿X軸數據、左搖桿Y軸數據、右搖桿X軸數據、右搖桿Y軸數據、旋轉工作模式、運行工作方式、遙控左電位器信號、遙控右電位器信號、遙控左右面板按鍵信號、校驗位、數據尾共計13 類數據。在數據包驗證流程中,定義一個驗證數據標志參數sum。首先確定目標地址和源地址是否正確,然后把接收到的數據從目標地址到校驗位前的數據累計相加放入sum 中,和校驗位數據進行比較。兩參數相同證明數據包接收無誤,接收數據指示燈閃爍,否則清空接收數據。數據校驗流程圖如圖4 所示。

圖4 數據校驗流程圖
在數據接收校驗完畢,對數據進行解碼。分別進行地址段解碼、功能段解碼和遙感數據解碼。定義全局變量,存放針對移動平臺解碼后的控制信號,發送的數據依次為接收地址、發送地址、功能、方向、速度1、速度2、速度3、速度4、緊急切換信號和校驗、數據尾,如表1 所示。

表1 電機驅動板接收數據字節定義
對于驅動單個電機需要電機轉動方向和電機轉動快慢兩個參數。文中用三個參數控制一臺電機的轉動狀態,分別是motor_A、motor_B、PWM_motor。前兩個參數為一對相反的量,為全橋驅動電路的兩個半橋驅動芯片輸入相反的控制信號,控制電機的轉動方向。后者PWM 控制電機的轉動速度。由上述四路電機硬件驅動控制板硬件介紹可知,控制一個H 橋驅動需要兩個半橋驅動IR2104S 芯片,根據H 橋驅動原理,兩個半橋驅動芯片的“IN”腳為一對相 反 的PWM 波。故motor_A=motor.dir、motor_B=~motor.dir。
移動平臺驅動行進方式涉及整體的運動方向和行進速度,分散到每個電機就轉化為四個電機單獨的轉動方向和轉動速度配合問題。
在電機驅動控制程序中,會用到許多不同的驅動直流電機的參數,因為其零散性且是共屬驅動直流電機的參數,該程序將這些屬于驅動直流電機參數的“屬性”,組成“motor_drive”結構體,更加有整體性,且效率高、方便調用、傳遞參數簡潔?,F將該程序入口參數結構體變量介紹如下:

在接收到SX1280LoRa 模塊發出的信號后,無線接收板會對接收到的數據進行解碼,將接收到的搖桿、自鎖開關、鈕子開關等狀態數據解碼成移動平臺各電機控制參數。將設備如圖5 所示硬件接線圖相連接。通過串口助手監測解碼后移動平臺的控制參數,監測數據解碼和再編碼如圖6 所示。

圖5 無線接收板調試硬件接線圖

圖6 監測數據解碼和再編碼
將解碼后的數據再編碼成用于驅動控制的參數,放入RS485_TX_BUF 數組中。第一、二個數據為數據發送目標地址和數據發送源地址,第三個數據是移動平臺工作的模式,有前進、后退、停車、向左、向右、左前、左后、右前、右后、順時針旋轉和逆時針旋轉。第四個數據的低四位存放四路電機的轉動方向。第五到第八位是四個電機的速度。第九位是緊急切換信號,包括手動模式和急停模式。
例如右側第二行數據:AA 表示數據由移動平臺電機驅動控制板接收,AB 表示數據由遙控接收板發出,03 代表機器人向左移動,故09 是機器人的四個電機轉動方向“1001”,后四個數據為四個電機的速度,00為特殊狀態位,倒數第二位是校驗位,最后為數據尾。而在第三項數據中06 代表電機朝左后方向運動,雖然電機四個轉動方向為“1111”,但四個電機中的第二第三電機速度為0,故運動方向是正確的。
文中共進行了6 次控制信號連接成功率測試,每次測試連續輸出15 min 移動平臺控制信號,通過串口調試助手對信號發送端和接收端進行對比監測,該實驗實際測試結果如表2 所示,每次遠程控制數據傳輸成功時,串口調試助手監測控制信號發送端輸出數據與控制信號接收端所接收的數據均一致,該系統數據采集上傳成功率最低為97.3%,通信網絡丟包率平均為1.97%,系統數據傳輸丟包率測試統計如表2 所示。

表2 系統數據傳輸丟包率測試統計
在實驗室運行環境下,當移動平臺移動距離和速度給定時,對移動平臺進行了前后直行、斜行、側向橫行、等多狀態軌跡運動,以對其軌跡運動性能進行評估。文中運動性能測試了500 cm 距離時的定位精度,測試時在移動平臺不同的移動速度條件下,記錄實際運行距離與目標值之間的誤差,平臺定距定速運行性能測試數據如表3 所示。

表3 平臺定距定速運行性能測試數據
該文介紹了一款遠程移動平臺控制系統,包括基于SX1280LoRa 模塊的控制信號發送板、基于SX1280LoRa 模塊的控制信號接收板、移動平臺電機驅動控制板,實現機器人移動平臺遠程高效穩定控制功能。移動平臺的整體行進狀態由其各個電機共同決定,在移動平臺電機驅動控制板中,通過“H 橋”電路驅動電機,遠程控制信號發送板讀取和采樣控制元件狀態,將控制元件狀態數據進行編碼發送。無線信號接收板對接收到的數據進行校驗解碼,將控制元件狀態參數解碼成移動平臺的各路電機控制參數,傳至移動平臺電機驅動控制板的各路“H 橋”驅動電路半橋驅動芯片中,完成移動平臺的遠程控制。最后該系統經過調試運行,結果表明,各電路硬件設計方案可行、遠程數據發送正確穩定、控制算法正確、控制系統運行高效穩定。