Mục lục:

Điều khiển Dynamixel 12A bằng cách gửi các gói một cách tuần tự: 5 bước
Điều khiển Dynamixel 12A bằng cách gửi các gói một cách tuần tự: 5 bước

Video: Điều khiển Dynamixel 12A bằng cách gửi các gói một cách tuần tự: 5 bước

Video: Điều khiển Dynamixel 12A bằng cách gửi các gói một cách tuần tự: 5 bước
Video: How To: Use Packet Control in Dynamixel Wizard 2.0 2024, Tháng bảy
Anonim
Điều khiển Dynamixel 12A bằng cách gửi các gói một cách tuần tự
Điều khiển Dynamixel 12A bằng cách gửi các gói một cách tuần tự

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.

Đề xuất: