摘要:文章設計并實現(xiàn)了一款可通過模塊化拼接實現(xiàn)可重構機械臂的控制系統(tǒng),可通過簡單的拼接和設置來改變機械臂的動作和結構。該系統(tǒng)以CH32為主控核心,用戶可利用MPU6050傳感器和4.3寸觸摸屏自由設定機械臂的運動參數(shù),主控部分接收數(shù)據(jù)后,通過串口控制CAN總線電路,CAN總線電路再利用H橋電路去驅動掛載在CAN總線上的不同ID號的電機動作。可重構機械臂可獨立控制每一個關節(jié)模塊的轉動角度,轉動最小精度達0.112 5度,通過給多個電機發(fā)送不同的指令實現(xiàn)各電機動作差異化的動作,實現(xiàn)多自由度的機械臂控制。實驗結果表明,該系統(tǒng)具有良好的控制精度和響應速度,能夠滿足可重構機械臂的控制需求。
關鍵詞:可重構機械臂;H橋電路;MPU6050;模塊化控制;CAN總線;嵌入式系統(tǒng)
中圖分類號:TP393" " " 文獻標識碼:A
文章編號:1009-3044(2025)16-0107-05
開放科學(資源服務) 標識碼(OSID)
0 引言
近年來,技術的發(fā)展使得機器人的能力不斷提高,然而隨著制造裝備的柔性要求越來越高和應用領域的不斷擴大,機器人的工作環(huán)境和工作范圍也越來越廣,傳統(tǒng)的機器人由于構形固定的限制很難同時很好地適應諸多工作任務類型及工作環(huán)境的要求[1]。而模塊化可重構機械臂為解決這一問題提供了 promising 的途徑??芍貥嫏C器人系統(tǒng)是一種能夠適應不同的任務需要改變自身構型的機器人,可以在未知環(huán)境中完成多種復雜的作業(yè)任務[2]。模塊化可重構機械臂是通過各個提前準備好的模塊進行拼接搭建,類似搭積木一樣,再控制模塊化可重構機械臂的動作,具有很高的兼容性和靈活性。根據(jù)具體的任務,機器人可通過人工介入的方式實現(xiàn)重組,使機器人具有不同的功能[3]。本文研究了一種基于模塊化設計的可重構機械臂控制系統(tǒng),重點探討關節(jié)模塊的控制方法,旨在實現(xiàn)對機械臂的精確、靈活控制。
1 系統(tǒng)硬件
系統(tǒng)硬件分為主控模塊、姿態(tài)傳感器模塊、電機驅動模塊以及CAN總線通信模塊四大部分構成,主控模塊采用CH32微控制器,負責接收用戶指令、處理傳感器數(shù)據(jù)、控制觸摸屏顯示以及發(fā)送電機控制信號。姿態(tài)傳感器模塊基于MPU6050,用于采集用戶的姿態(tài)信息并通過藍牙模塊傳輸姿態(tài)數(shù)據(jù)給主控。電機驅動模塊采用雙H橋電路驅動步進電機,并通過諧波減速器提高扭矩輸出。CAN總線通信模塊負責主控模塊與多個驅動模塊之間的數(shù)據(jù)傳輸,實現(xiàn)對多個關節(jié)的協(xié)調控制。
主控模塊的板子尺寸為10 cm×10 cm,方便嵌入機械臂中。主控模塊的功能是實現(xiàn)對4.3寸觸摸屏的驅動,設置用戶界面可以靈活地控制電機的轉動,另外通過藍牙傳感器可以接收到姿態(tài)傳感器模塊的控制數(shù)據(jù),然后通過串口將這兩個控制數(shù)據(jù)發(fā)給CAN總線通信模塊,為了使得控制數(shù)據(jù)不丟失,其數(shù)據(jù)均存儲在SD卡。主控模塊不僅僅是系統(tǒng)的核心,也把各個模塊連接到一起,其實物圖如圖1所示,下面對主控模塊的功能進行一一介紹。
對觸摸屏的控制方面,利用了電容觸摸屏接口電路與4.3寸觸摸屏連接,在程序上使用了LVGL圖像庫,使得界面更加絲滑。觸摸屏可以顯示系統(tǒng)的基礎信息和使用說明并可在屏幕中設置電機動作角度,來控制機械臂的動作。其電路圖如圖2所示。
對于姿態(tài)模塊的數(shù)據(jù)獲取和存儲數(shù)據(jù)信息方面,主控模塊上預留了藍牙接口,與姿態(tài)模塊上的藍牙配置為主從模式,可以實時接收到姿態(tài)模塊發(fā)來的控制命令。為了數(shù)據(jù)的安全,其數(shù)據(jù)均存放在SD卡中,于是主控部分加入了SD卡存儲電路,主要是利用FAT文件系統(tǒng)管理來控制系統(tǒng)的所有數(shù)據(jù)信息,比如藍牙發(fā)送過來的信息、與電機驅動電路通信的數(shù)據(jù)等,其電路圖如圖3所示。
主控模塊接收了前端的控制命令后,就需要將控制數(shù)據(jù)傳輸給后端,以控制電機動作,此處使用的是USB串口電路來實現(xiàn)與CAN總線通信模塊的信息交互,實現(xiàn)兩電路的通信以達到主控電路對機械臂的控制,其電路圖如圖4所示。
除此以外,為了使得主控模塊可以正常使用,還有LED電路用于指示燈的作用、電源管理電路可以把輸入的12 V電源轉化為5 V和3.3 V電壓為芯片和設備供電、芯片以及外圍電路使得芯片可以正常燒錄程序正常使用等。
姿態(tài)傳感器模塊就是姿態(tài)控制電路,其板子尺寸為4.5 cm×3.5 cm,可以佩戴在手腕上便于采集用戶的姿態(tài)數(shù)據(jù),去控制電機動作。姿態(tài)控制電路的主控芯片是STM32,電路中有MPU6050姿態(tài)傳感器、HC-05藍牙模塊、WS2812B彩燈電路、電源管理電路等。其功能是MPU6050傳感器采集用戶的姿態(tài)控制信號,并發(fā)送給STM32。經過濾波后大約每400 ms獲取一次航向、俯仰和橫滾角度,數(shù)據(jù)通過主藍牙模塊發(fā)出,可以被主控模塊的從藍牙模塊接收到,實現(xiàn)電機控制的發(fā)送,為了方便佩戴,其供電只需要一塊3.7 V的鋰電池通過電源管理電路實現(xiàn)整個電路的供電。電路如圖5所示。
在科技快速發(fā)展的背景下,現(xiàn)階段應用的步進電機所配置的齒輪箱、直線運動執(zhí)行裝置等較為先進,能實現(xiàn)難度較大、復雜程度較高的線性運動,這使步進電機得到了廣泛應用與快速發(fā)展[5]?;谶@些優(yōu)點,本文的驅動均采用步進電機。但步進電機也有本身的缺點,具體缺點是相對于同尺寸的直流減速電機或者大一點的伺服電機都會出現(xiàn)扭矩相對較小的問題,而且在負載較大的場合會出現(xiàn)噪聲比較大和可能出現(xiàn)的失步(轉動角度錯誤) 的問題。對于扭矩較小的問題,本文采用在步進電機上加裝諧波減速機,諧波減速機的主要作用之一就是降低速度并增大輸出扭矩,而且由于諧波減速機的加入,負載直接作用在減速機上,電機所承受的力會小很多(1/減速比) ,這樣對電機起到了保護作用,尤其是在過載的情況下。此次設計的諧波減速機理想情況下可以將扭矩增大30倍,電機轉動30圈時諧波減速機轉動一圈,便于轉動重量較大的物體,其建模圖如圖6所示。
由于高品質的MOS管可以提供更好的電流控制和更小的導通電阻,這有助于減少電機在運行過程中的噪聲和振動,雙H橋驅動可以提供更強的扭矩和更好的控制精度,這有助于減少步進電機在高負載或高速運行時的失步現(xiàn)象,所以在電機驅動部分采用8個高品質MOS管組成雙H橋驅動步進電機的動作以解決噪聲比較大和可能出現(xiàn)的失步(轉動角度錯誤) 的問題。雙H橋電路由兩個H橋組成,每個H橋由4個MOS管構成,H橋電路如圖7所示。這種電路可以控制電機的正反轉以及停止,通過改變MOS管的導通狀態(tài)來控制電機的電流方向,從而實現(xiàn)電機的精確控制。而對于MOS管的導通狀態(tài)是由STM32來控制的,STM32微控制器可以通過PWM輸出和GPIO控制來驅動H橋芯片,實現(xiàn)對步進電機的精確控制。具體來說,STM32的引腳輸出高低電平,來控制MOS管的導通狀態(tài),而MOS管的導通狀態(tài)控制了電流的流通與否,而PWM就是高低電平的變化,所以通過STM32輸出的PWM波即可實現(xiàn)對步進電機的控制。
對于步進電機的正轉和反轉和速度,則是通過PWM信號的占空比(即高電平時間與周期的比例) 決定了電機的轉速,而PWM信號的極性則決定了電機的轉向。步進電機正轉如圖8所示,反轉如圖9所示,都是通過改變電流流向來實現(xiàn)方向變化的。
如上解釋了對單個電機的驅動,但由于模塊化可重構機械臂由多個模塊關節(jié)組成,因此需要考慮如何實現(xiàn)同時驅動多個電機。單個電機的控制是通過STM32和雙H橋驅動來實現(xiàn)的,但為了方便同時控制多個電機,不能同時使用多個STM32獨立發(fā)送PWM波形,這樣過于麻煩且難以實現(xiàn)聯(lián)動,因此,需要一個總的控制方式,而中間的通信就是一個難題,由此就需要采用一種控制方式來進行控制,而CAN總線支持多幀并發(fā)傳輸,數(shù)據(jù)傳輸速度快,能夠滿足實時控制系統(tǒng)的要求,并且CAN總線支持多主機和多節(jié)點的連接,能夠方便地擴展和改變系統(tǒng)結構,這一特點對應于可重構的特性,便于改變機械臂的結構,在CAN總線系統(tǒng)中,每個節(jié)點(包括電機控制器) 都有一個唯一的標識符。通過CAN總線,系統(tǒng)可以動態(tài)地識別和配置連接的節(jié)點。當電機被添加或移除時,系統(tǒng)可以通過更新節(jié)點列表和重新配置通信協(xié)議來適應這些變化。由于這些特性,此處設計采用CAN總線來對多個電機進行控制。采用CAN總線通信方式,通信可靠性高,且延時低,適應了電機矩陣中分布式控制的需求[4]。
為滿足控制的功能,設計并使用了CAN總線通信模塊,電路中使用的芯片是STM32,STM32與CAN收發(fā)器芯片SN65HVD230相連接,在其總線上就可以掛載多個電機驅動電路,以控制多個電機。主控電路通過串口發(fā)送控制信號給CAN總線控制電路,CAN總線控制電路再通過CAN總線控制電機驅動電路再控制電機動作,比如電機一動作90°,電機二動作45°,電機三動作35°等,通過多個電機放置位置的不同和角度不同,也就可以實現(xiàn)機械臂的不同動作。由于理論上,標準CAN總線最多可以支持掛接110個設備,所以為了穩(wěn)定,在本文中的CAN總線通信可以實現(xiàn)最多控制50個以內的電機,總硬件框架如圖10所示。
2 系統(tǒng)軟件
系統(tǒng)軟件主要包括控制數(shù)據(jù)采集、CAN總線通信和電機控制三個部分??刂茢?shù)據(jù)采集模塊包括讀取MPU6050的姿態(tài)數(shù)據(jù),并通過藍牙傳輸至主控模塊以及用戶通過觸摸屏設定的電機參數(shù)。CAN總線通信模塊負責主控模塊與各驅動模塊之間的數(shù)據(jù)交換,實現(xiàn)對多個電機的協(xié)調控制。電機控制模塊根據(jù)接收到的控制指令,驅動步進電機實現(xiàn)精確的運動控制。
姿態(tài)數(shù)據(jù)采集部分的作用是發(fā)送電機控制信號,其主要分為兩個部分,一是可佩戴在手上的姿態(tài)控制電路,電路中的MPU6050姿態(tài)模塊,可以根據(jù)用戶的姿態(tài)變化,獲取姿態(tài)值,然后通過HC-05藍牙模塊發(fā)送出去,對應的姿態(tài)控制電路中的WS2812B彩燈電路會顯示不同的顏色,例如用戶佩戴好后,伸直手臂與地面垂直,扭動手腕向左40度或者向右60度等,然后燈隨著動作而改變顏色,發(fā)出的數(shù)據(jù)也隨之改變,其控制信號可以按照用戶的需求修改。由于主控電路中也含有HC-05藍牙模塊,所以可以和姿態(tài)控制電路的HC-05藍牙模塊配置為主從透傳模式,主設備為姿態(tài)控制電路里的藍牙模塊,從設備為主控電路中的藍牙模塊,它們可以進行數(shù)據(jù)的收發(fā),當主控電路收到姿態(tài)控制電路發(fā)過來的數(shù)據(jù)后,對其數(shù)據(jù)進行讀取解析后,按照具體的數(shù)據(jù)內容進行控制,數(shù)據(jù)格式是AA BB 0X03 0X1E 0X3C 0X5A CC DD,前面的AA BB是數(shù)據(jù)包頭,只有收到這個包頭才是正確的數(shù)據(jù),防止系統(tǒng)受到其他的數(shù)據(jù)干擾,0X03是指有可重構機械臂中電機數(shù)量是3個,可以通過修改數(shù)值來控制多個電機,但注意的是,必須要小于或者等于實際的電機數(shù)量,后面的3組是通過16進制和10進制進行轉換,此處的意思是30、60、90,指的是電機一動作30度,電機二動作60度,電機三動作90度,這里的三組和控制電機數(shù)量要保持一致,最后的CC DD是數(shù)據(jù)的包尾,和包頭是一樣的作用,必須一致才是正確的控制信號,通過這些數(shù)據(jù)就可以對電機進行控制。另外還有用戶界面,用戶可以通過4.3寸觸摸電容屏來控制電機的動作,程序上利用LVGL圖形庫設計了三個界面,第一個界面是主界面,具有2個按鍵可以進入界面二和界面三,界面二中可以看到系統(tǒng)的基本信息包括電機數(shù)量、使用方法、電機轉動情況等,如圖11所示。界面三是電機控制功能,可能通過按下按鍵去控制電機轉動的度數(shù),這里以三個電機為例,如圖12所示。用戶可以在觸摸屏上輸入電機轉動的角度,電機就會按照用戶的輸入來轉動。這些數(shù)據(jù)均保存在SD卡中,SD部分使用了FATFS文件系統(tǒng),便于將不同的控制信號進行分類處理,也方便用戶進行查看。
CAN總線通信部分用來按照控制信號對電機進行控制。CAN總線由兩根信號線組成,分別為CANH和CANL,這兩根信號線通常采用雙絞線。本設計采用的是星形拓撲,每個節(jié)點通過中央設備連到一起,其優(yōu)點是容易擴展,可以通過一個總的控制端控制多個設備,方便與多個設備進行通信。在程序方面,須配置CAN模塊,設置波特率和工作模式,初始化CAN總線。主控發(fā)送數(shù)據(jù)后,分控接收數(shù)據(jù),處理中斷內容,如若沒有獲取到數(shù)據(jù),則重新獲取。CAN總線控制單電機程序框圖如圖13所示。
電機控制部分主要是利用STM32輸出PWM波去控制H橋的通斷來控制電機的動作,電機驅動電路對單個步進電機控制時,需要按照硬件連接,通過引腳輸出信號控制,設置 ENABLE 為高電平使能芯片,設置 DIR 引腳電平確定電機旋轉方向,通過在 STEP 引腳產生脈沖信號來驅動電機旋轉。在多個電機控制時,由于使用了電機都掛載在CAN總線控制電路中,所以只須通過CAN總線控制電路給各個電機驅動電路發(fā)送信號,其發(fā)送控制信號的順序和每個電機轉動的大小是很重要的,故給每一個電機都綁定了一個ID號,掛載在CAN總線上的電機,接收到對應的ID號才會動作,反之則無應答。按照每個ID號的電機不同的轉動,來實現(xiàn)一套完整的動作。在CAN總線通信部分中還有信號的反饋功能,CAN總線控制電路會回傳給主控電路電機的運動消息,比如扭矩大小、轉動角度等數(shù)據(jù),便于用戶更好地去了解機器的工作狀態(tài)。
當控制信號傳輸過來后,CAN總線控制電路接收到數(shù)據(jù)便可以操控掛載在CAN總線上的電機驅動電路,按照上面對CAN總線的描述進行操作后,就可以把控制消息傳輸?shù)矫總€電機驅動電路上面,每一個電機驅動電路就可以單獨驅動對應的電機轉動,通過不同電機轉動的不同角度就可以實現(xiàn)機械臂的一套動作,而動作的重復運行就可以在實際的場合里真實地使用。在軟件程序方面,可以很簡單地更改代碼就可以靈活的控制不同數(shù)量的電機,只需要改變接線和控制信號中的傳輸數(shù)據(jù)就可以對不同數(shù)量的電機進行控制。這一軟件控制框圖如圖14所示。
3 結束語
本文設計并實現(xiàn)了一種基于模塊化設計的可重構機械臂關節(jié)控制系統(tǒng)。該系統(tǒng)通過CAN總線實現(xiàn)了對多個關節(jié)的協(xié)調控制,并利用MPU6050和觸摸屏提供了靈活的控制方式。實驗結果驗證了系統(tǒng)的可行性和有效性。未來研究將著重于提高控制系統(tǒng)的魯棒性和智能化水平,并探索更多應用場景。
參考文獻:
[1] 岳宗帥.可重構機械臂關節(jié)模塊控制器設計及運動控制研究[D].沈陽:沈陽理工大學,2014.
[2] 汪宇超.面向可重構機械臂的模塊化關節(jié)驅動控制系統(tǒng)研究[D].蘇州:蘇州大學,2023.
[3] 王志華.模塊化可重構機械臂系統(tǒng)研制[D].馬鞍山:安徽工業(yè)大學,2020.
[4] 王志成,丁學明,李振華.基于CAN總線的步進電機驅動器設計與實現(xiàn)[J].智能計算機與應用,2021,11(4):98-103.
[5] 劉忠南,程怡安,張笑影. 步進電機的單片機控制系統(tǒng)設計研究[J]. 科技資訊, 2024,22(16):74-76.
【通聯(lián)編輯:王 力】