Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
DYNAMIXEL 12A
Bước 1: Các thành phần cần thiết
PHẦN CỨNG:
1. Dynamixel 12A hoặc bất kỳ động cơ Dynamixel nào
2. USB sang Dynamixel.
PHẦN MỀM:
1. Trình hướng dẫn Robotis Dynamixel.
2. Python --- Gói nối tiếp được cài đặt
Bước 2: Giới thiệu về Dynamixel 12A
Động cơ Dynamixel có độ chính xác cao và hầu hết được sử dụng trong Robot. Mỗi động cơ Dynamixel đều có vi điều khiển STM bên trong. Bạn có thể đọc mô-men xoắn hiện tại, điện áp, dòng điện, nhiệt độ, vị trí, v.v., từ Dynamixels Motors.
Thông số kỹ thuật của Dynamixel 12A:
Điện áp hoạt động --12v
Trọng lượng - 55g
Dòng điện tối đa --900mA
Mô-men xoắn gian hàng - 15,3 Kg.cm
Bước 3: Giao tiếp / điều khiển Dynamixel 12A
- Dynamixel 12A không giống như động cơ servo bình thường có 3 chân GND, PWM, VCC, cung cấp nguồn điện và tín hiệu PWM và điều khiển động cơ.
- Chúng tôi có thể điều khiển động cơ Dynamixel bằng giao thức truyền thông Half Duplex UART.
Giao thức truyền thông Half Duplex là gì?
Truyền dữ liệu bán song công có nghĩa là dữ liệu có thể được truyền theo cả hai hướng trên sóng mang tín hiệu, nhưng không được truyền cùng một lúc.
Bây giờ chúng ta tìm hiểu về Giao thức 1.0 cho Dynamixels từ Robotis để điều khiển động cơ Dynamixel.
- Bạn có thể giao tiếp với động cơ Dynamixel bằng cách gửi các gói từ máy tính xách tay / vi điều khiển của bạn như Arduino, r-pi, v.v., tới vi điều khiển có bên trong động cơ Dynamixel.
- Mỗi Dynamixel đều có ID có thể được sửa đổi.
- Một gói không là gì ngoài Tập hợp các byte.
Với giao thức Dynamixel 1.0, bạn sẽ có hai loại gói
- Các gói hướng dẫn
- Các gói trạng thái
Gói lệnh là dữ liệu lệnh được gửi đến Thiết bị.
Gói hướng dẫn trông như thế này:
Header1, Header2, ID, Length, Instruction, Param 1… Param, NChecksum
0xFF, 0xFF, ID, Độ dài, Thông số hướng dẫn 1… Thông số, NCHKSUM
Byte lệnh cho biết phải làm gì, đọc dữ liệu hay ghi vào động cơ Dynamixel.
BẢNG ĐIỀU KHIỂN CỦA ĐỘNG CƠ DYNAMIXEL.-Bảng Điều khiển là một cấu trúc bao gồm nhiều trường Dữ liệu để lưu trữ trạng thái hoặc để điều khiển thiết bị.
Đọc thêm về Bảng điều khiển tại đây Bảng điều khiển Robotis.
Chúng ta có thể truy cập dữ liệu trong bảng điều khiển từ địa chỉ của nó và chúng ta cũng có thể viết.
Bước 4: Ghi vị trí mục tiêu vào Dynamixel Motor
Gói hướng dẫn để viết vị trí mục tiêu
mọi gói tin đều bắt đầu bằng một tiêu đề
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
Byte lệnh LEN + p1 + p2 + p3 + chk sum = 5 byte
ID = ID động cơ Dynamixel 1-bạn có thể đặt id động cơ bằng cách sử dụng phần mềm thuật sĩ động cơ robotis
INST = reg ghi-xác định rằng bạn đang ghi vào động cơ.
P1 = Địa chỉ bắt đầu của Dữ liệu-Trong bảng điều khiển Vị trí mục tiêu có địa chỉ 30 (0x1E trong hệ thập lục phân).
P2 = byte dữ liệu thấp hơn
P3 = byte dữ liệu cao hơn
Tính toán Checksum sẽ được giải thích ngay sau đây ………………….
Nếu bạn gửi gói trên tới Dynamixel Serially bằng USB2Dynamixel, vị trí mục tiêu của động cơ Dynamixel sẽ được đặt thành 500.
Bước 5: MÃ PYTHON
# Phát triển bởi Madhu. Cập nhật lần cuối vào ngày 2019-07-19
nhập nối tiếp
thời gian nhập khẩu
ser = serial. Serial ('com36', '57142')
# thay đổi cổng com cho phù hợp, tốc độ truyền động cơ máy nổ của tôi là 57142, bạn có thể đặt tốc độ này bằng phần mềm thuật sĩ Dynamixel.
trong khi (1):
gp1 = input ('nhập vị trí mục tiêu ID1 (0-1023)')
l = gp1 & 255 # byte chậm
h = (gp1 >> 8) & 255 # byte cao
li = [0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#check tính toán tổng
crc = sum (li [2:])
low1 = crc & 255
chksum = 255-low1
li.append (chksum) #adding check sum
a = bytearray (li) #converting danh sách thành bytearray
ser.write (a) # Gửi trực tiếp bằng usb2dynamixels.
time.sleep (0,5)
# Sao chép mã dán trong IDE python. Cài đặt gói pyserial. kết nối đầu USB của usb2dynamixel với cổng USB của máy tính xách tay và một đầu khác với động cơ Dynamixel. Cung cấp nguồn 12v bên ngoài cho USB2DYNAMIXEL.
CHẠY mã, nhập giá trị vị trí mục tiêu. Xem động cơ đang chạy.