Оглавление:

Управление Dynamixel 12A путем последовательной отправки пакетов: 5 шагов
Управление Dynamixel 12A путем последовательной отправки пакетов: 5 шагов

Видео: Управление Dynamixel 12A путем последовательной отправки пакетов: 5 шагов

Видео: Управление Dynamixel 12A путем последовательной отправки пакетов: 5 шагов
Видео: Манипуляционные роботы на базе сервоприводов Dynamixel 2024, Июль
Anonim
Управление Dynamixel 12A путем последовательной отправки пакетов
Управление Dynamixel 12A путем последовательной отправки пакетов

DYNAMIXEL 12A

Шаг 1. Необходимые компоненты

АППАРАТНОЕ ОБЕСПЕЧЕНИЕ:

1. Dynamixel 12A или любой двигатель Dynamixel

2. USB для Dynamixel.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ:

1. Мастер Robotis Dynamixel.

2. Python --- серийный пакет установлен

Шаг 2: Знакомство с Dynamixel 12A

Двигатели Dynamixel очень точны и в основном используются в робототехнике. Каждый двигатель Dynamixel имеет внутри микроконтроллер STM. Вы можете считывать текущий крутящий момент, напряжение, потребляемый ток, температуру, положение и т. Д. Из Dynamixels Motors.

Технические характеристики Dynamixel 12A:

Рабочее напряжение - 12 В

Вес - 55 г

Максимальный ток --900 мА

Крутящий момент в стойле - 15,3 кг / см

Шаг 3: обмен данными / управление Dynamixel 12A

  • Dynamixel 12A не похож на обычные серводвигатели, которые имеют 3 контакта GND, PWM, VCC, подают питание и сигнал PWM и управляют двигателем.
  • Мы можем управлять двигателями Dynamixel, используя протокол связи Half Duplex UART.

Что такое протокол полудуплексной связи?

Полудуплексная передача данных означает, что данные могут передаваться на несущей сигнала в обоих направлениях, но не одновременно.

Теперь мы узнаем о протоколе 1.0 для Dynamixel от Robotis для управления двигателями Dynamixel.

  • Вы можете связываться с двигателями Dynamixel, отправляя пакеты со своего ноутбука / микроконтроллера, такого как Arduino, r-pi и т. Д., На микроконтроллер, который присутствует внутри двигателей Dynamixel.
  • У каждого Dynamixels есть ID, которые можно изменить.
  • Пакет - это не что иное, как набор байтов.

В случае протокола Dynamixel 1.0 у вас будет два типа пакетов

  • Пакеты инструкций
  • Пакеты статуса

Пакет инструкций - это командные данные, отправляемые на устройство.

Пакет инструкций выглядит так:

Заголовок1, Заголовок2, ID, Длина, Инструкция, Параметр 1… Параметр, NC Контрольная сумма

0xFF, 0xFF, ID, длина, инструкция Param 1… Param, NCHKSUM

Байт инструкции сообщает, что делать, читать ли данные или записывать в двигатель Dynamixel.

ТАБЛИЦА УПРАВЛЕНИЯ ДИНАМИКСЕЛЬНЫМ ДВИГАТЕЛЕМ. Таблица управления - это структура, которая состоит из нескольких полей данных для хранения статуса или управления устройством.

Подробнее о таблице управления читайте здесь. Таблица управления Robotis.

Мы можем получить доступ к данным в управляющей таблице по ее адресу, а также можем писать.

Шаг 4: Запись положения цели в динамиксельный двигатель

Пакет инструкций для записи позиции цели

каждый пакет начинается с заголовка

H1 H2 ID LEN INST P1 P2 P3 CKSM

0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2

LEN-инструкция byte + p1 + p2 + p3 + chk sum = 5 байтов

ID = идентификатор двигателя Dynamixel 1 - вы можете установить идентификатор Dynamixel с помощью программного обеспечения robotis Dynamixel wizard

INST = reg write - указывает, что вы пишете в мотор.

P1 = Начальный адрес входных данных в таблице управления. Позиция цели имеет адрес 30 (0x1E в шестнадцатеричном формате).

P2 = младший байт данных

P3 = старший байт данных

Расчет контрольной суммы будет объяснен в ближайшее время ………………….

Если вы отправите вышеуказанный пакет в Dynamixel Serially с помощью USB2Dynamixel, целевое положение двигателя Dynamixel будет установлено на 500.

Шаг 5: КОД PYTHON

# Разработано Мадху. Последнее обновление 19.07.2019

импорт серийного номера

время импорта

ser = serial. Serial ('com36', '57142')

# соответственно измените com-порт, скорость передачи моих двигателей Dynamixel составляет 57142 бода, вы можете установить ее с помощью программного обеспечения Dynamixel wizard.

в то время как (1):

gp1 = input ('введите позицию цели ID1 (0-1023)')

l = gp1 & 255 # младший байт

h = (gp1 >> 8) & 255 # старший байт

li = [0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]

# расчет контрольной суммы

crc = sum (li [2:])

low1 = crc & 255

chksum = 255-низкий1

li.append (chksum) # добавление контрольной суммы

a = bytearray (li) # преобразование списка в bytearray

ser.write (a) # Последовательно отправить, используя usb2dynamixels.

time.sleep (0,5)

# Скопируйте вставку кода в среде IDE Python. Установите пакет pyserial. Подключите USB-разъем usb2dynamixel к USB-порту ноутбука, а другой конец - к двигателю Dynamixel. Подайте внешнее питание 12В на USB2DYNAMIXEL.

ЗАПУСТИТЕ код, введите значение позиции цели. См. Двигатель работает.

Рекомендуемые: