owned this note
owned this note
Published
Linked with GitHub
PM54-040-S250-R 工業智能馬達使用手冊
===
![](https://i.imgur.com/SbQUN6q.png)
![](https://i.imgur.com/CaSZwpY.png)
> PM54-040-S250-R 工業高效能全向智能馬達。支援 24V,R: RS-485(4-pin)
>> 前 PRO+ 系列 M54P
**Dynamixel-P 系列工業全向智能馬達命名規則**:
![](https://i.imgur.com/bRbN9vD.png)
# 1. 規格
---
| 項目 | 規格 |
|:--------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| MCU | ARM CORTEX-M4 (168 [MHz], 32Bit) |
| 馬達 | BLDC 無刷直流馬達 |
| Baud Rate | 9,600 [bps] ~ 10.5 [Mbps] |
| 操作模式 | Torque Control 扭力控制模式<br>Velocity Control 速度控制模式<br>Position Control 位置控制模式(0-360°)<br>Extended Position Control 延伸位置控制模式(多圈旋轉)<br>PWM Control 控制模式(電壓控制模式) |
| 重量 | 710g |
| 尺寸<br>(W x H x D) | 54 x 108 x 54 mm |
| 解析度 | 502,834 [pulse/rev] |
| 齒輪比 | 251.417 : 1 |
| Backlash 背隙 | <6 [arcmin] (0.1 [°]) |
| [Radial Load](http://emanual.robotis.com/assets/images/dxl/axial_radial_load.png)<br>徑向負載 | 370 [N] (10 [mm] 離 horn 轉盤之距離) |
| [Axial Load](http://emanual.robotis.com/assets/images/dxl/axial_radial_load.png)<br>軸向負載 | 130 [N] |
| 無負載速度(No Load Speed) | 28.4 [rev/min] |
| 無負載電流(No Load Current) | 1.32 [A] |
| * 連續速度(Continuous Speed) | 24.2 [rev/min] |
| * 連續扭力(Continuous Torque) | 3.9 [Nm] |
| * 連續電流(Continuous Current) | 1.9 [A] |
| 輸出瓦數 | 40 [W] |
| 操作溫度 | -5 ~ +55 [°C] |
| 輸入電壓 | 24.0 [V] |
| 指令訊號 | 數位封包 |
| Protocol<br>通訊協定 | RS485 Asynchronous Serial Communication with 8bit, 1stop, No Parity |
| 實體層連接 | RS485 Multidrop Bus |
| ID | 253 ID (0 ~ 252) |
| 待機電流 | 40 mA |
:::info
*連續速度/連續扭力/連續電流: 這些規格是根據核心馬達的規格計算得出的。對於長期使用或特殊用途,請諮詢ROBOTIS,而對於一般用途,請參考 Performance Graph 效能圖。
:::
:::danger
☠️**危險**:(可能導致嚴重傷害或死亡)
- 切勿將含水,易燃和溶劑的物品放在產品附近。
- 在操作過程中,切勿將手指,手臂,腳趾和其他身體部位放在產品附近。
- 如果產品散發出異味或冒煙,請切斷電源。
- 將產品放在兒童接觸不到的地方。
- 接線前請檢查電源極性。正負極不要接反。
:::
:::warning
⚠️**警告**:(可能會導致人身傷害或產品損壞)
- 請勿在超出範圍的溫度下操作產品。
- 在產品操作期間,請勿插入鋒利的刀片或針。
:::
:::warning
🚫**注意**:(可能會導致人身傷害或產品損壞)
- 請勿拆卸或改裝產品。
- 請勿掉落產品或對產品施加強烈撞擊。
:::
## 1.1. Performance Graph 效能圖
![](https://i.imgur.com/OZmUESi.png)
>[大圖顯示](http://emanual.robotis.com/assets/images/dxl/pro/m54-40-s250-r_performance_graph_max.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 指令封包來修改數據以控制馬達。
:::warning
**警示**: DYNAMIXEL-P 系列使用與 DYNAMIXEL PRO 系列不同的控制表。將 DYNAMIXEL PRO 替換為DYNAMIXEL-P 系列時,必須要注意。
:::
## 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(512)清除為 “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) | Modbus<br>Address | 數據名稱 | 存取<br>權限 | 初始<br>值 | 範圍 | 單位 |
|:------- | -------------- | --- | -------------------- | ------------ |:---------- | ------------------------- | ------------------- |
| 0 | 2 | 40001 | Model Number | R | 2,110 | - | - |
| 2 | 4 | 40002 | Model Information | R | - | - | - |
| 6 | 1 | 40004(Lo Byte) | Firmware Version | R | - | - | - |
| 7 | 1 | 40004(Hi Byte) | ID | RW | 1 | 0 ~ 252 (DYNAMIXEL<br>Protocol 2.0)<br>1 ~ 247 (Modbus) | - |
| 8 | 1 | 40005 (Lo Byte) | Baud Rate | RW | 1 | 0 ~ 9 | - |
| 9 | 1 | N/A | Return Delay Time | RW | 250 | 0 ~ 254 | 2 [μsec] |
| 10 | 1 | 40006 (Lo Byte) | Drive Mode | RW | 0 | 0 ~ 13 | - |
| 11 | 1 | 40006 (Hi Byte) | Operating Mode | RW | 3 | 0, 1, 3, 4, 16 | - |
| 12 | 1 | N/A | Secondary (Shadow) ID | RW | 255 | 0 ~ 255 | - |
| 13 | 1 | 40007 (Hi Byte) | Protocol Type | RW | 2 | 2, 10 | - |
| 20 | 4 | 40011 | Homing Offset | RW | 0 | -2,147,483,648 ~2,147,483,647 | 1 [pulse] |
| 24 | 4 | 40013 | Moving Threshold | RW | 20 | 0 ~ 2,840 | 0.01 <br>[rev/min] |
| 31 | 1 | 40016 (Hi Byte) | Temperature Limit | RW | 80 | 0 ~ 100 | 1 [°C] |
| 32 | 2 | 40017 | Max Voltage Limit | RW | 350 | 150 ~ 350 | 0.1 [V] |
| 34 | 2 | 40018 | Min Voltage Limit | RW | 150 | 150 ~ 350 | 0.1 [V] |
| 36 | 2 | 40019 | PWM Limit | RW | 2,009 | 0 ~ 2,009 | - |
| 38 | 2 | 40020 | Current Limit | RW | 4,470 | 0 ~ 4,470 | 1 [mA] |
| 40 | 4 | 40021 | Acceleration Limit | RW | 4,414,976 | 0 ~ 4,414,976 | 1 [rev/min<sup>2</sup>] |
| 44 | 4 | 40023 | Velocity Limit | RW | 2,840 | 0 ~ 2,840 | 0.01 <br>[rev/min] |
| 48 | 4 | 40025 | Max Position Limit | RW | 251,173 | -251,417 ~ 251,417 | 1 [pulse] |
| 52 | 4 | 40027 | Min Position Limit | RW | -251,173 | -251,417 ~ 251,417 | 1 [pulse] |
| 56 | 1 | 40029 (Lo Byte) | External Port Mode 1 | RW | 3 | 0 ~ 3 | - |
| 57 | 1 | 40029 (Hi Byte) | External Port Mode 2 | RW | 3 | 0 ~ 3 | - |
| 58 | 1 | 40030 (Lo Byte) | External Port Mode 3 | RW | 3 | 0 ~ 3 | - |
| 59 | 1 | 40030 (Hi Byte) | External Port Mode 4 | RW | 3 | 0 ~ 3 | - |
| 60 | 1 | 40031 (Lo Byte) | Startup Configuration | RW | 0 | 3 | - |
| 63 | 1 | 40032 (Hi Byte) | Shutdown | RW | 58 | 0 ~ 63 | - |
| 168 | 2 | N/A | Indirect Address 1 | RW | 634 | 512 ~ 1,023 | - |
| 170 | 2 | N/A | Indirect Address 2 | RW | 635 | 512 ~ 1,023 | - |
| 172 | 2 | N/A | Indirect Address 3 | RW | 636 | 512 ~ 1,023 | - |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 422 | 2 | N/A | Indirect Address 128 | RW | 761 | 512 ~ 1,023 | - |
## 2.3. RAM 區域的控制表
| Address | Size<br>(Byte) | Modbus<br>Address | 數據名稱 | 存取<br>權限 | 初始<br>值 | 範圍 | 單位 |
|:------- | -------------- | ----------------- | ---------------------- | ------------ |:---------- | ----------------------------------------------- | ---------------------------- |
| 512 | 1 | 40257 (Lo Byte) | Torque Enable | RW | 0 | 0 ~ 1 | - |
| 513 | 1 | 40257 (Hi Byte) | LED Red | RW | 0 | 0 ~ 255 | - |
| 514 | 1 | 40258 (Lo Byte) | LED Green | RW | 0 | 0 ~ 255 | - |
| 515 | 1 | 40258 (Hi Byte) | LED Blue | RW | 0 | 0 ~ 255 | - |
| 516 | 1 | N/A | Status Return Level | RW | 2 | 0 ~ 2 | - |
| 517 | 1 | N/A | Registered Instruction | R | 0 | - | - |
| 518 | 1 | 40260 (Lo Byte) | Hardware Error Status | R | 0 | - | - |
| 524 | 2 | 40263 | Velocity I Gain | RW | 408 | 0 ~ 32,767 | - |
| 526 | 2 | 40264 | Velocity P Gain | RW | 1137 | 0 ~ 32,767 | - |
| 528 | 2 | 40265 | Position D Gain | RW | 0 | 0 ~ 32,767 | - |
| 530 | 2 | 40266 | Position I Gain | RW | 0 | 0 ~ 32,767 | - |
| 532 | 2 | 40267 | Position P Gain | RW | 502 | 0 ~ 32,767 | - |
| 536 | 2 | 40269 | Feedforward 2nd Gain | RW | 0 | 0 ~ 32,767 | - |
| 538 | 2 | 40270 | Feedforward 1st Gain | RW | 0 | 0 ~ 32,767 | - |
| 546 | 1 | 40274 (Lo Byte) | BUS Watchdog | RW | 0 | 0 ~ 127 | 20 [msec] |
| 548 | 2 | 40275 | Goal PWM | RW | - | -PWM Limit(36) ~ PWM Limit(36) | 0.0498 [%] |
| 550 | 2 | 40276 | Goal Current | RW | - | -Current Limit(38) ~ Current Limit(38) | 1 [mA] |
| 552 | 4 | 40277 | Goal Velocity | RW | - | -Velocity Limit(44) ~ Velocity Limit(44) | 0.01 [rev/min] |
| 556 | 4 | 40279 | Profile Acceleration | RW | - | 0 ~ Acceleration Limit(40) | 1 [rev/min<sup>2</sup>] |
| 560 | 4 | 40281 | Profile Velocity | RW | - | 0 ~ Velocity Limit(44) | 0.01 [rev/min] |
| 564 | 4 | 40283 | Goal Position | RW | - | Min Position Limit(52) ~ Max Position Limit(48) | 1 [pulse] |
| 568 | 2 | 40285 | Realtime Tick | R | - | 0 ~ 32,767 | 1 [msec] |
| 570 | 1 | 40286 (Lo Byte) | Moving | R | - | - | - |
| 571 | 1 | 40286 (Hi Byte) | Moving Status | R | - | - | - |
| 572 | 2 | 40287 | Present PWM | R | - | - | 0.0498 [%] |
| 574 | 2 | 40288 | Present Current | R | - | - | 1 [mA] |
| 576 | 4 | 40289 | Present Velocity | R | - | - | 0.01 [rev/min] |
| 580 | 4 | 40291 | Present Position | R | - | - | 1 [pulse] |
| 584 | 4 | 40293 | Velocity Trajectory | R | - | - | 0.01 [rev/min] |
| 588 | 4 | 40295 | Position Trajectory | R | - | - | 1 [pulse] |
| 592 | 2 | 40297 | Present Input Voltage | R | - | - | 0.1 [V] |
| 594 | 1 | 40298 (Lo Byte) | Present Temperature | R | - | - | 1 [°C] |
| 600 | 2 | 40301 | External Port Data 1 | R/RW | 0 | 0 ~ 4,095 | - |
| 602 | 2 | 40302 | External Port Data 2 | R/RW | 0 | 0 ~ 4,095 | - |
| 604 | 2 | 40303 | External Port Data 3 | R/RW | 0 | 0 ~ 4,095 | - |
| 606 | 2 | 40304 | External Port Data 4 | R/RW | 0 | 0 ~ 4,095 | - |
| 634 | 1 | N/A | Indirect Address 1 | RW | 0 | 0 ~ 255 | - |
| 635 | 1 | N/A | Indirect Address 2 | RW | 0 | 0 ~ 255 | - |
| 636 | 1 | N/A | Indirect Address 3 | RW | 0 | 0 ~ 255 | - |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 761 | 1 | N/A | Indirect Address 128 | RW | 0 | 0 ~ 255 | - |
| 878 | 1 | N/A | Backup Ready | R | - | 0 ~ 1 | - |
## 2.4. Control Table 的內容說明
:::warning
**警示: 在 EEPROM 區域的數據,只能在 Torque Enable(512)清除為 “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〜253(0xFD)間,而值 254(0xFE)則作為 broadcast 廣播 ID。廣播 ID(254,0xFE)可以同時向所有連接的 DYNAMIXEL 發送指令封包。
:::warning
**警示**:
- 在同一網路中,請避免對多個 DYNAMIXEL 使用相同的 ID。你可能會遇到通信故障,或者可能無法檢測到具有相同 ID 的 DYNAMIXEL。
:::
### 2.4.4. Baud Rate(8) 通信速度
Baud Rate 決定了 Dynamixel 智能馬達跟控制器之間的通信速度。
| 值 | Baud Rate<br>[bps] | 實際 Baud Rate | Margin of Error<br>誤差容許度 |
|:------- | --------- | -------------- | ----------------------------- |
| 9 | 10.5M | 10,500,000 | 0.000% |
| 8 | 6M | 6,000,000 | 0.000% |
| 7 | 4.5M | 4,421,053 | -1.176% |
| 6 | 4M | 4,000,000 | 0.000% |
| 5 | 3M | 3,000,000 | 0.000% |
| 4 | 2M | 2,000,000 | 0.000% |
| 3 | 1M | 1,000,000 | 0.000% |
| 2 | 115,200 | 115,226 | 0.023% |
| 1(預設) | 57,600 | 57,613 | 0.023% |
| 0 | 9,600 | 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]) |
:::warning
**警示**: Modbus-RTU 不支援 Return Delay Time(9)。
:::
### 2.4.6. Drive Mode(10) 驅動模式
Drive Mode(10) 設定馬達的旋轉方向
| 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) | Torque On by Goal Update | **[0]** 僅當 Torque Enable(512) 的值為“1”時才執行給定命令<br>**[1]** 無論 Torque Enable(512) 的設定值如何,都執行給定的命令。 如果 Torque Enable(512) 的值為‘0’並給出命令,則 Torque Enable(512) 切換到‘1’並執行命令。 |
| 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(正) |
### 2.4.7. Operating Mode(11) 操作模式
可設定馬達操作模式。
| 值 | 操作模式 | 說明 |
|:------- | -------------------------------------------------------------- |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0 | Current Control Mode<br>電流控制模式 | DYNAMIXEL 僅控制電流(扭力),而與速度和位置無關。本模式非常適合機器手臂夾爪,或僅使用電流(扭力)控制的系統,或具有額外的速度/位置控制器的系統。 |
| 1 | Velocity Control Mode(0° ~ 360°)<br>速度控制模式 | 本模式控制速度和電流,並不控制位置。 |
| 3(預設) | Position Control Mode<br>位置控制模式 | 本模式控制位置,速度,和電流。 |
| 4 | Extended Position Control Mode(Multi-turn)<br>延伸位置控制模式 | 本模式類似於位置控制模式,但不受 Position Limits 的限制。因此,控制範圍不會限制在 0〜360[°] 之間,因而可以進行多圈旋轉的位置控制。 |
| 16 | PWM Control Mode (Voltage Control Mode)<br>PWM 電壓控制 | 本模式直接控制 PWM 輸出。 (電壓控制模式) |
:::info
**備註**: Present Position(580) 代表無論 Operating Mode(11) 如何設置,當關閉扭力時,從 -2,147,483,648 到 2,147,483,647 的 4 byte 連續範圍。
但是,在以下情況,Present Position(580) 將重置為一整圈轉動的絕對位置值:
1. 當 Operating Mode(11) 更改為位置控制模式時,Present Position(580) 將重置為一整圈轉動的絕對位置值。
2. 在位置控制模式下開啟扭力時,Present Position(580) 將重置為一整圈轉動的絕對位置值。
3. 打開電源或使用 Reboot 指令。
Present Position(580) 的值可能受 Homing Offset(20) 的影響。
:::
### 2.4.8. Secondary ID(12) 次要 ID
設置 Dynamixel 馬達的 Secondary 次要 ID,就像 主 ID(7)一樣,次要 ID(12)也是用於標識每個 Dynamixel 馬達的值。但是,跟主 ID(7) 不同的是,次要 ID(12)不是唯一值。因此,具有相同次要 ID 值的 Dynamixel 馬達可以形成一個群組。次要 ID(12) 和 主 ID(7) 之間的區別如下:
1. 次要 ID(12) 不是唯一值。即許多 Dynamixel 馬達可能具有相同的次要 ID 值。
2. 主 ID(7)的優先級高於次要 ID(12)。 即,如果次要 ID(12) 和主 ID(7) 編號相同,則馬達將首先應用主 ID(7)。
3. 無法使用次要 ID(12)修改控制表的 EEPROM 區域。僅 RAM 區域可以修改。
4. 如果指令封包 ID 與次要 ID(12) 相同,則不會回傳狀態封包。
5. 如果次要 ID(12) 的值是 253 或更高,則將停用次要 ID 功能。
| 值 | 說明 |
|:--------- | ---------------------------- |
| 0 ~ 252 | 啟動次要 ID 功能 |
| 253 ~ 255 | 停用次要 ID 功能,預設值 255 |
以下是當主 ID(7)設置為 1 到 5 的五個 Dynamixel 馬達時的操作範例。
1. 將所有 五 個 Dynamixel 馬達的次要 ID(12)都設為 “5”。
2. 發送 Write 指令封包(ID = 1,LED RED(513)= 255)。
3. 主 ID 為 “1” 的 Dynamixel 馬達的 LED 會 ON(亮)並回傳狀態封包。
4. 發送 Write 指令封包(ID = 5,LED RED(513)= 255)。
5. 五個 Dynamixel 上的 LED 都會 ON。但,只有主 ID 為 “5” 的 Dynamixel 馬達會回傳狀態數據封包。
6. 將所有五個 Dynamixel 的次要 ID(12)都設置為 “100”。
7. 發送 Write 指令封包(ID = 100,LED RED(513)= 0)。
8. 五個 Dynamixel 上的 LED 會 OFF(熄滅)。但是,由於沒有主 ID 為 '100' 的 Dynamixel 馬達,因此不會回傳狀態數據封包。
:::warning
**警示**: Modbus-RTU 不支援 Secondary ID(12)。
:::
### 2.4.9. Protocol Type(13)
此位址可以在 DYNAMIXEL protocol 和 Modbus-RTU protocol 之間切換。
DYNAMIXEL-P 系列韌體 V11 或更高版本才有支援 Modbus-RTU。
| 值 | Protocol | 說明 |
| --- | ---------- | -------------------------------------------------------------------------------------------------------------- |
| 2 | 2.0 | [DYNAMIXEL Protocol 2.0](http://emanual.robotis.com/docs/en/dxl/protocol2/) |
| 10 | Modbus-RTU | [Industrial Standard Protocol](http://modbus.org/docs/PI_MBUS_300.pdf)<br>![](https://i.imgur.com/i6k5llp.png) |
:::warning
**警示**:
如要更改 DYNAMIXEL-P 系列的 protocol,請使用DYNAMIXEL Wizard 2.0,因為 R+ Manager 2.0 不支援 Modbus。
:::
:::warning
**警示**: Modbus-RTU 不支援以下的數據:
* Return Delay Time(9)
* Secondary ID(12)
* Status Return Level(516)
* Registered Instruction(517)
* Indirect Address
* Indirect Data
:::
### 2.4.10. Homing Offset(20) 歸位偏移
用戶可以通過設置 Home Offset(20)來調整 Home 位置。將 Homing Offset 歸位偏移值添加到 Present Position(580) 值。
**Present Position(580) = 實際位置 + Homing Offset(20)**
| 單位 | 值的範圍 |
| --------- | ------------------------------ |
| 1 [pulse] | -2,147,483,648 ~ 2,147,483,647 |
:::info
**備註**:
- 在 Position Control Mode(Joint Mode),Homing Offset(20)值如果超出 (-90 ~ 90 [°]) 的範圍會被忽略。
- 即使 Drive Mode(10) 設置為 Reverse Mode,Homing Offset(20) 值的符號也不會反轉。
![](https://i.imgur.com/x3ZRr4s.png)
:::
### 2.4.11. Moving Threshold(24)
此值有助於確定 DYNAMIXEL 馬達是否處於運動狀態。
當 Present Velocity(576) 的絕對值大於 Moving Threshold(24) 值時,Moving(570) 會設為 “1”,否則將其清除為 “0”。
| 單位 | 範圍 |
| -------- | -------- |
| 0.01 [rev/min] | 0 ~ 2,840 |
### 2.4.12. Temperature Limit(31) 溫度極限
此值限制了工作溫度。
當顯示 DYNAMIXEL 內部溫度的 Present Temperature(594) 大於 Temperature Limit(31) 時,將會設定 Hardware Error Status(518) 中的過熱錯誤位元 Over Heating Error Bit(0x04)。
如果在 Shutdown(63) 中設定了 Overheating Error Bit(0x04),則會將 Torque Enable(512) 清除為 “0”,並且停用扭力。有關更多詳細信息,請參見 Shutdown(63)部分。
| 單位 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| 大約 1° | 0 ~ 100 | 0 ~ 100[°C] |
:::warning
**警示**: 請勿將溫度設置為低於/高於預設值。當溫度警報馬達關機時,請等待 20 分鐘以冷卻溫度,然後再使用。在高溫下繼續使用本產品可能會造成嚴重損壞。
:::
### 2.4.13. Max/Min Voltage Limit(32, 34) 最小/最大電壓極限
這些值是最大和最小工作電壓。當從 Present Input Voltage(592) 獲取的當前輸入電壓超出 Max Voltage Limit(32)和 Min Voltage Limit(34)的範圍時,Hardware Error Status(518) 中的 Input Voltage Error Bit(0x01) 會被設定,及狀態封包的 Error 欄位 Alert Bit(0x80) 也會被設定。
如果在 Shutdown(63) 中設定了 Input Voltage Error Bit(0x10),則會將 Torque Enable(512) 清除為 “0”,並且停用扭力。有關更多詳細信息,請參見 Shutdown(63)部分。
| 單位 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| 大約 0.1 [V] | 150 ~ 350 | 15.0 ~ 35.0 [V] |
### 2.4.14. PWM Limit(36) 電壓極限
此值表示最大 PWM 輸出。
Goal PWM(548) 不能設置為超過 PWM Limit(36) 的任何值。
PWM Limit(36)通常在所有操作模式下用作為 output 輸出的極限,因此降低 PWM 輸出將導致馬達扭力和速度的降低。
有關更多詳細信息,請參閱每種操作模式的 “Gain 增益” 部分。
| 值 | 說明 |
|:----------------------- | -------------------- |
| 0 ~ 2,009 | 2,009 = 100 [%] Output |
### 2.4.15. Current Limit(38) 電流極限
此值表示最大電流(扭力)輸出限制。
Goal Current(550) 不能設置超過 Current Limit(38) 的任何值。嘗試寫入無效值將會失敗,並在狀態數據封包的 Error 欄位中設置 Limit Error Bit。
| 單位 | 值的範圍 |
| ------------ | -------- |
| 1 [mA] | 0 ~ 4,470 |
:::info
**備註**: 每個 Dynamixel 馬達的 Current Limit(38) 可能會不同,請參考 Control Table 控制表
:::
### 2.4.16. Acceleration Limit(40) 加速度極限
此值表示最大加速度極限。
Profile Acceleration(556)不能配置為超過 Acceleration Limit(40) 的任何值。嘗試寫入無效值將會失敗,並在狀態數據封包的 Error 欄位中設置 Limit Error Bit。
| 單位 | 值的範圍 |
| ------------ | -------- |
| 1 [rev/min<sup>2</sup>] | 0 ~ 4,414,976 |
### 2.4.17. Velocity Limit(44) 速度極限
此值表示 Goal Velocity(552) 和 Profile Velocity(562) 的最大速度。Goal Velocity(552) 和 Profile Velocity(562) 不能設置超過 Velocity Limit(44) 的任何值。嘗試寫入無效值將會失敗,並在狀態數據封包的 Error 欄位中設置 Limit Error Bit。
| 單位 | 值的範圍 |
| ------------ | -------- |
| 0.01 [rev/min] | 0 ~ 2,840 |
### 2.4.18. Max/Min Position Limit(48, 52) 最大/最小位置極限
這些值將最大和最小期望位置限制在一個轉圈內(-501,923 ~ 501,923)。
Goal Position(564) 不能超過這些值。
嘗試寫入一個超過的值將會失敗,並導致從狀態數據封包中收到一個 Limit Error Bit 錯誤。
| 單位 | 值的範圍 |
| --------- | ------------------ |
| 1 [pulse] | -251,417 ~ 251,417 |
:::info
**備註**: Max Position Limit(48) 及 Min Position Limit(52) 僅在操作模式為 Position Control 位置控制模式(關節模式)時使用,該模式僅允許 DYNAMIXEL 馬達轉 1 圈。
:::
### 2.4.19. External Port Mode,External Port Data (56, 57, 58, 59) 外部端口模式,外部端口數據
提供了可用於各種目的的外部端口。
每個端口的屬性由 External Port Mode(56~59) 來配置,外部端口的數據則由 External Port Data(600~607) 控制。
外部端口的信號可以通過外部端口數據進行控制或檢查。
外部端口沒有電子絕緣,因此請遵守電氣規範。
有遮蔽連接線或雙絞線可減少信號雜音和錯誤。
較短的連接線可提高測量的精度。
| 項目 | 說明 |
| ---- | ---- |
| Voltage 電壓 | 0 ~ 3.3 [V]<br>VESD(HBM) : 2[kV] |
| Current 電流 | 0 ~ 5 [mA] |
※ VESD(HBM):ESD(Electrostatic Discharge 靜電放電)Voltage(Human Body Model 人體模型)
| 功能 | External Port Mode<br>外部端口模式 | External Port Data<br>外部端口數據 | 存取權限 | 說明 |
| ---- |:---------------------------------- | ---------------------------------- | --- | -------------------------------------------------------------------- |
|AI(Analogue Input)<br>類比輸入| 0 |將外部端口信號轉換為 12 [bit] 數位值<br>External Data = signal x (4,095 / 3.3)| R | 解析度 : 12[bit] (0 ~ 4,095) |
|DO_PP(Digital Output Push-Pull)| 1 | 0:將外部端口輸出設置為 0 [V]<br>1:將外部端口輸出設置為 3.3 [V] | W | 輸出高電平(VOH):2.4 [V](最小)<br>輸出低電平(VOL):0.5 [V](最大) |
|DI_PU(Digital Input Pull-Up)| 2 | 0:外部端口輸入為 0 [V]<br>1:外部端口輸入為 3.3 [V] 或 open | R | 輸入高電平(VIH):2.3 [V](最小)<br>輸入低電平(VIL):1.0 [V](最大值)<br>Pull-Up:40 [kΩ](典型值) |
|DI_PD(Digital Input Pull-Down)| 3(預設) | 0:外部端口輸入為 0 [V]或 open <br>1:外部端口輸入為 3.3 [V] | R | 輸入高電平(VIH):2.3 [V](最小)<br>輸入低電平(VIL):1.0 [V](最大值)<br>Pull-Down:40 [kΩ](典型值) |
:::warning
**警示**: 外部端口沒有電子絕緣,因此請遵守電氣規範。
如果超出電氣規格或信號連接有問題,則需要特別注意,因為 DYNAMIXEL 馬達可能會損壞。
- 注意不要因靜電(ESD),短路,開路而引起電擊。
- 注意不要讓水或灰塵進入外部端口的連接器。
- 如果不使用外部端口時,請拔下連接線。
- 要連接或斷開外部端口,請先關閉電源。
- 請勿將外部端口的 GNDext 接地針腳直接連接至 DYNAMIXEL 馬達連接頭的 GND 接地針腳。因為從電源來的雜訊可能會影響外部端口。
:::
#### 2.4.19.1. External expansion port location and pin function 外部擴充端口位置及針腳功能
卸下在外殼中間位置的螺絲和蓋板,就可看到外部端口連接器。
![](https://i.imgur.com/lRoZFBH.png)
![](https://i.imgur.com/0XnNYvo.png)
| Pin 1 | Pin 2 | Pin 3 | Pin 4 | Pin 5 | Pin 6 |
| -------- | -------- | --- | --- | --- | -------- |
| GND | 3.3V | PORT1 | PORT2 | PORT3 | PORT4 |
### 2.4.20 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 V12.
:::
:::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.21. Shutdown(63) 關機
DYNAMIXEL 馬達可以通過檢測操作過程中可能發生的危險情況來自我保護。
每個 bit 都使用 “OR” 邏輯進行包含處理,因此可以生成多個選項。
例如,如果在 Shutdown(63) 中定義了 “0x05”(二進制:00000101),則 DYNAMIXEL 可以同時檢測 Input Voltage Error(二進制:00000001)和 Overheating Error(二進制:00000100)。
如果檢測到這些錯誤,則將 Torque Enable(512) 清除為 “0”,並且馬達輸出也變為 0 [%]。
在關機後,REBOOT 是將 Torque Enable(512)重置為 “1”(Torque ON)的唯一方法。
通過 Hardware Error Status(518) 來檢查狀態數據封包 Error 欄位中的 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 |Motor Hall Sensor Error(預設)| 馬達的 hall sensor 值超出正常範圍 |
| Bit 0 |Input Voltage Error| 檢測輸入電壓超過設定的工作電壓 |
:::info
**備註**:
1. 如果發生 Shutdown 關機,**Dynamic brake** 會被啟動。
2. 如果發生 Shutdown 關機,**LED 會每秒閃一次**。
3. 如果發生 Shutdown 關機,**請 reboot 馬達**。
- 硬體重啟:關閉並重新打開電源
- 軟體重啟:發送 REBOOT 指令(有關更多詳細信息,請參閱線上手冊的 [Reboot](http://emanual.robotis.com/docs/en/dxl/protocol2/#reboot) 部分。)
:::
### 2.4.22. Indirect Address, Indirect Data 間接位址,間接數據
當要存取控制表中的兩個距離相隔較遠的位址,作為順序位址(相鄰位址)時,Indirect Address 和 Indirect Data 很有用。順序位址會提高了指令封包的效率。可以定義為 Indirect Address 間接位址的位址僅限於 RAM 區域(位址 512〜606)。如果將特定位址分配給 Indirect Address 間接位址,則間接位址將從特定位址繼承數據的功能和屬性。屬性包括 Size(Byte length),值的範圍,和 Access property(Read Only, Read/Write)。
例如,將 513(LED 的位址)分配給 Indirect Address 1(168),及寫入 255 到 Indirect Data 1(634),則 red LED 會亮起。LED Red(513) 的真正值也會設為 255。
如果特定項目的位址超過 2 bytes,則必須在 Indirect Address 中順序的配置每個位址的 byte。
**範例一**: 將大小為 1 byte 的 LED Red(513)分配給 Indirect Data 1(634)。
1. Indirect Address 1(168):將值更改為 “513”,即 LED Red 的位址。
2. 將 Indirect Data 1(634)設置為 “255”:LED Red(513)值也自動變為 “255”,並且 red LED 會亮。
3. 將 Indirect Data 1(634)設置為 “0”:LED Red(513)也自動變為 “0”,並且 LED 會熄滅。
**範例二**: 將大小 4 byte 的 Goal Position(564) 分配給 Indirect Data 2(635),必須分配 4 個連續的 bytes。
1. Indirect Address 2(170):將值更改為 “564”,這是 Goal Position 的第一個位址。
2. Indirect Address 3(172):將值更改為 “565”,這是 Goal Position 的第二個位址。
3. Indirect Address 4(174):將值更改為 “566”,這是 Goal Position 的第三個位址。
4. Indirect Address 5(176):將值更改為 “567”,這是 Goal Position 的第四個位址。
5. 將 4 bytes 的期望位置值 250,961(0x0003D451)寫到 Indirect Data 2〜5 中:Goal Position(564) 的值將反映這些變化,並設置為 0x0003D451,如下所示(Little Endian)。
| Indirect Address 範圍 | Goal Position 位址 | Saved HEX Value |
| --------------------- | ---------------------------------------- | --------------- |
| 635 | 564 | 0x51 |
| 636 | 565 | 0xD4 |
| 637 | 566 | 0x03 |
| 638 | 567 | 0x00 |
:::info
**備註**:
- 為了將控制表中大於 2[byte] 的數據分配給 Indirect Address,必須像上面的範例二 一樣將所有位址分配給 Indirect Address。
:::
:::warning
**警示**:
Modbus-RTU 不支援 Indirect Address, Indirect Data。
:::
### 2.4.23. Torque Enable(512) 啟用扭力
控制扭力 ON/OFF。向此位址寫入 “1” 將打開扭力,並且 EEPROM 區域中的所有數據將受到保護。
| 值 | 說明 |
| --------- | ------------------ |
| 0(預設) | 關閉扭力 |
| 1 | 打開扭力並鎖住 EEPROM 區域的數據 |
:::info
**備註**: 更新 Operating Mode(11) 和 Torque Enable(512) 後,可以重置 Present Position(580)。有關更多詳細信息,請參考 Homing Offset(20) 及 Present Position(580)。
:::
### 2.4.23. RGB LED(513,514,515)
這些位址控制馬達上的 RGB LED ON/OFF。當發生 Shutdown 時,就不能控制 LED。
| 位址 | 顏色 | 值的範圍 |
| ---- | ---- | -------- |
| 513 | Red 紅 | 0 ~ 255 |
| 514 | Green 綠 | 0 ~ 255 |
| 515 | Blue 藍 | 0 ~ 255 |
:::info
**備註**: LED 燈顯示馬達當前狀態
| 狀態 | LED 表示 |
|:------------- | ----------- |
| Booting | Green LED 閃 1 次 |
| Factory Reset | Green LED 閃 4 次 |
| Alarm | Red LED 一直閃 |
:::
### 2.4.25. Status Return Level(516) 狀態回傳程度
此值決定了 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 狀態封包部分。
:::
:::warning
**警示**:
Modbus-RTU 不支援 Status Return Level(516)。
:::
### 2.4.26. Registered Instruction(517) 已註冊指令
| 值 | 說明 |
|:--- | --------------------- |
| 0 | 未收到 REG_WRITE 指令 |
| 1 | 已收到 REG_WRITE 指令 |
:::info
**備註**: 如果 ACTION 指令被執行,則此值會更改為 0。
:::
:::warning
**警示**:
Modbus-RTU 不支援 Registered Instruction(517)。
:::
### 2.4.27. Hardware Error Status(518) 硬體錯誤狀態
此值表示硬體錯誤狀態。有關更多詳細信息,請參閱 Shutdown(63)。
### 2.4.28. Velocity PI Gain(524, 526),Feedforward 2nd Gains(536) 速度 PI 增益, Feedforward 二次增益
這些值表示速度控制模式的 Gain 增益。
DYNAMIXEL 馬達內部控制器的增益可以通過控制表的增益來計算,如下所示。
每個方程式中的常數包括採樣時間。
DYNAMIXEL 內部控制器的 Velocity P Gain 縮寫為 KVP,而控制表的 Velocity P Gain 縮寫為 KVP(TBL)。
| | 控制器 Gain | 範圍 | 說明 |
| ------------------- | ----------- | ---------- | ------ |
| Velocity I Gain(524) | KVI | 0 ~ 32,767 | Velocity Integral Gain |
| Velocity P Gain(526) | KVP | 0 ~ 32,767 | Velocity Proportional Gain |
| Feedforward 2nd Gain(536) | KFF2nd | 0 ~ 32,767 | Acceleration Feedforward Gain |
下圖是一個電路方塊圖,描述了在速度控制模式下的速度控制器。當 DYNAMIXEL 馬達收到用戶發送的指令時,將採取以下步驟,直到驅動馬達轉動為止。
1. 通過 DYNAMIXEL bus 傳輸來自用戶的指令,然後將其註冊到 Goal Velocity(552)。
2. Goal Velocity(552) 通過 Profile Acceleration(556) 轉換為所需的速度軌跡。
3. 所需的速度軌跡存儲在 Velocity Trajectory(584) 處。
4. PI 控制器根據所需的速度軌跡計算馬達的 PWM 輸出。
5. Goal PWM(584) 對計算出的 PWM 輸出設定限制,並確定最終的 PWM 值。
6. 最終的 PWM 值通過 inverter 變頻器施加到馬達,並驅動 DYNAMIXEL 的轉盤轉動。
7. 結果存儲在 Present Position(580), Present Velocity(576), Present PWM(572) 及 Present Current(574)。
![](https://i.imgur.com/k0D7iVE.png)
:::info
**備註**: Ka 代表 Anti-windup Gain,使用者無法修改。有關 PID 控制器的更多詳細信息,請參閱 [Wikipedia 上的 PID 控制器](http://en.wikipedia.org/wiki/PID_controller)。
:::
### 2.4.29. Position PID Gain(528, 530, 532), Feedforward 1st Gains(538)
這些 Gain 增益用於位置控制模式和延伸位置控制模式(Extended Position Control Mode)。DYNAMIXEL 內部控制器的增益可以通過控制表的增益來計算,如下所示。每個方程式中的常數包括採樣時間。DYNAMIXEL 內部控制器的 Position P Gain 縮寫為 KPP,而控制表的 Position P Gain 縮寫為 KPP(TBL)。
| | 控制器 Gain | 範圍 | 說明 |
| ------------------------ | ----------- | ---------- | ------------------------- |
| Position D Gain(528) | KpD | 0 ~ 32,767 | Position Derivative Gain |
| Position I Gain(530) | KpI | 0 ~ 32,767 | Position Integral Gain |
| Position P Gain(532) | KpP | 0 ~ 32,767 | Position Proportional Gain |
| Feedforward 1st Gain(538) | KFF1st | 0 ~ 32,767 | Velocity Feedforward Gain |
下圖是一個電路方塊圖,描述了在位置控制模式及延伸位置控制模式(Extended Position Control Mode)下的位置控制器。當 DYNAMIXEL 馬達收到用戶發送的指令時,將採取以下步驟,直到驅動馬達轉動為止。
1. 通過 DYNAMIXEL bus 傳輸來自用戶的指令,然後將其註冊到 Goal Position(564)。
2. Goal Position(564) 通過 Profile Velocity(560) 及 Profile Acceleration(556) 轉換為所需的位置軌跡(position trajectory)和速度軌跡(velocity trajectory)。
3. 所需的位置軌跡(position trajectory)和速度軌跡(velocity trajectory) 各自對應存儲在 Position Trajectory(588) 及 Velocity Trajectory(584) 處。
4. Feedforward 及 PID 控制器根據所需的軌跡計算馬達的 PWM 輸出。
5. Goal PWM(548) 對計算出的 PWM 輸出設定限制,並確定最終的 PWM 值。
6. 最終的 PWM 值通過 inverter 變頻器施加到馬達,並驅動 DYNAMIXEL 的轉盤轉動。
7. 結果存儲在 Present Position(580), Present Velocity(576), Present PWM(572) 及 Present Current(574)。
![](https://i.imgur.com/ZdcnCeu.png)
:::info
**備註**: 在 PWM 控制模式下,當 Goal PWM(548)值通過 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.30. BUS Watchdog(546) 匯流排的監控程序
BUS Watchdog(98) 從韌體 v38 後開始提供。如果由於未知的錯誤,導致控制器與 DYNAMIXEL 馬達(RS485,TTL)之間的通訊中斷,這是一種停止 DYNAMIXEL 的安全機制(Fail-safe)。通訊是指 DYNAMIXEL protocol 中的所有指令封包。
| | 值 | 說明 |
| --- | --- | ---- |
|Range| 0 | 停用 Bus WatchDog 功能,清除 Bus Watchdog Error |
|Range| 1 ~ 127 | 啟用 Bus Watchdog (Unit: 20 [msec])|
|Range| -1 | Bus Watchdog Error 狀態 |
當 Torque Enable(512) 為 “1”時,匯流排的監控程序功能,會監視控制器與 DYNAMIXEL 馬達之間的通信間隔(時間)。
如果測得的通信間隔(時間)大於 BUS Watchdog(546),則 DYNAMIXEL 馬達將停止。BUS Watchdog(546) 將更改為 “-1”(Bus Watchdog Error)。
如果出現 “Bus Watchdog Error” 顯示,則 Goal Value (Goal PWM(548), Goal Current(550), Goal Velocity(552), Goal Position(564))將變為只能讀(read-only-access)。
因此,如要將新值寫入 Goal Value 時,將通過狀態數據封包回傳 Range Error。如果 BUS Watchdog(564) 的值更改為 “0”,則 Bus Watchdog Error 將被清除。
:::info
**注意**:有關 Range Error 的詳細信息,請參閱線上手冊的 protocol 2.0。
:::
#### 2.4.30.1. BUS Watchdog(546) 範例
以下是 BUS Watchdog(546) 功能的操作範例。
1. 將 Operating Mode(11) 設置為速度控制模式後,將 Torque Enable(512) 更改為 “1”。
2. 如果在 Goal Velocity(552)中寫入 “50”,則 DYNAMIXEL 將沿 CCW 方向旋轉。
3. 將 Bus Watchdog(546)的值更改為 “100”(2,000[ms])。(啟動 BUS Watchdog(98) 功能)
4. 如果在 2,000[ms] 內未收到指令封包,則 DYNAMIXEL 馬達將以預先定義的減速值停止。
5. BUS Watchdog(546) 的值更改為 “-1”(Bus Watchdog Error)。此時,對 Goal Value 的存取權限將更改為只能讀(Read-only)。
6. 如果將 “150” 寫入 Goal Velocity(552),則 Range Error 將通過狀態數據封包回傳。
7. 如果 BUS Watchdog(546) 的值更改為 “0”,則 Bus Watchdog Error 將被清除。
8. 如果在 Goal Velocity(552) 中寫入 “150”,則 DYNAMIXEL 馬達將沿 CCW 方向旋轉。
### 2.4.31. Goal PWM(548) 目標 PWM
在 PWM Control 模式下,當 Goal PWM(548)值通過 inverter 變頻器直接控制馬達時,PID 控制器和 Feedforward 控制器均被停用。
而在其他控制模式下,此值用於限制 PWM 值(輸出扭力)。
此值不能超過 PWM Limit(36)。
要了解 Goal PWM(548) 如何影響不同的控制模式,請參考 “Gain” 部分,。
| 單位 | 範圍 |
| -------- | -------- |
| about 0.0498 [%] | -PWM Limit(36) ~ PWM Limit(36)<br>PWM Limit(36) 初始值: 2,009 |
### 2.4.32. Goal Current(550) 目標電流
在 Current Control 模式下,Goal Current(550) 可用於設定所需電流。此值在速度控制模式,位置控制模式,延伸位置控制模式下,為電流控制器設定電流限制。
此值不能超過 Current Limit(38)。
:::info
**備註**: 長時間向馬達施加大電流,可能會損壞馬達。
:::
### 2.4.33. Goal Velocity(552) 目標速度
在速度控制模式下,Goal Velocity(552) 可用於設置所需速度。
此值不能超過 Velocity Limit(44)。
Goal Velocity(552)在位置控制模式,延伸位置控制模式下,用於限制速度控制器的輸入(速度)。
### 2.4.34. Profile Acceleration(556)
如果為 Drive Mode(10) 選擇了基於速度的 Profile 配置文件,則 Profile Acceleration(556) 會設為 Profile 配置文件的加速度。
如果為 Drive Mode(10) 選擇了基於時間的 Profile 配置文件,則 Profile Acceleration(556) 會設為配置文件的加速時間。
Profile Acceleration(556)適用於,除了在 Operating Mode(11) 中的 Current Control 電流控制模式或 PWM 控制模式以外的所有控制模式。
有關更多詳細信息,請參考 What is the Profile。
| Velocity-based Profile | 值 | 說明 |
| ---------------------- | ---- | ---- |
| Unit | 0 ~ Acceleration Limit(40) | 設定 Profile 的加速度 |
| Range | 0 ~ 32767 | 0 代表無限加速 |
| Time-based Profile | 值 | 說明 |
| ---------------------- | ---- | ---- |
| Unit | 1 [msec] | 設定 Profile 的加速時間 |
| Range | 0 ~ 32737 | 0 代表無限的加速時間(“0 [msec]”)<br>Profile Acceleration(556, 加速時間) 不會超過 Profile Velocity(556, 到達 profile 速度的所需時間) 值的 50%。 |
:::info
**備註**: 基於時間的 Profile 配置文件只從韌體 V12 以上提供
:::
:::info
**備註**: 當 Profile Velocity(560) 設為 "0" 時,Profile Acceleration(556) 會被忽略。
:::
### 2.4.35. Profile Velocity(560)
如果為 Drive Mode(10) 選擇了基於速度的 Profile 配置文件,則 Profile Velocity(560) 會設為 Profile 的最大速度。
如果為 Drive Mode(10) 選擇了基於時間的 Profile 配置文件,則 Profile Velocity(560) 會設為達到 Profile 配置文件速度的時間跨度(time span 所需時間)。
Profile Velocity(560) 僅適用在 Operating Mode(11) 中的 Position Control 位置控制模式或 Extended Position Control 延伸位置控制模式。
有關更多詳細信息,請參考 What is the Profile。
:::info
**備註**:速度控制模式僅使用 Profile Acceleration(108),不用 Profile Velocity(112)。
:::
| Velocity-based Profile | 值 | 說明 |
| ---------------------- | ---- | ---- |
| Unit | 0.01 [rev/min] | 設定 Profile 的速度 |
| Range | 0 ~ Velocity Limit(44) | 0 代表無限速度 |
| Time-based Profile | 值 | 說明 |
| ---------------------- | ---- | ---- |
| Unit | 1 [msec] | 設定 Profile 的時間跨度 |
| Range | 0 ~ 32737 | 0 代表無限的加速時間(“0 [msec]”)<br>Profile Acceleration(556, 加速時間) 不會超過 Profile Velocity(556, 到達 profile 速度的所需時間) 值的 50%。 |
:::info
**備註**: 基於時間的 Profile 配置文件只從韌體 V12 以上提供
:::
### 2.4.36. Goal Position(564)
所需位置可以通過 Goal Position(564) 進行設置。
在位置控制模式下,此值必須在 Min Position Limit(52) 和 Max Position Limit(48) 之間,而延伸位置控制模式使用的範圍是 -2,147,483,648〜2,147,483,647。
:::info
**備註**: Present Position(580) 代表無論 Operating Mode(11) 如何設置,當關閉扭力時,從 -2,147,483,648 到 2,147,483,647 的 4 byte 連續範圍。
但是,在以下情況,Present Position(580) 將重置為一整圈轉動的絕對位置值:
1. 當 Operating Mode(11) 更改為位置控制模式時,Present Position(580) 將重置為一整圈轉動的絕對位置值。
2. 在位置控制模式下開啟扭力時,Present Position(580) 將重置為一整圈轉動的絕對位置值。
3. 打開電源或使用 Reboot 指令。
Present Position(580) 的值可能受 Homing Offset(20) 的影響。
:::
| 角度範圍 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| -180 [°] ~ 180 [°] | -251,417 ~ 251,417 | ![](https://i.imgur.com/xlz2UTA.png) |
### 2.4.37. Realtime Tick(568) 即時 Tick
此值表示 Dynamixel 馬達的內部時間。
| 單位 | 值的範圍 | 說明 |
| -------- | -------- | -------- |
| 1 [msec] | 0 ~ 32,767 | 當值超過 32,767 時將重設為 0 |
### 2.4.38. Moving(570)
此值指示 DYNAMIXEL 馬達是否處於運動狀態。
如果 Present Velocity(576) 的絕對值大於 Moving Threshold(24),則 Moving(570) 設置為 “1”,否則,它將被清除為 “0”。
但是,在使用 Goal Position(564) 指令進行 profile 配置文件操作時,無論 Present Velocity(576) 是多少,此值都將始終設置為 “1”。
| 值 | 說明 |
| ---- | ---- |
| 0 | 馬達未在動作 |
| 1 | 馬達在動作,或 Profile 在操作中(Goal Position(564) 指令正被處理) |
### 2.4.39. Moving Status(571)
這個 one byte 的數據提供了有關馬達運動的其他信息。
到位位元 In-Position Bit(0x01) 只在位置控制模式,延伸位置控制模式下使用。
| Bit | 值 | 訊息 | 說明 |
| ----- | --- | ---- | ---- |
| Bit 7 | 0x80 | - | Unused |
| Bit 6 | 0x40 | - | Unused |
| Bit 5 <br>~ <br>Bit 4 | 0x30 | Profile Type(0x30)<br>Profile Type(0x10)<br>Profile Type(0x00) | Trapezoidal Velocity Profile<br>Rectangle Velocity Profile<br>Profile unused(Step) |
| Bit 3 | 0x08 | - | Unused |
| Bit 2 | 0x04 | - | Unused |
| Bit 1 | 0x02 | - | Unused |
| Bit 0 | 0x01 | In-Position<br>到位 | Dynamixel 馬達已到所需位置<br>0 : 未到達<br>1 : 已到達 |
### 2.4.40. Present PWM(572) 當前 PWM
此值表示當前的 PWM。有關更多詳細信息,請參閱 Goal PWM(548)。
### 2.4.41. Present Current(574) 當前電流
此值表示當前流向馬達的電流。有關更多詳細信息,請參閱 Goal Current(550)。
### 2.4.42. Present Velocity(576) 當前速度
此值表示當前速度。有關更多詳細信息,請參閱 Goal Velocity(552)。
### 2.4.43. Present Position(580) 當前位置
此值表示當前位置。有關更多詳細信息,請參閱 Goal Position(564)。
:::info
**備註**: Present Position(580) 代表無論 Operating Mode(11) 如何設置,當關閉扭力時,從 -2,147,483,648 到 2,147,483,647 的 4 byte 連續範圍。
但是,在以下情況,Present Position(580) 將重置為一整圈轉動的絕對位置值:
1. 當 Operating Mode(11) 更改為位置控制模式時,Present Position(580) 將重置為一整圈轉動的絕對位置值。
2. 在位置控制模式下開啟扭力時,Present Position(580) 將重置為一整圈轉動的絕對位置值。
3. 打開電源或使用 Reboot 指令。
Present Position(580) 的值可能受 Homing Offset(20) 的影響。
:::
### 2.4.44. Velocity Trajectory(584) 速度軌跡
這是由 Profile 配置文件產生的所需速度軌跡。可以根據控制模式更改操作方法。有關更多詳細信息,請參考 Profile Velocity(560)。
1. **速度控制模式**:當 Profile 配置文件到達終點時,Velocity Trajectory(584) 等於 Goal Velocity(552)。
2. **位置控制模式,延伸位置控制模式**:速度軌跡是用來產生 Position Trajectory(588)。當 Profile 到達終點時,Velocity Trajectory(584) 被清除為 “0”
### 2.4.45. Position Trajectory(588) 位置軌跡
這是由 Profile 配置文件產生的所需位置軌跡。
此值僅在位置控制模式,延伸位置控制模式下使用。
有關更多詳細信息,請參考 Profile Velocity(560)。
### 2.4.46. Present Input Voltage(592) 當前輸入電壓
此值表示正在供給馬達的當前電壓。有關更多詳細信息,請參閱 Max/Min Voltage Limit(32, 34)。
### 2.4.47. Present Temperature(594) 當前溫度
此值表示當前 DYNAMIXEL 馬達的內部溫度。有關更多詳細信息,請參考 Temperature Limit(31)。
### 2.4.48. Backup Ready(878)
此位址的值表示,當發送 Control Table Backup Packet 備份封包後,是否要保存備份
| 值 | 說明 |
| -------- | -------- |
| 0 | 備份不存在 |
| 1 | 備份存在 |
:::info
**備註**: Backup Ready 只在 firmware V12 提供。更詳細資訊,可參考 [Backup and Restore](https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/#backup-and-restore)。
:::
# 3. 如何組裝
---
## 3.1. 框架的組裝
- FRP54-H121K Set
![](https://i.imgur.com/Phzv2UK.png)
![](https://i.imgur.com/EVwS9xP.png)
![](https://i.imgur.com/EPO2URs.png)
![](https://i.imgur.com/TLENEXN.png)
# 4. Maintenance 維護
如有故障,請聯絡採智科技
# 5. 參考資源
---
:::info
**備註**:
- 各種型號馬達使用的框架及轉盤各異,請參考[**馬達框架轉盤相容表**](http://en.robotis.com/service/compatibility_table.php?cate=d)
- 新舊款智能馬達所使用之連接線規格相異,請參考此 [**Harness 相容圖**](http://emanual.robotis.com/docs/en/popup/cable_compatibility/)
:::
## 5.1. What is the Profile
Profile 配置文件是一種加速/減速控制方法,它通過控制急劇變化的速度和加速度,來減少馬達的振動,噪音和負載。
它也稱為 “Velocity Profile”,因為它基於速度來控制加速和減速。
DYNAMIXEL 提供 3 種不同類型的 Profile 配置文件(Step 階梯、Rectangle 矩形、Trapezoidal 梯形)。以下說明 3 個配置文件。
Profile 配置文件的選擇通常是 Profile Velocity(560) 和 Profile Acceleration(556) 的組合。
Trapezoidal Profile 梯形配置文件的選擇,要特別考慮以下因素:行駛距離(ΔPos,期望位置與當前位置之間的距離)。
![](https://i.imgur.com/31k4i5y.png)
在指定 Goal Position(564) 後,DYNAMIXEL 的 Profile 配置文件,會根據當前速度(Profile 的初始速度)來產生所需的速度軌跡。
當 DYNAMIXEL 朝著先前設的 Goal Position(564) 移動,但從新的 Goal Position(564) 接收到更新的所需位置時,速度會跟著新的所需速度軌跡而**平滑變化**。
在更新所需速度軌跡時,並保持速度的連續性稱為 “Velocity Override”。
為了進行簡單的計算,我們假設 Profile 的初始速度為 “0”。
以下說明當 Operating Mode(11) 是 Position Conrol 模式或 Entended Position COntrol 模式時, Profile 是如何處理 Goal Position(564) 指令。
:::info
1. 來自用戶的指令通過 DYNAMIXEL bus 傳輸,然後註冊到 Goal Position(564)。
2. 根據 Profile Velocity(560) 和 Profile Acceleration(556) 來計算 Acceleration time(t1)。
3. 根據 Profile Velocity(560),Profile Acceleration(556) 和總行駛距離(ΔPos,所需位置與當前位置之間的距離差)確定 Profile 的類型。
4. 所選 Profile 配置文件類型存儲在 Moving Status(571) 中。(可參考 Moving Status(571))
5. DYNAMIXEL 馬達由 Profile 所計算的所需軌跡來驅動。
6. 來自 Profile 配置文件的所需速度軌跡和所需位置軌跡,分別存儲在 Velocity Trajectory(584) 及 Position Trajectory(588) 處。
:::
| Condition | Profile 類型 |
| --------- | ------------ |
|Profile Velocity(560) = 0| Profile not used (階梯 Step Instruction) |
|(Profile Velocity(560) ≠ 0) & (Profile Acceleration(556) = 0)| 矩形配置文件 Rectangular Profile |
|(Profile Velocity(560) ≠ 0) & (Profile Acceleration(556) ≠ 0)| 梯形配置文件 Trapezoidal Profile |
![](https://i.imgur.com/9q0O4ST.png)
:::info
**備註**: 速度控制模式僅使用 Profile Acceleration(556)。也支援 Step 階梯和 Trapezoidal 梯形配置文件,也同時支援 Velocity Override。Acceleration time(t1) 可通過以下公式計算。
**Velocity-based Profile: t1 = 600 * {Profile Velocity(560) / Profile Acceleration(556)}<br>
Time-based Profile: t1 = Profile Acceleration(556)**
:::
:::info
**備註**: 如果選擇 Time-based Profile,Profile Velocity(560) 會用來設定 Profile 的 time span 時間跨度(t3),而 Profile Acceleration(556) 會用來設定 acceleration time 加速時間(t1),單位是 millisecond(ms)。Profile Acceleration(556) 值不能超過 Profile Velocity(560) 值的 50%。
:::
## 5.2. 認證
如有未列出認證問題,請向我們詢問。
### 5.2.1. FCC
:::info
**備註**: 本設備經測試證明符合 FCC 規則第 15 部分中關於 A 類數位設備的限制。這些限制旨在為在商業環境中操作設備提供合理的保護,以防止有害干擾。本設備會產生,使用並輻射射頻能量,如果未按照說明手冊進行安裝和使用,可能會對無線電通信產生有害干擾。在居民區使用此設備可能會造成有害干擾,在這種情況下,將要求用戶自費糾正干擾。
:::
:::warning
**警示**: 未經製造商明確許可的任何更改或修改都可能使用戶喪失操作設備的權利。
:::
## 5.3. 連接線接頭的資訊
| 項目 | RS-485 接頭 | Power | External Port |
| --------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 針腳排列 | 1 - GND<br>2 - VDD<br>3 - DATA+<br> 4 - DATA- | 1 - GND<br>2 - VDD | 1 - GND<br>2 - VDD<br>3 - PORT 1<br>4 - PORT 2<br>5 - PORT 3<br>6 - PORT 4 |
| 接頭圖 | ![](https://i.imgur.com/Nb8Q4KD.png) | ![](https://i.imgur.com/iGL2fds.png) | ![](https://i.imgur.com/5DJZUkc.png) |
| Housing 外殼 | ![](https://i.imgur.com/fvub5NA.png)<br>[JST EHR-04](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) | ![](https://i.imgur.com/T6oTUAk.png)<br>[MOLEX 39-01-2020](http://www.molex.com/molex/products/datasheet.jsp?part=active/0039012020_CRIMP_HOUSINGS.xml) | ![](https://i.imgur.com/zE2w0N5.png)<br>[MOLEX 51021-0600](http://www.molex.com/molex/products/datasheet.jsp?part=active/0510210600_CRIMP_HOUSINGS.xml) |
| PCB header 排針 | ![](https://i.imgur.com/hvXKqca.png)<br>[JST B4B-EH-A](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) | ![](https://i.imgur.com/6Vg6N9X.png)<br>[MOLEX 39-28-1023](http://www.molex.com/molex/products/datasheet.jsp?part=active/0039281023_PCB_HEADERS.xml)<br>[MOLEX 87427-0242](https://www.molex.com/webdocs/datasheets/pdf/en-us/0874270242_PCB_HEADERS.pdf) | ![](https://i.imgur.com/7ndhMO2.png)<br>[MOLEX 53047-0610](http://www.molex.com/molex/products/datasheet.jsp?part=active/0530470610_PCB_HEADERS.xml) |
| 壓接端子 | [JST SEH-001T](http://www.jst-mfg.com/product/pdf/eng/eEH.pdf) | [MOLEX 39-00-0038](http://www.molex.com/molex/products/datasheet.jsp?part=active/0039000038_CRIMP_TERMINALS.xml) | [MOLEX 50079-8100](http://www.molex.com/molex/products/datasheet.jsp?part=active/0500798100_CRIMP_TERMINALS.xml) |
| 線規 | 21 AWG | 20 AWG | 26 AWG |
:::warning
**警示**:
- **務必檢查針腳排列**!DYNAMIXEL 馬達的針腳排列,可能與連接器製造商的針腳排列不同。
- Dynamixel PRO+ 及 Dynamixel P 系列智能馬達為 24V 供電
:::
## 5.4. Communication Circuit 通信電路
為了控制 DYNAMIXEL-P 系列智能馬達,主控制器需要將其 UART 信號轉換為 RS-485 信號。推薦的電路圖如下所示。
![](https://i.imgur.com/bW11v3u.png)
>[MAX485 型錄](http://ecee.colorado.edu/~mcclurel/max485ds.pdf)
:::info
**備註:** 上述電路是為 5V 或 5V tolerant 的 MCU 所設計。否則,請使用 Level Shifter 來匹配 MCU 的電壓。
:::
DYNAMIXEL 馬達的電源是通過 Pin1(-),Pin2(+)提供。
(以上電路只內建於 DYNAMIXEL 控制器中。)
在上面的電路圖中,TTL Level 電平中 TxD 和 RxD 的數據信號方向是根據 TX_Enable_5V 的電平確定的,如下所示:
- 如果 TX_Enable_5V 電平= High:TXD_5V 的信號輸出到 D+ 和 D-
- 如果 TX_Enable_5V 電平= Low:D+ 和 D- 的信號輸出到 RXD_5V
:::warning
**警示**: **務必檢查針腳排列**!DYNAMIXEL 馬達的針腳排列,可能與連接器製造商的針腳排列不同。
:::
## 5.5. Pin Arrangement 針腳的安排
連接器針腳排列如下所示。DYNAMIXEL-P 系列具有兩個 4-pin 連接器,以 pin-to-pin 配置排列。在這種情況下,連接器順序沒有優先等級,並且可以像 MX 系列一樣驅動 DYNAMIXEL-P 系列。
此外,還有一個 2-pin 連接器專用於大電流操作時的電源供應。
![](https://i.imgur.com/5cFK2rq.png)
![](https://i.imgur.com/bdRzvIT.png)
![](https://i.imgur.com/fYICF07.png)
:::warning
**警示**: 接線時請注意針腳排列。錯誤連接的 DYNAMIXEL-P 系列智能馬達會嚴重損壞。
:::
## 5.6. Drawings 圖檔下載
Download
- [PDF](http://www.robotis.com/service/download.php?no=1261)
- [DWG](http://www.robotis.com/service/download.php?no=1260)
- [STEP](http://www.robotis.com/service/download.php?no=1262)
- [IGES](http://www.robotis.com/service/download.php?no=1263)
## 5.7. Moment of Inertia
- Download [DYNAMIXEL-PM Moment of Inertia.pdf](https://www.robotis.com/service/download.php?no=2006)
另請訪問 [ROBOTIS 下載中心](http://en.robotis.com/service/downloadpage.php?ca_id=70),下載軟體應用程式,3D/2D CAD 和其他有用的資源!
###### tags: `Dynamixel-P` `ROBOTIS`