杜金浩, 張興瑞,趙亞鳳
(東北林業大學 機電工程學院,黑龍江 哈爾濱 150040)
隨著科學技術的不斷進步,機器人學科越來越具有強大的生命力,并在某種程度上已經代表信息技術、自動化技術、系統集成技術等的最新發展[1]。本文介紹的同步機械手臂,通過四個絕對值旋轉編碼器采集人類手臂的動作信息,包括肩關節,肘關節,腕關節和指關節四個自由度,并將其量化為一組數據通過NRF24L01 無線模塊發射出去,接收端根據收到的數據控制四個位于機械臂上的的舵機,并使用編碼器對舵機關節角度進行檢測,通過PID 控制算法精準控制舵機姿態,從而達到完全復制手臂動作的目的。同時該裝置輔以電機,通過按鍵無線控制裝置的整體移動。
相比于傳統的機械手臂,本文介紹的裝置由于采用了更加直觀的控制方法,降低了使用者的學習成本,減少了誤操作的幾率,所以更有利于向公眾普及。從而在幫助下肢不便者拓展距離限制和保護高危作業者人身安全等方面具有積極作用[2]。
發射機需要完成對人體動作進行檢測,對電機發出控制指令等工作。該部分由角度檢測模塊,移動控制模塊,電源模塊,無線模塊構成。
角度檢測電路采用4 個絕對值旋轉編碼器TRDNA1024NW 對人體動作進行準確的檢測,1024 線(10bit)格雷碼輸出絕對編碼器,本設計為使編碼器與舵機精度相匹配,所以舍棄后兩位采用8 位數據,8 位數據可將精度控制在1.4°/位,可以滿足對肢體動作的檢測要求。

圖1 發射機組成框圖Fig.1 Rransmitterblock diagram
電源模塊采用11.1V 航模電池,保證輸出電流符合要求。電路如圖2 所示。

圖2 電源模塊Fig.2 Power module
接收機是整個系統的執行機構,主要由機械手臂模塊,電機模塊,角度檢測模塊和無線接收模塊構成。
仿真手臂由四個大扭力舵機構成,本設計采用MG996R 舵機。MG996R 舵機拉力可達12kg/cm(6V),反應速度約為0.17sec/60 度(4.8V無 負 載)0.14sec/60 度(6V 無負載)。基本可滿足設計要求。由于STM32 輸出信號峰值電壓為3.3V,無法滿足舵機的驅動要求,并且為了保護單片機,防止電流倒灌。所以采用MOS 管進行反向隔離升壓,保證舵機工作穩定,電路如圖4 所示。
電機模塊采用兩輪獨立驅動機構,由兩個高精度驅動輪和一個隨動輪構成。此裝置由滾動代替滑動摩擦,效率較高適合在平坦的路面上移動,定位精確,而且重量較輕,制作簡單[4]。左右兩個驅動輪分別由兩個直流電機獨立驅動,兩個驅動輪的速度差值決定機械手臂的前進方向,通過對兩個電機施加不同的速度控制量可實現任意方向的運動,屬于差分驅動方式。
角度檢測模塊采用與發射機類似的硬件設計,均采用絕對值旋轉編碼器,有所不同的是這里檢測的是實際執行角度。通過該角度值為PID 控制提供樣本。
由于本設計需要傳輸的數據量比較大,數據傳輸速度要求極快,而且需要防止數據間的互相干擾。所以這里采用兩個獨立的無線模塊NRF24L01。一個無線模塊用來傳輸手臂動作信息,另一個用來傳輸整體移動的信息。
60年砥礪奮進,60年薪火相傳,中國氮肥行業從無到有,由弱至強,走出了一條具有中國特色的發展之路。而在不斷地前行中,中國氮肥行業始終奮發有為,以科技創新為驅動,加速向先進制造業邁進。

圖3 接收機組成框圖Fig.3 Receiverblock diagram

圖4 舵機驅動電路Fig.4 Drive circuit for steering engine

圖5 電機驅動電路Fig.5 Drive circuit for electrical machinery
發射機主要用于采集手臂數據和移動控制數據,并將其經無線模塊發射出去,所以發射機的軟件設計主要包括對角度的檢測,對鍵盤的檢測。
對角度檢測需要采集編碼器數據,由于角度編碼器為避免電平跳變錯誤,故采用格雷碼輸出。所以我們在實際讀取數據的過程中,需要使格雷碼轉換成二進制再進行處理。采用如下方式進行轉換:
unsigned char y=x;
while (x>>=1)
y^=x;
return y;
即可實現從格雷碼轉換成二進制,將此二進制保存,在四個編碼器均檢測完成后形成一個數組,即為當前肢體動作的量化描述。
接收機主要根據無線模塊接收到的數據使得舵機和電機做出相應反應,達到模仿和移動的目的,并且可以根據反饋機制進行自我微調。所以接收機的軟件設計主要包括舵機控制程序,電機控制程序和PID 控制程序[5]。
舵機的控制信號為一個周期為20ms,脈沖寬度為0.5ms~2.5ms 的PWM 方波。該信號采用STM32 內部定時器產生,它的脈沖寬度調制模式可以產生一個由TIMx_ARR 寄存器確定頻率、由TIMx_CCRx 寄存器確定占空比的信號。由于需產生50Hz 的信號,所以需要對72MHz 的時鐘頻率先進行1440 的預分頻和1000 的分頻。配置程序如下所示:
TIM_TimeBaseStructure.TIM_Period = 999;//當 定 時器從0 計數到999,即為1000 次,為一個定時周期。
TIM_TimeBaseStructure.TIM_Prescaler = 1439;//設置預分頻: 1440。
由于需要實時改變PWM 波的占空比,即需要實時改變TIMx_CCRx 寄存器的值,所以這里采用中斷方式:每10 個周期(即0.2s)進一次中斷,改變一次TIMx_CCRx的值。這樣就實現了每0.2s 改變一次占空比,達到快速動作的目的。
TIMx_CCRx 的值由所接收到的手臂動作數據決定,接收到的數據范圍為0~255,將接受到的數據經過一定的線性轉換,即可得到應向TIMx_CCRx 寄存器里寫入的值。但是應為機械結構的原因,每一個舵機都應該有一個限制,超過這個限制的話就會造成舵機卡機,造成舵機不可挽回的損壞,所以在進行線性變換的同時,還需多舵機的占空比進行限制,主要程序如下:

在速度控制程序中本設計采取兩套機制共同控制速度,一是采用超聲波傳感器進行避障,二是采用碼盤檢測速度大小,設定閾值,采取相應的減速操作。根據時間差距測法計算出發射點距障礙物的距離s。當距離低于某一數值時,說明即將撞到某物,采取停車操作。反之說明周圍無障礙。通過檢測碼盤脈沖頻率判斷速度,由于速度較慢且精度要求不高,所以這里采用線性調整即可。
本裝置通過PID 反饋控制對舵機角度進行微調,使用編碼器檢測出的角度作為實際值,向無線模塊接收到的理想值逼近。比例部分的引入是為了及時成比例地反應控制系統的偏差,對舵機做主要調整。積分作用的引入,主要是為了保證被控量在穩態時對設定值的無靜差跟蹤,微分作用的引入主要是為了改善閉環系統的穩定性和動態響應的速度[6],通過PID 控制,更加準確快速的完成響應,提高了系統的時效性。
電機控制程序主要做判斷工作,根據無線通信端接收的指令,L298N 同時驅動2 路直流電機。以其中一路為例,當IN1 和IN2 為00 或11 時,電機處于制動狀態,阻止電機轉動: 當IN1,IN2為01 時,電機正轉;當IN1,IN2 為10 時電機反轉。為掌控接收機運動速度,對使能端輸出PWM 脈沖,不同的占空比,實現不同的速度調節。

圖6 程序流程圖Fig.6 Program flow diagram
本設計靠無線傳輸數據,所以傳輸距離決定著設計的好壞。但因電磁波,電磁場,建筑物,人體影響等多種環境影響都會對傳輸距離產生一定的影響,導致實驗數據因實際操作環境的不同而有不同的傳輸效率。
在空曠場地,最遠通信距離達到60m,在有建筑物阻隔的時候,最遠傳輸距離縮減為40~50m 之間。
在接收機與發射機相距一米的情況下我們對整機進行了靈敏度測試,實驗數據如表1 所示。舵機靈敏度約<0.1s(從發射機發出信號到接收機做出相應的反應)。

表1 誤差測試Tab.1 Error test
大臂受重力影響所需扭力最大,其誤差一直較大,相比較而言其它部位舵機因其位置關系誤差有不同的變化。手指部分的誤差主要由機械結構造成,其硬件結構中使用了非精密齒輪,造成抓取過程誤差有一定變大。
利用STM32 微控制器,編碼器,NRF24L01 通信模塊等,實現了一種具有同步功能的無線同步機械手臂。該設計不僅具有同步性,使得殘疾人在取物時能夠根據自己的意圖而且操作擺脫了傳統中線路的限制,用無線收發數據,方便使用者遠程操控。無線同步手臂在為殘疾人提供方便的同時,也可以為健全人們提供一種全新的服務,更好的享受生活。
[1] 蔡自興.21 世紀機器人技術的發展趨勢[J].南京化工大學學報,2000,4.
[2] 蔣新松.未來機器人技術的發展方向[J].機器人技術與應用,1997,2.
[3] 樓然苗,李廣飛.51 系列單片機設計實例[M].北京:北京航空航天大學出版社,2003.
[4] 宋永端.移動機器人及其自動化技術[M].北京:機械工業出版社,2012.
[5] 徐德,鄒偉.室內移動式服務機器人的感知、定位與控制[M].北京:科學出版社,2008.
[6] 樊國平.智能PID 控制系統的設計與研究[D].浙江:浙江工業大學,2005.