owned this note
owned this note
Published
Linked with GitHub
XH430-V210-R 智能馬達中文線上手冊
===
![](https://i.imgur.com/WSVaSdh.png)
![](https://i.imgur.com/MhGSERj.png)
> XH430-V210-R 全向智能馬達,V 只支援 24V,R: RS-485(4-pin)
# 1. 規格
---
| 項目 | 規格 |
|:----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| MCU | ARM CORTEX-M3 (72 [MHz], 32Bit) |
| 位置感測器 | Contactless absolute encoder (12Bit, 360 [°])<br>Maker : ams(www.ams.com), Part No : AS5045 |
| 馬達 | Coreless(Maxon 製) |
| Baud Rate | 9,600 [bps] ~ 4.5 [Mbps] |
| 控制演算法 | PID 控制 |
| 解析度 | 4096 [pulse/rev], 或 0.088°(=360°/4096 每格) |
| Backlash 背隙 | 15 [arcmin] (0.25 [°]) |
| 操作模式 | 電流控制模式<br>速度控制模式<br>位置控制模式(0-360°)<br>延伸位置控制模式(多圈旋轉)<br>基於電流的位置控制模式<br>PWM 控制模式(電壓控制模式) |
| 重量 | 82g |
| 尺寸<br>(W x H x D) | 28.5 x 46.5 x 34 mm |
| 齒輪比 | 212.6:1 |
| Stall torque<br>靜止轉距/扭力 | 2.6 [Nm] (at 24 [V], 0.7 [A]) |
| 無負載速度 | 52 [rev/min] (at 24 [V]) |
| [Radial Load](http://emanual.robotis.com/assets/images/dxl/axial_radial_load.png)<br>徑向負載 | 40 [N] (10 [mm] 離 horn 轉盤之距離) |
| [Axial Load](http://emanual.robotis.com/assets/images/dxl/axial_radial_load.png)<br>軸向負載 | 20 [N] |
| 操作溫度 | -5 ~ +80 [°C] |
| 輸入電壓 | 24 [V] (**建議**: 24 [V]) |
| 指令訊號 | 數位封包 |
| Protocol<br>通訊協定 | RS485 Asynchronous Serial Communication with 8bit, 1stop, No Parity |
| 實體層連接 | RS485 Multidrop Bus |
| ID | 253 ID (0 ~ 252) |
| 回授數據 | 位置,速度,電流,即時 tick,軌跡,溫度,輸入電壓等 |
| 材質 | 全金屬齒輪<br>金屬(前/中段外殼)<br> 工程塑材(後段外殼) |
| 待機電流 | 36 mA |
:::danger
☠️**危險**:(可能導致嚴重傷害或死亡)
- 切勿將含水,易燃和溶劑的物品放在產品附近。
- 在操作過程中,切勿將手指,手臂,腳趾和其他身體部位放在產品附近。
- 如果產品散發出異味或冒煙,請切斷電源。
- 將產品放在兒童接觸不到的地方。
- 接線前請檢查電源極性。正負極不要接反。
:::
:::warning
⚠️**警告**:(可能會導致人身傷害或產品損壞)
- 請勿在超出範圍的溫度下操作產品。
- 在產品操作期間,請勿插入鋒利的刀片或針。
:::
:::warning
🚫注意:(可能會導致人身傷害或產品損壞)
- 請勿拆卸或改裝產品。
- 請勿掉落產品或對產品施加強烈撞擊。
:::
## 1.1. Performance Graph 效能圖
![](https://i.imgur.com/T3q0O0o.png)
:::info
**備註**:
- 馬達 Performance Graph(效能圖)的 Max Torque(最大轉矩) 跟一般常見的 Stall Torque(靜止轉矩),在量測時的方法上是不同的。
- Stall Torque 是馬達可以達到的**最大瞬間靜態扭力**的測量值,這通常是 RC Servo 測量扭力的比較方式。(你可以想像成 100m 短跑衝刺,或腎上腺素爆發時)
- 馬達 Performance Graph(效能圖)又稱為 N-T 特性曲線圖,卻是在持續性的運作下,**以逐漸增加負載**的方式來測量扭力。(所量測到的扭力跟電流,速度,及馬達效率都有關)
- 一般馬達的實際運作情境跟 Performance Graph 的測量方式比較接近,而非 Stall Torque 的方式。這也是為什麼 Performance Graph 比較廣泛被工業界使用的原因。這也是為什麼 Performance Graph 的 Max Torque 最大扭力會小於 Stall Torque 的瞬間扭力。
- 我們建議 Performance Graph 的最大扭力是 Stall Torque 的 1/4 到 1/5。在使用智能馬達時,盡量基於 Performance Graph 的數據為主。
- 馬達效能圖 Performance Graph 說明:
- 理論上,馬達效率(E, Efficiency) = 輸出功率P(out)/輸入功率P(in),經一些轉換計算,可得公式如下:
- τ = (I * V * E *60) / (rpm * 2π)
- 扭力τ = (電流I * 電壓V * 馬達效率E * 60) / (轉速rpm * 2*3.14)
:::
:::warning
**注意**:
- 要供電給馬達時,建議使用 ROBOTIS 的控制器或 SMPS2Dynamixel 電源轉換板
- 當正在供電時,請切勿插拔馬達
- 對 Dynamixel P 系列,Dynamixel PRO 系列,Dynamixel XH 系列的 V 款智能馬達,是供電 24V。
:::
# 2. Control Table 控制表
---
控制表是智能馬達中被執行的一種數據結構。用戶可以通過 Read 指令封包來讀取特定的數據,已知道馬達的狀態,還可以通過 Write 指令封包來修改數據以控制馬達。
## 2.1. Control Table 控制表,Data 數據,Address 位址
:::info
詳細資訊請參考 2.4 節說明
:::
Control Table 控制表是一種包含了多組數據欄位的結構,用來儲存馬達狀態或控制馬達。用戶可以通過 Read 指令封包來讀取 Control Table 內特定的數據,來檢查馬達當前狀態。Write 指令封包則可以修改 Control Table 的特定數據以控制馬達。當使用指令封包來存取控制表中的特定數據時,Address 位址是唯一值。為了讀取或寫入數據,用戶必須在指令封包中指定一個特定的位址。有關指令封包的更多詳細信息,請參閱 [protocol 2.0](http://emanual.robotis.com/docs/en/dxl/protocol2/#status-packet)。
:::info
**備註**:
**二補數(Two’s complement)** 表示法會套用在負數上。詳細請參考 Wikipedia 的 [Two’s complement 頁面](https://en.wikipedia.org/wiki/Two%27s_complement)。
:::
### 2.1.1. Area (EEPROM,RAM)
控制表分為兩個區域。在重啟電源後,RAM 區中的數據將重置為初始值。另一方面,即使關閉馬達電源,EEPROM 區中的數據也會保留。
:::info
**如果將 Torque Enable(64)清除為 “0”(Off),則 EEPROM 區域中的數據只能寫入**。
:::
### 2.1.2. Size
數據的大小從1 - 4 bytes 不等,具體取決於它們的使用情況。使用指令封包更新數據時,請先檢查數據大小。對於大於 2 bytes 的數據,將根據小尾序 [Little Endian](https://en.wikipedia.org/wiki/Endianness#Little) 保存。
### 2.1.3. Access 存取
控制表具有兩個不同的存取屬性。 'RW' 屬性代表 Read-Write 讀寫存取權限,而 'R' 屬性代表只能讀 Read 權限。WRITE 指令不能更改具有只讀屬性 'R' 的數據。只讀屬性('R')通常用於測量和監控目的,而讀寫屬性('RW')則用於控制設備。
### 2.1.4. Initial Value 初始值
當供電馬達後,控制表中的每個數據都會恢復為初始值。EEPROM 區域中的預設值是馬達的初始值(出廠預設值)。如果用戶修改了 EEPROM 區域中的任何值,則在供電馬達後,修改後的值將保留變成初始值。而 RAM 區域將回復為出廠的預設初始值。
## 2.2. EEPROM 區域的控制表
| Address | Size<br>(Byte) | 數據名稱 | 存取<br>權限 | 初始<br>值 | 範圍 | 單位 |
|:------- | -------------- | -------------------- | ------------ |:---------- | ------------------------- | ------------------- |
| 0 | 2 | Model Number | R | 1,050 | - | - |
| 2 | 4 | Model Information | R | - | - | - |
| 6 | 1 | Firmware Version | R | - | - | - |
| 7 | 1 | ID 號碼 | RW | 1 | 0 ~ 252 | - |
| 8 | 1 | Baud Rate | RW | 1 | 0 ~ 7 | - |
| 9 | 1 | Return Delay Time | RW | 250 | 0 ~ 254 | 2 [μsec] |
| 10 | 1 | Drive Mode | RW | 0 | 0 ~ 1 | - |
| 11 | 1 | Operating Mode | RW | 3 | 0 ~ 16 | - |
| 12 | 1 | Secondary(Shadow) ID | RW | 255 | 0 ~ 252 | - |
| 13 | 1 | Protocol Type | RW | 2 | 1 ~ 2 | - |
| 20 | 4 | Homing Offset | RW | 0 | -1,044,479 ~<br>1,044,479 | 1 [pulse] |
| 24 | 4 | Moving Threshold | RW | 10 | 0 ~ 1,023 | 0.229 <br>[rev/min] |
| 31 | 1 | Temperature Limit | RW | 80 | 0 ~ 100 | 1 [°C] |
| 32 | 2 | Max Voltage Limit | RW | 300 | 110 ~ 300 | 0.1 [V] |
| 34 | 2 | Min Voltage Limit | RW | 110 | 110 ~ 300 | 0.1 [V] |
| 36 | 2 | PWM Limit | RW | 885 | 0 ~ 885 | 0.113[%] |
| 38 | 2 | Current Limit | RW | 689 | 0 ~ 689 | 1.34 [mA] |
| 44 | 4 | Velocity Limit | RW | 230 | 0 ~ 1,023 | 0.229 <br>[rev/min] |
| 48 | 4 | Max Position Limit | RW | 4,095 | 0 ~ 4,095 | 1 [pulse] |
| 52 | 4 | Min Position Limit | RW | 0 | 0 ~ 4,095 | 1 [pulse] |
| 60 | 1 | Startup Configuration | RW | 0 | 3 | - |
| 63 | 1 | Shutdown | RW | 52 | - | - |
## 2.3. RAM 區域的控制表
| Address | Size<br>(Byte) | 數據名稱 | 存取<br>權限 | 初始<br>值 | 範圍 | 單位 |
|:------- | -------------- | ---------------------- | ------------ |:---------- | ----------------------------------------------- | ---------------------------- |
| 64 | 1 | Torque Enable | RW | 0 | 0 ~ 1 | - |
| 65 | 1 | LED | RW | 0 | 0 ~ 1 | - |
| 68 | 1 | Status Return Level | RW | 2 | 0 ~ 2 | - |
| 69 | 1 | Registered Instruction | R | 0 | 0 ~ 1 | - |
| 70 | 1 | Hardware Error Status | R | 0 | - | - |
| 76 | 2 | Velocity I Gain | RW | 1,920 | 0 ~ 16,383 | - |
| 78 | 2 | Velocity P Gain | RW | 100 | 0 ~ 16,383 | - |
| 80 | 2 | Position D Gain | RW | 0 | 0 ~ 16,383 | - |
| 82 | 2 | Position I Gain | RW | 0 | 0 ~ 16,383 | - |
| 84 | 2 | Position P Gain | RW | 800 | 0 ~ 16,383 | - |
| 88 | 2 | Feedforward 2nd Gain | RW | 0 | 0 ~ 16,383 | - |
| 90 | 2 | Feedforward 1st Gain | RW | 0 | 0 ~ 16,383 | - |
| 98 | 1 | BUS Watchdog | RW | 0 | 1 ~ 127 | 20 [msec] |
| 100 | 2 | Goal PWM | RW | - | -PWM Limit(36) ~ PWM Limit(36) | - |
| 102 | 2 | Goal Current | RW | - | -Current Limit(38) ~ Current Limit(38) | 1.34 [mA] |
| 104 | 4 | Goal Velocity | RW | - | -Velocity Limit(44) ~ Velocity Limit(44) | 0.229 [rev/min] |
| 108 | 4 | Profile Acceleration | RW | 0 | 0 ~ 32,767<br>0 ~ 32,737 | 214.577 [rev/min2]<br>1 [ms] |
| 112 | 4 | Profile Velocity | RW | 0 | 0 ~ 32,767 | 0.229 [rev/min] |
| 116 | 4 | Goal Position | RW | - | Min Position Limit(52) ~ Max Position Limit(48) | 1 [pulse] |
| 120 | 2 | Realtime Tick | R | - | 0 ~ 32,767 | 1 [msec] |
| 122 | 1 | Moving | R | 0 | 0 ~ 1 | - |
| 123 | 1 | Moving Status | R | 0 | - | - |
| 124 | 2 | Present PWM | R | - | - | - |
| 126 | 2 | Present Current | R | - | - | 1.34 [mA] |
| 128 | 4 | Present Velocity | R | - | - | 0.229 [rev/min] |
| 132 | 4 | Present Position | R | - | - | 1 [pulse] |
| 136 | 4 | Velocity Trajectory | R | - | - | 0.229 [rev/min] |
| 140 | 4 | Position Trajectory | R | - | - | 1 [pulse] |
| 144 | 2 | Present Input Voltage | R | - | - | 0.1 [V] |
| 146 | 1 | Present Temperature | R | - | - | 1 [°C] |
| 147 | 1 | Backup Ready | R | - | 0 ~ 1 | - |
| 168 | 2 | Indirect Address 1 | RW | 224 | 64 ~ 661 | - |
| 170 | 2 | Indirect Address 2 | RW | 225 | 64 ~ 661 | - |
| 172 | 2 | Indirect Address 3 | RW | 226 | 64 ~ 661 | - |
| ... | ... | ... | ... | ... | - | - |
| 218 | 2 | Indirect Address 26 | RW | 249 | 64 ~ 661 | - |
| 220 | 2 | Indirect Address 27 | RW | 250 | 64 ~ 661 | - |
| 222 | 2 | Indirect Address 28 | RW | 251 | 64 ~ 661 | - |
| 224 | 1 | Indirect Data 1 | RW | 0 | 0 ~ 255 | - |
| 225 | 1 | Indirect Data 2 | RW | 0 | 0 ~ 255 | - |
| 226 | 1 | Indirect Data 3 | RW | 0 | 0 ~ 255 | - |
| ... | ... | ... | ... | ... | - | - |
| 249 | 1 | Indirect Data 26 | RW | 0 | 0 ~ 255 | - |
| 250 | 1 | Indirect Data 27 | RW | 0 | 0 ~ 255 | - |
| 251 | 1 | Indirect Data 28 | RW | 0 | 0 ~ 255 | - |
| 578 | 2 | Indirect Address 29 | RW | 634 | 64 ~ 661 | - |
| 580 | 2 | Indirect Address 30 | RW | 635 | 64 ~ 661 | - |
| 582 | 2 | Indirect Address 31 | RW | 636 | 64 ~ 661 | - |
| ... | ... | ... | ... | ... | - | - |
| 628 | 2 | Indirect Address 54 | RW | 659 | 64 ~ 661 | - |
| 630 | 2 | Indirect Address 55 | RW | 660 | 64 ~ 661 | - |
| 632 | 2 | Indirect Address 56 | RW | 661 | 64 ~ 661 | - |
| 634 | 1 | Indirect Data 29 | RW | 0 | 0 ~ 255 | - |
| 635 | 1 | Indirect Data 30 | RW | 0 | 0 ~ 255 | - |
| 636 | 1 | Indirect Data 31 | RW | 0 | 0 ~ 255 | - |
| ... | ... | ... | ... | ... | - | - |
| 659 | 1 | Indirect Data 54 | RW | 0 | 0 ~ 255 | - |
| 660 | 1 | Indirect Data 55 | RW | 0 | 0 ~ 255 | - |
| 661 | 1 | Indirect Data 56 | RW | 0 | 0 ~ 255 | - |
:::warning
**警示**: Protocol 1.0 不支援大於 256 的位址。因此,只能使用 Protocol 2.0 存取 Indirect Address 29〜56 和 Indirect Data 29〜56。
:::
## 2.4. Control Table 的內容說明
:::warning
**警示: 在 EEPROM 區域的數據,只能在 Torque Enable(64)清除為 “0”(Off)時,才能寫入**。
:::
### 2.4.1. Model Number(0) 型號
此位址儲存 Dynamixel 型號
### 2.4.2. Firmware Version(6) 韌體版本
此位址儲存 Dynamixel 韌體版本
### 2.4.3. ID(7) 馬達編號
此 ID 是 Dynamixel 智能馬達串接網路中的唯一值,用於使用指令封包標識每個 DYNAMIXEL 馬達。ID 值在 0〜252(0xFC)間,而值 254(0xFE)則作為 broadcast 廣播 ID。廣播 ID(254,0xFE)可以同時向所有連接的 DYNAMIXEL 發送指令封包。
:::warning
**警示**: 在同一網路中,請避免對多個 DYNAMIXEL 使用相同的 ID。你可能會遇到通信故障,或者可能無法檢測到具有相同 ID 的 DYNAMIXEL。
:::
### 2.4.4. Baud Rate(8) 通信速度
Baud Rate 決定了 Dynamixel 智能馬達跟控制器之間的通信速度。
| 值 | Baud Rate | Margin of Error<br>誤差容許度 |
|:------- | --------- | --------------- |
| 7 | 4.5M | 0.000% |
| 6 | 4M | 0.000% |
| 5 | 3M | 0.000% |
| 4 | 2M | 0.000% |
| 3 | 1M | 0.000% |
| 2 | 115,200 | 0.000% |
| 1(預設) | 57,600 | 0.000% |
| 0 | 9,600 | 0.000% |
:::info
備註:
- baud rate 誤差容許度(Margin of Error) < 3%,不會影響 UART 傳輸。
- 為了以較高的 baud rate 進行穩定的通信,請將 USB Latency 值配置為較低的值。
[USB Lantency Setting 設置](http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#usb-latency-setting)
:::
### 2.4.5. Return Delay Time(9) 延遲回傳時間
在 DYNAMIXEL 收到指令封包後,它會延遲回傳狀態封包的時間為 Return Delay Time(9)。例如,如果 Return Relay Time(9)設置為 “10”,則在收到指令封包後 20[μsec] 後將回傳狀態封包。
| Unit 單位值 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| 2[μsec] | 0 ~ 254 | 預設值 ‘250’(500[μsec])<br>最大值 ‘254’(508[μsec]) |
### 2.4.6. Drive Mode(10) 驅動模式
此位址設置 DYNAMIXEL 馬達的驅動模式。Drive Mode 自韌體版本 V38 以上才提供。
| Bit | Item | 說明 |
| ----------- | --------------------------------- | ---- |
| Bit 7(0x80) | - | Unused, always ‘0’ |
| Bit 6(0x40) | - | Unused, always ‘0’ |
| Bit 5(0x20) | - | Unused, always ‘0’ |
| Bit 4(0x10) | - | Unused, always ‘0’ |
| Bit 3(0x08) | - | Unused, always ‘0’ |
| Bit 2(0x04) | Profile Configuration<br>配置文件設定 |**[0]** 基於 Velocity 速度的 Profile 配置文件:基於速度創建一個 Profile 配置文件<br>**[1]** 基於 Time 時間的 Profile 配置文件:基於時間創建一個 Profile 配置文件<br>※ 請參考 [Profile Velocity(112)](http://emanual.robotis.com/docs/en/dxl/mx/mx-106-2/#profile-velocity112) |
| Bit 1(0x02) | - | Unused, always ‘0’ |
| Bit 0(0x01) | Normal/Reverse Mode |**[0]** Normal 正常模式:CCW(正),CW(負)<br>**[1]** Reverse 反向模式:CCW(負),CW(正) |
:::info
**備註**:
- 基於 Time 時間的 Profile 配置文件只在**韌體 V42 版**以上才提供。
- Torque On by Goal Update is available from **韌體 V45**.
- 如果將驅動模式 Drive Mode(10)的 Bit 0(Normal/Reverse Mode)的值設置為 **1**,則旋轉方向會反轉。因此,**Goal Position, Present Position** 將會有相反的方向。此設置對於設定對稱關節(symmertical joint)或車輪系統時,此功能非常有用。
:::
### 2.4.7. Operating Mode(11) 操作模式
| 值 | 操作模式 | 說明 |
|:------- | -------------------------------------------------------------- |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0 | Current Control Mode<br>電流控制模式 | DYNAMIXEL 僅控制電流(扭力),而與速度和位置無關。本模式非常適合機器手臂夾爪,或僅使用電流(扭力)控制的系統,或具有額外的速度/位置控制器的系統。 |
| 1 | Velocity Control Mode(0° ~ 360°)<br>速度控制模式 | 本模式控制速度。本模式與現有 Dynamixel 馬達的 Wheel 車輪模式(無限旋轉)相同。本模式是輪式機器人的理想選擇。 |
| 3(預設) | Position Control Mode<br>位置控制模式 | 本模式控制位置。本模式與現有 Dynamixel 的 “ Joint 關節模式” 相同。工作位置範圍受 Max Position Limit(48)和 Min Position Limit(52)的限制。 對於每個關節旋轉小於 360 度的多關節機器手臂,本模式是理想的選擇。 |
| 4 | Extended Position Control Mode(Multi-turn)<br>延伸位置控制模式 | 本模式控制位置。本模式與現有 Dynamixel 馬達的 “Multi-Turn 多圈旋轉”模式相同。支持 512 轉(-256[rev] 〜 256[rev])。本模式非常適合多迴轉手腕,或輸送系統,或需要附加減速裝置的系統。 |
| 5 | Current-based Position Control Mode<br>基於電流的位置控制 | 本模式同時控制位置和電流(扭力)。 最多支持 512 轉(-256[rev] 〜 256[rev])。對於需要位置和電流控制的系統(例如多關節機器手臂 或爪手),此模式是理想的選擇。 |
| 16 | PWM Control Mode (Voltage Control Mode)<br>PWM 電壓控制 | 本模式直接控制 PWM 輸出。 (電壓控制模式) |
:::info
**備註**: 切換 Operating Mode(11) 操作模式會將 gain 增益(PID,Feedfoward)完全重置為所選的操作模式。Profile 配置文件生成器和限制也將會被重置。
1. Profile Velocity(112),Profile Acceleration(108):重置為 “0”
2. Goal PWM(100),Goal Current(102):分別重置為 PWM Limit(36), Current Limit(38)
3. 基於電流的位置控制模式:重置為 Position Gain(PID) 及 PWM Limit(36) 的值。
可以從控制表中讀取更改過後的 Position Gain(PID) and PWM Limit(36) 值。
:::
:::info
**備註**: PWM 是 Pulse Width Modulation 的縮寫,用於調整 PWM Duty 以控制馬達。
它改變 Pulse Width 脈衝寬度,以控制向馬達提供的平均供給電壓,該技術已廣泛用於馬達控制領域。
1. PWM 控制模式類似於 AX 和 RX 系列馬達的 Wheel 車輪模式。
2. 在 PWM 控制模式下輸入 Goal PWM(100) 的值,以控制 Dynamixel 的供給電壓。
:::
:::info
**備註**: Present Position(132) 代表無論 Operating Mode(11) 如何設置,當關閉扭力時,從 -2,147,483,648 到 2,147,483,647 的 4 byte 連續範圍。
但是,在以下情況,Present Position(132) 將重置為一整圈轉動的絕對位置值:
1. 當 Operating Mode(11) 更改為位置控制模式時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
2. 在位置控制模式下開啟扭力時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
3. 在延伸位置控制模式下關閉電源時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
Present Position(132) 的值可能受 Homing Offset(20) 的影響。
:::
### 2.4.8. Secondary(Shadow) ID(12) 次要(影) ID
Secondary(Shadow) ID(12) 可指定 Dynamixel 馬達第二個編號值(稱為: 次要 ID or 影 ID)。主 ID(7) 編號需唯一,不能重複,但次要 ID 可以相同,形成一個群組,以便於同步馬達動作。次要 ID(12) 和 主 ID(7) 之間的區別如下:
1. 次要 ID(12) 不是唯一值。即許多 Dynamixel 馬達可能具有相同的次要 ID 值,形成一個群組。
2. 主 ID(7)的優先級高於次要 ID(12)。 即,如果次要 ID(12) 和主 ID(7) 編號相同,則馬達將首先套用主 ID(7) 設定。
3. 無法使用次要 ID(12)來修改控制表的 EEPROM 區域。
4. 僅 RAM 區域可以使用次要 ID(12)來修改。
5. 如果指令封包 ID 與次要 ID(12) 相同,則不會回傳狀態封包。
6. 如果次要 ID(12) 的值是 253 或更高,則將停用次要 ID 功能。
| 值 | 說明 |
|:--------- | ---------------------------- |
| 0 ~ 252 | 啟動次要 ID 功能 |
| 253 ~ 255 | 停用次要 ID 功能,預設值 255 |
#### 2.4.8.1. Secondary ID(12) Example
次要 ID 可以相同,形成一個群組,以便於同步馬達動作。以下是當主 ID(7)編號為 1 到 5 的五個 Dynamixel 馬達時,次要 ID(12)的操作範例。
1. 將所有 五 個 Dynamixel 馬達的次要 ID(12)都設為 “5”。
2. 發送 Write 指令封包 (ID(7) = 1,LED(65)= 1)。
3. 此時主 ID 為 “1” 的 Dynamixel 馬達的 LED 會 ON(亮)並回傳狀態封包。
4. 發送 Write 指令封包(ID(7) = 5,LED(65)= 1)。
5. 五個 Dynamixel 上的 LED 都會 ON。但,只有主 ID 為 “5” 的 Dynamixel 馬達會回傳狀態封包。
6. 將所有五個 Dynamixel 的次要 ID(12)都設置為 “100”。
7. 發送 Write 指令封包(ID(7) = 100,LED(65)= 0)。
8. 五個 Dynamixel 上的 LED 會 OFF(熄滅)。 但是,由於沒有主 ID 為 '100' 的 Dynamixel 馬達,因此不會回傳狀態封包。
### 2.4.9. Protocol Type(13)
用戶可以選擇 DYNAMIXEL protocol(1.0 或 2.0)。即使選擇了protocol 1.0,也可使用 protocol 2.0 控制表。但對於多個 DYNAMIXEL 智能馬達,建議使用相同的 protocol。
| 值 | Protocol Type | 相容的 Dynamixel 智能馬達 |
| -------- | -------- | -------- |
| 1 | 1.0 | AX Series, DX Series, RX Series, EX Series, MX Series 韌體版本低於 v39 |
| 2(預設) | 2.0 | MX-28/64/106 韌體版本 v39 或以上, X Series, PRO Series |
:::warning
**注意**: 如要更改為 protocol 1.0,請使用 [Dynamixel Wizard 2.0](http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/),因為 R+ Manager 2.0 不支援 protocol 1.0。
:::
:::info
**備註**: protocol 2.0 比 protocol 1.0 有很大的改進。如果選擇 protocol 1.0,有些控制表內的數據會拒絕存取。本節介紹內容是基於 protocol 2.0。請各自參考線上手冊的 [protocol 1.0](http://emanual.robotis.com/docs/en/dxl/protocol1/#status-packet) 及 [protocol 2.0](http://emanual.robotis.com/docs/en/dxl/protocol2/#status-packet) 來了解細節。
:::
:::info
**備註**: 請參考 [protocol 相容產品表](http://emanual.robotis.com/docs/en/popup/faq_protocol_compatibility_table/),來了解各 Dynamixel 智能馬達所支援的 protocol 版本。
:::
### 2.4.10. Homing Offset(20) 歸位偏移
用戶可以通過設置 Home Offset(20)來調整 Home 位置。將 Homing Offset 歸位偏移值添加到 Present Position(132) 值。
**Present Position(132) = 實際位置 + Homing Offset(20)**
| 單位 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| 大約 0.088[°] | -1,044,479 ~ 1,044,479<br>(-255 ~ 255[rev]) | 4,096 解析度 |
:::info
**備註**:
- 如果 Position Control Mode(Joint Mode) 的旋轉小於 360 度,則將忽略任何無效的 Homing Offset(20)值(有效範圍:-1,024〜1,024)。
- 在 Drive Mode(10)中設置了 Reverse Mode 反轉模式位元的情況下,Homing Offset 值的符號將不會反轉。
:::
### 2.4.11. Moving Threshold(24)
此值有助於確定 DYNAMIXEL 馬達是否處於運動狀態。
當 Present Velocity(128) 的絕對值大於 Moving Threshold(24) 時,Moving(122) 會設為 “ 1”,否則將其清除為 “0”。
| | 值 | 說明 |
| -------- | -------- | -------- |
| 單位 | 大約 0.229 rpm | 所有跟速度有關的數據,使用相同單位 |
| 範圍 | 0 ~ 1,023 | - |
### 2.4.12. Temperature Limit(31) 溫度極限
此值限制了工作溫度。
當顯示 DYNAMIXEL 內部溫度的 Present Temperature(146) 大於 Temperature Limit(31) 時,將設置 Hardware Error Status(70) 中的過熱錯誤位元 Over Heating Error Bit(0x04) 和硬體錯誤位元 Hardware Error Bit(0x80)。
如果在 Shutdown(63) 中設定了 Overheating Error Bit(0x04),則會將 Torque Enable(64) 清除為 “0”,並且停用扭力。有關更多詳細信息,請參見 Shutdown(63)部分。
| 單位 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| 大約 1° | 0 ~ 100 | 0 ~ 100° |
:::warning
**警示**: 請勿將溫度設置為高於預設值。當溫度警報馬達關機時,請等待 20 分鐘以冷卻溫度,然後再使用。在高溫下繼續使用本產品可能會造成嚴重損壞。
:::
### 2.4.13. Min/Max Voltage Limit(32, 34) 最小/最大電壓極限
這些值是最大和最小工作電壓。當從 Present Input Voltage(144) 獲取的當前輸入電壓超出 Max Voltage Limit(32)和 Min Voltage Limit(34)的範圍時,Hardware Error Status(70) 中的 Voltage Range Error Bit(0x01) 及 Hardware Error Bit(0x80) 會被設定。
如果在 Shutdown(63) 中設定了 Input Voltage Error Bit(0x10),則會將 Torque Enable(64) 清除為 “0”,並且停用扭力。有關更多詳細信息,請參見 Shutdown(63)部分。
| 單位 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| 大約 0.1 [V] | 110 ~ 300 | 11.0 ~ 30.0 [V] |
### 2.4.14. PWM Limit(36) 電壓極限
此值表示最大 PWM 輸出。Goal PWM(100) 不能設置為超過 PWM Limit(36) 的任何值。 PWM Limit(36)通常在所有操作模式下用作為 output 輸出的極限,因此降低 PWM 輸出將導致扭力和速度的降低。有關更多詳細信息,請參閱每種操作模式的 “Gain 增益” 部分。
| 值 | 說明 |
|:----------------------- | -------------------- |
| 0(0 [%]) ~ 885(100 [%]) | 885 = 100 [%] output |
### 2.4.15. Current Limit(38) 電流極限
此值表示最大電流(扭力)輸出限制。Goal Current(102) 不能設置超過 Current Limit(38) 的任何值。Current Limit(38) 用於扭力控制模式和基於電流的位置控制模式,因此減小 Current Limit(38) 將導致 DYNAMIXEL 馬達的扭力減小。有關更多詳細信息,請參見 Position PID Gain(80 ~ 84)。
| 單位 | 值的範圍 |
| ------------ | -------- |
| 大約 1.34[mA] | 0 ~ 689 |
:::info
**備註**: 每個 Dynamixel 馬達的 Current Limit(38) 可能會不同,請參考 Control Table 控制表
:::
### 2.4.16. Velocity Limit(44) 速度極限
此值表示 Goal Velocity(104) 的最大值。有關更多詳細信息,請參閱 Goal Velocity(104)。
| 單位 | 值的範圍 |
| ------------ | -------- |
| 0.229rpm | 0 ~ 1,023 |
:::info
**備註**: 自韌體版本 V42 起,Velocity Limit(44) 預設值已經降低。
:::
### 2.4.17. Min/Max Position Limit(48, 52) 最小/最大位置極限
這些值將 Position Control Mode(Joint Mode) 的最大和最小期望位置限制在 1 個轉圈(0〜4,095)的範圍內。
因此,Goal Position(116) 應該配置在位置極限的範圍內。在 Extended Position Control Mode 延伸位置控制模式和 Current-based Position Control Mode 基於電流的位置控制模式中,不使用這些值。
| 單位 | 值的範圍 |
| ------------ | -------- |
| 0.088 [°] | 0 ~ 4,095(轉 1 圈) |
:::info
**備註**: Max Position Limit(48) 和 Min Position Limit(52) 僅在位置控制模式下單圈轉動使用。
:::
### 2.4.18 Startup Configuration(60) 起始設置
Startup Configuration(60) 允許在啟動時使用特定設定,來設置 DYNAMIXEL 馬達。
| Bit | 項目 | 說明 |
| -------- | -------- | -------- |
| Bit 7(0x80) | - | Unused, always ‘0’ |
| Bit 6(0x40) | - | Unused, always ‘0’ |
| Bit 5(0x20) | - | Unused, always ‘0’ |
| Bit 4(0x10) | - | Unused, always ‘0’ |
| Bit 3(0x08) | - | Unused, always ‘0’ |
| Bit 2(0x04) | - | Unused, always ‘0’ |
| Bit 1(0x02) | RAM Restore | **[0]** Deactivate the RAM area restoration on startup.<br>**[1]** On startup, use the backup data to restore the RAM area. |
| Bit 0(0x01) | Startup Torque On | **[0]** Torque Off on startup (Torque Enable(64) is set to 0)<br>**[1]** Torque On on startup (Torque Enable(64) is set to 1). |
:::info
**備註**: Startup Configuration is available from firmware V45.
:::
:::info
**備註**: For more details about restoring the RAM area, see [Restoring RAM Area](https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#restoring-ram-area).
:::
### 2.4.19. Shutdown(63) 關機
DYNAMIXEL 馬達可以通過檢測操作過程中可能發生的危險情況來自我保護。
每個 bit 都使用 “OR” 邏輯進行包含處理,因此可以生成多個選項。
例如,如果在 Shutdown(63) 中定義了 “0x05”(二進制:00000101),則DYNAMIXEL 可以同時檢測 Input Voltage Error(二進制:00000001)和Overheating Error(二進制:00000100)。
如果檢測到這些錯誤,則將 Torque Enable(64) 清除為 “0”,並且馬達輸出也變為 0 [%]。
在關機後,REBOOT 是將 Torque Enable(64)重置為 “1”(Torque ON)的唯一方法。
通過 Hardware Error Status(70) 來檢查狀態數據封包錯誤字段中的 Hardware Error Bit(0x80) 或當前狀態。以下是可檢測的情況。
| Bit | Item | 說明 |
| ------------ | -------- | -------------- |
| Bit 7 |- | Unused, Always ‘0’ |
| Bit 6 |- | Unused, Always ‘0’ |
| Bit 5 |Overload Error(預設)| 檢測超過最大輸出的持續負載 |
| Bit 4 |Electrical Shock Error(預設)| 檢測電路上有電擊或功率不足以操作馬達 |
| Bit 3 |Motor Encoder Error| 檢測馬達編碼器的故障 |
| Bit 2 |OverHeating Error(預設)| 檢測內部溫度超過設定的工作溫度 |
| Bit 1 |- | Unused, Always ‘0’ |
| Bit 0 |Input Voltage Error| 檢測輸入電壓超過設定的工作電壓 |
:::info
**備註**:
1. 如果發生 Shutdown 關機,LED 將每秒閃爍一次。 (韌體 v41 或更高版本)
2. 如果發生 Shutdown 關機,**請重新啟動馬達**。
- 硬體重啟:關閉並重新打開電源
- 軟體重啟:發送 REBOOT 指令(有關更多詳細信息,請參閱線上手冊的 [Reboot](http://emanual.robotis.com/docs/en/dxl/protocol2/#reboot) 部分。)
:::
### 2.4.20. Torque Enable(64) 啟用扭力
控制扭力 ON/OFF。向此位址寫入 “1” 將打開扭力,並且 EEPROM 區域中的所有數據將受到保護。
| 值 | 說明 |
| --------- | ------------------ |
| 0(預設) | 關閉扭力 |
| 1 | 打開扭力並鎖住 EEPROM 區域的數據 |
:::info
**備註**: 更新 Operating Mode(11) 和 Torque Enable(64) 後,可以重置 Present Position(132)。有關更多詳細信息,請參考 Homing Offset(20) 及 Present Position(132)。
:::
### 2.4.21. LED(65)
控制 Dynamixel 馬達上的 LED ON/OFF
| Bit | 說明 |
|:------- | -------- |
| 0(預設) | 關閉 LED |
| 1 | 打開 LED |
LED 燈顯示馬達當前狀態
| 狀態 | LED 表示 |
|:------------- | ----------- |
| Booting | LED 閃 1 次 |
| Factory Reset | LED 閃 4 次 |
| Alarm | LED 一直閃 |
| Boot Mode | LED 恆亮 |
### 2.4.22. Status Return Level(68) 狀態回傳程度
此值決定了 DYNAMIXEL 馬達收到指令封包時如何回傳狀態封包。
| 值 | 回傳指令 | 說明 |
| --- | -------- | ---- |
| 0 | PING 指令 | 狀態封包不會回傳所有指令 |
| 1 | PING 指令<br>READ 指令 | 狀態封包將僅回傳用於 READ 指令 |
| 2 | 全部指令 | 狀態封包會回傳所有指令 |
:::info
**備註**: 如果指令封包的 ID 設置為 Broad Cast ID(0xFE),則無論狀態回傳程度如何,都不會為 READ 和 WRITE 指令回傳狀態封包。有關更多詳細信息,請參閱 [protocol 1.0](http://emanual.robotis.com/docs/en/dxl/protocol1/#status-packet) 或 [protocol 2.0](http://emanual.robotis.com/docs/en/dxl/protocol2/#status-packet) 的 Status Packet 狀態封包部分。
:::
### 2.4.23. Registered Instruction(69) 已註冊指令
| 值 | 說明 |
|:--- | --------------------- |
| 0 | 未收到 REG_WRITE 指令 |
| 1 | 已收到 REG_WRITE 指令 |
:::info
**備註**: 如果 ACTION 指令被執行,則此值會更改為 0。
:::
### 2.4.24. Hardware Error Status(70) 硬體錯誤狀態
此值表示硬體錯誤狀態。DYNAMIXEL 馬達可以通過檢測操作過程中可能發生的危險情況來自我保護。
每個 bit 都使用 “OR” 邏輯進行包含處理,因此可以生成多個選項。
例如,如果在 Shutdown(63) 中定義了 “0x05”(二進制:00000101),則DYNAMIXEL 可以同時檢測 Input Voltage Error(二進制:00000001)和Overheating Error(二進制:00000100)。
如果檢測到這些錯誤,則將 Torque Enable(64) 清除為 “0”,並且馬達輸出也變為 0 [%]。
在關機後,REBOOT 是將 Torque Enable(64)重置為 “1”(Torque ON)的唯一方法。
通過 Hardware Error Status(70) 來檢查狀態數據封包錯誤字段中的 Hardware Error Bit(0x80) 或當前狀態。以下是可檢測的情況。
| Bit | Item | 說明 |
|:----- | ---------------------------- | ------------------------------------ |
| Bit 7 | - | Unused, Always ‘0’ |
| Bit 6 | - | Unused, Always ‘0’ |
| Bit 5 | Overload Error(預設) | 檢測超過最大輸出的持續負載 |
| Bit 4 | Electrical Shock Error(預設) | 檢測電路上有電擊或功率不足以操作馬達 |
| Bit 3 | Motor Encoder Error | 檢測馬達編碼器的故障 |
| Bit 2 | OverHeating Error(預設) | 檢測內部溫度超過設定的工作溫度 |
| Bit 1 | - | Unused, Always ‘0’ |
| Bit 0 | Input Voltage Error | 檢測輸入電壓超過設定的工作電壓 |
:::info
**備註**:
1. 如果發生 Shutdown 關機,LED 將每秒閃爍一次。 (**韌體 v41 或更高版本**)
2. 如果發生 Shutdown 關機,**請重新啟動馬達**。
- 硬體重啟:關閉並重新打開電源
- 軟體重啟:發送 REBOOT 指令(有關更多詳細信息,請參閱線上手冊的 [Reboot](http://emanual.robotis.com/docs/en/dxl/protocol2/#reboot) 部分。)
:::
### 2.4.25. Velocity PI Gain(76, 78) 速度 PI 增益
這些值表示速度控制模式的 Gain 增益。
DYNAMIXEL 馬達內部控制器的增益可以通過控制表的增益來計算,如下所示。
每個方程式中的常數包括採樣時間。
DYNAMIXEL 內部控制器的 Velocity P Gain 縮寫為 KVP,而控制表的 Velocity P Gain 縮寫為 KVP(TBL)。
| | 控制器 Gain | Conversion Equations | 範圍 | 說明 |
| ---- | -------- | --- | --- | -------- |
| Velocity I Gain(76) |KVI| KVI = KVI(TBL) / 65,536 | 0 ~ 16,383 | I Gain |
| Velocity P Gain(78) |KVP| KVP = KVP(TBL) / 128 | 0 ~ 16,383 | P Gain |
下圖是一個電路方塊圖,描述了在速度控制模式下的速度控制器。當 DYNAMIXEL 馬達收到用戶發送的指令時,將採取以下步驟,直到驅動轉盤轉動為止。
1. 通過 DYNAMIXEL bus 傳輸來自用戶的指令,然後將其註冊到 Goal Velocity(104)。
2. Goal Velocity(104) 通過 Profile Acceleration(108) 轉換為所需的速度軌跡。
3. 所需的速度軌跡存儲在 Velocity Trajectory(136) 處。
4. PI 控制器根據所需的速度軌跡計算馬達的 PWM 輸出。
5. Goal PWM(100) 對計算出的 PWM 輸出設定限制,並確定最終的 PWM 值。
6. 最終的 PWM 值通過 inverter 變頻器施加到馬達,並驅動 DYNAMIXEL 的轉盤轉動。
7. 結果存儲在 Present Position(132), Present Velocity(128), Present PWM(124) 及 Present Current(126)。
![](https://i.imgur.com/iFR44PQ.png)
:::info
**備註**: Ka 代表 Anti-windup Gain,β 是位置和速度的轉換係數,用戶無法修改。有關 PID 控制器的更多詳細信息,請參閱 [Wikipedia 上的 PID 控制器](http://en.wikipedia.org/wiki/PID_controller)。
:::
### 2.4.26. Position PID Gain(80, 82, 84), Feedforward 1st/2nd Gains(88, 90)
這些 Gain 增益用於位置控制模式和延伸位置控制模式(Extended Position Control Mode)。DYNAMIXEL 內部控制器的增益可以通過控制表的增益來計算,如下所示。每個方程式中的常數包括採樣時間。DYNAMIXEL 內部控制器的 Position P Gain 縮寫為 KPP,而控制表的 Position P Gain 縮寫為 KPP(TBL)。
| | 控制器 Gain | Conversion Equations | 範圍 | 說明 |
| --- | ----------- | -------------------- | ---- | ---- |
|Position D Gain(80)|KPD| KPD = KPD(TBL) / 16 | 0 ~ 16,383 | D Gain |
|Position I Gain(82)|KPI| KPI = KPI(TBL) / 65,536 | 0 ~ 16,383 | I Gain |
|Position P Gain(84)|KPP| KPP = KPP(TBL) / 128 | 0 ~ 16,383 | P Gain |
|Feedforward 2nd Gain(88)|KFF2nd| KFF2nd(TBL) / 4 | 0 ~ 16,383 |Feedforward Acceleration Gain|
|Feedforward 1st Gain(90)|KFF1st| KFF1st(TBL) / 4 | 0 ~ 16,383 |Feedforward Velocity Gain|
#### 2.4.26.1. Position controller 位置控制器
下圖是一個電路方塊圖,描述了在位置控制模式及延伸位置控制模式(Extended Position Control Mode)下的位置控制器。當 DYNAMIXEL 馬達收到用戶發送的指令時,將採取以下步驟,直到驅動轉盤轉動為止。
1. 通過 DYNAMIXEL bus 傳輸來自用戶的指令,然後將其註冊到 Goal Position(116)。
2. Goal Position(116) 通過 Profile Velocity(112) 及 Profile Acceleration(108) 轉換為所需的位置軌跡(position trajectory)和速度軌跡(velocity trajectory)。
3. 所需的位置軌跡(position trajectory)和速度軌跡(velocity trajectory) 各自對應存儲在 Position Trajectory(140) 及 Velocity Trajectory(136) 處。
4. Feedforward 及 PID 控制器根據所需的軌跡計算馬達的 PWM 輸出。
5. Goal PWM(100) 對計算出的 PWM 輸出設定限制,並確定最終的 PWM 值。
6. 最終的 PWM 值通過 inverter 變頻器施加到馬達,並驅動 DYNAMIXEL 的轉盤轉動。
7. 結果存儲在 Present Position(132), Present Velocity(128), Present PWM(124) 及 Present Current(126)。
![](https://i.imgur.com/hbmw37e.png)
:::info
**備註**: 在 PWM 控制模式下,當 Goal PWM(100)值通過 inverter 變頻器直接控制馬達時,PID 控制器和 Feedforward 控制器均被停用。這樣,用戶可以直接控制向馬達的供電電壓。
:::
:::info
**備註**: Ka 代表 Anti-windup Gain,用戶無法修改。有關 PID 控制器和 Feedforward 控制器的更多詳細信息,請參閱 Wikipedia 上的 [PID 控制器](http://en.wikipedia.org/wiki/PID_controller)和 [Feedforward 控制器](https://en.wikipedia.org/wiki/Feed_forward_(control))。
:::
#### 2.4.26.2. Current-based position controller 基於電流的位置控制器
下圖是一個電路方塊圖,描述了在基於電流的位置控制模式下的基於電流位置控制器(current-based position controller)。基於電流的位置控制模式(Current-based Position Control Mode) 跟位置控制模式很類似。差異將集中在以下步驟。 電路方塊圖中的差異也以綠色標記突出顯示。
1. Feedforward 及 PID controller 根據所需軌跡計算所需電流。
2. Goal Current(102) 通過對計算出的所需電流設定限制,來確定最終所需電流。
3. 電流控制器根據最終所需電流,計算馬達的 PWM 輸出。
4. Goal PWM(100) 對計算出的 PWM 輸出設定限制,並確定最終的 PWM 值。
5. 最終的 PWM 值通過 inverter 變頻器施加到馬達,並驅動 DYNAMIXEL 的轉盤中動。
6. 結果存儲在 Present Position(132), Present Velocity(128), Present PWM(124) 及 Present Current(126)。
![](https://i.imgur.com/l1nIFLb.png)
:::info
**備註**: Ka 代表 Anti-windup Gain,用戶無法修改。
:::
### 2.4.27. BUS Watchdog(98) 匯流排的監控程序
BUS Watchdog(98) 從韌體 v38 後開始提供。如果由於未知的錯誤,導致控制器與 DYNAMIXEL 馬達(RS485,TTL)之間的通訊中斷,這是一種停止 DYNAMIXEL 的安全機制(Fail-safe)。通訊是指 DYNAMIXEL protocol 中的所有指令封包。
| | 值 | 說明 |
| --- | --- | ---- |
|Unit| 20[ms] | - |
|Range| 0 | 停用 Bus WatchDog 功能,清除 Bus Watchdog Error |
|Range| 1 ~ 127 | 啟用 Bus Watchdog |
|Range| -1 | Bus Watchdog Error 狀態 |
當 Torque Enable(64) 為 “1”時,匯流排的監控程序功能,會監視控制器與DYNAMIXEL 之間的通信間隔(時間)。如果測得的通信間隔(時間)大於 BUS Watchdog(98),則 DYNAMIXEL 馬達將停止。BUS Watchdog(98) 將更改為 “-1”(Bus Watchdog Error)。 如果出現 “Bus Watchdog Error” 顯示,則 Goal Value (Goal PWM(100), Goal Current(102), Goal Velocity(104), Goal Position(116))將變為只能讀(read-only-access)。因此,如要將新值寫入 Goal Value 時,將通過狀態數據封包回傳 Range Error。如果 BUS Watchdog(98) 的值更改為 “0”,則 Bus Watchdog Error 將被清除。
:::info
**注意**:有關 Range Error 的詳細信息,請參閱線上手冊的 protocol。
:::
#### 2.4.27.1. BUS Watchdog(98) 範例
以下是 BUS Watchdog(98) 功能的操作範例。
1. 將 Operating Mode(11) 設置為速度控制模式後,將 Torque Enable(64) 更改為 “1”。
2. 如果在 Goal Velocity(104)中寫入 “50”,則 DYNAMIXEL 將沿 CCW 方向旋轉。
3. 將 Bus Watchdog(98)的值更改為 “100”(2,000[ms])。(啟動 BUS Watchdog(98) 功能)
4. 如果在 2,000[ms] 內未收到指令封包,則 DYNAMIXEL 馬達將停止。停止時,Profile Acceleration(108)和 Profile Velocity(112) 會被套用為 “0”。
5. BUS Watchdog(98) 的值更改為 “-1”(Bus Watchdog Error)。此時,對 Goal Value 的存取權限將更改為只能讀(Read-only)。
6. 如果將 “150” 寫入 Goal Velocity(104),則 Range Error 將通過狀態數據封包回傳。
7. 如果 BUS Watchdog(98) 的值更改為 “0”,則 Bus Watchdog Error 將被清除。
8. 如果在 Goal Velocity(104) 中寫入 “150”,則 DYNAMIXEL 馬達將沿 CCW 方向旋轉。
### 2.4.28. Goal PWM(100) 目標 PWM
在 PWM Control 模式下,當 Goal PWM(100)值通過 inverter 變頻器直接控制馬達時,PID 控制器和 Feedforward 控制器均被停用。而在其他控制模式下,此值用於限制 PWM 值。此值不能超過 PWM Limit(36)。要了解 Goal PWM(100) 如何影響不同的控制模式,請參考 “Gain” 部分,。
| 範圍 | 說明 |
| -------- | -------- |
| -PWM Limit(36) ~ PWM Limit(36) | PWM Limit(36) 初始值: 885 |
### 2.4.29. Goal Current(102) 目標電流
在 Torque Control 模式下,Goal Current(102) 可用於設定所需電流。此值在基於電流的位置控制模式下,為電流設定限制。此值不能超過 Current Limit(38)。
| 單位 | 值的範圍 |
| -------- | -------- |
| 約 1.34[mA]| -Current Limit(38) ~ Current Limit(38) |
:::info
**備註**: 長時間向馬達施加大電流,可能會損壞馬達。
:::
### 2.4.30. Goal Velocity(104) 目標速度
在速度控制模式下,Goal Velocity(104) 可用於設置所需速度。此值不能超過 Velocity Limit(44)。目前,Goal Velocity(104)用於所需的速度,但是此值並不用於限制速度。
| 單位 | 值的範圍 |
| -------- | -------- |
| 0.229 rpm | -Velocity Limit(44) ~ Velocity Limit(44) |
:::info
**備註**:
- DYNAMIXEL 馬達的最大速度和最大扭力受供電電壓的影響。因此,如果供電電壓改變,則最大速度也會改變。本手冊建議的供電電壓(12[V])。
- 如果同時修改了 Profile Acceleration(108) 和 Goal Velocity(104) ,則將使用修改後的 Profile Acceleration(108) 處理 Goal Velocity(104)。
:::
### 2.4.31. Profile Acceleration(108)
如果為 Drive Mode(10) 選擇了基於速度的 Profile 配置文件,則 Profile Acceleration(108) 會設為 Profile 配置文件的加速度。
如果為 Drive Mode(10) 選擇了基於時間的 Profile 配置文件,則 Profile Acceleration(108) 會設為配置文件的加速時間。
Profile Acceleration(108)適用於除了電流控制模式以外的所有控制模式。
有關更多詳細信息,請參考 Profile Velocity(112)。
| Velocity-based Profile | 值 | 說明 |
| ---------------------- | ---- | ---- |
| Unit | 214.577[rev/min<sup>2</sup>] | 設定 Profile 的加速度 |
| Range | 0 ~ 32767 | 0 代表無限加速 |
| Time-based Profile | 值 | 說明 |
| ---------------------- | ---- | ---- |
| Unit | 1 [msec] | 設定 Profile 的加速時間 |
| Range | 0 ~ 32737 | 0 代表無限的加速時間(“0 [msec]”)<br>Profile Acceleration(108) 不會超過 Profile Velocity(112) 值的 50%。 |
:::info
**備註**: 基於時間的 Profile 配置文件只從韌體 V42 以上提供
:::
### 2.4.32. Profile Velocity(112)
如果為 Drive Mode(10) 選擇了基於速度的 Profile 配置文件,則 Profile Velocity(112) 會設為 Profile 的最大速度。
如果為 Drive Mode(10) 選擇了基於時間的 Profile 配置文件,則 Profile Velocity(112) 會設為 Profile 配置文件的時間跨度(time span)。
Profile Velocity(112) 僅適用於位置控制模式和延伸位置控制模式。
:::info
**備註**:速度控制模式僅使用 Profile Acceleration(108),不用 Profile Velocity(112)。
:::
| Velocity-based Profile | 值 | 說明 |
| ---------------------- | ---- | ---- |
| Unit | 0.229 [rev/min] | 設定 Profile 的速度 |
| Range | 0 ~ 32767 | 0 代表無限速度 |
| Time-based Profile | 值 | 說明 |
| ---------------------- | ---- | ---- |
| Unit | 1 [msec] | 設定 Profile 的時間跨度 |
| Range | 0 ~ 32737 | 0 代表無限速度<br>Profile Acceleration(108) 不會超過 Profile Velocity(112) 值的 50%。 |
:::info
**備註**: 基於時間的 Profile 配置文件只從韌體 V42 以上提供
:::
Profile 配置文件是一種加速/減速控制方法,它通過控制急劇變化的速度和加速度,來減少馬達的振動,噪聲和負載。
它也稱為 “Velocity Profile”,因為它基於速度來控制加速和減速。
DYNAMIXEL 提供 3 種不同類型的 Profile 配置文件(Step 階梯、Rectangle 矩形、Trapezoidal 梯形)。以下說明 3 個配置文件。
Profile 配置文件的選擇通常是 Profile Velocity(112) 和 Profile Acceleration(108) 的組合。
![](https://i.imgur.com/31k4i5y.png)
在指定 Goal Position(116) 後,DYNAMIXEL 的 Profile 配置文件,會根據當前速度(Profile 的初始速度)來產生所需的速度軌跡。
當 DYNAMIXEL 朝著先前設的 Goal Position(116) 移動,但從新的 Goal Position(116) 接收到更新的所需位置時,速度會跟著新的所需速度軌跡而平滑變化。
在更新所需速度軌跡時,並保持速度的連續性稱為 “Velocity Override”。
為了進行簡單的計算,我們假設 Profile 的初始速度為 “0”。
以下說明 Profile 如何在位置控制模式,延伸位置控制模式,基於電流的位置控制模式下,來處理 Goal Position(116) 指令。
1. 來自用戶的指令通過 DYNAMIXEL bus 傳輸,然後註冊到 Goal Position(116)(如果選擇了基於速度的 Profile 配置文件)。
2. 根據 Profile Velocity(112) 和 Profile Acceleration(108) 來計算 Acceleration time(t1)。
3. 根據 Profile Velocity(112),Profile Acceleration(108) 和總行駛距離(ΔPos,所需位置與當前位置之間的距離差)確定 Profile 的類型。
4. 所選 Profile 配置文件類型存儲在 Moving Status(123) 中。
5. DYNAMIXEL 馬達由 Profile 所計算的所需軌跡來驅動。
6. 來自 Profile 配置文件的所需速度軌跡和所需位置軌跡,分別存儲在 Velocity Trajectory(136) 及 Position Trajectory(140) 處。
| Condition | Profile 類型 |
| --------- | ------------ |
|VPRFL(112) = 0| Profile not used (階梯 Step Instruction) |
|(VPRFL(112) ≠ 0) & (APRF(108) = 0)| 矩形配置文件 Rectangular Profile |
|(VPRFL(112) ≠ 0) & (APRF(108) ≠ 0)| 梯形配置文件 Trapezoidal Profile |
![](https://i.imgur.com/rRP7aW6.png)
:::info
**備註**: 速度控制模式僅使用 Profile Acceleration(108)。也支援 Step 階梯和 Trapezoidal 梯形配置文件。還支援 Velocity Override。Acceleration time(t1) 可通過以下公式計算。
**Velocity-based Profile**:t1 = 64 * {Goal Velocity(104) / Profile Acceleration(108)}
**Time-based Profile**:t1 = Profile Acceleration(108)
:::
:::info
**備註**: 如果選擇了基於時間的 Profile,則 Profile Velocity(112) 用於設置 Profile(t3) 的時間跨度,而 Profile Acceleration(108) 設置 Acceleration time(t1) 以毫秒[ms]為單位。Profile Acceleration(108) 不會超過 Profile Velocity(112) 值的 50%。
:::
### 2.4.33. Goal Position(116)
所需位置可以通過 Goal Position(116) 進行設置。 從 DYNAMIXEL 的正視圖看,CCW 是上升方向,而 CW 是下降方向。到達 Goal Position(116) 的方式與 DYNAMIXEL 提供的 4 個配置文件不同。有關更多詳細信息,請參考 Profile Velocity(112)。
![](https://i.imgur.com/eV5ZRKo.png)
| 模式 | 值 | 說明 |
| ---- | ---- | ---- |
|Position Control Mode<br>位置控制模式|Min Position Limit(52) ~ Max Position Limit(48)|初始值: 0 ~ 4,095 |
|Extended Position Control Mode<br>延伸位置控制模式|-1,048,575 ~ 1,048,575|-256[rev] ~ 256[rev]|
|Current-based Position Control Mode<br>基於電流的位置控制模式|-1,048,575 ~ 1,048,575|-256[rev] ~ 256[rev]|
| Degree Conversion Constant | 說明 |
| -------- | -------- |
| 0.088°/Value | 1[rev] : 0 ~ 4,095 |
:::info
**備註**: 在以下情況下可套用 Profile Velocity(112) 及 Profile Acceleration(108):
- 在位置控制模式下,更新 Goal Position(116) 時,Profile Velocity(112) 及 Profile Acceleration(108) 用於產生新的 profile。
- 在速度控制模式下,當 Goal Velocity(104) 更新時,Profile Acceleration(108) 用於產生新的 profile。
:::
:::info
**備註**: 當關閉電源或在延伸位置控制模式下更改操作模式時,Present Position 的值將重設為單圈的絕對位置值。
:::
:::info
**備註**: 不管 Operating Mode(11) 如何設定,當扭力被 OFF 關閉時,Present Position(132) 以從 -2,147,483,648 到 2,147,483,647 的 4 byte 連續範圍表示。但是,在以下這些情況下,Present Position(132) 將重置為一整圈轉動的絕對位置值:
1. 當 Operating Mode(11) 更改為位置控制模式時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
2. 在位置控制模式下打開扭力時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
3. 在延伸位置控制模式下關閉電源時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
Present Position(132) 的值可能受 Homing Offset(20) 的影響。
:::
### 2.4.34. Realtime Tick(120) 即時 Tick
此值表示 Dynamixel 馬達的時間。
| 單位 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| 1 ms | 0 ~ 32,767 | 當值超過 32,767 時將重設為 0 |
### 2.4.35. Moving(122)
此值指示 DYNAMIXEL 馬達是否處於運動狀態。
如果 Present Velocity(128) 的絕對值大於 Moving Threshold(24),則 Moving(122) 設置為 “1”,否則,它將被清除為 “0”。
但是,在使用 Goal Position(116) 指令進行 profile 配置文件操作時,無論 Present Velocity(128) 是多少,此值都將始終設置為 “1”。
| 值 | 說明 |
| ---- | ---- |
| 0 | 馬達未在動作 |
| 1 | 馬達在動作,或 Profile 在操作中(Goal Position(116) 指令正被處理) |
### 2.4.36. Moving Status(123)
這個 one byte 的數據提供了有關馬達運動的其他信息。
在位置控制模式,延伸位置控制模式,基於電流的位置控制模式下,可以使用 Following Error(0x08) 及 In-Position(0x01)。
| Bit | 值 | 訊息 | 說明 |
| ----- | --- | ---- | ---- |
| Bit 7 | X | - | 保留 |
| Bit 6 | X | - | 保留 |
| Bit [5:4] | 11<br>10<br>01<br>00 | Velocity Profile | 11 : Trapezoidal Profile<br>10 : Triangular Profile<br>01 : Rectangular Profile<br>00 : Profile not used(Step) |
| Bit 3 | 0 或 1 | Following Error | Dynamixel 馬達正跟隨所需的位置軌跡<br>0 : 跟隨中<br>1 : 未跟隨 |
| Bit 2 | X | - | 保留 |
| Bit 1 | 0 或 1 | Profile Ongoing | Profile 正在處理 Goal Position(116) 指令<br>0 : 未處理<br>1 : 處理中 |
| Bit 0 | 0 或 1 | In-Position | Dynamixel 馬達已到所需位置<br>0 : 未到達<br>1 : 已到達 |
:::info
**備註**:
- 當 Rectangular velocity profile 無法達到 Profile Velocity(112) 時,將配置 Triangular velocity profile。
- 在位置相關控制模式下,位置偏差小於預先定義值時,In-position bit 到位位元會被設定。
:::
### 2.4.37. Present PWM(124) 當前 PWM
此值表示當前的 PWM。有關更多詳細信息,請參閱 Goal PWM(100)。
### 2.4.38. Present Current(126) 當前電流
此值表示當前電流。有關更多詳細信息,請參閱 Goal Current(102)。
### 2.4.39. Present Velocity(128) 當前速度
此值表示當前速度。有關更多詳細信息,請參閱 Goal Velocity(104)。
### 2.4.40. Present Position(132) 當前位置
此值表示當前位置。有關更多詳細信息,請參閱 Goal Position(116)。
:::info
**備註**: Present Position(132) 代表無論 Operating Mode(11) 如何設置,當關閉扭力時,從 -2,147,483,648 到 2,147,483,647 的 4 byte 連續範圍。
但是,在以下情況,Present Position(132) 將重置為一整圈轉動的絕對位置值:
1. 當 Operating Mode(11) 更改為位置控制模式時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
2. 在位置控制模式下開啟扭力時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
3. 在延伸位置控制模式下關閉電源時,Present Position(132) 將重置為一整圈轉動的絕對位置值。
Present Position(132) 的值可能受 Homing Offset(20) 的影響。
:::
### 2.4.41. Velocity Trajectory(136) 速度軌跡
這是由 Profile 配置文件產生的所需速度軌跡。可以根據控制模式更改操作方法。有關更多詳細信息,請參考 Profile Velocity(112)。
1. **速度控制模式**:當 Profile 配置文件到達終點時,Velocity Trajectory(136) 等於 Goal Velocity(104)。
2. **位置控制模式,延伸位置控制模式,基於電流的位置控制模式**:速度軌跡是用來產生 Position Trajectory(140)。當 Profile 到達終點時,Velocity Trajectory(136) 被清除為 “0”
### 2.4.42. Position Trajectory(140) 位置軌跡
這是由 Profile 配置文件產生的所需位置軌跡。
此值僅在位置控制模式,延伸位置控制模式,基於電流的位置控制模式下使用。
有關更多詳細信息,請參考 Profile Velocity(112)。
### 2.4.43. Present Input Voltage(144) 當前輸入電壓
此值表示正在供給的當前電壓。有關更多詳細信息,請參閱 Max/Min Voltage Limit(32, 34)。
### 2.4.44. Present Temperature(146) 當前溫度
此值表示當前 DYNAMIXEL 馬達的內部溫度。有關更多詳細信息,請參考 Temperature Limit(31)。
### 2.4.45 Backup Ready(147)
此位址的值表示,當發送 Control Table Backup Packet 備份封包後,是否要保存備份
| 值 | 說明 |
| -------- | -------- |
| 0 | 備份不存在 |
| 1 | 備份存在 |
:::info
**備註**: Backup Ready 只在 firmware V45 提供。更詳細資訊,可參考 [Backup and Restore](https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#backup-and-restore)。
:::
### 2.4.46. Indirect Address, Indirect Data 間接位址,間接數據
當要存取控制表中的兩個距離相隔較遠的位址,作為順序位址(相鄰位址)時,Indirect Address 和 Indirect Data 很有用。
- 順序位址會提高了指令封包的效率。可以定義為 Indirect Address 間接位址的位址僅限於 RAM 區域(位址 64〜661)。
- 如果將特定位址分配給 Indirect Address 間接位址,則間接位址將從特定位址繼承數據的功能和屬性。
- Property 屬性包括 Size(Byte length),值的範圍,和 Access property(Read Only, Read/Write)。
- 例如,將 65(LED 的位址)分配給 Indirect Address 1(168),Indirect Data 1(224)可以執行與 LED(65)完全相同的操作。
| Indirect Address Range | 說明 |
| -------- | -------- |
| 64 ~ 661 | EEPROM address can’t be assigned to Indirect Address |
#### 2.4.46.1 Indirect Address and Indirect Data Examples
**範例一**: 將大小為 1 byte 的 LED(65)分配給 Indirect Data 1(224)。
1. Indirect Address 1(168):將值更改為 “65”,即 LED 的位址。
2. 將 Indirect Data 1(224)設置為 “1”:LED(65)也變為 “1”,並且 LED 會點亮。
3. 將 Indirect Data 1(224)設置為 “0”:LED(65)也變為 “0”,並且 LED 會熄滅。
**範例二**: 將大小 4 byte 的 Goal Position(116) 分配給 Indirect Data 2(225),必須分配 4 個連續的 byte。
1. Indirect Address 2(170):將值更改為 “116”,這是 Goal Position 的第一個位址。
2. Indirect Address 3(172):將值更改為 “117”,這是 Goal Position 的第二個位址。
3. Indirect Address 4(174):將值更改為 “118”,這是 Goal Position 的第三個位址。
4. Indirect Address 5(176):將值更改為 “119”,這是 Goal Position 的第四個位址。
5. 將 4 byte 值 “1,024” 設置為 Indirect Data 2:Goal Position(116)也變為 “1024”,並且 DYNAMIXEL 馬達開始動作。
| Indirect Address 範圍 | 說明 |
| --------------------- | -------- |
| 64 ~ 661 | EEPROM 區域不能被指定為 Indirect Address |
:::info
**備註**:
- 為了將控制表中大於 2[byte] 的數據分配給 Indirect Address,必須像上面的範例二 一樣將所有位址分配給 Indirect Address。
- Indirect Address 29 ~ 56 及 Indirect Data 29 ~ 56 只能使用 protocol 2.0 來存取。
:::
# 3. 如何組裝
本節說明如何組裝 Dynamixel 智能馬達的轉盤(前轉盤及 Idler後轉盤),和框架(Hinge 轉軸框架及 Side 側邊框架),以及如何更換齒輪。
---
## 3.1. 組裝轉盤
### 3.1.1. 前轉盤組裝
前轉盤是 Dynamixel X430 系列的標配,是安裝在 Dynamixel 馬達前方外殼的輸出軸齒輪上,可用來連接馬達的框架。
![](https://i.imgur.com/9ynRtOH.png)
:::warning
**注意**:請確保 thrust washer 與輸出軸正確對齊。否則 thrust washer 會被組好的轉盤損壞。參考下圖。
![](https://i.imgur.com/ZANPHMp.png)
:::
:::info
**注意**: 在裝配時,轉盤的對中標記位置,應與輸出軸對中標記的位置對齊。參考下圖。正確完成對準後,將轉盤的中心輕輕推向馬達。
![](https://i.imgur.com/KJBpuLb.png)
:::
### 3.1.2. Idler 後轉盤的組裝
請參考下圖來組裝 Idler。
![](https://i.imgur.com/LCtqRcG.png)
:::info
**注意**: Idler 後轉盤中間的孔洞,可提供良好的整線效果。請參考
[Wiring through Back Case](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#wiring-through-back-case)。
:::
#### 3.1.2.1. Idler 後轉盤的拆卸
要拆卸已連接的 Idler,請按下位於後殼背面的按鈕,並拉動掛鉤以斷開連接。
![](https://i.imgur.com/Xt8Baz6.png)
## 3.2. 組裝框架
### 3.2.1. 如何使用 Spacer Ring 墊圈
為了保護組好的框架,可使用墊圈來填充框架跟馬達外殼間的空隙。
![](https://i.imgur.com/Pwpf6Pd.png)
### 3.2.2. 框架和轉盤組裝時的注意事項
:::warning
考慮到框架厚度,加上轉盤厚度(T)的總厚度,請務必使用適當長度的螺絲。
如果螺絲的長度比它們的總厚度長,可能會在運作過程中對 DYNAMIXEL 馬達造成損壞。
:::
![](https://i.imgur.com/Y3DE4vo.png)
:::info
**Note**: 可從 [Drawings](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#drawings) 中查找轉盤或框架組件的有用數據(尺寸、厚度等)。
:::
### 3.2.3. Hinge 轉軸框架的組裝
Hinge 轉軸框架是安裝在 Dynamixel 馬達的輸出軸齒輪上。
![](https://i.imgur.com/HGOURK9.png)
>FR12-H101K 轉軸框架
![](https://i.imgur.com/HPMHHcJ.png)
>FR12-H104K 連結框架
![](https://i.imgur.com/gOlPgxu.png)
>FR12-H104K 連結框架 (背面安裝,相容於 XL 及 XC 款)
![](https://i.imgur.com/JfGHJB5.png)
>FR12-H103GM 長連結框架
:::info
**Note**: 可從 [Drawings](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#drawings) 中查找轉盤或框架組件的有用數據(尺寸、厚度等)。
:::
:::info
**Note**: 在轉軸框架的組裝中,Idler 後轉盤應組裝到 DYNAMIXEL 的後方外殼上。參見 [Idler Horn Assembly](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#idler-horn-assembly)。
:::
:::warning
**警告**: 在組裝轉軸框架時,請使用適當的螺絲。可參考 [Precaution of Frame and Horn Assembly](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#precaution-of-frame-and-horn-assembly)。
:::
### 3.2.4. Side 側邊框架的組裝
側邊框架是組裝在 Dynamixel 馬達的側邊或是底部。
![](https://i.imgur.com/bRmzxI0.png)
>FR12-S101K 側邊框架
![](https://i.imgur.com/OYc0Gkh.png)
>FR12-S102K 底部框架
:::info
**Note**: 可從 [Drawings](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#drawings) 中查找轉盤或框架組件的有用數據(尺寸、厚度等)。
:::
:::info
**Note**: 使用墊圈來保護組好的框架。可參考 [How To Use Spacer Ring](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#how-to-use-spacer-ring)。
:::
### 3.2.5. 爪手的組裝
![](https://i.imgur.com/efwp6i9.png)
>FR12-G101GM 爪手 (FR12-E170 + FR12-E171)
:::info
**Note**: 可從 [Drawings](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#drawings) 中查找轉盤或框架組件的有用數據(尺寸、厚度等)。
:::
:::info
**Note**: 使用墊圈來保護組好的框架。可參考 [How To Use Spacer Ring](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#how-to-use-spacer-ring)。
:::
### 3.2.6. 框架的組合圖
轉軸框架及側邊框架的不同組合圖
![](https://i.imgur.com/leP5LUC.png)
### 3.2.7. 自製框架的組合
如果你有自製的框架要組合,可參考此節。
#### 3.2.7.1. 正面 (使用 Wrench Bolt)
1. Step 1
![](https://i.imgur.com/KN3NFNy.png)
2. Step 2
![](https://i.imgur.com/YQtjh3I.png)
:::info
**Note**: 圖片中的框架是示意,不販售。
:::
:::info
**Note**: 可從 [Drawings](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#drawings) 中查找轉盤或框架組件的有用數據(尺寸、厚度等)。
:::
:::info
**Note**: 使用墊圈來保護組好的框架。可參考 [How To Use Spacer Ring](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#how-to-use-spacer-ring)。
:::
#### 3.2.7.2. 正面 (使用Flat Head Wrench Bolt)
1. Step 1
![](https://i.imgur.com/ac3Z9MK.png)
2. Step 2
![](https://i.imgur.com/A2EFDjG.png)
:::info
**Note**: 圖片中的框架是示意,不販售。
:::
:::info
**Note**: 可從 [Drawings](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#drawings) 中查找轉盤或框架組件的有用數據(尺寸、厚度等)。
:::
:::info
**Note**: 使用墊圈來保護組好的框架。可參考 [How To Use Spacer Ring](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#how-to-use-spacer-ring)。
:::
#### 3.2.7.3. 側邊
![](https://i.imgur.com/LoUBhp7.png)
:::warning
**警告**: 將框架組裝到側邊時,請務必使用適當長度的螺絲。
![](https://i.imgur.com/8Q0HhWv.png)
:::
:::info
**Note**: 圖片中的框架是示意,不販售。
:::
:::info
**Note**: 可從 [Drawings](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#drawings) 中查找轉盤或框架組件的有用數據(尺寸、厚度等)。
:::
#### 3.2.7.4. 底部
![](https://i.imgur.com/aY2c8fY.png)
:::warning
**警告**: 將框架組裝到側邊時,請務必使用適當長度的螺絲。
![](https://i.imgur.com/8Q0HhWv.png)
:::
:::info
**Note**: 圖片中的框架是示意,不販售。
:::
:::info
**Note**: 可從 [Drawings](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#drawings) 中查找轉盤或框架組件的有用數據(尺寸、厚度等)。
:::
:::info
**Note**: 使用墊圈來保護組好的框架。可參考 [How To Use Spacer Ring](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#how-to-use-spacer-ring)。
:::
## 3.3. Gear 齒輪的替換
當齒輪磨損或損壞時,你可能需要更換內部齒輪組。請遵循齒輪更換說明影片。
{%youtube wKxcZNMrrCQ %}
### 3.3.1. Dynamixel 智能馬達校準
更換齒輪後需要校準,以便讓 DYNAMIXEL 馬達的齒輪佈置在正確的位置。
請參閱以下影片,了解如何使用軟體正確校準 DYNAMIXEL。
{%youtube uK--PBy88Mo %}
:::info
- 影片中,因為 USB2Dynamixel 轉接器已經停產,請使用 U2D2 轉接器來連接 Dynamixel 馬達及 PC
- 影片中,如不用 R+ Manager,另一種校準的方法是使用 [Dynamixel Wizard 2.0](https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#calibration)軟體,但只適用於 Dynamixel X/MX 系列。
:::
# 4. 參考資源
---
:::info
**備註**:
- 各種型號馬達使用的框架及轉盤各異,請參考[**馬達框架轉盤相容表**](http://en.robotis.com/service/compatibility_table.php?cate=dx)
- 新舊款智能馬達所使用之連接線規格相異,請參考此 [**Harness 相容圖**](http://emanual.robotis.com/docs/en/popup/cable_compatibility/)
:::
## 4.1. 如何從馬達後蓋串線
![](https://i.imgur.com/X80syKQ.png)
![](https://i.imgur.com/vQZjIWe.png)
:::warning
**注意**:DYNAMIXEL-X 系列連接線通過空心外殼組裝
- 組裝後蓋之前,請先整理好糾纏的連接線。
- 請勿使用糾纏的連接線來組裝後蓋。纏繞的連接線可能會被外殼壓扁,並導致通信錯誤。
:::
## 4.2. 甚麼是 Profile?
Profile 是一種加速/減速控制方法,通過控制急遽變化的速度和加速度,來減少馬達的振動、噪音和負載。
它也被稱為 速度 Profile,因為它是基於速度來控制加速和減速。
DYNAMIXEL 提供 3 種不同類型的 Profiles(Step,Rectangle,Trapezoidal)。以下說明 3 個 Profiles。
Profiles 通常通過 Profile Velocity(112)和 Profile Acceleration(108) 的組合來選擇。
![](https://i.imgur.com/2yJ5j6I.png)
當給定 Goal Position(116) 後,Dynamixel 的 Profile 會根據當前速度(Profile 的初始速度),來產生所需的速度軌跡曲線。
當 Dynamixel 智能馬達從新的 Goal Position(116) 收到下一個的 desired position 期望位置時,馬達正在向前一個 Goal Position(116) 位置移動。對於新的 desired velocity trajectory,我們希望- 速度要平滑的變化。
當更新 desired velocity trajectory 的同時,也要保持速度的連續性,我們稱為 Velocity Override。
以簡單的計算來說明,我們假設 Profile 的初始速度是 0。
下面說明 Profile 在位置控制模式、延伸位置控制模式、基於電流的位置控制模式下,如何處理 Goal Position(116) 指令。
1. 來自用戶的指令傳送到 Dynamixel 馬達的匯流排,然後註冊到 Goal Position(116) 位址(如果選擇了基於 Velocity 的 Profile 時)。
2. Acceleration time(t1) 加速時間,會由 Profile Velocity(112) 及 Profile Acceleration(108) 計算得出。
3. Profile 類型會依據 Profile Velocity(112),Profile Acceleration(108),及總行程距離(ΔPos- 期望位置和當前位置之間的距離差)來決定。
4. 選擇的 Profile 類型會儲存在 Moving Status(123)。
5. Dynamixel 馬達會由從 Profile 計算的 desired trajectory 來驅動。
6. 來自 Profile 的 desired velocity trajectory 及 desired position trajectory,會各自儲存在 Velocity Trajectory(136) 和 Position Trajectory(140) 中。
| Condition | Profile 類型 |
| -------- | -------- |
| VPRFL(112) = 0 | Profile not used<br>(Step Instruction) |
| (VPRFL(112) ≠ 0) & (APRF(108) = 0) | Rectangular Profile |
| (VPRFL(112) ≠ 0) & (APRF(108) ≠ 0) | Trapezoidal Profile |
![](https://i.imgur.com/CDz4y73.png)
:::info
**注意**: Velocity Control Mode 只使用 Profile Acceleration(108)。Step and Trapezoidal Profiles 也支援。 Velocity Override 也同樣支援。Acceleration time(t1) 可從下列公式計算得出。
**Velocity-based Profile** : t1 = 64 * {Profile Velocity(112) / Profile Acceleration(108)}
**Time-based Profile** : t1 = Profile Acceleration(108)
:::
:::info
**注意**: 如果選擇 Time-based Profile,Profile Velocity(112) 會用來設定 Profile(t3) 的 time span 時間跨度,而 Profile Acceleration(108) 會以 millisecond[ms] 為單位來設置 accelerating time(t1)。Profile Acceleration(108) 不會超過 Profile Velocity(112) 值的 50%。
:::
## 4.3. 認證
如有未列出認證問題,請向原廠詢問。
### 4.3.1. FCC
:::info
**備註**: 本設備經測試證明符合 FCC 規則第 15 部分中關於 A 類數位設備的限制。這些限制旨在為在商業環境中操作設備提供合理的保護,以防止有害干擾。本設備會產生,使用並輻射射頻能量,如果未按照說明手冊進行安裝和使用,可能會對無線電通信產生有害干擾。在居民區使用此設備可能會造成有害干擾,在這種情況下,將要求用戶自費糾正干擾。
:::
:::warning
**警示**: 未經製造商明確許可的任何更改或修改都可能使用戶喪失操作設備的權利。
:::
## 4.4. 快速上手
### 4.4.1. 先決條件
**直接從 PC 控制馬達**:
- 給 DYNAMIXEL 智能馬達供電(12V SMPS 電源轉接器 / 控制器,可與 DYNAMIXEL 或 LB-020 電池相容)
- [相容表](https://emanual.robotis.com/docs/en/parts/controller/controller_compatibility/#compatibility-table/#compatibility-table)
- 裝有 Windows,Linux 或 MacOS 的 PC。
- 透過(U2D2 轉接器,USB2Dynamixel 轉接器)連接 PC 和 DYNAMIXEL 馬達
- [支援 DYNAMIXEL 的軟體](https://emanual.robotis.com/docs/en/dxl/x/xh540-w150/#compatible-software-with-dynamixel)
:::warning
**注意**:
- USB2Dynamixel 轉接器已停產,建議使用第二代的 U2D2 轉接器
- 某些軟體可能不支援使用的作業系統。請務必閱讀所使用軟體的手冊,以了解軟體是否支援。
:::
:::info
**備註**:
- U2D2 轉接器是一款小型 USB 訊號轉換器,可通過 PC 控制和操作 DYNAMIXEL 馬達。
- U2D2 Power Hub 擴充板可與 U2D2 結合使用,可為 DYNAMIXEL 馬達提供各種外部電源,並能穩定的供電。
:::
### 4.4.2. 支援 Dynamixel 馬達的軟體
你可以使用 DYNAMIXEL 專用軟體。請參閱下表中的軟體相容性,並為你的專案選擇所需的軟體。
| 軟體 | AX<br>系列 | DX<br>系列 | RX<br>系列 | EX<br>系列 | MX<br>系列 | X-<br>系列 | PRO<br>系列 | P<br>系列 |
| -------------------- | ---------- | ---------- | ---------- | ---------- | ---------- | -------------- | ----------- |:--------- |
| R+ Manager 2.0 | X | X | X | X | O | O | O | O |
| DYNAMIXEL Wizard | O | X | X | O | O | X (XL320 可用) | O | X |
| DYNAMIXEL Wizard 2.0 | O | O | O | O | O | O | O | O |
| DYNAMIXEL SDK | O | O | O | O | O | O | O | O |
| DYNAMIXEL Workbench | O | O | O | O | O | O | O | O |
:::info
**備註**:你還可以使用其他軟體。有關更多信息,請參閱以下內容來了解 ROBOTIS 提供的軟體。
- [DYNAMIXEL 馬達對軟體的支援表](http://emanual.robotis.com/docs/en/parts/controller/controller_compatibility/#dynamixel)
- [控制器對軟體的支援表](http://emanual.robotis.com/docs/en/parts/controller/controller_compatibility/#software)
:::
#### 4.4.2.1. R+ Manager
R + Manager 用於處理機器人使用的電子設備。 該軟體的主要功能如下。
- 管理控制器韌體。(更新和還原)
- 檢查控制器和所接電子設備的狀態。(測試)
- 設定所需的模式。(設置)
:::info
**注意**:與 R+ Manager 相比,R + Manager 2.0 或 DYNAMIXEL Wizard 2.0 提供了更多樣的功能。
:::
#### 4.4.2.2. R+ Manager 2.0
R + Manager 2.0 管理構成機器人的控制器和 DYNAMIXEL 馬達。通過連接產品,可以將產品更新到最新版本並測試 Control Table 控制表。以前在 R+ Manager 1.0 和 Wizard 1.0 中提供的功能,已在 R+ Manager 2.0 中合併。
:::warning
**警告**:
- R+ Manager 2.0 與使用 protocol 1.0 的 DYNAMIXEL 馬達不相容。
- DYNAMIXEL Wizard 2.0 支援全部的 DYNAMIXEL 馬達進行韌體還原,韌體更新和更改 DYNAMIXEL 控制表的數據。
:::
#### 4.4.2.3. DYNAMIXEL Wizard 2.0
DYNAMIXEL Wizard 2.0 是從各種作業系統,用來管理 DYNAMIXEL 馬達的最優化工具。
DYNAMIXEL Wizard 2.0 提供了以下功能。
- DYNAMIXEL 韌體更新
- DYNAMIXEL 馬達診斷
- DYNAMIXEL 設置和測試
- 即時 DYNAMIXEL 數據繪圖
- 產生並監控 DYNAMIXEL 數據封包
#### 4.4.2.4. Dynamixel SDK 開發軟體
DYNAMIXEL SDK 是一個軟體開發工具包,它使用數據封包通訊來提供 DYNAMIXEL 馬達控制功能。DYNAMIXEL SDK 的 API 是專為 DYNAMIXEL 馬達和基於 DYNAMIXEL 的平台而設計。你需要熟悉 C/C ++ 編程語言才能正確使用本軟體。線上手冊提供了有關ROBOTIS 產品和應用的全面信息。
**支援的編程語言和功能**:
- C,C ++,C#,Python,Java,MATLAB,LabVIEW
- Windows,Mac,Linux。
- ROS
- Arduino
#### 4.4.2.5. DYNAMIXEL Workbench
基於 DYNAMIXEL SDK,DYNAMIXEL Workbench 是一個程式庫,它提供了使用 DYNAMIXEL 馬達的簡單易用方法。
**支援的編程語言和功能**:
- C++
- Linux,MacOS
- ROS
- Arduino
:::info
**注意**:與 DYNAMIXEL SDK 相比,DYNAMIXEL Workbench 可能缺少一些內容或功能。為了使用具有足夠內容的 DYNAMIXEL,請使用 [DYNAMIXEL SDK](http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/overview/)。
:::
## 4.5. 連接線接頭的資訊
| 項目 | TTL 接頭<br>(不適用 XH430-V210-R) | RS-485 接頭 |
| --------------- | ------------------------------------------------------------------------------------------------------ | --- |
| 針腳排列 | 1 - GND<br>2 - VDD<br>3 - DATA | 1 - GND<br>2 - VDD<br>3 - DATA+<br> 4 - DATA-|
| 接頭圖 | ![](https://i.imgur.com/D90FAUB.png) | ![](https://i.imgur.com/Nb8Q4KD.png) |
| Housing 外殼 | ![](https://i.imgur.com/rKPYXlt.png) <br>[JST EHR-03](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) | ![](https://i.imgur.com/v2q6iYD.png) <br>[JST EHR-04](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) |
| PCB header 排針 | ![](https://i.imgur.com/LFru1m7.png) <br>[JST B3B-EH-A](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) | ![](https://i.imgur.com/xrxglmD.png) <br>[JST B4B-EH-A](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) |
| 壓接端子 | [JST SEH-001T-P0.6](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) | [JST SEH-001T-P0.6](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) |
| 線規 | 21 AWG | 21 AWG |
:::warning
**警示**: **務必檢查針腳排列**!DYNAMIXEL 馬達的針腳排列,可能與連接器製造商的針腳排列不同。
:::
## 4.6. Communication Circuit 通信電路
為了控制 DYNAMIXEL 馬達,主控制器需要將其 UART 信號轉換為 half duplex 半雙工類型。推薦的電路圖如下所示。
### 4.6.1. TTL 通信(不適用 XH430-V210-R)
![](https://i.imgur.com/1J9aQrU.png)
>TTL 電路
:::warning
**警示**: Above circuit is designed for 5V or 5V tolerant MCU. Otherwise, use a Level Shifter to match the voltage of MCU.
:::
![](https://i.imgur.com/tkvyK3A.png)
:::warning
**警示**: **務必檢查針腳排列**!DYNAMIXEL 馬達的針腳排列,可能與連接器製造商的針腳排列不同。
:::
### 4.6.2. RS-485 通信
![](https://i.imgur.com/bW11v3u.png)
>RS-485 電路
:::warning
**警示**: Above circuit is designed for 5V or 5V tolerant MCU. Otherwise, use a Level Shifter to match the voltage of MCU.
:::
![](https://i.imgur.com/Ug8Qtyd.png)
DYNAMIXEL 馬達的電源通過 Pin1(-),Pin2(+)提供。
(以上電路只有內建於 DYNAMIXEL 控制器中。)
## 4.7. Drawings 圖檔下載
### 4.7.1. X430 智能馬達
- Download [X_430_idle_ref.pdf](https://www.robotis.com/service/download.php?no=157)
- Download [X-430_idle_ref.dwg](https://www.robotis.com/service/download.php?no=156)
- Download [X-430_idle.stp](https://www.robotis.com/service/download.php?no=158)
### 4.7.2. FR12-H101K 轉軸框架
- Download [fr12_h101_ref.dwg](https://www.robotis.com/service/download.php?no=311)
- Download [fr12_h101_ref.pdf](https://www.robotis.com/service/download.php?no=312)
- Download [fr12_h101.stp](https://www.robotis.com/service/download.php?no=313)
### 4.7.3. FR12-H103GM 長連結框架
- Download [fr12-h103.dwg](https://www.robotis.com/service/download.php?no=643)
- Download [fr12-h103.pdf](https://www.robotis.com/service/download.php?no=644)
- Download [fr12-h103.stp](https://www.robotis.com/service/download.php?no=645)
### 4.7.4. FR12-H104K 連結框架
- Download [fr12-h104.dwg](https://www.robotis.com/service/download.php?no=646)
- Download [fr12-h104.pdf](https://www.robotis.com/service/download.php?no=647)
- Download [fr12-h104.stp](https://www.robotis.com/service/download.php?no=648)
### 4.7.5. FR12-S101K 側邊框架
- Download [fr12_s101_ref.dwg](https://www.robotis.com/service/download.php?no=314)
- Download [fr12_s101_ref.pdf](https://www.robotis.com/service/download.php?no=315)
- Download [fr12_s101.stp](https://www.robotis.com/service/download.php?no=316)
### 4.7.6. FR12-S102K 底部框架
- Download [fr12_s102_ref.dwg](https://www.robotis.com/service/download.php?no=317)
- Download [fr12_s102_ref.pdf](https://www.robotis.com/service/download.php?no=318)
- Download [fr12_s102.stp](https://www.robotis.com/service/download.php?no=319)
### 4.7.7. FR12-G101GM 爪手
:::info
FR12-G101GM 是爪手框架,包含 FR12-E170 及 FR12-E171
:::
#### 4.7.7.1 FR12-E170 框架
- Download [fr12_e170.dwg](https://www.robotis.com/service/download.php?no=637)
- Download [fr12_e170.pdf](https://www.robotis.com/service/download.php?no=638)
- Download [fr12_e170.stp](https://www.robotis.com/service/download.php?no=639)
#### 4.7.7.2 FR12-E171 框架
- Download [fr12_e171.dwg](https://www.robotis.com/service/download.php?no=640)
- Download [fr12_e171.pdf](https://www.robotis.com/service/download.php?no=641)
- Download [fr12_e171.stp](https://www.robotis.com/service/download.php?no=642)
:::info
另請訪問 [ROBOTIS 下載中心](http://en.robotis.com/service/downloadpage.php?ca_id=70),下載軟體應用程式,3D/2D CAD 和其他有用的資源!
:::
## 4.8. Moment of Inertia
- Download [XM430,XH430 Moment of Inertia.pdf](https://www.robotis.com/service/download.php?no=717)
###### tags: `XH` `Dynamixel` `ROBOTIS`