Съдържание:

Управление на Dynamixel 12A чрез последователно изпращане на пакети: 5 стъпки
Управление на Dynamixel 12A чрез последователно изпращане на пакети: 5 стъпки

Видео: Управление на Dynamixel 12A чрез последователно изпращане на пакети: 5 стъпки

Видео: Управление на Dynamixel 12A чрез последователно изпращане на пакети: 5 стъпки
Видео: Учебное пособие Dynamixel 12. Управление двигателем AX-12 с помощью Roboplus 2024, Юли
Anonim
Управление на Dynamixel 12A чрез последователно изпращане на пакети
Управление на Dynamixel 12A чрез последователно изпращане на пакети

ДИНАМИКСЕЛ 12А

Стъпка 1: Необходими компоненти

Хардуер:

1. Динамикал 12А или всеки двигател на Динамиксел

2. USB към Dynamixel.

СОФТУЕР:

1. Съветник Robotis Dynamixel.

2. Python --- Инсталиран сериен пакет

Стъпка 2: Въведение в Dynamixel 12A

Двигателите Dynamixel са много прецизни и се използват най -вече в роботиката. Всеки двигател Dynamixel има STM микроконтролер вътре. Можете да прочетете текущия въртящ момент, напрежението, изтеглянето на тока, температурата, позицията и т.н. от Dynamixels Motors.

Спецификации на Dynamixel 12A:

Работно напрежение -12v

Тегло-55гр

Максимален ток -900 mA

Затягащ момент-15,3 кг

Стъпка 3: Комуникация/управление на Dynamixel 12A

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

Какво представлява полудуплексният комуникационен протокол?

Полудуплексното предаване на данни означава, че данните могат да се предават в двете посоки по носител на сигнал, но не едновременно.

Сега научаваме за Протокол 1.0 за Dynamixels от Robotis за управление на Dynamixel двигатели.

  • Можете да комуникирате с двигатели Dynamixel, като изпращате пакети от вашия лаптоп/микроконтролер като Arduino, r-pi и т.н., към микроконтролера, който присъства в двигателите Dynamixel.
  • Всеки Dynamixels има идентификационни номера, които могат да се променят.
  • Пакетът не е нищо друго освен набор от байтове.

В случай на Dynamixel протокол 1.0 ще имате два вида пакети

  • Пакети с инструкции
  • Пакети на състоянието

Инструкционен пакет е командната информация, изпратена до Устройството.

Пакетът с инструкции изглежда така:

Header1, Header2, ID, Length, Instruction, Param 1… Param, NChecksum

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

Инструкционният байт казва какво да правите, дали да четете данни или да пишете на двигателя Dynamixel.

КОНТРОЛНА ТАБЛИЦА НА ДИНАМИКСЕЛЕН ДВИГАТЕЛ.-Таблицата за управление е структура, която се състои от множество полета с данни за съхраняване на състоянието или за управление на устройството.

Прочетете повече за контролната таблица тук Контролна таблица Robotis.

Можем да осъществяваме достъп до данните в контролната таблица от нейния адрес и също така можем да пишем.

Стъпка 4: Записване на целева позиция в Dynamixel Motor

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

всеки пакет започва със заглавка

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

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

ID = Идентификатор на Dynamixel двигател 1-можете да зададете идентификатор на Dynamixel с помощта на софтуер за съветник за Dynamisxel Wizard

INST = reg запис, посочващ, че пишете на двигателя.

P1 = Начален адрес на Data-In контролната таблица Целевата позиция е с адрес 30 (0x1E в шестнадесетичен код).

P2 = по -нисък байт данни

P3 = по -висок байт данни

Изчислението на контролната сума ще бъде обяснено скоро ………………….

Ако изпратите горния пакет към Dynamixel Serially чрез USB2Dynamixel, целта на двигателя на Dynamixel ще бъде зададена на 500.

Стъпка 5: ПИТОН КОД

#Разработен от Мадху. Последна актуализация на 2019-07-19

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

време за импортиране

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

#съответно променете com порта, скоростта на предаване на моите динамични мотори е 57142, можете да я настроите с помощта на софтуера на съветника Dynamixel.

докато (1):

gp1 = вход ('въведете целева позиция ID1 (0-1023)')

l = gp1 & 255 #нисък байт

h = (gp1 >> 8) & 255 #висок байт

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

#проверете изчислението на сумата

crc = сума (li [2:])

ниско1 = crc & 255

chksum = 255-ниско1

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

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

ser.write (a) #Серийно изпращане с помощта на usb2dynamixels.

time.sleep (0.5)

#Копирайте кодовата паста в python IDE. Инсталирайте pyserial пакет. свържете USB страната на usb2dynamixel към USB порта на лаптопа и друг край към двигателя Dynamixel. Дайте външно 12v захранване на USB2DYNAMIXEL.

Пуснете кода, въведете стойността на позицията на целта. Вижте работещия двигател.

Препоръчано: