對機械臂的肩關節與肘關節編碼器連線與設定

2021-10-19 11:39:46 字數 4074 閱讀 1731

雙旋轉軸機械臂的肩部和肘部安裝有角度編碼器 st-3806-15-rs,通過角度編碼器stm32f103控制器來對肩部和肘部的運動進行控制運動補償。

三管腳機械臂控制命令中總結了第一版測試軟體(機械臂底層通訊協議說明)所呈現的一些基本問題。其中關於運動不連續問題與編碼器的讀取與除錯出現的鼓掌有關係。

本文對於角度編碼器的安裝、設定、與檢測給出總結。

電路板上存在兩個5pin的介面,他們位於電路板的下方。如下圖所示:

▲ 兩個感測器連線到電路板

根據st-3806系列單圈編碼器 說明書定義了角度感測器引線的功能與對應的顏色:紅黑

綠黃白dc5v dxc9-30v

gnd485a+

485b-

reset

因此,根據控制板的電路板對於介面埠定義,將st-3806感測器5pin介面顏色序列如下圖所示:

▲ 角度感測器sch設計

兩個角度感測器分別對應的通道:

在使用兩個角度感測器之前需要設定兩個角度感測器st-3806-15的波特率。出廠時的串列埠預設配置,波特率預設為9600bps,資料位8,無校驗,停止位1;波特率可配置範圍9600~115200bps,資料位為8 位,校驗方式可配置為奇校驗、偶校驗或無校驗,當為奇、偶校驗時停止位為1 位,無校驗時停止位為2。

為了提高角度感測器讀取速度,需要將st-3806的通訊波特率修改為115200。

下面給出分別設定兩個角度感測器的過程,設定的方式、條件基本相同。

根據st-3806-15說明,感測器設定需要將其對應的rtc管腳(pin5)拉高。下面通過乙個短路線的電阻連線在對應的埠的pin5與pin1(+5v),將rtc的電壓拉高。持續時間超過10秒鐘,然後將短路線拿開。經過復位之後,st-3806的通訊波特率恢復到9600,這樣便可以通過軟體將st-3806感測器重新設定到115200。

下圖顯示了對於通道1(肩部角度感測器)進行復位的過程。對於通道2(肘部角度感測器)復位使用相同的方法,都是將短路線短接介面的pin1(最左),pin5(最右)兩個埠超過10秒鐘,然後將短路線拿開。

▲ 對通道1(肩部角度感測器)進行復位

進行復位之後,便可以使用下面的設定方法來改變感測器的波特率了。

■ 說明:在返回的第一版本的電路板,兩個讀取角度的埠始終出現問題。最後經過檢修,更換了mcu(stm32f103),兩個max485電路才恢復工作。為什麼原來的介面電路損壞了呢?

猜測:有可能原來在使用過程出現了高壓將原來的介面電路損壞了.

▲ 更換了mcu,兩個max485介面電路之後重新設定

(1)使用stm32bootloader軟體

stm32bootloader軟體是微控制器軟體開發軟體。通過它的對話互動式命令設定比較方便,但它需要有對應的stm32bootloader專用硬體的連線。如果沒有 ,可以參照下面的「使用簡易命令」來進行設定。

▲ stm32bootloader對話方塊軟體介面

在對話方塊中分別輸入:

(2)使用簡易命令2

雙軸機械臂串列埠控制命令開發與測試:stm32f103控制板,簡易除錯命令集合是用於開發除錯機械臂的命令介面。在其中增加了設定角度感測器的控制命令。詳細可以參見簡易除錯命令集合中的定義。

命令定義:命令hex嗎:0x07

命令引數:0x00,0x00:對應通道1,肩部角度感測器;0x00,0x01:通道2,肘部角度感測器;

返回數值:0x5a

在設定角度感測器波特率為115200之後,可以通過以下兩個方面來讀取相應的角度數值,看是否數值能夠隨著機械臂的不同位置而改變。如果能夠讀取改變的數值,說明兩個感測器的通訊埠以及波特率設定完成。

(1)使用stm32bootloader軟體

在stm32對話方塊中輸入「angle」命令,回車之後,可以獲得當前肩部和肘部的角度感測器數值。

▲ 輸入angle命令查詢當前的命令

(2)使用簡易除錯命令

使用雙軸機械臂串列埠控制命令開發與測試:stm32f103控制板,簡易除錯命令集合中的讀取角度命令:

命令定義:命令hex碼:0x08

命令引數:0x00,0x00

返回值:四個位元組,分別是ah1,al1,ah2,al2

由於角度感測器輸出的數值是相對於它本身的零點,這與它安裝的方位有關係。如果兩台機械臂的在固定角度感測器是他們的機械零點不同,則在同樣的機械臂的位置,所讀出的角度值也不相同。

對於stm32f103三軸機械臂控制器進行基本功能測試-關節角度讀取中給出了對於角度值讀數進行修正的方法,通過增加修正量來保證機械臂在移動範圍之內,讀出的值始終保持單調,而不會過零點出現溢位現象。

▲ 兩個關節的角度感測器安裝的位置

現在程式中已經就肩部和肘部的角度感測器進行修正。要求機械臂的兩個關節都處於旋轉中心位置的時候讀出的數值都是:0x4000=16384。

通過3.3 讀取角度的方法,獲得兩個管腳的角度值,確認是否關節在運動範圍中心位置所讀取的數值為16384。

▲ 兩個關節都處於運動中心位置

如果在機械臂的管染血在運動中心位置,讀取的角度不是0x4000(16384),則需要對角度感測器進行置零。根據st-3806系列單圈編碼器 說明書中說明,將st-3806置零是將介面管腳rts拉高超過1秒,小於5秒鐘即可。

下圖顯示了對於通道1(肩部角度感測器)角度置零過程:使用短接線將通道1埠的pin1,pin5短接兩秒鐘。

對於通道2(肘部角度感測器)進行置零,通道2介面做同樣的操作即可。

▲ 將通道1(角度感測器)角度置零

由於軟體內部自動將角度感測器進行補償 0x4000,所以通過軟體反饋的角度感測器的讀數為0x4000。

與前面對st-3806復位過程類似,使用乙個短接線將介面的pin1,與pin5短接。時間大約1~2秒鐘。st-3806的數值就被置零了。此時重新讀取數值,得到的讀數就應該是0x4000。此過程需要注意:

對於機械臂的兩個角度感測器(肩關節、肘關節)的電氣安裝、波特率設定、角度檢查進行了總結。

需要按照前面三個步驟逐步完成角度感測器的設定。這樣才能夠保證機械運動的精度。

控制板ad工程檔案:ad\xqwf\2020\機械臂\f103c82axes.schdoc ↩︎

機械臂4 剛體的描述

剛體的描述是指剛體上的各類引數。如剛體的物理特徵質量 大小,剛體的運動學引數位置 速度 加速度。在描述時,只需要描述位置。剛體的空間狀態,即姿態。為描述剛體的位置可在剛體的質心上固定乙個三維座標系,再選定乙個基座標係,即可描述剛體的空間位置。其位置本質上是點的位置,在機械人學中用下式表述。可以看到,...

UR機械臂的TCP IP控制

最近研究了一下ur5機械臂的控制,由於 商提供的實物是用自帶的示教器來程式設計控制,感覺很不方便。於是我研究了一下ur5機械臂的資料,決定用qt寫個控制軟體,將示教器上面的控制介面移植過來,這樣就可以用電腦通過無線網路遠端控制機械臂了,下面介紹本人做的控制軟體。此圖是示教器螢幕上的控制介面 此圖為本...

簡單的機械臂設計(Splay樹)

時間限制 2 sec 記憶體限制 32 mb 題目描述 在東秦綜合樓的深處,有實驗室檢查各種材料的機械和電學效能。你受蔡老闆所託為乙個在實驗室中處理樣品的機械人編寫軟體。在傳送帶上有材料樣本,樣品有不同的高度,可能給下乙個處理單元帶來麻煩。為了消除這些麻煩,我們需要把樣品按高度排序到公升序。重新排序...